Ansicht
Dokumentation

IDOC_INPUT - Start des IDoc-Anwendungseingangs

IDOC_INPUT - Start des IDoc-Anwendungseingangs

RFUMSV00 - Advance Return for Tax on Sales/Purchases   PERFORM Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Dieser Funktionsbaustein führt die Methode "Eingang" auf die Objekte IDoc-Packet und IDoc aus, kann auch direkt von der ALE-Schicht aufgerufen werden.

Der Baustein ermittelt welche Anwendungsfunktionsbaustein für die IDocs zuständig ist und ruft es auf.

Wenn nötig werden dann:

  • Die Statussätze der IDocs fortgeschrieben.
  • Ereignisse für die Fehlerbehandlung/Weiterverarbeitung ausgelöst.

Importparameter

No_of_retries

Die Anzahl bisherige Aufrufe des Funktionsbausteins. Wenn die Anzahl größer ist, als der maximal erlaubte Wert in der Tabelle TBD50 (Eingangsmethoden), wird ein Fehlerstatus für das IDoc geschrieben, und der Anwendungseingang wird nicht ausgeführt.

Mass_Processing

Ein Kennzeichen, der sagt, ob ein Paket von IDocs zu bearbeiten ist oder nicht. Es ist möglich, daß im Paket nur ein IDoc vorhanden ist.

Das Kennzeichen steuert, was im Fehlerfall passiert. Ist er gesetzt, wird für jedes fehlerhafte IDoc das Einzelstartereignis ausgelöst; ist er nicht gesetzt, wird im Fehlerfall das Endeereignis ausgelöst.

Input_Method

Dieser Parameter sagt aus, ob das IDoc hell (im Dialog) oder dunkel (im Hintergrund) eingespielt werden soll. Die erlaubten Werte sind:

' ' - Dunkel
'A' - Hell einspielen, alle Dynpros zeigen
'E' - Hell einspielen, mit dem Fehlerdynpro starten

Direct_Call

Ein Kennzeichen, der sagt, ob der Funktionsbaustein direkt vom ALE-Eingang aufgerufen wurde oder nicht. Es steuert, welche Statuswerte die zu bearbeitenden IDocs haben darf:

Wert Erlaubte Statuswerte
'X' 63 ALE/EDI Fehler
64 Übergabebereit an die Anwendung

' ' 62 An die Anwendung übergeben
51 Fehler beim Anwendungseingang
69 IDoc editiert

IDOC_Start_Event_Enabled

Dieser Kennzeichen sagt aus, ob das IDoc-Start-Ereignis ausgelöst werden kann; wenn es auf 'c_false' gesetzt ist, wird das Ereignis auf keinen Fall ausgelöst.

End_Event_Enabled

Dieser Kennzeichen sagt aus, ob das IDoc-End-Ereignis ausgelöst werden kann; wenn es auf 'c_false' gesetzt ist, wird das Ereignis auf keinen Fall ausgelöst.

End_Event_Always

Dieser Kennzeichen sagt aus, ob das IDoc-End-Ereignis ausgelöst werden muß, unabhängig davon, ob das/die IDoc(s) erfolgreich verarbeitet wurden oder nicht. Wenn es auf 'c_true', wird das Ereignis immer ausgelöst (vorrausgesetzt, End_Event_Enabled = c_true).

Exportparameter

Exception_Value

Dieser Parameter hat den Wert des Parameters "Exception" des Ereigniscontainers. Er ist nicht-Null wenn eine interne Ausnahme ausgelöst wurde. Die möglichen Werte sind als Festwerte der Domäne EXCEPTION abgelegt.

Input_Succeeded_For_All

Dieser Kennzeichen ist gesetzt, wenn alle IDocs erfolgreich verarbeitet wurden, sonst nicht.

Tabellen

Unprocessed_IDOCs

(Importparameter) Eine Liste der zu verarbeitenden IDocs.

IDOC_Data

(Importparameter) Die zu verarbeitenden Datensätze (Segmente) der IDocs.

Diese Tabelle kann leer sein; in diesem Fall werden die Datensätze von der Datenbank gelesen.

IDOC_Control

