Anfang des Inhaltsbereichs

Aufruf ohne Referenz auf das logische System  Dokument im Navigationsbaum lokalisieren

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, muß 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, that the 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 is 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, muß die Abfrage des Verteilungsmodells dementsprechend geändert werden.