BAPIインバウンド処理チュートリアル

本チュートリアルでは、SUISUI-ETLのスクリプトからSAPシステムのBAPIを実行します。
本チュートリアルでは、SAPシステムに登録された銀行情報を取得するBAPI(BAPI_BANK_GETLIST)を実行し、取得したデータをCSVファイルに書き出します。

チュートリアルにおける構成

本チュートリアルでは、以下の構成を想定しております。環境に合わせて変更してください。

項目名
R/3サーバ r3server00
システム番号 01
クライアント番号 800

事前準備

  1. RFCユーザの準備
    SUISUI-ETL用のRFCユーザを接続先のクライアントに登録します。すでに登録済みの場合は不要です。一般的に、ユーザタイプが通信、もしくはシステムのユーザを作成します。

    RFCユーザの準備画面

SAPアダプタからの呼び出し

「BAPI_BANK_GETLIST」BAPIをスクリプトから呼び出します。 CSVアダプタからデータを読み込んで、SAPアダプタで「BAPI_BANK_GETLIST」BAPIを呼び出し、SAPシステムから返されたデータをCSVアダプタで書き込みます。
  1. スクリプトの完成イメージ

    スクリプト完成画面

  2. グローバルリソースの作成
    「コントロールパネル」の[グローバルリソースの設定]で、SAPアダプタのグローバルリソースを作成します。
    SAPアダプタのグローバルリソース設定画面で、以下の値を設定します。そのほかのプロパティ項目についてはデフォルト値を使用します。
    各プロパティ項目の詳細については、「グローバルリソースのプロパティ」を参照してください。

    カテゴリ 項目名
    基本設定 接続名 SAP接続設定
    必須設定 サーバ r3server00
      システム番号 01
      クライアント番号 800
      ユーザ名 EICS
      パスワード SAPに接続するユーザのパスワードを入力します。
      言語 日本語(JA)

    SAPグローバルリソース作成画面

  3. 入力データを保存するディレクトリの作成
    入力データを保存するディレクトリを作成します。入力データは「/data/sap/bapi_inbound」に保存します。

    項目名
    パス /data/sap/bapi_inbound

    ディレクトリの作成はエクスプローラで[ファイル]-[新規作成]-[ディレクトリ]を選択、または、右クリックメニューから作成することができます。

    入力データ保存用ディレクトリ画面

  4. 入力データの作成
    入力データとなるCSVファイルを「/data/sap/bapi_inbound/input.csv」に作成します。
    エクスプローラで/data/sap/bapi_inboundディレクトリに移動し、[ファイル]-[新規作成]-[テキストファイル]を選んでCSVファイルを作成します。以下の内容でCSVファイルを作成します。

    項目名
    ファイルパス /data/sap/bapi_inbound/input.csv
    内容
    国コード,検索件数
    JP,10
    

    入力データ画面

    入力データファイルパス画面


  5. スクリプトの作成
    以下の内容でスクリプトを作成します。

    項目名
    プロジェクト名 SAPアダプタチュートリアル
    スクリプト名 BAPIインバウンド

  6. CSVファイル読み取り処理の作成
    CSVアダプタを使用し、作成したCSVファイルをスクリプトから使用できるようにします。
    [ファイル]-[CSV]-[CSVファイル読み取り]をスクリプトキャンバスにドラッグ&ドロップします。 CSVファイル読み取り処理の設定画面で以下の値を入力し[完了]を押下します。

    カテゴリ 項目名
    基本設定 名前 CSVファイルの読み取り
    必須設定 ファイル /data/sap/bapi_inbound/input.csv
      列一覧/列名 国コード
    検索件数
    [ファイル]を指定したあと、[列一覧の更新]プロパティアクションを実行すると[列一覧]に「input.csv」の列情報が自動的に表示されます。
    読み取り設定 最初の行は値として取得しない チェックします
    input.csvの最初の行の「国コード」、「検索件数」をデータとして読み取らないようにします。

    CSV読み取り必須設定画面

    CSV読み取り読み取り設定画面

    CSVファイル読み取り処理完了後スクリプト画面

  7. ビジネスメソッド実行処理の作成
    SAPアダプタを使用し、「BAPI_BANK_GETLIST」BAPIをスクリプトから使用できるようにします。
    [アプリケーション]-[SAP]-[ビジネスメソッド実行]をスクリプトキャンバスにドラッグ&ドロップします。ビジネスメソッド実行処理の設定画面で以下の値を入力し[スキーマの取得]を押下します。
    スキーマの取得に成功したことを確認し[完了]を押下します。

    カテゴリ 項目名
    基本設定 名前 BAPI_BANK_GETLISTの実行
      入力データ CSVファイルの読み取り
    必須設定 接続先 SAP接続設定
      インターフェース RFC(BAPIを含む)
      ビジネスメソッド BAPI_BANK_GETLIST
    実行設定 空のテーブルパラメータを削除する チェックします

    ビジネスメソッド実行処理必須設定画面

    ビジネスメソッド実行処理実行設定画面

  8. CSVファイル読み取り処理からビジネスメソッド実行処理へのマッピングの作成
    ビジネスメソッド実行処理の[完了]を押下すると、[マッピングの追加]ダイアログが表示されます。

    マッピングの追加画面

    CSVアダプタはテーブルモデル型、SAPアダプタはXML型のため、Mapperを使用しデータをマッピングする必要があります。Mapperを使用しデータのマッピングを行うため[はい]を押下します。

    CSVファイル読み取り処理「CSVファイル読み取り」とビジネスメソッド実行処理「BAPI_BANK_GETLISTの実行」の間に「mapping」が追加されます。

    ビジネスメソッド実行処理完了画面

    追加したマッピングの名前を「mapping」から「CSV→SAP」に変更します。マッピングアイコンを選択し、プロパティインスペクタから以下のように変更します。

    カテゴリ 項目名 変更前の値 変更後の値
    基本設定 名前 mapping CSV→SAP

    「CSV→SAP」を開き、以下のようにマッピングします。

    入力元項目名 出力先項目名
    国コード BANK_CTRY
    検索件数 MAX_ROWS

    CSVからSAPへのマッピング

  9. CSVファイル書き込み処理の作成
    CSVアダプタを使用し、「BAPI_BANK_GETLIST」BAPIから返されるデータをCSVファイルに書き込みます。
    [ファイル]-[CSV]-[CSVファイル書き込み]をスクリプトキャンバスにドラッグ&ドロップします。 CSVファイル書き込み処理の設定画面で以下の値を入力し[完了]を押下します。

    カテゴリ 項目名
    基本設定 名前 CSVファイルの書き込み
      入力データ BAPI_BANK_GETLISTの実行
    必須設定 ファイル /data/sap/bapi_inbound/result.csv
      列一覧/列名 国コード
    銀行コード
    銀行名
    所在地
    [列一覧][追加]を押下し[列名]を追加します。
    書き込み設定 1行目に列名を挿入 チェックします
    書き込んだCSVファイルの1行目に[列一覧][列名]が出力されます。

    CSV書き込み必須設定画面

    CSV書き込み書き込み設定画面

  10. ビジネスメソッド実行処理かCSVファイル書き込み処理へのマッピングの作成
    CSVファイル書き込み処理の[完了]を押下すると、[マッピングの追加]ダイアログが表示されます。

    Mapperを使用しデータのマッピングを行うため[はい]を押下します。

    ビジネスメソッド実行処理「BAPI_BANK_GETLISTの実行」とCSVファイル書き込み処理「CSVファイルの書き込み」との間に「mapping」が追加されます。
    追加したマッピングの名前を「mapping」から「SAP→CSV」に変更します。マッピングアイコンを選択し、プロパティインスペクタから以下のように変更します。

    カテゴリ 項目名 変更前の値 変更後の値
    基本設定 名前 mapping SAP→CSV

    CSVファイル書き込み処理完了画面

    「SAP→CSV」を開き、以下のようにマッピングします。
    「BAPI_BANK_GETLIST」BAPIは「item」要素に複数のBANK情報が格納されるため、「item」単位でCSVの1行のデータを出力するようにマッピングしています。

    入力元項目名 ロジックアイコン名 出力先項目名
    item [繰り返し]-[基本]-[単純な繰り返し] row
    BANK_CTRY   国コード
    BANK_KEY   銀行コード
    BANK_NAME   銀行名
    CITY   所在地

    SAPからCSVへのマッピング

  11. スクリプトの完成
    作成した各アダプタをプロセスフローで結び、スクリプトが完成します。
    以下の順にプロセスフローを結びます。

    順序 名前
    1 CSVファイルの読み取り
    2 CSV→SAP
    3 BAPI_BANK_GETLISTの実行
    4 SAP→CSV
    5 CSVファイルの書き込み

    スクリプト完成画面

  12. スクリプト実行と結果確認
    デザイナのツールバーにある[スクリプト実行]を押下し、スクリプトを実行します。

    スクリプト実行ツールバー画面

    スクリプトの実行に成功すると下図のメッセージが表示されます。

    スクリプト実行成功ダイアログ

    /data/sap/bapi_inbound/result.csvファイルに「BAPI_BANK_GETLIST」BAPIを実行した結果が出力されています。
    下図のような結果が出力されます。

    項目名
    ファイルパス /data/sap/bapi_inbound/result.csv
    内容
    国コード,銀行コード,銀行名,所在地
    JP,5000001,Test Bank 1,Tokyo
    JP,5000002,Test Bank 2,Tokyo
    JP,5000003,Test Bank 3,Tokyo
    JP,5000004,Test Bank 4,Tokyo
    JP,5000005,Test Bank 5,Tokyo
    JP,5000006,Test Bank 6,Tokyo
    JP,5000007,Test Bank 7,Tokyo
    JP,5000008,Test Bank 8,Tokyo
    JP,5000009,Test Bank 9,Tokyo
    JP,5000010,Test Bank 10,Tokyo
    

    実行結果画面