BAPI/RFC関数を使用したマッピングとマッピングタスク
データ統合ではBAPI/RFCマップレットを生成できます。その後、マップレットを使用してSAPシステムのデータを管理するようにマッピングを設定できます。
例えば、SAPの受注データを更新するには、BAPI_SALESORDER_CHANGE関数からBAPI/RFCマップレットを生成し、そのマップレットを使用してマッピングを設定します。
BAPI/RFCマップレットを使用して、入力データをBAPI/RFC関数の入力パラメータに渡すようにマッピングを設定できます。
詳細モードのMapping Designerは、高度な機能を実現するトランスフォーメーションや関数を含むようにマッピングキャンバスを更新します。
データ統合からBAPI/RFC機能にアクセスするには、次のタスクを実行します。
- 1データ統合にBAPI/RFCマップレットを生成します。
- 2生成されたBAPI/RFCマップレットを使用してマッピングを設定します。Integration IDフィールドおよびその他の入力と出力をマッピングします。マッピングを保存して実行するか、このマッピングを使用してマッピングタスクを作成します。
ビジネスサービスとしてのSAP BAPIコネクタの設定
SAP BAPIコネクタは、マッピング内のビジネスサービスとして、またはSAP BAPIデータ統合用のマッピングタスクとして設定できます。
マッピング内のビジネスサービスまたはマッピングタスクとしてSAP BAPIコネクタを設定する方法の詳細については、How-Toライブラリの記事「
How to Configure SAP BAPI Connector as a Business Service in Cloud Data Integration」を参照してください。
BAPI/RFCマップレットの生成
データ統合でBAPI/RFCマップレットを生成し、マッピングでそのマップレットを使用できます。
次の手順を実行してBAPI/RFCマップレットを生成します。
1マップレットを作成するには、[データ統合] > [新規] > [マップレット] > [マップレット - SAP BAPI]をクリックし、[作成]をクリックします。
マップレットを編集するには、[エクスプローラ]ページでマップレットに移動します。マップレットが含まれている行で、[アクション]をクリックし、[編集]を選択します。
2BAPI/RFCマップレットの一意の名前を入力します。
3必要に応じて、生成するBAPI/RFCマップレットの説明を入力します。
4トランスフォーメーションタイプとして[BAPI]を選択します。
5 使用するBAPI/RFC接続を選択します。
6トランスフォーメーションの範囲を選択します。
リアルタイム処理には、トランスフォーメーション範囲に[トランザクション]を選択します。非本番環境でのバッチ処理および検証には、トランスフォーメーション範囲に[すべての入力]を選択します。
7 BAPI/RFC関数の名前を入力します。
BAPI/RFC関数は、「%」をワイルドカードとして検索文字列と共に入力することにより検索することもできます。例えば、「Customer」という語で始まる名前のBAPI/RFC関数をすべて検索するには、検索文字列を「Customer%」と入力します。「Customer」という語で終わる名前のBAPI/RFC関数をすべて検索するには、検索文字列を「%Customer」と入力します。
8[オブジェクトの取得]をクリックします。
[ソースオブジェクトの選択]ダイアログボックスが表示され、検索結果を表示します。[ソースオブジェクトの選択]ダイアログボックスに検索文字列を入力すると、検索結果をさらにドリルダウンできます。
9必要なBAPI/RFC関数名をクリックし、[選択]をクリックします。
BAPI/RFC関数のインポート、エクスポート、テーブルパラメータの詳細が表示されます。
10BAPIのテーブルパラメータが入力、出力、両方のいずれであるかを示す、テーブルの方向を指定します。
11[保存]をクリックします。
指定したBAPI/RFC関数用のマップレットが作成されます。生成したマップレット用のマッピングを作成できます。
BAPI/RFCマップレットを使用したマッピングの設定
1マッピングを作成するには、[Data Integration] > [新規] > [マッピング]をクリックします。[マッピング]を選択して、[作成]をクリックします。
2マッピングの名前と説明を入力し、[OK]をクリックします。
マッピング名には、英数字とアンダースコア(_)を使用できます。
3ソースを設定するには、[トランスフォーメーション]パレットで[ソース]をクリックします。
4[プロパティ]パネルの[全般]タブで、名前と説明を入力できます。
5[ソース]タブをクリックして、ソースの詳細を設定します。
接続タイプに基づいて、ソースの詳細と詳細ソースプロパティが表示されます。
6BAPI/RFCマップレットトランスフォーメーションを追加するには、[トランスフォーメーションパレット]で[マップレット]をクリックします。
- a[全般]タブで、マップレットの名前と説明を入力します。
- b以前のトランスフォーメーションをマップレットトランスフォーメーションに接続するリンクを設定します。
- c[マップレット]タブで、[選択]をクリックします。
[マップレットの選択]ダイアログボックスが表示されます。
- dデータ統合で生成したBAPI/RFCマップレットを指定し、[OK]をクリックします。
- e[接続]をクリックし、SAP RFC/BAPIインタフェース接続を指定します。接続の作成、接続の選択、または接続のパラメータ名の指定を行うことができます。
- fフィールドのプレビュー、フィールドルールの設定、またはフィールド名の変更を行うには、[追加フィールド]をクリックします。
- g[フィールドマッピング]をクリックし、受信ソースフィールドとBAPI/RFCマップレットのIntegration IDをマッピングします。
7他のトランスフォーメーションを追加するには、[トランスフォーメーションパレット]でトランスフォーメーション名をクリックします。または、トランスフォーメーションをマッピングキャンバスにドラッグします。
- a[全般]タブで、トランスフォーメーションの名前と説明を入力します。
- b以前のトランスフォーメーションをトランスフォーメーションに接続するリンクを設定します。
トランスフォーメーションをリンクすると、ダウンストリームトランスフォーメーションは以前のトランスフォーメーションから追加フィールドを継承します。
ジョイナトランスフォーメーションの場合は、マスタリンクと詳細リンクを設定します。
- cフィールドのプレビュー、フィールドルールの設定、またはフィールド名の変更を行うには、[追加フィールド]をクリックします。
- d必要に応じて、トランスフォーメーションの追加プロパティを設定します。
設定するプロパティは、作成するトランスフォーメーションのタイプによって変わります。
- e別のトランスフォーメーションを追加するには、これらの手順を繰り返します。
8ターゲットトランスフォーメーションを追加するには、[トランスフォーメーションパレット]で[ターゲット]をクリックします。
- a[全般]タブで、名前と説明を入力できます。
- b以前のトランスフォーメーションをターゲットトランスフォーメーションに接続するリンクを設定します。
- c[ターゲット]タブをクリックして、ターゲットの詳細を設定します。必要に応じて、詳細なターゲットプロパティを設定します。
接続タイプに基づいて、ターゲットの詳細と詳細ターゲットプロパティが表示されます。
- dフィールドのプレビュー、フィールドルールの設定、またはフィールド名の変更を行うには、[追加フィールド]をクリックします。
- e[フィールドマッピング]をクリックして、書き込むフィールドをターゲットにマップします。
- f別のターゲットトランスフォーメーションを追加するには、これらの手順を繰り返します。
9マッピングを保存して実行するか、マッピングタスクを保存および作成します。
トランスフォーメーションの詳細については、トランスフォーメーションに関するセクションを参照してください。
BAPI/RFC関数を使用したマッピングの例
bapi_salesorder_createfromdat1 BAPI関数を使用して、組織の顧客の受注詳細を作成できます。
この例では受注を作成します。次のタスクを実行します。
- 手順1: データ統合でbapi_salesorder_createfromdat1 BAPI関数用のBAPI/RFCマップレットを生成します。
- データ統合にログインして、bapi_salesorder_createfromdat1 BAPI関数のメタデータが含まれるBAPI/RFCマップレットを生成します。
- 手順2: 生成されたマップレットを使用してマッピングを設定します。
- マッピングを設定するには、次の手順を実行します。
- 1ソースオブジェクトを指定して、ORDER_HEADER_IN構造体から注文ヘッダデータを、ORDER_PARTNERSテーブルを使用してパートナデータを、ORDER_ITEMS_INテーブルを使用して項目データを、それぞれ入力パラメータとして入力します。
- 2マップレットトランスフォーメーションを追加します。フラットファイルソーストランスフォーメーションをマップレットトランスフォーメーションに接続するリンクを設定します。次のリンクを設定します。
- ▪ BAPIマップレットのScalar_Input入力ポートに対するORDER_HEADER_INソースオブジェクト。
- ▪ BAPIマップレットのTable_Input_Order_Items_IN入力ポートに対するORDER_ITEMS_INソースオブジェクト。
- ▪ BAPIマップレットのTable_Input_Order_partners入力ポートに対するORDER_PARTNERSソースオブジェクト。
- 3マップレットトランスフォーメーションを設定します。
- a生成されたマップレットを選択します。マップレットのSAP RFC/BAPIインタフェース接続を指定していることを確認します。
- bBAPIパラメータプロパティを使用して入力ソースフィールドをマッピングします。
- 4受注詳細を書き込むことができるフラットファイルオブジェクトを設定します。マップレットトランスフォーメーションのテーブル出力をフラットファイルターゲットトランスフォーメーションに接続するリンクを設定します。受注を書き込む複数のフラットファイルターゲットオブジェクトを作成します。次のターゲットオブジェクトを作成し、BAPIマップレットの関連付けられた出力ポートにマッピングします。
- ▪ 項目設定データを書き込むORDER_CFGS_BLOB、ORDER_CFGS_INST、ORDER_CFGS_PART_OF、ORDER_CFGS_REF、ORDER_CFGS_VALUE。
- ▪ 詳細項目データを書き込むORDER_ITEMS_OUT。
- ▪ クレジットカードの詳細を書き込むORDER_CCARD。
- ▪ 英語のフィールド名を使用してVBEPの構造を書き込むORDER_SCHEDULE_EX。
- ▪ マップレットからScalar_Outputを書き込むScalar_Output。
- ▪ マップレットからError_Outputを書き込むError_Output。
手順1: データ統合でのBAPI_SALESORDER_CREATEFROMDAT1 BAPI関数用のBAPI/RFCマップレットの生成
次の手順を実行してBAPI/RFCマップレットを生成します。
1マップレットを作成するには、[データ統合] > [新規] > [マップレット] > [マップレット - SAP]をクリックし、[作成]をクリックします。
マップレットを編集するには、[エクスプローラ]ページでマップレットに移動します。マップレットが含まれている行で、[アクション]をクリックし、[編集]を選択します。
[新規SAPマップレット]ページが表示されます。次の図に、[新規SAPマップレット]ページを示します。
2BAPI/RFCマップレットの一意の名前を入力します。
3必要に応じて、生成するBAPI/RFCマップレットの説明を入力します。
4トランスフォーメーションタイプとして[BAPI]を選択します。
5 使用するBAPI/RFC接続を選択します。
6トランスフォーメーションの範囲を選択します。
リアルタイムで、トランスフォーメーションオプションとして[トランザクション]を選択します。非プロダクション環境でのバッチ処理と検証の場合、トランスフォーメーション範囲として[すべての入力]を選択します。
7BAPI/RFC関数の名前を入力します。
注: 取得するBAPI/RFC関数の正確な名前を入力していることを確認します。
8[オブジェクトの取得]をクリックします。
BAPI/RFC関数のインポート、エクスポート、およびテーブルパラメータの詳細を確認できます。
9BAPIのテーブルパラメータが入力、出力、両方のいずれであるかを示す、テーブルの方向を指定します。
10[OK]をクリックします。
指定したBAPI/RFC関数用のマップレットが作成されます。生成したマップレット用のマッピングを作成できます。
手順2: bapi_salesorder_createfromdat1マップレットでのマッピングの設定
1マッピングを作成するには、[Data Integration] > [新規] > [マッピング]をクリックします。[マッピング]を選択して、[作成]をクリックします。
2マッピングの名前と説明を入力し、[OK]をクリックします。
3フラットファイルソースを設定するには、[トランスフォーメーション]パレットで[ソース]をクリックします。
4[プロパティ]パネルの[全般]タブで、名前と説明を入力します。
5[ソース]タブをクリックして、ソースの詳細を設定します。
- aフラットファイル接続を選択します。
- b[ソースタイプ]として[単一オブジェクト]を選択します。
- c[選択]をクリックして、ソースフィールドが含まれるフラットファイルを指定します。
次の図に、フラットファイルソースの詳細を示します。
6マッピングのフラットファイルソースオブジェクトとして、注文ヘッダ、注文項目、および注文パートナを追加します。
7BAPI/RFCマップレットトランスフォーメーションを追加するには、[トランスフォーメーションパレット]で[マップレット]をクリックします。
- a[全般]タブで、マップレットの名前と説明を入力します。
- bフラットファイルソーストランスフォーメーションをマップレットトランスフォーメーションに接続するリンクを設定します。
- c[マップレット]タブで、[選択]をクリックします。
[マップレットの選択]ダイアログボックスが表示されます。
- dbapi_salesorder_createfromdat1マップレットを選択して、[OK]をクリックします。
- e[接続]をクリックし、SAP RFC/BAPIインタフェース接続を指定します。
次の図に、bapi_salesorder_createfromdat1マップレットの詳細を示します。
- fフィールドのプレビュー、フィールドルールの設定、またはフィールド名の変更を行うには、[追加フィールド]をクリックします。
- g[フィールドマッピング]をクリックして、受信ソースフィールドを適切なマップレット入力フィールドにマッピングします。
次の図に、受信ソースフィールドとマップレット入力フィールドのフィールドマッピングを示します。
8フラットファイルターゲットを追加するには、[トランスフォーメーション]パレットで[ターゲット]をクリックします。
9[全般]タブで、マップレットの名前と説明を入力します。
10[ターゲット]タブをクリックして、ターゲットの詳細を設定します。
- aターゲットのフラットファイル接続を選択します。
- b[ソースタイプ]として[単一オブジェクト]を選択します。
- c[選択]をクリックして、ターゲットオブジェクトを指定します。
[ターゲットオブジェクト]ダイアログボックスが表示されます。
- dフラットファイルオブジェクトを選択して、[OK]をクリックします。
- e必要に応じて、[詳細ターゲット]オプションで、拒否された行の転送を選択できます。
- f上記の手順を繰り返して、すべてのフラットファイルターゲットオブジェクトを追加します。
次の図に、ターゲットトランスフォーメーションの詳細を示します。
11マップレットトランスフォーメーションの出力ポートをフラットファイルターゲットトランスフォーメーションに接続するリンクを設定します。
次の図に、bapi_salesorder_createfromdat1マップレットに設定されたマッピングを示します。
12マッピングを保存して実行します。
SAPマップレットプロパティ
SAP BAPI/RFCマッピングタスクでは、ターゲットのデータのコミット、データのキャッシュ、およびエラー処理を行うことができます。
ターゲットのSAPマップレットプロパティを設定するには、SAP BAPI/RFCマッピングタスクの[ランタイムオプション]タブをクリックします。[SAPマップレットプロパティ]セクションを展開し、マップレットのプロパティを設定します。
次の表に、SAP BAPI/RFCマッピングタスクで設定できるコミットプロパティとその説明を示します。
プロパティ | 説明 |
---|
Perform Commit | BAPIコミット関数を使用してコミットを発行します。 このオプションが選択されていない場合、データ統合はコミット関数を呼び出しません。また、コミット間隔を無視し、コミットを待たずにマッピングタスクの実行を続行します。 デフォルトでは有効になっています。 |
Perform Commit Wait | コミットが完了するまで待機してから、マッピングタスクの実行を続行します。コミットが完了すると、SAPはデータ統合にリターン呼び出しを送信します。 このオプションが選択されていない場合、データ統合はコミット中にデータ処理を続行します。 デフォルトでは有効になっています。 |
コミット間隔 | データ統合がコミットを発行した後のBAPI/RFC呼び出しの回数。コミットを発行するために、データ統合はBAPI/RFCコミット呼び出しを実行します。 [コミットの実行]オプションを無効にすると、データ統合ではこの値が無視されます。 デフォルトは 1000 です。 |
Commit Function | データ統合がコミットを発行するときにBAPI/RFC呼び出しを行う方法を指定します。 データ統合では、選択した次のオプションに基づいて、SAPの外部またはBAPI内から呼び出しが行われます。 - - ABAP4_COMMIT_WORK。ABAPからBAPI/RFC呼び出しを行い、コミットを発行します。
- - BAPI_TRANSACTION_COMMIT。SAPの外部から呼び出しを行い、コミットを発行します。
[コミットの実行]オプションを無効にすると、データ統合ではこの値が無視されます。 デフォルトはBAPI_TRANSACTION_COMMITです。 |
次の表に、SAP BAPI/RFCマッピングタスクで設定できるデータキャッシュプロパティとその説明を示します。
プロパティ | 説明 |
---|
キャッシュディレクトリ | BAPIデータのキャッシュに使用するデフォルトディレクトリ。デフォルトでは、キャッシュファイルは変数「$PMCacheDir」で指定されたディレクトリに作成されます。 ディレクトリをオーバーライドする場合は、指定するディレクトリが存在し、キャッシュファイルのための十分なディスクスペースがあることを確認してください。 |
キャッシュサイズ | BAPI/RFCマップレット用に準備されたデータをキャッシュするために、データ統合に割り当てられている総メモリ量(バイト単位)。 デフォルトは10MBです。 |
次の表に、SAP BAPI/RFCマッピングタスクで設定できるエラー処理プロパティとその説明を示します。
プロパティ | 説明 |
---|
重複親行の処理 | データ統合がマッピングタスクの重複する親行を処理する方法を指定します。 次のいずれかのオプションを選択します。 - - 最初の行。最初の重複行をターゲットに渡します。データ統合では、この行の後に処理された同じプライマリキーを持つ行は却下されます。
- - 最後の行。最後の重複行をターゲットに渡します。
- - エラー。データ統合は、最初の行をターゲットに渡します。以降に重複するプライマリキーを持つ行が見つかると、エラーカウントが1つ増やされます。エラーカウントがエラーしきい値を超えると、マッピングタスクが失敗します。
デフォルトは最初の行です。 |
孤立行の処理 | データ統合がマッピングタスクの孤立行を処理する方法を指定します。 次のいずれかのオプションを選択します。 - - 無視。孤立行を無視します。
- - エラー。エラーカウントがエラーしきい値を超えると、マッピングタスクが失敗します。
デフォルトは[無視]です。 |
Continue on Error | BAPI/RFCエラーの発生時にマッピングタスクの実行を続行するかどうかを指定します。 デフォルトでは有効になっています。 |