Appels avec des références au système logique 

Le système HR transmet les résultats de paie à la gestion comptable. Les documents appropriés y sont enregistrés. Chaque document de la gestion comptable fait référence au document source dans HR. Le système logique dans lequel le document HR a été créé est compris dans la référence.

La méthode à appeler est nommée, par exemple, HRDoc.Display. La zone BKPF-AWREF contient l’ID du document de référence dans HR et la zone BKPF-AWSYS contient le nom du système logique.

Le code source ci-dessous montre comment l’affichage du document HR est appelé à partir de l’affichage du document dans la gestion comptable :

 

...

DATA:

HEAD LIKE BKPF,

RETURN LIKE BAPIRET2,

SERVER_DEST LIKE TBLSYSDEST-RFCDEST,

MSG_TXT(80) TYPE C.

...

 

* obtenir la destination RFC pour le 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.

* message d’application spécifique indiquant que le document ne peut pas être affiché

...

ELSE.

* erreur grave

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDIF.

 

* appel de la fonction d’affichage Si SERVER_DEST est initial, il s’agit d’un appel local.

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.

* gère les exceptions distantes

MESSAGE E777(B1) WITH

‘HRDoc.Display’ HEAD-AWSYS HEADER-AWSYS

MSG_TXT(50) MSG_TXT+50(30).

ELSEIF NOT RETURN-TYPE IS INITIAL.

* gère le paramètre de retour

...

ENDIF.

Le message B1 777 est un message générique. Un message propre à une application peut être utilisé à sa place.