Hitachi

Cosminexus V11 BPM/ESB基盤 サービスプラットフォーム 開発ガイド 基本開発編


9.5.9 応答電文を取得する

取り出した応答から応答電文を取得します。取得する応答電文は,次のどちらかになります。

〈この項の構成〉

(1) サービス部品からの応答電文

取得する応答電文は,サービス部品側と同じ電文フォーマットのXML電文になります。XML電文の応答電文については,「9.2.7 応答電文を取得する」を参照してください。

同期のサービス部品(WebサービスまたはSessionBean)からの応答電文がない場合は,ペイロードなしのTextMessageを受信します。

非同期のサービス部品の場合は,応答がありません。

(2) サービス部品,ビジネスプロセス,およびサービスアダプタからのエラー情報(フォルト情報)

取得する電文(エラー情報)は,非同期受付(MDB(WS-R))が応答用のキューに送信したXML電文になります。

SOAP1.2の場合とSOAP1.2以外の場合とに分けて,エラー情報の出力形式およびスキーマを示します。

(a) SOAP1.2以外の場合

SOAP1.2以外を利用している場合の取得するXML電文(エラー情報)の形式を次に示します。

表9‒15 取得するXML電文(エラー情報)の形式(SOAP1.2以外の場合)

タグ

説明

errorcode

サービス部品,ビジネスプロセス,およびサービスアダプタからのエラーであることを示すエラーコードです。

errorstring

サービス部品,ビジネスプロセス,およびサービスアダプタからのエラーであることを示すエラーメッセージです。

processinstanceid

ビジネスプロセスのインスタンスIDの情報です。

cscmsgcode

サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのFaultCode情報です。

cscmsgstring

サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのFaultString情報です。

cscmsgactor

サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのFaultActor情報です。

cscmsgdetail

サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのDetail情報です。

SOAP1.2以外を利用している場合の取得するXML電文(エラー情報)のスキーマを次に示します。

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="cscmsgerror">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="errorcode" type="xsd:string"/>
        <xsd:element name="errorstring" type="xsd:string"/>
        <xsd:element name="processinstanceid" type="xsd:string"/>
        <xsd:element ref="errordetail"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
 
  <xsd:element name="errordetail">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="cscmsgcode" type="xsd:string"/>
        <xsd:element name="cscmsgstring" type="xsd:string"/>
        <xsd:element name="cscmsgactor" type="xsd:string"/>
        <xsd:element name="cscmsgdetail" type="xsd:string"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

(b) SOAP1.2の場合

SOAP1.2を利用している場合の取得するXML電文(エラー情報)の形式を次に示します。

表9‒16 取得するXML電文(エラー情報)の形式(SOAP1.2の場合)

タグ

説明

errorcode

サービス部品,ビジネスプロセス,およびサービスアダプタからのエラーであることを示すエラーコードです。

errorstring

サービス部品,ビジネスプロセス,およびサービスアダプタからのエラーであることを示すエラーメッセージです。

processinstanceid

ビジネスプロセスのインスタンスIDの情報です。

cscmsgcode

サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのCode情報です。

cscmsgvalue

サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのCodeが持つValue情報です。

cscmsgreason

サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのReason情報です。

cscmsgtext

サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのReasonが持つText情報です。

cscmsgrole

サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのRole情報です。

cscmsgnode

サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのNode情報です。

cscmsgdetail

サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのDetail情報です。

SOAP1.2を利用している場合の取得するXML電文(エラー情報)のスキーマを次に示します。

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="cscmsgerror">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="errorcode" type="xsd:string"/>
        <xsd:element name="errorstring" type="xsd:string"/>
        <xsd:element name="processinstanceid" type="xsd:string"/>
        <xsd:element ref="errordetail"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
 
  <xsd:element name="errordetail">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="cscmsgcode"/>
        <xsd:element ref="cscmsgreason"/>
        <xsd:element name="cscmsgrole" type="xsd:string"/>
        <xsd:element name="cscmsgnode" type="xsd:string"/>
        <xsd:element name="cscmsgdetail" type="xsd:string"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
 
  <xsd:element name="cscmsgcode" nillable="true">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="cscmsgvalue" type="xsd:string" maxOccurs="unbounded" nillable="true"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
 
  <xsd:element name="cscmsgreason" nillable="true">
    <xsd:complexType>
      <xsd:sequence>
      <xsd:element name="cscmsgtext" type="tns:cscmsgFaultReasonText" maxOccurs="unbounded" nillable="true" />
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xs:complexType name="cscmsgFaultReasonText">
    <xs:sequence>
      <xs:element name="locale" type="xs:string" nillable="true" />
      <xs:element name="text" type="xs:string" nillable="true" />
    </xs:sequence>
  </xs:complexType>
</xsd:schema>