我是BPEL的新手。我正在调用Web服务来填充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>
答案 0 :(得分:1)
messageType personHasSkillResponse
的结构在您的partnerLink 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>