[Reproduziert] Rufen Sie in der Erweiterung die Verwendung von BAPI und COMMIT auf

Derzeit besteht die Notwendigkeit, gleichzeitig nach der Buchung des Lieferscheins einen Buchhaltungsbeleg zu erstellen. Ich habe versucht, den Code direkt in die Methode "USEREXIT_SAVE_DOCUMENT" des erweiterten Programms "MV50AFZ1" zu schreiben, bevor ich BAPI und Commit aufgerufen habe, aber das Ergebnis war ein Fehler.

Ich habe einen Blog-Beitrag über CSDN mit ähnlichen Anforderungen gesehen: Im SAP-Erweiterungsprogramm das Entwurfsschema zum Aufrufen von BAPI und COMMIT (MIGO-Erweiterung)

Die Methode dieses Freundes oben besteht darin, gewöhnliche Funktionen im erweiterten Code aufzurufen, entfernte Funktionen in gewöhnlichen Funktionen aufzurufen und schließlich BAPI und Commit in den entfernten Funktionen aufzurufen.

  call function 'ZMM_GOODSMVT_MAIN2'
    starting new task 'T1'
    destination 'NONE'
    exporting
      goodsmvt_header = goodsmvt_header
      goodsmvt_code   = goodsmvt_code
      testrun         = testrun
      is_log3         = is_log3
    tables
      goodsmvt_item   = goodsmvt_item[]
      log             = log[].

Das Wesentliche beim asynchronen Aufruf: Das Programm wird in mehreren Threads ausgeführt.

Asynchroner Aufruf: 

CALL FUNCTION 'FUN' 

NEWTASK STARTEN <Aufgabenname>  "Aufgabenname

ZIEL IN DER GRUPPE <RFC-Servergruppe>

                        <Subroutine> AM ENDE DER AUFGABE DURCHFÜHREN"子程序

Warten Sie auf die Rückgabeergebnisse mehrerer asynchroner Aufrufe: WAIT UNTIL  log_exp [ UP TO  sec  SECONDS ].

Der Parameter IMPORTING kann nicht verwendet werden, wenn asynchron aufgerufen wird. Die Funktion muss eine RFC-Funktion sein, die asynchron aufgerufen werden soll. Solange die Option STARTING NEW TASK vorhanden ist , handelt es sich um einen asynchronen Aufruf. Wenn die RFC-Funktion desselben Ziels asynchron aufgerufen wird, kann DESTINATION weggelassen werden

DESTINATION  Wert

l Ziel NONE : Der Anwendungsserver, auf dem sich das aktuelle Programm befindet, wird als Zielsystem verwendet, der aufrufende Prozess wird jedoch weiterhin vom RFC-Remote-Modus aufgerufen , der mit SPACE identisch ist

l Ziel- SPACE : Die  Option DESTINATION wird ignoriert und die aufgerufene Funktion wird auf dem Computer als normale Funktion aufgerufen

l Ziel ZURÜCK : Wird verwendet, um das Ziel in der Anweisung CALL FUNCTION im RFM-Programm anzugeben, das remote aufgerufen wird, und um über die hergestellte RFC-Verbindung (dh das Aufruferprogramm ->) andere Funktionsbausteine ​​im Aufrufersystem der Funktion aufzurufen RFM im Remote-System -> andere Funktionen im System zurückrufen, in dem sich das Hauptaufrufprogramm befindet)

 

Sammlung für Ersatz.

Ich denke du magst

Origin blog.csdn.net/zhongguomao/article/details/108086551
Empfohlen
Rangfolge