SAP資格過去問ならSAPnavi

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

SAP過去問 (SAP Exam)

Generating Static Proxies

プロセス

トランザクションACO_PROXYを使用して、プロキシクラスを生成します。次のように入力します:

  • リモート対応機能の名前
  • メタデータ取得のタイプを選択します:RFCまたはファイルアップロード
  • メタデータルックアップ用のリモートシステムの宛先名(メタデータ取得にRFCが選択されている場合のみ)
  • メタデータストレージのタイプを選択します:プロキシクラスを生成するか、データをファイルに保存します。
  • 新しいプロキシクラスとパッケージの名前(メタデータストレージに[クラス]が選択されている場合のみ)
さらに、次のオプションを選択できます。
  • 使用する必要のある例外のタイプ:クラスベースの例外またはクラシック例外。
  • メタデータの取得にbgRFCを使用する必要があるかどうか。
  • プロキシを同期呼び出し用に生成するか非同期呼び出し用に生成するか。

    非同期呼び出しの場合、結果を取得するかどうか、およびタスクを保持するかどうかを指定できます。詳細については、非同期RFCのオンラインドキュメントを参照してください。

  • 汎用モジュールを変数名を使用して生成する必要があるかどうか。

    この場合、動的に呼び出される前に、転送された汎用モジュール名をチェックするクラスも指定する必要があります。

    このクラスは、インターフェイスIF_ACO_WHITE_LIST_PROVIDERを実装する必要があります。メソッドGET_WHITE_LISTは、宛先、使用される汎用モジュール名、および生成時に指定できる内部情報(文字列形式)を取得し、有効な汎用モジュール名のリストを返す必要があります。

汎用モジュールがこのリストに含まれていない場合、プロキシは例外をスローします。

IF_ACO_PROXY

すべてのプロキシクラスは、パッケージインタフェースSAP_ACOを使用して、インタフェースIF_ACO_PROXYを実装します。クラスをプロキシクラスとして識別するためのマーカーインターフェイスとしてのみ使用されるため、インターフェイスは空です。このインターフェースは、使用先リストを使用して、生成されたすべてのプロキシクラスを検索するために使用できます。

生成されたプロキシには、対応するリモート汎用モジュールと同じ名前のメソッドが含まれます。さらに、必要なすべてのタイプは、生成されたクラスでパブリックタイプとして定義されます。このメソッドには、リモート関数と同じパラメーターが含まれています(非同期モードでは、パラメーターのインポート、変更、およびテーブルのみが含まれ、パラメーターのエクスポートは含まれません)。

  • クラスはテーブルパラメータをサポートしていないため、テーブルパラメータは変更パラメータとして渡されますすべてのパラメーターは、クラスで宣言されたタイプを参照します。クラスは完全に自己完結型です。実行時に使用する宛先を渡すために、追加のパラメーター_DEST_が生成されます。

  • 生成でクラシック例外を指定すると、追加の例外RFC_COMMUNICATION_FAILURE、RFC_SYSTEM_FAILURE、RFC_RESOURCE_FAILURE、および追加のパラメータ_RFC_ERROR_が自動的に作成されます。これらの例外は、リモート関数呼び出しがCOMMUNICATION_FAILURE、SYSTEM_FAILURE、またはRESOURCE_FAILUREを発生させるたびに発生します。文字パラメータ__RFC_ERROR__には、ランタイムからのより詳細な情報が含まれています。

  • 同期呼び出しを指定すると、_TASK_という名前の別のパラメーターが作成されます。プロキシを呼び出すときは、非同期タスクを実行するためのタスク名を指定する必要があります(非同期RFCのドキュメントのタスクを参照してください)。

  • 結果の取得を指定した場合、プロキシクラスには別の追加パラメータ_RESULT_CLASS_と追加のメソッドRECEIVE_RESULTが含まれます。このメソッドは、非同期呼び出しが終了して結果を取得するときに呼び出すことができます。したがって、RECEIVE_RESULTには、リモート関数の変更、エクスポート、およびテーブルタイプが含まれています。

  • パラメータ_RESULT_CLASS_で、抽象クラスCL_ACO_PROXY_RECEIVE_RESULTのサブクラスを渡す必要がありますこのクラスは、属性PROXYとメソッドRECEIVE_RESULTを1つのパラメーターP_TASKだけで定義します。このメソッドは、非同期タスクの最後に呼び出されます。その時点で、属性プロキシはプロキシクラスの実際のインスタンスによって埋められます。

通常、RECEIVE_RESULTの実装は次のように開始されます。

data: myproxy type ref to <generated proxyclass>.myproxy ?= me->proxy.call method myproxy->receive_result  exporting     

次に、取得した結果をアプリケーションに転送できます。たとえば、追加の属性やメソッドを指定したり、他のクラスを呼び出したりできます。

トランザクションACO_PROXYの代わりに、次のコードを使用してプログラムでプロキシを生成することができます。

data: callback    type ref to <callback class>,      destination type ref to if_aco_destination,      repository  type ref to if_aco_repository.      create object callback. "or call factory      try.        destination = cl_aco_destination_manager=>get_destination(           destination_name = <destination> )..        repository = destination->get_repository( ).        repository->create_static_proxy(          function_name      = <function_name>          proxy_name         = <proxy_name>          devclass           = <devclass>          opt_param_callback = <opt_param_callback>          classic_exceptions = <classic_exceptions>          asynchronous_task  = <asynchronous_task>          receive_result    = <receive_result>          keep_task          = <keep_task>         ).        Catch CX_ACO_EXCEPTION.          " error handling      endtry.      

コールバッククラスは、プロキシクラスに含める必要のあるオプションのパラメータを選択するように設計されています。

  • インターフェイスIF_ACO_OPT_PARAM_CALLBACKを実装する任意のクラスを使用します

  • メソッドMODIFY_OPT_PARAMSを実装します。このメソッドには、変更パラメーターOPT_PARAMETERSが1つだけあります。パラメータは、おむつ交換台のすべてのオプションパラメータを受け取ります。

  • プロキシ生成からパラメータを除外する場合は、テーブルパラメータMODIFY_OPT_PARAMSからパラメータを削除するだけです。

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