On this page:

ABAP 言語は動的バイト コード インストゥルメンテーション(Java など)をサポートしていないため、実行時に任意の ABAP コマンドを代行受信することはできません(または、SAP で公式にはサポートされません)。

このセクションでは、自動インストゥルメンテーションがサポートされていない場合に便利な、手動の ABAP コード調整の手順について説明します。

このセクションでは、すでに検出されたビジネストランザクションの拡張についてのみ説明します。つまり、コードは既存のビジネストランザクションのコンテキストで実行する必要があります。そうでない場合は、モニターされません。

SAP GUI ダイアログトランザクションは、ログデータからビジネストランザクションに再構築されるため、実行時にビジネス トランザクション コンテキストは存在しません。

カスタム アクション

カスタム ABAP コードのセクションのパフォーマンスデータ収集を有効にするには、/DVD/APPD_CL_RUNTIME クラスを使用してランタイム測定を開始および停止します。

* Start action runtime measurement
  /dvd/appd_cl_runtime=>action_start( iv_name = 'Custom action 1' ).

* Custom ABAP code to be monitored
....

* Stop action runtime measurement
  /dvd/appd_cl_runtime=>action_stop( ).
CODE


上記のコードは、特定のアクションのコール数と合計ランタイムを収集します。これらのメトリックは、トランザクション スナップショットに保存されます(ランタイム順の上位 5 つのカスタムアクション)。

Ensure the action_stop( ) is always called for the monitored action

  • アクション中に例外が発生した場合は、CATCH セクションの action_stop( ) メソッドを呼び出して測定を停止します。
  • アクションを中断し、action_stop( ) コールを回避する EXIT、RETURN、またはその他のコマンドがないことを確認します。

ランタイム測定が適切に停止されない場合、パフォーマンスデータが収集されないか、誤って収集される可能性があります。

カスタム RFC exit コール

カスタム RFC コールの相関を有効にするには、次の例に示すように CALL FUNCTION ... DESTINATION 前後の ABAP コードを調整します。

* Declare local variable for AppD Correlation Header
  DATA: lv_appd_header TYPE STRING.

* Start the exit call for function module and remote destination
  lv_appd_header = /dvd/appd_cl_agent_rfc=>client_before_rfc( 
                                            iv_funcname    = 'Z_MY_RFC_FUNCTION'
                                            iv_destination = 'MY_RFCDEST' ).
* Custom RFC call
  CALL FUNCTION 'Z_MY_RFC_FUNCTION'
    DESTINATION 'MY_RFCDEST'
    EXPORTING 
      iv_appd_header = lv_appd_header
      ...
    IMPORTING ...
    EXCEPTIONS ... .
 
* Stop the exitcall
  /dvd/appd_cl_agent_rfc=>client_after_rfc( ).
  sy-subrc = /dvd/appd_cl_agent_rfc=>sv_subrc.   "restore SY-SUBRC after the call
CODE


上記のコードは、RFC バックエンドへの新しい exit コールを開始します。ターゲットシステムがインストゥルメント化された ABAP または Java システムの場合、相関情報が伝播され、ターゲットシステムでビジネストランザクションが続行されます。 

ターゲットシステムが ABAP の場合、RFC 宛先に関連付けられているユーザー、または RFC コールを行うユーザーは、ターゲットシステムで十分な権限を持っている必要があります。「SAP 認証」(auth. role /DVD/APPD_RFC_ABAP)を参照してください。

Java JCo Server で RFC exit コールが正常に動作するには、JCo プラグインバージョン 4.5.2002 以降の最初のインストール後に Java システムを再起動する必要があります。

カスタム RFC exit コールでは、次の RFC 宛先タイプのみがサポートされます。

  • ABAP 接続(タイプ「3」宛先)
  • TCP/IP 接続(タイプ「T」宛先)

コードを拡張する前に、使用する宛先がサポートされている宛先タイプであることを確認してください。