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

本チュートリアルでは、DataSpiderからSAPシステムのIDocを実行します。
本チュートリアルでは、CSVファイルに記述された内容をもとに、銀行マスタ登録のIDocデータを送信し、SAPシステムにマスタの登録を行います。

銀行マスタ登録のIDocとして「BANK_CREATE01」を使用します。

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

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

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

事前準備

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

    RFCユーザの準備画面

SAPシステムでのIDocに関連する設定

ここでは、「BANK_CREATE01」IDocを実行するために、論理システム、パートナプロファイルの登録を行います。
  1. 論理システム登録
    対象システムもしくは、DataSpiderに該当する論理システムの登録を行います。すでに登録済みの場合は、実施の必要はありません。

    SAP GUIにて、トランザクションコード「BD54」を実行します。以下のような警告が表示されますが、続行してください。
    論理システムは、クライアント非依存情報です。クライアント非依存カスタマイジングが可能なクライアントで実施してください。

    クライアント非依存警告ダイアログ

    [新規エントリ]を押下します。

    ロジカルシステムビュー画面

    新規エントリ追加画面で、以下の値を入力します。

    項目名
    論理 Sys. EICS
    名称 EICS

    新規論理システム作成画面

  2. 自クライアント論理システム確認
    自クライアントに割り当てられている論理システムを確認します。ここで確認した論理システム名は、のちほどの設定で使用します。SAP GUIにて、トランザクションコード「SCC4」を実行します。一覧より、自クライアントのエントリをダブルクリックします。

    クライアント照会概要画面

    項目[論理システム]に定義されている値が、そのクライアントに割り当てられている論理システム名です。通常、<システムID>CLNT<クライアント番号>が論理システムとして割り当てられます。IDocインターフェースを使用する場合、論理システムの割り当ては必須です。論理システムが割り当てられていない場合は、論理システムを新たに作成し、割り当てを行ってください。論理システムの作成および割り当ては、システム管理者のもとで実施してください。

    クライアント照会詳細画面


  3. パートナプロファイル登録
    パートナプロファイルではパートナに対して、メッセージの割り当て、設定を行います。ここでは、パートナである論理システム「EICS」に銀行登録用のメッセージ「BANK_CREATE」の割り当て、設定を行います。SAP GUIにて、トランザクションコード「WE20」を実行します。

    パートナプロファイル表示画面

    [登録]を押下します。

    パートナプロファイル登録ボタン画面

    以下のように入力し、保存します。

    項目名
    パートナ番号 EICS
    Partn. Type LS

    パートナプロファイル登録画面

    受信パラメータの[受信パラメータ登録]を押下します。

    受信パラメータ画面

    受信パラメータ設定画面で、以下の値を入力します。

    項目名
    Message Type BANK_CREATE
    Process Code BAPI
    汎用モジュールによる処理 即時開始

    受信パラメータ設定画面

    設定を保存し、メッセージの割り当てを完了します。

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

