📄 loanapproval.bpel
字号:
<process name="loanApprovalProcess"
targetNamespace="http://acme.com/loanprocessing"
suppressJoinFailure="yes"
xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
xmlns:lns="http://loans.org/wsdl/loan-approval"
xmlns:loandef="http://tempuri.org/services/loandefinitions"
xmlns:asns="http://tempuri.org/services/loanassessor"
xmlns:apns="http://tempuri.org/services/loanapprover">
<variables>
<variable name="request"
messageType="loandef:creditInformationMessage"/>
<variable name="riskAssessment"
messageType="asns:riskAssessmentMessage"/>
<variable name="approvalInfo"
messageType="apns:approvalMessage"/>
<variable name="error"
messageType="loandef:loanRequestErrorMessage"/>
</variables>
<partnerLinks>
<partnerLink name="customer"
serviceLinkType="lns:loanApprovalLinkType"
myRole="approver"/>
<partnerLink name="approver"
serviceLinkType="lns:loanApprovalLinkType"
partnerRole="approver"/>
<partnerLink name="assessor"
serviceLinkType="lns:riskAssessmentLinkType"
partnerRole="assessor"/>
</partnerLinks>
<faultHandlers>
<catch faultName="lns:loanProcessFault"
faultVariable="error">
<reply partnerLink="customer"
portType="apns:loanApprovalPT"
operation="approve"
variable="error"
faultName="invalidRequest"/>
</catch>
</faultHandlers>
<flow>
<links>
<link name="receive-to-assess"/>
<link name="receive-to-approval"/>
<link name="approval-to-reply"/>
<link name="assess-to-setMessage"/>
<link name="setMessage-to-reply"/>
<link name="assess-to-approval"/>
</links>
<receive name="receive1" partnerLink="customer"
portType="apns:loanApprovalPT"
operation="approve" variable="request"
createInstance="yes">
<source linkName="receive-to-assess"
transitionCondition="bpws:getVariableData('request', 'amount')<10000"/>
<source linkName="receive-to-approval"
transitionCondition="bpws:getVariableData('request', 'amount')>=10000"/>
</receive>
<invoke name="invokeAssessor" partnerLink="assessor"
portType="asns:riskAssessmentPT"
operation="check"
inputVariable="request"
outputVariable="riskAssessment">
<target linkName="receive-to-assess"/>
<source linkName="assess-to-setMessage"
transitionCondition="bpws:getVariableData('riskAssessment', 'risk')='low'"/>
<source linkName="assess-to-approval"
transitionCondition="bpws:getVariableData('riskAssessment', 'risk')!='low'"/>
</invoke>
<assign name="assign">
<target linkName="assess-to-setMessage"/>
<source linkName="setMessage-to-reply"/>
<copy>
<from expression="'yes'"/>
<to variable="approvalInfo" part="accept"/>
</copy>
</assign>
<invoke name="invokeapprover"
partnerLink="approver" portType="apns:loanApprovalPT"
operation="approve"
inputVariable="request"
outputVariable="approvalInfo">
<target linkName="receive-to-approval"/>
<target linkName="assess-to-approval"/>
<source linkName="approval-to-reply" />
</invoke>
<reply name="reply" partnerLink="customer" portType="apns:loanApprovalPT"
operation="approve" variable="approvalInfo">
<target linkName="setMessage-to-reply"/>
<target linkName="approval-to-reply"/>
</reply>
</flow>
</process>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -