如何从bpel布尔变量中获取返回值?

时间:2013-04-15 15:40:06

标签: web-services bpel

我是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>

1 个答案:

答案 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>