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

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

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

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

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

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

事前準備

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

    RFCユーザの準備画面

ビジネスメソッドの作成

銀行マスタの登録には、「BANK_CREATE01」IDocタイプを使用します。SAPアダプタでIDocを使用するためには、SAP Enterprise Integration Component Server(以下、EICS)でビジネスメソッドとして登録します。
EICSの説明については、こちらを参照してください。
  1. EICSの起動
    EICSにはStudioとは別の設定画面が用意されています。DataSpider Cloudフロント画面のサーバー情報の詳細メニューよりEICSへアクセスします。

    EICS概要画面

  2. インテグレーションコンポーネント(Integration Component)の作成
    既に他のチュートリアルで作成している場合には、新しくインテグレーションコンポーネントを作成する必要はありません。 Overviewの[New Integration Component]を押下します。
    または左側の[Integration Components]メニューの[Integration Components]-[New Integration Component]を押下します。

    新規インテグレーションコンポーネント作成画面

    インテグレーションコンポーネント登録画面で以下の値を入力します。各項目に値を入力した後、[Continue]を押下し、インテグレーションコンポーネントを作成します。

    項目名
    Name Tutorial
    Description チュートリアル用インテグレーションコンポーネント

    チュートリアル用インテグレーションコンポーネント作成画面

    インテグレーションコンポーネントが作成されました。

    チュートリアル用インテグレーションコンポーネント

  3. ビジネスメソッド(Business Method)の作成
    [New Method]を押下します。

    新規ビジネスメソッド作成画面

    ビジネスメソッド登録画面で以下の値を入力した後、[Continue]を押下します。
    項目名
    NameBANK_CREATE
    Description銀行登録
    AdapterLibrados SAP Adapter

    基本情報入力画面

    次の画面で接続情報の登録を行います。接続情報登録画面で以下の値を入力します。

    項目名 説明
    Username <SAPシステムに接続可能なユーザ名>
    ここでは「EICS」を入力しています。
    SAPシステムに接続するユーザ名を入力します。
    Password <SAPシステムに接続可能なユーザのパスワード> SAPシステムに接続するユーザのパスワードを入力します。
    Server <SAPシステムのホスト名>
    ここでは「r3server00」を入力しています。
    SAPシステムのホスト名またはIPアドレスを入力します。
    Client <Client Number>
    ここでは「800」を入力しています。
    クライアント番号を入力します。
    Language Japanese(JA) 言語を選択します。
    System Number <System Number>
    ここでは「01」を入力しています。
    システム番号を入力します。
    Connection Pool Minimum Count 2 コネクションプールに関する設定項目です。ここではデフォルトの「2」のままにします。
    Connection Pool Maximum Count 10 コネクションプールに関する設定項目です。ここではデフォルトの「10」のままにします。
    Convert HostName to IP Address True SAPシステムの名前解決の方法に関する設定項目です。ここでは「True」にします。

    接続情報入力画面

    [Test Connection]を押下します。接続テストが成功すると「Successfully connected with properties.」メッセージが表示されます。

    接続情報入力画面

    [Continue]を押下し、ビジネスメソッド情報登録画面で以下の値を入力します。IDocタイプとはデータの受け渡しを行う入れ物の型を定義したものです。銀行登録には、「BANK_CREATE01」IDocタイプを使用します。

    項目名 説明
    Function Name/IDoc Base Type BANK_CREATE01 呼び出したいIDoc基本タイプを入力します。
    IDOC Extension Type 入力しません。 IDoc基本タイプを指定するため、ここでは入力しません。
    Sap IDocument True IDocを実行するため、「True」にします。
    Encoding 入力しません IDocセグメントデータのエンコーディングに関する設定項目です。ここでは入力しません。
    Commit Transaction True BAPIを含むRFC汎用モジュールに関する設定項目です。IDoc呼び出しのため、ここでは「True」にします。
    Search Category BAPI or RFC BAPIを含むRFC汎用モジュールまたはIDocを検索する際に使用します。
    Search Name 入力しません。 BAPIを含むRFC汎用モジュールまたはIDocを検索する際に使用します。

    ビジネスメソッド情報入力画面

    [Browse]を押下し、SAPシステムに登録されているIDocのリストから[Function Name/IDOC Base Type]選ぶことができます。

    ブラウズ画面

    「BANK_CREATE01」は[SAP Root Category]-[IDocuments]-[銀行登録]で選択できます。

    IDocumentsブラウズ画面

    BANK_CREATE01 IDOCの選択画面

    [Continue]ボタンを押下し、BANK_CREATEビジネスメソッドを作成します。

    BANK CREATE

  4. スキーマ確認
    指定した「BANK CREATE」IDocに送信するリクエストデータのスキーマを表示します。[Request Schema]を押下し、リクエストデータのスキーマを表示します。

    リクエストスキーマ

    指定した「BANK CREATE」IDocから返されるレスポンスデータのスキーマを表示します。[Response Schema]を押下し、レスポンスデータのスキーマを表示します。

    レスポンススキーマ

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

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

    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アダプタからの呼び出し

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

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

    スクリプト完成画面

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

    項目名
    パス /data/sap/idoc_inbound

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

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

  3. 入力データの作成
    入力データとなる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
    

    入力データ画面

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


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

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

  5. コントロールレコード用スクリプト変数の作成
    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」には、受信側パートナ番号を入力します。

    スクリプト変数

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

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

    CSV読み取り必須設定画面

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

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

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

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

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

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

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

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

    カテゴリ 項目名
    基本設定 名前 BANK_CREATEの実行
      入力データ 1行ずつ繰り返し
    必須設定 インテグレーションコンポーネント Tutorial
      ビジネスメソッド BANK_CREATE

    BANK_CREATEの実行必須設定画面

  9. スクリプト変数と繰り返し処理(データ件数)からビジネスメソッド実行処理へのマッピングの作成
    繰り返し処理(データ件数)からビジネスメソッド実行処理へドラッグ&ドロップすると[フローを引く]ダイアログが表示されます。表示されない場合は、一旦データフローを削除してから操作してください。

    マッピングの追加画面

    繰り返し処理(データ件数)の入力データとなるCSVアダプタはテーブルモデル型、SAPアダプタはXML型のため、Mapperを使用しデータをマッピングする必要があります。Mapperを使用しデータのマッピングを行うため[データフローを引く]を選択して[マッピングを追加する]にチェックをいれます。

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

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

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

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

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


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

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

    スクリプト完成画面

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

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

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

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

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

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

    IDocリスト画面

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

    IDoc登録状況確認画面

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

    IDoc登録失敗画面

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

    IDoc登録失敗詳細画面

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

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

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

    9990001銀行照会画面