IDoc パーサー用のメタデータ・ファイルの作成

SAP アプリケーション・クライアントは、WebSphere MQ Enterprise Transport を介して接続します。 SAP アプリケーションへ発信する、そしてそこから受信するメッセージは、IDoc パーサーによって処理されます。データを正しく解釈するためには、メタデータ・ファイルを必要とします。 このセクションでは、IDoc パーサーに付属するメタデータ・ファイルの作成方法について説明します。 あらかじめ作成されたサンプル・メタデータ・ファイルは、SupportPac IA0F であることに注意してください。 必要な IDoc データのメタデータを作成するには、以下の手順に従います。

  1. SAP システムにログオンします。
  2. 提供されているトランザクション we60 を以下のように実行します。 これにより、IDoc データが C ヘッダー・ファイルとして抽出されます。
    1. ObjectName には、 適切な IDoc タイプ (たとえば MATMAS02) を選択します。
    2. レコード・タイプのバージョンを選択します。 バージョン 4 の IDoc はタイプ 3 であることに注意してください。
    3. 「ドキュメンテーション」プルダウンから、C-header を選択します。
    4. プロンプトが表示されたら、トランザクションからの出力のファイル名を入力します。

サポートパックを使わずに出力をフォーマット設定する

このセクションでは、サポートパック IA0F を使わずに IDoc パーサーを使用する方法について説明します。 必要な IDoc データのメタデータを作成するには、以下の手順に従います。

  1. 作成済みの SAP からの出力ファイルが MRM ドメインのインポート用の形式であるようにするには、 提供されている Perl スクリプト hdrfiddle.pl を使用します。
  2. ワークベンチで、 メッセージ・セットを WebSphere Business Integration Message Broker へインポートする際のソースとしてこのファイルを使用します。 構造体を MRM にインポートする方法については、ワークベンチ へのファイル・システムのインポートを参照してください。
  3. 「メッセージ・ドメイン」のプルダウンで、以下の手順を実行します。
    1. 「パーサー」フィールドで、「MRM」を選択する。 メッセージ・セットの名前が、接頭部にサブセット名 (たとえば、matmas02) がついて表示されます。
    2. IDOCを使用した「パーサー」フィールドで、MRM に上書きする。
    3. サブセット名を削除する。
構造体が MRM ドメインにインポートされ、定義された場合、 IDoc の各セグメントをこの新しいメッセージ・セットのメッセージ・コンポーネントとして作成することが可能になります。 メッセージ・コンポーネントを作成する際、コンポーネントを複合タイプに関連付ける必要があります。
注: セグメントに関する適切なメッセージ・コンポーネントを作成する前に、 インポート済みの複合タイプをワークベンチのワークスペースに追加する必要があるかもしれません。

出力を MRM ドメインへのインポート用にフォーマット設定する

  1. 作成済みの SAP からの出力ファイルが MRM ドメインへのインポート用の形式であるようにするには、 提供されている Perl スクリプト hdrfiddle.pl (SupportPac 1A0F でも提供されている) を使用します。
  2. ワークベンチで、 メッセージ・セットを WebSphere Business Integration Message Broker へインポートする際のソースとしてこのファイルを使用します。 構造体を MRM ドメインにインポートする方法については、ワークベンチ へのファイル・システムのインポートを参照してください。
構造体が MRM ドメインにインポートされ、定義された場合、 IDoc の各セグメントをこの新しいメッセージ・セットのメッセージ・コンポーネントとして作成することが可能になります。 メッセージ・コンポーネントを作成する際、コンポーネントを複合タイプに関連付ける必要があります。
注: セグメントに関する適切なメッセージ・コンポーネントを作成する前に、 インポート済みの複合タイプをワークベンチのワークスペースに追加する必要があるかもしれません。

MRM ドメインでの IDoc のモデル化

C 構造体を WebSphere Business Integration Message Broker にインポートすると、多数の MRM タイプが存在するようになります。 それぞれのタイプは、1 つの IDoc セグメントの定義を表します。

  1. オブジェクトに関する任意のメッセージ・セット (たとえば matmas02) を作成して、 カスタム・ワイヤー形式 ID を CWF に設定します。
  2. IDoc パーサーが処理する必要のあるすべてのセグメントに関するメッセージを、 このメッセージ・セットの下に作成します。 それぞれのメッセージ名は、対応するセグメントの名前 (大文字) でなければなりません。 たとえば、以下のようになります。
                Message 	        Type
         
                E2MARMM 	     e2marmm_1_type
  3. 各メッセージ (つまりIDoc セグメント) に関連したそれぞれのエレメントごとに、 埋め込み文字をスペースに変更する必要があるかもしれません。 これは、IDoc の埋め込み文字がスペースだからです。 たとえば、 E2MAKTM001 という WebSphere Business Integration Message Broker の SAP セグメントのモデルは、 以下のようになります。
              E2MAKTM001		 Message name to WMQI	      (segment name to SAP)
                  msgfn		   First element name to WMQI	(field name to SAP)
    	    spras	      Second element name
    	    maktx		   Third element name 
    	    spras_iso	   Fourth element name
    	    fill954		   Fifth element to make the size of this element up to 1000 characters 
  4. ワークベンチの「メッセージ・セット」パネルから、 メッセージ E2MAKTM001 のエレメント fill954 を選択し、 「カスタム・ワイヤー形式」タブを選択して、埋め込み文字をスペースに変更します。

関連概念
メッセージ・フロー
BLOB パーサーおよびドメイン
プロモートされたプロパティー
ESQL
メッセージのモデル化

関連タスク
メッセージ・フロー・アプリケーションの開発
ノードの構成
ESQL ファイルの管理

関連資料
Compute ノード
Database ノード
Filter ノード
MQInput ノード
MQOutput ノード
ResetContentDescriptor ノード
ESQL
CARDINALITY 関数
CASE 関数
CAST 関数
DECLARE ステートメント
SET ステートメント
SUBSTRING 関数
WHILE ステートメント