JP1/Automatic Job Management System 3 - SOA Option Webシステム呼び出し機能編

[目次][用語][索引][前へ][次へ]


9.4.2 XML文書の作成(複合型の場合)

ここでは,複合型の場合について説明します。

注意
複合型は,次の場合にだけ使用できます。
  • JP1/AJS3 - SOA Option 09-50以降の場合
  • WSジョブ実行ホストにCosminexus Application Serverを置き,CosminexusのSOAPクライアントライブラリを使用している場合
  • 組み込みSOAPクライアントライブラリを使用している場合
<この項の構成>
(1) 複合型を使用した入力パラメーターの設定方法
(2) XML文書の作成例
(3) 先行ジョブの引き継ぎ情報をXML文書に指定する
(4) XML文書のサイズ制限

(1) 複合型を使用した入力パラメーターの設定方法

標準WSジョブで複合型を利用するには,次の流れで入力パラメーターを設定します。

  1. WSDLに定義されている複合型のデータ構造をXML文書の形式で作成しておく。
    利用するオペレーションのWSDL定義を参照し,オペレーションの入力パラメーター要素に指定されたスキーマ定義に対応するXML文書(スキーマインスタンス文書)を定義してください。
    XML文書の作成方法は任意です。
    XML文書の作成例は,「(2) XML文書の作成例」を参照してください。
    なお,XML文書のサイズには制限があります。制限を超えると標準WSジョブの実行時にエラーになります。XML文書のサイズの制限については,「(4) XML文書のサイズ制限」を参照してください。
  2. XML文書をクライアントに保存する。
    作成したXML文書は,標準WSジョブ定義で使用するため,JP1/AJS3 - View for SOA Optionがあるクライアントに保存します。
  3. 標準WSジョブ定義時に,作成したXML文書を指定する。
    標準WSジョブの定義操作については,「9.3.1 標準WSジョブを定義する」を参照してください。

標準WSジョブが実行されると,XML文書がSOAPメッセージに変換され,入力パラメーターがWebサービスへ送信されます。

(2) XML文書の作成例

ここでは,次のWSDLに対応するXML文書の作成例を紹介します。

[図データ]

WSDLでは,オペレーションarrangeItemの入力メッセージのスキーマ定義は,「arrangeItem」という名前のelement要素で定義されています。

「arrangeItem」のスキーマ定義に従ったXML文書は次のようになります。

 
<?xml version="1.0" encoding="UTF-8"?>
<ars:arrangeItem xmlns:ars="http://sample/ArrangementService" 
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ars:Item>
    <ars:name>電子レンジ</ars:name>
    <ars:item-id>ITEM001</ars:item-id>
    <ars:price>20000</ars:price>
  </ars:Item>
  <ars:Quantity>1</ars:Quantity>
</ars:arrangeItem>
 

(3) 先行ジョブの引き継ぎ情報をXML文書に指定する

XML文書に,JP1/AJSで実行された先行ジョブの引き継ぎ情報(マクロ変数名)を指定することができます。マクロ変数名は,標準WSジョブの実行時に引き継ぎ情報の値に置換されます。

マクロ変数を使用することで,オペレーションの入力パラメーターの内容を自動的に変更し,Webサービスを呼び出すことができます。

マクロ変数の指定方法は,「?AJS2xxxx?」の形式です。

マクロ変数を使用したXML文書の記述例を次に示します。

 
<?xml version="1.0" encoding="UTF-8"?>
<ars:arrangeItem xmlns:ars="http://sample/ArrangementService" 
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ars:Item>
    <ars:name>?AJS2VALUE1?</ars:name>
    <ars:item-id>ITEM001</ars:item-id>
    <ars:price>20000</ars:price>
  </ars:Item>
  <ars:Quantity>1</ars:Quantity>
</ars:arrangeItem>
 

例では,<name>要素に「?AJS2VALUE1?」を指定しています。この場合,標準ジョブを実行したときに,「?AJS2VALUE1?」の内容がジョブ登録時の引き継ぎ情報で指定された値に置換されます。

引き継ぎ情報に指定していないマクロ変数名をXML文書に指定した場合や,引き継ぎ情報の値がない場合,値は置換されないで「?AJS2xxxx?」という文字列のままWebサービスの入力パラメーターとして使用されます。

マクロ変数記述時の注意事項
マクロ変数は,XML文書のテキストノードの部分にだけ指定できます。要素名には指定できません。指定した場合は標準WSジョブ定義でエラーになります。

(4) XML文書のサイズ制限

XML文書には,サイズの制限があります。ここでは,適切なサイズの計算方法,および計算例を説明します。

(a) XML文書サイズの計算方法

XML文書のサイズは,次の計算式を満たす必要があります。

注意
XML文書サイズが計算式を満たしていない場合,標準WSジョブ実行時にエラーとなります。
XML文書サイズ <
 20,479 - (WSDLファイル名の長さ +
 オペレーション名の長さ+
 WSDLファイル名の長さ (WSジョブ実行ホスト名の長さ) ※1 + 
 認証情報設定ファイル名の長さ※2 + 
 WebサービスロケーションURL※3 +
 オペレーションのSOAPAction値の長さ※4 + 
 XML文書ファイル名の長さ + 
 出力パラメーターXMLファイル名の長さ※5 + 200)
 

(凡例)
XML文書サイズは,次の式で算出します。
XML文書サイズ =
XML文書内に入力した電文のサイズ (要素間の空白文字および改行コードを
除く) + マクロ変数値の合計サイズ

