Show TOC Anfang des Inhaltsbereichs

Diese Grafik wird im zugehörigen Text erklärt Mehrere Units parallel befüllen  Dokument im Navigationsbaum lokalisieren

Abschließend noch ein Beispiel, in dem mehrere Units parallel gefüllt werden. Die Reihenfolge in der Verarbeitung ergibt sich durch die Reihenfolge der Anforderung der Units. Unit-2 hat in diesem Beispiel also Priorität vor Unit-1. Da sich beide Units über gleiche Queue-Namen serialisieren, ergibt sich eine Reihenfolgeabhängigkeit. Würden unterschiedliche Queue-Namen verwendet, dann könnte beide Units parallel verarbeitet werden.

 

DATA: my_destination TYPE REF TO if_bgrfc_destination_outbound,
      my_unit_1      TYPE REF TO if_qrfc_unit_outbound,
      my_unit_2      TYPE REF TO if_qrfc_unit_outbound,
      dest_name      TYPE bgrfc_dest_name_outbound,
      queue_name     TYPE qrfc_queue_name,
      queue_names    TYPE qrfc_queue_name_tab.

TRY.
    dest_name = 'MY_DEST'.
    my_destination = cl_bgrfc_destination_outbound=>create( dest_name ).
  CATCH cx_bgrfc_invalid_destination.
    MESSAGE e102(bc).
ENDTRY.
my_unit_2 = my_destination->create_qrfc_unit( ).
my_unit_1 = my_destination->create_qrfc_unit( ).
CALL FUNCTION ’rfc_function_1’ IN BACKGROUND UNIT my_unit_1.
CALL FUNCTION ’rfc_function_2’ IN BACKGROUND UNIT my_unit_2.
queue_name = 'DEBITOR-1234'.
INSERT queue_name INTO TABLE queue_names.
    queue_name = 'PRODUCT-4711'.
INSERT queue_name INTO TABLE queue_names.
    queue_name = 'PRODUCT-5432'.
INSERT queue_name INTO TABLE queue_names.
my_unit_1->add_queue_names_outbound( queue_names = queue_names
                                   ignore_duplicates = abap_true ).
my_unit_2->add_queue_names_outbound( queue_names = queue_names
                                  ignore_duplicates = abap_true ).
COMMIT WORK.

Ende des Inhaltsbereichs