Dokumentation zur SyntaxAufruf mit Referenz auf logisches System Dieses Dokument in der Navigationsstruktur finden

Beispiel Beispiel

Das HR leitet Abrechnungsergebnisse in das Rechnungswesen weiter. Dort werden entsprechende Belege gebucht. Jeder Beleg im Rechnungswesen referenziert auf den Ursprungsbeleg im HR. Die Referenz enthält auch das logische System, auf dem der HR-Beleg erzeugt worden ist.

Ende des Beispiels.

Die zu rufende Methode heisst beispielsweise HRDoc.Display. Die Kennung des Referenzbelegs im HR steht im Feld BKPF-AWREF und das logische System im Feld BKPF-AWSYS.

Der Aufruf der HR-Beleganzeige aus der Beleganzeige im Rechnungswesen ist wie folgt zu implementieren:

Syntax Syntax

  1. ...
    DATA:
      HEAD LIKE BKPF,
      RETURN LIKE BAPIRET2,
      SERVER_DEST LIKE TBLSYSDEST-RFCDEST,
      MSG_TXT(80) TYPE C.
    ...
    * get RFC-Destination for remote method call
    CALL FUNCTION 'OBJ_METHOD_GET_RFC_DESTINATION'
      EXPORTING
        OBJECT_TYPE                   = 'HRDOC'
        METHOD                        = 'DISPLAY'
        LOGICAL_SYSTEM                = HEAD-AWSYS
      IMPORTING
        RFC_DESTINATION               = SERVER_DEST
      EXCEPTIONS
        NO_RFC_DESTINATION_MAINTAINED = 1
        ERROR_READING_METHOD_PROPS    = 2
        OTHERS                        = 3.
    IF SY-SUBRC <> 0.
      IF SY-SUBRC = 1.
    * application specific message saying document can't be displayed
       ...
      ELSE. 
    *   hard error
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
          WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDIF.
    * call display function. If SERVER_DEST is initial, it's a local call.
    CALL FUNCTION 'BAPI_HRDOC_DISPLAY'
      DESTINATION SERVER_DEST
      EXPORTING
        DOCUMENT_ID = HEAD-AWREF
      IMPORTING
        RETURN = RETURN
      EXCEPTIONS
        COMMUNICATION_FAILURE = 1 MESSAGE MSG_TXT
        SYSTEM_FAILURE        = 2 MESSAGE MSG_TXT.
    IF SY-SUBRC <> 0.
    * handle remote exceptions
      MESSAGE E777(B1) WITH 
        'HRDoc.Display' HEAD-AWSYS HEADER-AWSYS 
        MSG_TXT(50) MSG_TXT+50(30).
    ELSEIF NOT RETURN-TYPE IS INITIAL.
    * handle return parameter
     ...
    ENDIF.
    
Ende des Codes

Die Nachricht B1 777 ist eine generische Nachricht. Statt dessen kann auch eine applikationsspezifische Nachrichten verwendet werden.