⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 teststaticonmessage.bpel

📁 bpel执行引擎用来执行bpel业务流程
💻 BPEL
字号:
<!--
	~ Licensed to the Apache Software Foundation (ASF) under one
	~ or more contributor license agreements.  See the NOTICE file
	~ distributed with this work for additional information
	~ regarding copyright ownership.  The ASF licenses this file
	~ to you under the Apache License, Version 2.0 (the
	~ "License"); you may not use this file except in compliance
	~ with the License.  You may obtain a copy of the License at
	~
	~    http://www.apache.org/licenses/LICENSE-2.0
	~
	~ Unless required by applicable law or agreed to in writing,
	~ software distributed under the License is distributed on an
	~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
	~ KIND, either express or implied.  See the License for the
	~ specific language governing permissions and limitations
	~ under the License.
-->

<process xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://docs.oasis-open.org/wsbpel/2.0/process/executable ../../../../../../../bpel-schemas/src/main/resources/wsbpel_executable.xsd"
         xmlns:tns="http://ode/bpel/unit-test/TestStaticOnMessage"
         xmlns:wns="http://ode/bpel/unit-test/TestStaticOnMessage.wsdl"
         xmlns:prb="http://ode/bpel/unit-test/ProbeService.wsdl"
         xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
         name="TestStaticOnMessageProcess"
         targetNamespace="http://ode/bpel/unit-test/TestStaticOnMessage"
         queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"
         expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"
         suppressJoinFailure="yes">

    <!-- test onMessage with static correlation key -->

    <import location="TestStaticOnMessage.wsdl"
            namespace="http://ode/bpel/unit-test/TestStaticOnMessage.wsdl"
            importType="http://schemas.xmlsoap.org/wsdl/" />
    <import location="../ProbeService/probeService.wsdl"
            namespace="http://ode/bpel/unit-test/ProbeService.wsdl"
            importType="http://schemas.xmlsoap.org/wsdl/"/>


    <partnerLinks>
        <partnerLink name="request1" partnerLinkType="wns:TestStaticOnMessage1Request" myRole="TestStaticOnMessage1Service"/>
        <partnerLink name="probe" partnerLinkType="wns:probeRequest" partnerRole="probeService" initializePartnerRole="yes"/>
    </partnerLinks>

    <variables>
        <variable name="request"
                  messageType="wns:requestMessage"/>
        <variable name="probeInput"
                  messageType="prb:probeMessage"/>
        <variable name="reply"
                  messageType="wns:replyMessage"/>
    </variables>

    <correlationSets>
        <correlationSet name="testCorr1" properties="wns:testProbeID"/>
    </correlationSets>

    <sequence>

        <receive name="receive1" partnerLink="request1"
                 portType="wns:TestStaticOnMessage1PT"
                 operation="request" variable="request"
                 createInstance="yes">
            <correlations>
                <correlation set="testCorr1" initiate="yes"/>
            </correlations>
        </receive>

        <scope name="scopeOne">
            <eventHandlers>

                <onEvent partnerLink="request1"  messageType="wns:requestMessage"
                         portType="wns:TestStaticOnMessage1PT" operation="event1" variable="request">

                    <correlations>
                        <correlation set="testCorr1"/>
                    </correlations>

                    <scope>
                        <sequence>
                            <assign>
                                <copy>
                                    <from>
                                        <literal><![CDATA[received event on TestStaticOnMessage3PT]]></literal>
                                    </from>
                                    <to variable="probeInput" part="probeName"/>
                                </copy>
                            </assign>

                            <invoke name="probe" partnerLink="probe"
                                    portType="prb:probeMessagePT"
                                    operation="probe"
                                    inputVariable="probeInput"
                                    outputVariable="probeInput">
                            </invoke>
                        </sequence>
                    </scope>
                </onEvent>
                <onEvent partnerLink="request1" messageType="wns:requestMessage"
                         portType="wns:TestStaticOnMessage1PT" operation="event2" variable="request">

                    <correlations>
                        <correlation set="testCorr1"/>
                    </correlations>

                    <scope>
                        <sequence>
                            <assign>
                                <copy>
                                    <from>
                                        <literal><![CDATA[received event on TestStaticOnMessage4PT]]></literal>
                                    </from>
                                    <to variable="probeInput" part="probeName"/>
                                </copy>
                            </assign>

                            <invoke name="probe" partnerLink="probe"
                                    portType="prb:probeMessagePT"
                                    operation="probe"
                                    inputVariable="probeInput"
                                    outputVariable="probeInput">
                            </invoke>
                        </sequence>
                    </scope>
                </onEvent>


            </eventHandlers>

            <sequence>



                <!-- Copy input variables to internal accumulators -->

                <assign name="assign1">
                    <copy>
                        <from variable="request" property="wns:testProbeID"/>
                        <to variable="probeInput" part="probeName"/>
                    </copy>
                    <copy>
                        <from variable="request" property="wns:testProbeData"/>
                        <to variable="probeInput" part="probeData"/>
                    </copy>
                </assign>


                <assign>
                    <copy>
                        <from>
                            <literal><![CDATA[block for next message]]></literal>
                        </from>
                        <to variable="probeInput" part="probeName"/>
                    </copy>
                </assign>

                <invoke name="probe" partnerLink="probe"
                        portType="prb:probeMessagePT"
                        operation="probe"
                        inputVariable="probeInput"
                        outputVariable="probeInput">
                </invoke>

                <!-- block the process here while test messages are sent to the eventHandlers -->

                <receive name="receive2" partnerLink="request1"
                         portType="wns:TestStaticOnMessage1PT"
                         operation="continue1" variable="request">
                    <correlations>
                        <correlation set="testCorr1"/>
                    </correlations>
                </receive>

            </sequence>
        </scope>

        <assign>
            <copy>
                <from>
                    <literal><![CDATA[block for final message]]></literal>
                </from>
                <to variable="probeInput" part="probeName"/>
            </copy>
        </assign>

        <invoke name="probe" partnerLink="probe"
                portType="prb:probeMessagePT"
                operation="probe"
                inputVariable="probeInput"
                outputVariable="probeInput">
        </invoke>

        <receive name="receive3" partnerLink="request1"
                 portType="wns:TestStaticOnMessage1PT"
                 operation="continue2" variable="request">
            <correlations>
                <correlation set="testCorr1"/>
            </correlations>
        </receive>

        <assign>
            <copy>
                <from>
                    <literal><![CDATA[process complete]]></literal>
                </from>
                <to variable="probeInput" part="probeName"/>
            </copy>
        </assign>

        <invoke name="probe" partnerLink="probe"
                portType="prb:probeMessagePT"
                operation="probe"
                inputVariable="probeInput"
                outputVariable="probeInput">
        </invoke>
        <assign name="assign2">
            <copy>
                <from variable="probeInput" part="probeName"/>
                <to variable="reply" part="replyID"/>
            </copy>
            <copy>
                <from variable="probeInput" part="probeData"/>
                <to variable="reply" part="replyText"/>
            </copy>
        </assign>

        <reply name="reply" partnerLink="request1" portType="wns:TestStaticOnMessage1PT"
               operation="continue2" variable="reply">
        </reply>

    </sequence>
</process>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -