2013-04-15 98 views
1

我是BPEL新手。我正在調用Web服務來填充BPEL變量:我如何從bpel布爾變量獲取返回值?

<bpel:variable name="hasASkillOutput" messageType="ns2:personHasSkillResponse"></bpel:variable> 
.... 
<bpel:invoke name="call_personHasASkill" partnerLink="SkillPossessionService" operation="personHasSkill" portType="ns2:SkillPossessionServicePortType" 
       inputVariable="hasASkillInput" outputVariable="hasASkillOutput"></bpel:invoke> 

我調用的服務返回布爾值。作爲條件表達式的一部分,我如何訪問該值?

 <bpel:if name="DoesPersonHaveTheSkill"> 
       <bpel:condition><hasASkillOutput is true></bpel:condition> 
     </bpel:if> 

回答

1

的爲messageType personHasSkillResponse的結構是由你的夥伴連接SkillPossessionService鏈接的WSDL定義。您必須在那裏查找該結構,然後才能在condition中使用普通的XPath 1.0表達式,並引用變量hasASkillOutput

例如,如果您的留言類型定義是這樣的:

<message name="personHasSkillResponse"> 
    <part name="skillResponse" element="xsd:boolean"/> 
</message> 

你的條件必須是這樣的:

<bpel:if name="DoesPersonHaveTheSkill"> 
      <bpel:condition>$hasASkillOutput.skillResponse</bpel:condition> 
    </bpel:if>