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

📄 loanapproval.bpel

📁 Eclipse的插件
💻 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')&lt;10000"/>
      <source linkName="receive-to-approval"
              transitionCondition="bpws:getVariableData('request', 'amount')&gt;=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 + -