Show TOC

Aufruf ohne Referenz auf das logische SystemLocate this document in the navigation structure

Beispiel

Das HR leitet Abrechnungsergebnisse in das Rechnungswesen weiter. Dort werden entsprechende Belege gebucht. Das HR hat keine Referenz auf den entstandenen Beleg im Rechnungswesen.

Die zu rufende Methode heißt beispielsweies ACDoc.Display. Für ACDoc.Display gibt es keine Filterobjekte. Die Kennung des HR-Belegs steht im Feld HRKPF-DOCNR.

Da das logische System nicht aus dem Kontext bekannt ist, muss das logische Zielsystem aus dem Verteilungsmodell ermittelt werden.

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

...
DATA:
  HEAD LIKE HRKPF,
  SERVER LIKE BDBAPIDEST,
  RETURN LIKE BAPIRET2,
  MSG_TXT(80) TYPE C,
  FILTER_VALUES LIKE BDI_FOBJ OCCURS 0 WITH HEADER LINE.
...
* get logical system and RFC-Destination for remote method call
* no filter objects are used
REFRESH FILTER_VALUES.
* get server system from ALE distribution model
CALL FUNCTION 'ALE_BAPI_GET_UNIQUE_RECEIVER'
  EXPORTING
    OBJECT                        = 'ACDOC'
    METHOD                        = 'DISPLAY'
  IMPORTING
    RECEIVER                      = SERVER
  TABLES
    FILTEROBJECTS_VALUES          = FILTER_VALUES.
  EXCEPTIONS
    ERROR_IN_FILTEROBJECTS        = 1
    ERROR_IN_ALE_CUSTOMIZING      = 2
    NOT_UNIQUE_RECEIVER           = 3
    NO_RFC_DESTINATION_MAINTAINED = 4
    OTHERS                        = 5.
IF SY-SUBRC <> 0.
  IF SY-SUBRC = 4.
* 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_ACDOC_DISPLAY'
  DESTINATION SERVER-RFCDEST    
  EXPORTING
    DOCUMENT_ID = HEAD-DOCNR
  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' HEADER-AWSYS MSG_TXT(50) MSG_TXT+50(30).
ELSEIF NOT RETURN-TYPE IS INITIAL.
* handle return parameter
 ...
ENDIF.

         
Hinweis

Dieses Beispiel verwendet keine Filterobjekte. Wenn Filterobjekte für die zu rufende Objektmethode vorhanden sind, muss die Abfrage des Verteilungsmodells dementsprechend geändert werden.