Ansicht
Dokumentation

MWMIDI02 - Erweiterung für Nachricht WMTOCO (Quittieren TA) Eingang

MWMIDI02 - Erweiterung für Nachricht WMTOCO (Quittieren TA) Eingang

PERFORM Short Reference   General Material Data  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Über diesen User-Exit kann die Verarbeitung des aus Fremdsystemen über die MM-MOB oder WM-LSR Schnittstellen an SAP versendeten IDOCs des Nachrichtentyps WMTOCO (Quittieren Transportauftrag) beeinflusst werden. Dabei kann auch eine kundeneigene Verarbeitung angesteuert werden.

Der User-Exit erfolgt im Funktionsbaustein, der die IDOCs des Nachrichtentyps WMTOCO verarbeitet und zwar nachdem das IDOC entnommen und geprüft wurde, aber die direkte Verarbeitung in der Anwendung noch nicht veranlaßt wurde. D.h. die Daten für die Transportauftragsquittierung wurden bereits ermittelt und aufbereitet, der Funktionsbaustein zum Quittieren wurde aber noch nicht angesteuert. Der Standard-Funktionsbaustein zum Verarbeiten des Nachrichtentyps WMTOCO heißt L_IDOC_INPUT_WMTOCO. Die Verarbeitung des IDOCs erfolgt im Online, das bedeutet, daß das Coding auch im Online abläuft.

Im Fehlerfall dürfen keine Messages ausgegeben werden, da die Verarbeitung im Hintegrund abläuft und das Ergebnis der Verarbeitung an die ALE-Schnittstelle immer zurückgegeben werden muß. Daher dürfen keine Sprachelemente wie MESSAGE, COMMIT WORK, LEAVE o.ä. verwendet werden. Werden im User-Exit Fehler festgestellt, die an ALE-Schnittstelle weitergegeben werden sollen bzw. das Ergebnis der Verarbeitung beeinflussen, müssen Sie den User-Exit MWMIDI01 (EXIT_SAPLLIDI_001) mit verwenden, da nur über ihn eigene Fehler berücksichtigt weden können (siehe Doku des User-Exits).

Der User-Exit im Programm ist der Funktionsbaustein EXIT_SAPLLIDI_002. Um ihn mit Leben zu erfüllen, muß das IncludeZXLIDU05 angelegt und die Erweiterung mit der Transaktion CMOD aktiviert werden. Als Parameter kann auf folgende Daten zugegriffen werden:

  • Bereits aus dem empfangenen IDOC ermittelte Transportauftragsdaten für die Quittierung:
  • Kennzeichen, ob es sich um Quittieren über Transportauftragsnummer oder Lagereinheitennummer handelt (Import Parameter I_FLG_CONF_SU)

  • Lagernummer (Import Parameter I_LGNUM)

  • Transportauftragsnummer bei I_FLG_CONF_SU = ' ' (Import ParameterI_TANUM)

  • Lagereinheitennummer bei I_FLG_CONF_SU = 'X' (Import Parameter I_LENUM)

  • Benutzername für die Quittierung (Import Parameter X_CUSER)

  • Tabelle der zu quittierenden Positionen (Tabellenparameter T_LTAP_CONF)

  • Daten des empfangenen IDOCs:
  • Kontrollsatz des IDOCs (Import Parameter I_IDOC_CONTROL)

  • Datensätze des IDOCs (Tabellenparameter T_IDOC_DATA)

Dieser User-Exit kann grundsätzlich benutzt werden um:

  • Die ermittelten Daten für die Transportauftragsquittierung zu beeinflussen. Dabei können folgende Daten geändert werden:
  • Benutzername für die Quittierung (Export Parameter X_CUSER)

  • Die Positionsdaten des Transportauftrags (Tabellenparameter T_LTAP_CONF)

  • Zusätzlich können mit dem Quittier-IDoc (ab Release 4.0a) Leistungsdaten an den TA zurückgemeldet werden. Diese können im User-Exit geändert werden.
  • X_SOLEX : extern ermittelter Sollaufwand

  • X_PERNR : Personallnummer des den TA Ausführenden

  • X_STDAT : Startdatum der TA-Verarbeitung

  • X_ENDAT : Endezeit der TA-Verarbeitung

  • X_STUZT : Startuhrzeit der TA-Verarbeitung

  • X_ENUZT : Endezeit der TA-Verarbeitung

  • X_ISTWM : Istzeit = Dauer der TA-Verarbeitung, alternativ zu Start- und
    Endezeitangaben.

  • Daten die über kundeneigene Segmente übergeben werden, auszuwerten und zu verarbeiten
  • Zusatzaktivitäten anzusteuern.

