Mehrere Units parallel befüllen 
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.