サイズおよび長さの単位はバイトです。

注※1
[標準WSジョブ定義]ダイアログボックスの[オプション]タブで,[ジョブ実行ホストへのWSDLファイル配置方法]に「事前にジョブ実行ホストへ配置する」を選択した場合に,[WSDLファイル名(ジョブ実行ホスト上)]に指定したWSDLファイルの名称のバイト数です。「実行時にジョブ実行ホストへ転送する」を選択した場合は,計算する必要はありません。
[標準WSジョブ定義]ダイアログボックスの項目の詳細は,「15.1 [標準WSジョブ定義]ダイアログボックス」を参照してください。

注※2
[標準WSジョブ定義]ダイアログボックスの[オプション]タブで,[HTTP基本認証]に「する」を指定した場合に,[認証情報設定ファイル名]に指定した認証情報設定ファイルの名称のバイト数です。[HTTP基本認証]に「しない」を選択した場合は,計算する必要はありません。
[標準WSジョブ定義]ダイアログボックスの項目の詳細は,「15.1 [標準WSジョブ定義]ダイアログボックス」を参照してください。

注※3
Webサービスロケーション(WSDLファイルに記述されたservice要素の子要素soap:address要素のlocation属性値)のバイト数です。

注※4
[Webサービス選択 - ステップ2 of 2]ダイアログボックスで,[オペレーション]のリストから選択したオペレーションのSOAPAction値(WSDLファイルに記述されたbinding要素の子要素soap:operationのsoapAction属性値)のバイト数です。soapAction属性値を持たない場合は,計算する必要はありません。
[Webサービス選択 - ステップ2 of 2]ダイアログボックスの項目の詳細は,「15.3 [Webサービス選択 - ステップ2 of 2]ダイアログボックス」を参照してください。

注※5
[標準WSジョブ定義]ダイアログボックスの[基本]タブで,[出力パラメーター]に指定したXMLファイル名のバイト数です。出力パラメーターを指定していない場合は,計算する必要はありません。
[標準WSジョブ定義]ダイアログボックスの項目の詳細は,「15.1 [標準WSジョブ定義]ダイアログボックス」を参照してください。

計算式について説明します。

XML文書のサイズを,右辺の計算式で算出したサイズ未満に抑えます。例えば,ファイル名の長さ,XML文書のサイズなどを調節して抑えます。

なお,XML文書にマルチバイト文字を使用する場合は,XML文書サイズをXML文書の文字数より大きめの値で見積もることをお勧めします。全角文字などのマルチバイト文字のバイト数は,WSジョブ実行ホストが稼働するホストの文字コード体系によって異なるためです。

(b) XML文書サイズの計算例

次の内容で標準WSジョブを定義するものとして,XML文書のサイズを計算します(括弧内の数値はバイト数を示します)。

  1. 使用するWSDLファイルの内容:

    [図データ]

    [図データ]

  2. WSDLファイル名:”C:\Sample\Sample.wsdl”(21)
  3. オペレーション名:”arrangeItem”(11)
    「1. 使用するWSDLファイルの内容:」内にある「オペレーション名」の部分です。
  4. WSDLファイル名の長さ (WSジョブ実行ホスト名の長さ):(0)
    [標準WSジョブ定義]ダイアログボックスの[オプション]タブで,[ジョブ実行ホストへのWSDLファイル配置方法]に「実行時にジョブ実行ホストへ転送する」を選択したものとします。この場合,計算する必要がないため,0バイトになります。
  5. 認証情報設定ファイル名:”C:\Sample\Auth.txt”(18)
  6. WebサービスロケーションURL:
    “http://localhost/rcp1/services/CSCMsgUserDefinedReception"(57)
    「1. 使用するWSDLファイルの内容:」内にある「WebサービスロケーションURL」の部分です。
  7. オペレーションのSOAPAction値:”urn:arrangeItem”(15)
    「1. 使用するWSDLファイルの内容:」内にある「SOAPAction値」の部分です。
  8. XML文書ファイル名:”C:\Sample\input.xml”(19)
  9. 出力パラメーターXMLファイル名:使用しないものとします。(0)
  10. XML文書サイズ:(316)
    「1. 使用するWSDLファイルの内容:」で示すWSDLの「arrangeItem」のスキーマ定義に従ったXML文書の例は次のようになります。
     
    <?xml version="1.0" encoding="UTF-8"?>
    <ars:arrangeItem xmlns:ars="http://sample/ArrangementService" 
                     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <ars:Item>
        <ars:name>電子レンジ</ars:name>
        <ars:item-id>ITEM001</ars:item-id>
        <ars:price>20000</ars:price>
      </ars:Item>
      <ars:Quantity>1</ars:Quantity>
    </ars:arrangeItem>
     
    全角文字を1文字2バイトとして計算すると,XML文書サイズは316バイト(要素間の空白および改行コードを除く)となります。

 

以上,項番2〜10のサイズを「(a) XML文書サイズの計算方法」で説明した計算式に代入します。

 
316 <
   20,479 - (21 + 11 + 0 + 18 + 57 + 15 + 19 + 0 + 200) = 20,138
 

右辺の値は20,138で計算式が成立しています。したがって,XML文書のサイズは適切であるといえます。

[目次][前へ][次へ]


[他社商品名称に関する表示]

Copyright (C) 2009, 2011,Hitachi, Ltd.
Copyright (C) 2009, 2011,Hitachi Solutions, Ltd.