BAPI/RFCマップレット
データ統合ではSAP BAPI/RFCマップレットを生成できます。
BAPI/RFCマップレットには、BAPI/RFCトランスフォーメーションが含まれます。BAPI/RFCトランスフォーメーションは、SAPでBAPI/RFCの呼び出しを行います。BAPI/RFCの呼び出しには、SAPアプリケーションでのデータの作成、変更、または削除といったSAPシステムへの要求が含まれます。これらのタスクを実行するには、BAPI/RFC関数で関数パラメータ値を使用します。
ビジネスサービスとしてのSAP BAPIコネクタの設定
SAP BAPIコネクタは、マッピング内のビジネスサービスとして、またはSAP BAPIデータ統合用のマッピングタスクとして設定できます。
BAPI/RFCマップレットのパラメータ
BAPI/RFC関数は関数パラメータ値を使用してタスクを実行します。BAPI/RFCマップレットには、BAPI/RFCトランスフォーメーションに基づく入力グループと出力グループが含まれます。
関数パラメータ
BAPI/RFC関数は次のパラメータを持つことができます。
関数パラメータ | 説明 |
---|
スカラ入力パラメータ。 | スカラ入力値。一部のBAPI関数では、データの変更などのタスクの実行にスカラ入力値が必要です。 |
スカラ出力パラメータ。 | BAPI関数がタスクを実行後に返すスカラ出力値。 |
テーブルパラメータ。 | 複数の行を持つSAP構造体。テーブルパラメータは入力、出力、またはその両方である場合があります。テーブル入力パラメータはテーブル入力値をBAPI/RFC関数に渡します。例えば、一部のBAPI/RFC関数はデータを変更するのにテーブル入力が必要です。 |
入力グループと出力グループ
BAPI/RFCトランスフォーメーションには、以下のグループを含めることができます。
グループ名 | 説明 |
---|
スカラ入力 | スカラパラメータのための入力グループ。各スカラ入力パラメータのフィールドが含まれます。グループ名はSCALAR_INPUTで、フィールド名はSI_<FieldName>です。 |
テーブル入力 | テーブルパラメータごとに1グループ。フィールドはインポート構造を表します。グループ名はTABLE_INPUT_<structure name>で、フィールド名はTI_<StructureName>_<FieldName>です。 |
スカラ出力 | スカラパラメータの出力グループ。各スカラ出力パラメータのフィールドが含まれます。グループ名はSCALAR_OUTPUTで、フィールド名はSO_<FieldName>です。 |
テーブル出力 | テーブルパラメータごとに1グループ。フィールドは出力構造を表します。グループ名はTABLE_OUTPUT_<structure name>で、フィールド名はTO_<StructureName>_<FieldName>です。 |
エラー出力 | データ変換エラー、およびBAPI/RFC呼び出しが無効のときに、データを渡します。出力フィールドをターゲットにマッピングし、データ変換とBAPI/RFC呼び出しに関するエラーメッセージを表示します。 |
BAPI/RFCパラメータのプロパティ
BAPI/RFCマップレットを生成する場合、パラメータプロパティおよびリターン構造体を表示できます。
BAPI/RFCテーブルパラメータの方向を変更することもできます。テーブルパラメータの方向によって、トランスフォーメーションに含まれるグループが、入力グループなのか出力グループなのかを判断します。
BAPIリターン構造体がカスタムの場合は、再利用可能なBAPI/RFCトランスフォーメーションのインポート中に選択したリターン構造体のプロパティを編集できます。それ以外の場合、BAPI/RFCリターン構造体パラメータを表示できます。
次の表に、BAPI/RFC関数パラメータのプロパティを示します。
パラメータ | 説明 |
---|
名前 | エクスポート、インポート、およびテーブルパラメータおよびカラムの名前。 |
関連したタイプ | SAPでのパラメータの定義。 |
簡単な説明 | エクスポート、インポート、テーブルパラメータおよびテーブルカラムの簡単な説明。 |
オプション | BAPIの呼び出し時にSecure Agentがパラメータに値を渡す必要があるかどうかを示します。 |
方向 | パラメータに入力が必要なのか、パラメータが出力を提供するのかを示します。値には、[入力]、[出力]、[両方]、あるいは[なし]があります。 |
データ型 | オブジェクトデータ型。 |
精度 | オブジェクトの精度。 |
スケール | オブジェクトの位取り。 |
デフォルト | SAPのパラメータのデフォルト値(ある場合)SAPでは、Secure Agentが値をSAPに渡さないときに、デフォルト値を使用します。 |
次の表に、[リターン構造体]タブのパラメータのプロパティを示します。
リターン構造体パラメータ | 説明 |
---|
リターン構造体 | パラメータ名を戻して、関数呼び出しの状況を決定します。BAPIがデフォルトのリターン構造体を持つ場合、値はRETURNです。BAPIにデフォルトのReturn構造体がない場合、タイプがSTRUCTUREであるテーブル出力パラメータまたはスカラ出力パラメータを選択します。デフォルトは[なし]です。 |
ステータスフィールド | リターン構造体に値を選択する場合、必須です。構造体から状態のフィールドを選択します。リターン構造体に[なし]を選択している場合、このパラメータは空白です。 |
テキストフィールド | リターン構造体に値を選択する場合、必須です。構造体からステータスメッセージのフィールドを選択します。リターン構造体に[なし]を選択している場合、このパラメータは空白です。 |
警告のステータスインジケータ | 警告のインジケータメッセージを入力します。リターン構造体に[なし]を選択している場合、値は[W]です。[W]はデフォルトです。 |
エラーのステータスインジケータ | エラーのインジケータメッセージを入力します。リターン構造体に[なし]を選択している場合、この値は[E]です。Eはデフォルトです。 |
アボートのステータスインジケータ | 強制終了のインジケータメッセージを入力します。リターン構造体に[なし]を選択している場合、値は[A]です。Aはデフォルトです。 |
ネスト構造のBAPI/RFC関数
ネスト構造のBAPI/RFC関数のメタデータをインポートできます。
BAPI/RFCトランスフォーメーションには、複数のグループが含まれます。ネスト構造のBAPI関数の場合、BAPI/RFCトランスフォーメーションの入力グループと出力グループのポートには次の命名規則が使用されます。
<group_name>_<parameter_name>_<field name>
例:
SCALAR_INPUT_PARAM1_FIELD1
入力構造または出力構造が複数ある場合、BAPI/RFCトランスフォーメーションのポート名には、それぞれの構造のパラメータ名が含まれます。例えば、BAPI Z_TST2にタイプがZTYPE1のINPUT1というパラメータがあるとします。ZTYPE1には、FIELD1、FIELD2のように、複数の構成要素が含まれています。FIELD2は構造体タイプの構成コンポーネントです。フィールドF1を含んでいます。FIELD1のBAPI/RFCトランスフォーメーションの命名規則は次のようになります。
SCALAR_INPUT_INPUT1_FIELD1
F1のBAPI/RFCトランスフォーメーションの命名規則は次のようになります。
SCALAR_INPUT_INPUT1_FIELD2_F1
システム変数
SAPはシステム変数を使用して、一部のBAPIインポートパラメータのデフォルト値を設定します。変数では、SAPが稼動するオペレーティングシステムの現在の日付および時刻などの情報を提供します。「SY-」で始まるシステム変数。たとえば、SY-DATLOはSAPシステムのローカルの日付を表します。
Secure Agentは、BAPI/RFCパラメータのデフォルトの入力値を定義するために、一部のシステム変数の値を提供します。Secure Agentは、その値を、BAPI/RFCトランスフォーメーションの一部のポートにデフォルトの入力値として使用します。Secure Agentは、ポートに対する入力がないときや、ポートが先行するトランスフォーメーションまたはソースに接続されていないときに、これらのデフォルト値を使用します。
次のシステム変数を使用できます。
システム変数名 | 説明 |
---|
SY-LANGU | SAPアプリケーション接続プロパティからのログイン言語。 |
SY-MODNO | RFCハンドルの値。 |
SY-MANDT | SAPアプリケーション接続プロパティから取得した値。 |
SY-DATUM | Security Agentマシンがデータを処理したときのローカルな日付。 |
SY-UZEIT | Security Agentマシンがデータを処理したときのローカルな時刻。 |
SY-UNAME | SAPアプリケーション接続プロパティのログオンユーザーID。 |
SY-HOST | SAPアプリケーション接続プロパティのSAPホスト名。 |
BAPI/RFCマップレットのIntegration ID
Integration IDフィールドは、BAPIマップレットのキーフィールドです。各BAPI/RFCマップレットには、Integration ID入力フィールドおよび出力フィールドが含まれます。
BAPI/RFCマップレットでマッピングを実行すると、Secure AgentはSAPに対してBAPI/RFC呼び出しを行い、データを処理します。デフォルトでは、マッピングを実行すると、BAPI/RFCマップレットは1000行ごとにコミットします。
BAPI/RFC呼び出しは、Integration IDポートの入力データに基づいて行われます。Secure Agentは、SAPへの呼び出しをIntegration IDごとに1回行います。BAPI/RFCマップレットのスカラ入力グループおよびすべての必須テーブルの入力グループにあるIntegration IDポートに値を渡します。
注: BAPIまたはRFCで他の入力フィールドが不要な場合でも、Integration ID入力フィールドをマッピングする必要があります。
BAPI/RFC呼び出しが失敗するか、または、データ変換エラーが発生した場合、SAPはIntegration IDのデータをカンマ区切りの形式でエラー出力グループに渡します。エラー出力グループに接続されているターゲットインスタンスがマッピングに含まれる場合、Secure Agentはデータをターゲットに書き込みます。
BAPI/RFCエラー出力用のターゲットオブジェクト
BAPI/RFC関数呼び出しから入力データを受信する場合や、SAPからデータ変換エラーを受信する場合は、ターゲットトランスフォーメーションをBAPI/RFCマップレットにマッピングすることができます。
ターゲットトランスフォーメーションは、文字列データ型のカラムを選択して、精度は65535文字の範囲内で作成します。ターゲットオブジェクトのカラムをBAPI/RFCマップレットのエラー出力グループに接続します。Secure Agentはエラー出力データを最大65,535文字の範囲で、コンマ区切り形式でターゲットに書き込みます。エラー出力データが65,535文字よりも長い場合、Secure Agentがデータを切り詰めます。
マッピングでのBAPI/RFCマップレットのルールおよびガイドライン
BAPI/RFCマップレットを使用してマッピングを設定するには、次の規則やガイドラインを使用します。
- •BAPI/RFCトランスフォーメーションのスカラ入力グループおよびすべての必須テーブルの入力グループにあるIntegration IDポートに値を渡します。
- •BAPIエラーグループからBAPI/RFC関数呼び出しエラーを受け取る場合、ターゲットオブジェクトを追加します。
BAPI/RFC関数入力パラメータにデータを渡すときは、以下のガイドラインを使用します。