(Import/Exportparameter) Die zu verarbeitende Kontrollsätze der IDocs. Diese Tabelle kann leer sein; in diesem Fall werden die Datensätze von der Datenbank gelesen. Beim Verlassen des Funktionsbausteins beinhaltet die Tabelle die aktuellen Kontrollsätze, d.h. mit den aktuellen Statuswerten.

Schnittstelle zur Anwendungsfunktionsbaustein

Der Anwendungsfunktionbaustein für den Eingang muß folgende Schnittstelle haben:

IMPORTING
INPUT_METHOD LIKE BDWFAP_PAR-INPUTMETHD
MASS_PROCESSING LIKE BDWFAP_PAR-MASS_PROC
EXPORTING
WORKFLOW_RESULT LIKE BDWFAP_PAR-RESULT
APPLICATION_VARIABLE LIKE BDWFAP_PAR-APPL_VAR
IN_UPDATE_TASK LIKE BDWFAP_PAR-UPDATETASK
CALL_TRANSACTION_DONE LIKE BDWFAP_PAR-CALLTRANS
TABLES
IDOC_CONTRL STRUCTURE EDIDC
IDOC_DATA STRUCTURE EDIDD
IDOC_STATUS STRUCTURE BDIDOCSTAT
RETURN_VARIABLES STRUCTURE BDWFRETVAR
SERIALIZATION_INFO STRUCTURE BDI_SER
EXCEPTIONS
WRONG_FUNCTION_CALLED

Wichtig ist, daß der Anwendungsfunktionsbaustein keinen Commit macht; sonst würde der Anwendungsbeleg und das IDoc in unterschiedlichen LUWs (Logical Units of Work) fortgeschrieben werden.

Die Parameter haben folgende Bedeutung:

Importparameter

Input_Method

Siehe oben

Mass_Processing

Siehe oben

Exportparameter

Workflow_Result

Ist dieser Paramter Null, und Mass_Processing ist gesetzt, wird kein Ereignis ausgelöst; dies sollte der Fall sein, wenn der Eingang erfolgreich gelaufen ist und keine weitere Schritte über Ereignisse gestartet werden sollen.

Application_Variable

Wenn dieser Parameter nicht INITIAL ist, wird sie an die Ereignisse weitergegeben.

In_Update_Task

Dieses Kennzeichen soll gesetzt werden, wenn der Anwendungsfunktionsbaustein die Verbuchung verwendet hat. Wenn es gesetzt ist, werden die Statussätze der IDocs und das Auslösen der Ereignisse in demselben Verbuchungstask ausgeführt - vorrausgesetzt, daß der Anwendungsfunktionsbaustein kein Commit Work abgesetzt hat.

Call_Transaction_Done

Dieser Kennzeichen soll gesetzt werden, wenn der Anwendungsfunktionsbaustein einen Call Transaction auf eine Transaktion gemacht hat, die das IDoc selber fortschreibt (d.h. mit IDOC-Sperre). Wenn das Kennzeichen gesetzt wurde, wird nach dem Aufruf des Anwendungsfunktionsbausteins keine weitere Schritte ausgeführt, da angenommen wird, daß diese Schritte von der Transaktion ausgeführt wurden.

Tabellen

IDOC_CONTRL

Die Kontrollsätze der zu verarbeitenden IDocs.

IDOC_DATA

Die Datensätze der zu verarbeitenden IDocs.

IDOC_STATUS

Die Statussätze der verarbeiteten IDocs. Pro IDoc muß der Anwendungsfunktionsbaustein mindestens einen Statussatz in die Tabelle schreiben; im Erfolgsfall soll der Status 53 verwendet werden, im Fehlerfall der Status 51.

Return_Variables

(Exportparameter) In dieser Tabelle werden die Verknüpfungen zwischen den IDocs und die verarbeiteten Anwendungsbelege gemacht; zusätzlich wird aus den Einträgen ersichtlich, welche IDocs fehlerhaft waren, welche weiterverarbeitet werden sollen und auch welche Anwendungsbelege weiterverarbeitet werden sollen.

Serialization_Info

