10.5.9 応答電文を取得する

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

<この項の構成>
(1) サービス部品からの応答電文
(2) サービス部品,ビジネスプロセス,およびカスタムアダプタからのエラー情報(フォルト情報)

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

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

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

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

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

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

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

(a) SOAP1.2以外の場合

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

表10-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電文(エラー情報)の形式を次に示します。

表10-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>