The inbound function module that uses an ALE enabled transaction must pass the IDoc number to the transaction’s IDoc memory variable before calling the transaction.
Inbound Processing with ALE-Enabled Transaction: Transaction Successful
Note
The transaction’s code is executed in a separate context from that of the ALE layer and inbound function module
The shaded boxes represent the ALE function modules Idoc_Input_Open (top) and Idoc_Input_Close (bottom).
How can you establish whether the call transaction was successful?
You can generally assume the call transaction has succeeded if "Sy-Subrc = 0" after the call has been executed. In an ALE environment this is only half the story, because when the import parameter Input_Method
takes on the value "A" or "E", the inbound function module must call the transaction using mode = "A" or "E" ("show all screens" or "show the screens starting with the one where the error occurred"). In this case, the user sees the screens and can cancel the transaction by entering /n in the command field, which also results in "Sy-Subrc = 0" after the call. The only reliable way to establish whether the call transaction succeeded is to check the message ID (Sy-Msgid) and number (Sy-Msgno). Note that some transactions have more than one "success" message.