Im folgenden werden einige denkbare Änderungen mit dem notwendigen Coding dazu erläutert.

  • Die Quittierungsdaten der einzelnen Positionen werden beeinflußt.
Werden bei den zu quittierenden Transportauftragspositionen Differenzen gemeldet, sollen diese auf einer besonderen Differenzen-Schnittstelle gebucht werden, da alle gemeldeten Differenzen von Fremdsystem auch gesondert ausgewiesen werden müssen.
Dafür wird ein neues Differenzenkennzeichen bei den relevanten Positionen gesetzt, das auch entsprechen im WM-Customizing definiert werden muß.

*---------------------------------------------------------------------*
* INCLUDE ZXLIDU05 *
*---------------------------------------------------------------------*

loop at t_ltap_conf.
check not t_ltap_conf-ndifa is initial or
not t_ltap_conf-rdifa is initial.
if t_ltap_conf-kzdif is initial.
move 'Z' to t_ltap_conf-kzdif.
modify t_ltap_conf.
endif.
endloop.

  • Beim Quittieren eines Transportauftrags soll zusätzlich bestimmte Aktivität angesteuert werden.
Handelt es sich um einen Auslagerungs-Transportauftrag zu einem Transportbedarf und wurden beim Rückmelden Differenzen gemeldet, soll für die fehlende Menge ein neuer Transportauftrag veranlaßt werden. Der gesamte Transportauftrag wird zurückgemeldet (bei einer positionsweiser Rückmeldung müßte das Coding dazu etwas anders aussehen).
Werden Differenzen festgestellt, wird der Funktionsbaustein L_COMMUNICATION_TO_CREATE angesteurt, um neuen Transportauftrag für die fehlende Menge zu erstellen. Dabei wird ein Mail-Kennzeichen Z1 explizit an den FB übergeben, das im WM-Customizing für "Automatische TA-Erstellung" definiert werden muß.

*---------------------------------------------------------------------*
* INCLUDE ZXLIDU05 *
*---------------------------------------------------------------------*


tables: ltak.
data: begin of xltbub occurs 10.
include structure ltbub.
data: end of xltbub.

data: h_mblnr like mseg-mblnr,
h_mjahr like mseg-mjahr,
h_mailk like t333m-mailk.

*........Prüfen, ob Vorgang relevant und Differenzen vorhnden..........

check i_flg_conf_su is initial.

select single * from ltak
where lgnum eq i_lgnum
and tanum eq i_tanum.
check sy-subrc eq 0.

check not ltak-tbnum is initial.
check ltak-trart eq 'A'.

loop at t_ltap_conf.
if not t_ltap_conf-ndifa is initial.
exit.
endif.
endloop.
check not t_ltap_conf-ndifa is initial.

*........Die relevanten Daten vorbereiten..............................

refresh xltbub.
clear xltbub.
move:
i_lgnum to xltbub-lgnum,
ltak-tbnum to xltbub-tbnum.
append xltbub.

clear h_mblnr.
clear h_mjahr.
move 'Z1' to h_mailk.

*........Transportauftrag zum Transporbedarf veranlassen...............

call function 'L_COMMUNICATION_TO_CREATE' in background task
exporting
mbeleg = h_mblnr
mjahr = h_mjahr
mailk = h_mailk
buser = space
express = 'X'
lvsdz = space
tables
t_ltbub = xltbub.

  • Der User-Exit kann auch in Kombination mit dem User-Exit MWMIDI01 (EXIT_SAPLLIDI_001) für die Fehlerbehandlung benutzt werden. Das Beispiele entnehmen Sie der Dokumentation dieses User-Exits.





Addresses (Business Address Services)   Addresses (Business Address Services)  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 9535 Date: 20240613 Time: 185454     sap01-206 ( 115 ms )