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

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

8.5.9 応答電文を取得する

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

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

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

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

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

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

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

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

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

(a) SOAP1.2以外の場合

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

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

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