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

📄 testdynamicpick.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"
	targetNamespace="http://ode/bpel/unit-test/TestDynamicPick"
	xmlns:tns="http://ode/bpel/unit-test/TestDynamicPick"
	xmlns:wns="http://ode/bpel/unit-test/TestDynamicPick.wsdl"
	xmlns:prb="http://ode/bpel/unit-test/ProbeService.wsdl"
	xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
	name="TestDynamicPick"
	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 pick with blocking dynamic key -->
	
	<import location="TestDynamicPick.wsdl"
		namespace="http://ode/bpel/unit-test/TestDynamicPick.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="request" partnerLinkType="wns:TestDynamicPickRequest" myRole="TestDynamicPickService"/>
		<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 wns:testProbeKey1"/>
		<correlationSet name="testCorr2" properties="wns:testProbeID wns:testProbeKey2"/>
	</correlationSets>
	<sequence>
		<receive name="receive1" partnerLink="request" portType="wns:TestDynamicPickPT" operation="request" variable="request" createInstance="yes">
			<correlations>
				<correlation set="testCorr1" initiate="yes"/>
				<correlation set="testCorr2" initiate="yes"/>
			</correlations>
		</receive>
		<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[loop on pick until message includes requestEnd = yes]]></literal>
				</from>
				<to variable="probeInput" part="probeName"/>
			</copy>
		</assign>
		<invoke name="probe" partnerLink="probe" portType="prb:probeMessagePT" operation="probe" inputVariable="probeInput" outputVariable="probeInput"> </invoke>
		<while>
			<condition>$request.requestMessageData/requestEnd = 'no'</condition>
			<pick name="testPick">
				<onMessage partnerLink="request" portType="wns:TestDynamicPickPT" operation="continue1" variable="request">
					<correlations>
						<correlation set="testCorr1"/>
					</correlations>
					<sequence>
						<assign>
							<copy>
								<from>
									<literal><![CDATA[pick branch one invoked]]></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>
				</onMessage>
				<onMessage partnerLink="request" portType="wns:TestDynamicPickPT" operation="continue2" variable="request">
					<correlations>
						<correlation set="testCorr2"/>
					</correlations>
					<sequence>
						<assign>
							<copy>
								<from>
									<literal><![CDATA[pick branch two invoked]]></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>
				</onMessage>
			</pick>
		</while>
		<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="request" portType="wns:TestDynamicPickPT" operation="request" variable="reply"> </reply>
	</sequence>
</process>

⌨️ 快捷键说明

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