SAP資格過去問ならSAPnavi

NoteやStripe決済で安全にSAP過去問を購入することができます。
領収書発行可能 / 即時入手可能

SAP過去問 (SAP Exam)

Examples for Inbound and Outbound Processing

使用する

次の簡単な例は、新しいAPIの使用方法を説明するのに役立ちます。

  • bgRFCタイプt:アウトバウンド

  • bgRFCタイプq:アウトバウンド

  • bgRFCタイプq:アウトバウンドからインバウンド

  • bgRFCタイプt:インバウンド

  • bgRFCタイプq:インバウンド

bgRFCタイプt:アウトバウンド

この例では、2つの汎用モジュール呼び出しを含み、アウトバウンドスケジューラを介してリモートシステムに送信されるbgRFCユニットタイプtを作成します。

                    DATA: my_destination TYPE REF TO if_bgrfc_destination_outbound,          my_unit TYPE REF TO if_trfc_unit_outbound,          dest_name TYPE bgrfc_dest_name_outbound.                    dest_name = 'MY_DEST'.          my_destination = cl_bgrfc_destination_outbound=>create( dest_name ).          my_unit = my_destination->create_trfc_unit( ).          CALL FUNCTION 'rfc_function_1' IN BACKGROUND UNIT my_unit.          CALL FUNCTION 'rfc_function_2' IN BACKGROUND UNIT my_unit.          COMMIT WORK.                                

qRFCタイプq:アウトバウンド

この例では、2つの汎用モジュール呼び出しを含み、アウトバウンドスケジューラを介してリモートシステムに送信されるbgRFCユニットタイプqを登録します。これを行うために、キュー名がユニットのシリアル化に使用されます。同時に、この例では、例外をインターセプトしてエラーを処理できるようにする方法を説明しています。この例では、キュー名をさかのぼって指定します。これは技術的には正しいですが、結果としてプログラムのメンテナンスに支障をきたす可能性があります。

                    DATA: my_destination TYPE REF TO if_bgrfc_destination_outbound,          my_unit 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 = my_destination->create_qrfc_unit( ).          TRY.          CALL FUNCTION 'rfc_function_1' IN BACKGROUND UNIT my_unit.          my_unit->add_queue_name_outbound( 'DEBITOR-1234' ).          CALL FUNCTION 'rfc_function_2' IN BACKGROUND UNIT my_unit.          queue_name = 'PRODUCT-4711'.          INSERT queue_name INTO TABLE queue_names.          queue_name = 'PRODUCT-5432'.          INSERT queue_name INTO TABLE queue_names.          my_unit->add_queue_names_outbound( queue_names ).          CATCH cx_qrfc_duplicate_queue_name.          MESSAGE e101(bc).          ENDTRY.          COMMIT WORK.                                

bgRFCタイプq:アウトバウンドからインバウンド

次の例では、2つの汎用モジュール呼び出しを含み、アウトバウンドスケジューラを使用してリモートシステムに送信されるタイプqのbgRFCユニットを登録します。そこに到達すると、インバウンドキューに配置されます。これを行うために、キュー名がユニットのシリアル化に使用されます。同時に、パラメーターIGNORE_DUPLICATESを使用して、重複するキュー名に対して発生した例外を無効にする方法を示します。

                    DATA: my_destination TYPE REF TO if_bgrfc_destination_outbound,          my_unit TYPE REF TO if_qrfc_unit_outinbound,          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 = my_destination->create_qrfc_unit_outinbound( ).          CALL FUNCTION 'rfc_function_1' IN BACKGROUND UNIT my_unit.          CALL FUNCTION 'rfc_function_2' IN BACKGROUND UNIT my_unit.          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->add_queue_names_outbound( queue_names = queue_names          ignore_duplicates = abap_true ).          my_unit->add_queue_names_inbound( queue_names = queue_names          ignore_duplicates = abap_true ).          COMMIT WORK.                                                    

bgRFCタイプt:インバウンド

この例では、2つの汎用モジュール呼び出しを含み、同じシステムでインバウンドスケジューラによって処理されるタイプtのbgRFCユニットを登録します。

                    DATA: my_destination TYPE REF TO if_bgrfc_destination_inbound,          my_unit TYPE REF TO if_trfc_unit_inbound,          dest_name TYPE bgrfc_dest_name_inbound.                    dest_name = 'MY_DEST'.          my_destination = cl_bgrfc_destination_inbound=>create( dest_name ).          my_unit = my_destination->create_trfc_unit( ).          CALL FUNCTION 'rfc_function_1' IN BACKGROUND UNIT my_unit.          CALL FUNCTION 'rfc_function_2' IN BACKGROUND UNIT my_unit.          COMMIT WORK.                      

bgRFCタイプq:インバウンド

これは、タイプqのインバウンドbqRFCの別の例です。タイプtの例のbgRFCとは異なり、ここではキュー名を使用しているため、 create_trfc_unitの代わりにメソッドcreate_qrfc_unitを使用します。

                    DATA: my_destination TYPE REF TO if_bgrfc_destination_inbound,          my_unit TYPE REF TO if_qrfc_unit_inbound,          queue_name TYPE qrfc_queue_name,          queue_names TYPE qrfc_queue_name_tab,          dest_name TYPE bgrfc_dest_name_inbound.                    dest_name = 'MY_DEST'.          my_destination = cl_bgrfc_destination_inbound=>create( dest_name ).          my_unit = my_destination->create_qrfc_unit( ).          TRY.          CALL FUNCTION 'rfc_function_1' IN BACKGROUND UNIT my_unit.          my_unit->add_queue_name_inbound( 'DEBITOR-1234' ).          CALL FUNCTION 'rfc_function_2' IN BACKGROUND UNIT my_unit.          queue_name = 'PRODUCT-4711'.          INSERT queue_name INTO TABLE queue_names.          queue_name = 'PRODUCT-5432'.          INSERT queue_name INTO TABLE queue_names.          my_unit->add_queue_names_inbound( queue_names ).          CATCH cx_qrfc_duplicate_queue_name.          MESSAGE e101(bc).          ENDTRY.          COMMIT WORK.          DATA                                

タイトルとURLをコピーしました