「BANK_CREATE01」IDocをスクリプトから呼び出します。CSVアダプタからデータを読み込んで、SAPアダプタで「BANK_CREATE01」IDocを呼び出し、SAPシステムに銀行情報を登録します。

  1. スクリプトの完成イメージ

    スクリプト完成画面

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

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

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

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

    項目名
    パス /data/sap/idoc_inbound

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

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

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

    項目名
    ファイルパス /data/sap/idoc_inbound/input.csv
    内容
    国コード,銀行ID,銀行名
    JP,9990001,銀行01
    JP,9990002,銀行02
    JP,9990003,銀行03
    

    入力データ画面

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


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

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

  6. コントロールレコード用スクリプト変数の作成
    IDocのコントロールレコードはIDocの制御を行うためのレコードです。このレコードにより、SAPシステムでIDocデータに対し、どの処理を行うか制御されます。ここでは、IDocのコントロールレコードをスクリプト変数に登録します。

    変数名 変数型 初期値 説明
    TABNAM 文字列型 EDIDC  
    MANDT 文字列型 <クライアント番号>
    ここでは「800」を入力しています。
    コントロールレコード「MANDT」には、クライアント番号を入力します。
    DOCREL 文字列型 <登録先システムのリリースまたは使用するIDocのリリースバージョン>
    ここでは「700」を入力しています。
    コントロールレコード「DOCREL」には、登録先システムのリリースまたは使用するIDocのリリースバージョンを入力します。
    • 4.6C:46C
    • Enterprise:620
    • ERP 6.0(mySAP2005):700
    DIRECT 文字列型 2 コントロールレコード「DIRECT」には、IDocの送受信方向を入力します。
    • (SAPシステムから)送信:1
    • (SAPシステムで)受信:2
    IDOCTYP 文字列型 BANK_CREATE01 コントロールレコード「IDOCTYP」には、受信するIDoc基本タイプを入力します。
    MESTYP 文字列型 BANK_CREATE コントロールレコード「MESTYP」には、メッセージタイプを入力します。
    SNDPOR 文字列型 SAP<システムID>
    ここでは「SAPSND」を入力しています。
    コントロールレコード「SNDPOR」には、送信側ポートを入力します。
    SNDPRT 文字列型 LS コントロールレコード「SNDPRT」には、送信側パートナタイプを入力します。
    SNDPRN 文字列型 EICS コントロールレコード「SNDPRN」には、送信側パートナ番号を入力します。
    RCVPOR 文字列型 SAP<システムID>
    ここでは「SAPSND」を入力しています。
    コントロールレコード「RCVPOR」には、受信側ポートを入力します。
    RCVPRT 文字列型 LS コントロールレコード「RCVPRT」には、受信側パートナタイプを入力します。
    RCVPRN 文字列型 <受信側(SAPシステム)の論理システム>
    ここでは「SNDCLNT800」を入力しています。
    コントロールレコード「RCVPRN」には、受信側パートナ番号を入力します。

    スクリプト変数

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

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

    CSV読み取り必須設定画面

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

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

  8. 繰り返し処理の作成
    入力データ1行ずつSAPシステムに登録していきます。
    [基本]-[フロー]-[繰り返し(データ件数)]をスクリプトキャンバスにドラッグ&ドロップします。繰り返し処理(データ件数)の設定画面で以下の値を入力し[完了]を押下します。

    カテゴリ 項目名
    基本設定 名前 1行ずつ繰り返し
      入力データ CSVファイルの読み取り
    必須設定 1ループでの処理件数 1

    繰り返し処理(データ件数)必須設定画面

    繰り返し処理(データ件数)の[完了]を押下すると、[マッピングの追加]ダイアログが表示されます。

    マッピングの追加画面

    ここではCSVファイル読み取り処理「CSVファイルの読み取り」の結果データをそのまま繰り返し処理(データ件数)「1行ずつ繰り返し」に渡すため、マッピングの必要はありません。そのため[いいえ]を押下します。

    繰り返し処理(データ件数)完了後スクリプト画面

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

    カテゴリ 項目名
    基本設定 名前 BANK_CREATEの実行
      入力データ 1行ずつ繰り返し
    必須設定 接続先 SAP接続設定
      インターフェース IDoc
      ビジネスメソッド BANK_CREATE01

    BANK_CREATEの実行必須設定画面

  10. スクリプト変数と繰り返し処理(データ件数)からビジネスメソッド実行処理へのマッピングの作成
    ビジネスメソッド実行処理の[完了]を押下すると、[マッピングの追加]ダイアログが表示されます。

    繰り返し処理(データ件数)の入力データとなるCSVアダプタはテーブルモデル型、SAPアダプタはXML型のため、Mapperを使用しデータをマッピングする必要があります。Mapperを使用しデータのマッピングを行うため[はい]を押下します。

    繰り返し処理(データ件数)「1行ずつ繰り返し」とビジネスメソッド実行処理「BANK_CREATE」の間に「mapping」が追加されます。

    BANK_CREATEの実行完了後スクリプト画面

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

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

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


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

    順序 名前
    1 CSVファイルの読み取り
    2 1行ずつ繰り返し(START)
    3 CSV→SAP
    4 BANK_CREATEの実行
    5 1行ずつ繰り返し(END)

    スクリプト完成画面

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

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

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

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

  13. IDocデータ確認
    IDocデータが正常に登録されているかどうか確認します。
    SAP GUIにて、トランザクションコード「WE05」を実行します。IDoc一覧画面で以下の値を入力し[実行]を押下します。

    項目名
    基本タイプ BANK_CREATE01
    論理メッセージ BANK_CREATE
    パートナ番号 EICS
    パートナタイプ LS

    IDocリスト画面

    以下のように、3件の銀行登録用IDocデータが表示されていれば、IDocデータは登録されています。

    IDoc登録状況確認画面

    Statusが緑の信号でない場合は、設定もしくは入力データに問題があり、登録されていません。

    IDoc登録失敗画面

    一覧より該当のエントリを選択し、ステータスメッセージで原因を確認します。

    IDoc登録失敗詳細画面

  14. 銀行マスタ確認
    銀行マスタが登録されているか確認を行います。
    SAP GUIにて、トランザクションコード「FI03」を実行します。銀行照会画面で以下の値を入力し、Enterキーを打鍵します。

    項目名
    銀行国コード JP
    銀行コード 9990001

    以下のように、登録された銀行マスタが確認できます。

    9990001銀行照会画面