(Exportparameter) Diese Tabelle wird für die Serialisierung verwendet. Wenn die Anwendung eine Serialisierung vornimmt, muß sie den Funktionsbaustein idoc_serialization_check aufrufen. Dieser liefert die Tabelle Serialization_Info zurück.

Ausnahmen

Wrong_Function_Called

Diese Ausnahme soll ausgelöst werden, wenn der Nachrichtentyp bzw. der Basisstrucktur des IDocs nicht zum Funktionsbaustein passen.

Auslösen von Ereignissen

Die Ereignisse, die hinter dem Vorgangscode im Customizing hinterlegt sind, werden nach folgender Logik ausgelöst. 'Startereignisse' sind hier sowohl die IDoc-Startereignisse für die Fehlerbehandlung als auch die Anwendungsereignisse; 'Einzelendereignisse' sind die Endereignisse für IDoc-Objektmethoden; 'Massenendereignisse' sind die Endereignisse für IDoc-Packet-Objecktmethoden.

Das Auslösen der Ereignisse hängt von den folgenden Parameter ab:

Workflow_Result

Exportparameter des Anwendungsfunktionsbausteins

Input_succeeded_for_all

Interner Parameter, der auf TRUE gesetzt wird, wenn alle von der Anwendung verarbeiteten IDocs den Status "Erfolgreich gebucht" haben, sonst auf FALSE.

IDOC_Start_Event_Enabled

Schnittstellenparameter des Funktionsbausteins

End_Event_Enabled

Schnittstellenparameter des Funktionsbausteins

End_Event_Always

Schnittstellenparameter des Funktionsbausteins

Return_Variables

Exportparameter des Anwendungsfunktionsbausteins

In der folgenden Tabelle bedeutet 'o', daß das Ereignis in dem Fall nicht ausgelöst werden kann; 'x' bedeutet, daß das Ereignis ausgelöst werden muß; ' ' bedeutet, daß das Ereignis ausgelöst werden kann.

Parameter Wert Ereignisart _______________________________________________________________________

IDOC Anw. Einzelend Massenend
start start

Workflow_Result 0 o o
<> 0

IDOC_Start_Event_Enabled TRUE
FALSE o

End_Event_Enabled TRUE
FALSE o o

End_Event_Always TRUE x x
FALSE
_______________________________________________________________________

Wenn End_Event_Always TRUE ist, muß auch End_Event_Enabled TRUE sein, damit das Endereignis ausgelöst wird.

Damit 'Startereignisse' ausgelöst werden, müssen sowohl die obigen Bedingungen es zulassen und auch die Exportparameter "Return_Variables" des Anwendungsfunktionsbausteins entsprechend gefüllt sein.

Beispiel

Hinweise





Parameter

DIRECT_CALL
DO_COMMIT
END_EVENT_ALWAYS
END_EVENT_ENABLED
EXCEPTION_VALUE
HOT_ONLY
IDOC_CONTROL
IDOC_DATA
IDOC_START_EVENT_ENABLED
INPUT_METHOD
INPUT_SUCCEEDED_FOR_ALL
MASS_PROCESSING
NO_OF_RETRIES
PE_IDOC_RESTART
PI_PARTNER_OPTION
PROCESS_CODE
SET_TO_TEMPERATURE
UNPROCESSED_IDOCS

Ausnahmen

IDOCS_DO_NOT_EXIST
IDOCS_HAVE_NO_DATA_RECORDS
IDOC_CLOSE_DB_ERROR
IDOC_CLOSE_NOT_OPEN
IDOC_CLOSE_NO_STATUS_WRITTEN
IDOC_CLOSE_PARAMETER_ERROR
IDOC_OPEN_ALREADY
IDOC_OPEN_INVALID
IDOC_OPEN_LOCK
IDOC_OPEN_NOT_EXIST
IDOC_WRITE_DB_ERROR
IDOC_WRITE_LOCK
IDOC_WRITE_NO_STATUS
IDOC_WRITE_NUMBER_INVALID
IDOC_WRITE_STATUS_INVALID
UNPROCESSED_IDOCS_EMPTY

Funktionsgruppe

BD20

rdisp/max_wprun_time - Maximum work process run time   General Data in Customer Master  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 11817 Date: 20240523 Time: 090117     sap01-206 ( 163 ms )