BPEL之貸款審批案例(2)

來源:互聯網
上載者:User

BPEL之貸款審批案例(2)

我們把該例的商務程序定義拷在下面,進行說明:
<process name="loanApprovalProcess"
         targetNamespace="http://acme.com/loanprocessing"
         xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
         xmlns:lns="http://loans.org/wsdl/loan-approval"
         suppressJoinFailure="yes">

   <partnerLinks>
      <partnerLink name="customer"
               partnerLinkType="lns:loanPartnerLinkType"
               myRole="loanService"/>
      <partnerLink name="approver"
               partnerLinkType="lns:loanApprovalLinkType"
               partnerRole="approver"/>
      <partnerLink name="assessor"
               partnerLinkType="lns:riskAssessmentLinkType"
               partnerRole="assessor"/>
   </partnerLinks>

   <variables>
     <variable name="request"
                messageType="lns:creditInformationMessage"/>
     <variable name="risk"
                messageType="lns:riskAssessmentMessage"/>
     <variable name="approval"
                messageType="lns:approvalMessage"/>
     <variable name="error"
                messageType="lns:errorMessage"/>
   </variables>

   <faultHandlers>
      <catch faultName="lns:loanProcessFault"
             faultVariable="error">
         <reply   partnerLink="customer"
                  portType="lns:loanServicePT"
                  operation="request"
                  variable="error"
                  faultName="unableToHandleRequest"/>
      </catch>
   </faultHandlers>
                                                                 

   <flow>
      H:<flow>指明一組步驟應該並行地執行;在並行地執行的一組活動中,您可以通過使用連結(link)來指明執行順序方面的約束。

      <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>
     H:流程的每一步稱為一個活動。存在以下一些基本活動:
     H:receive等待一條訊息來響應由某人從外部進行調用的服務介面的操作
      <receive partnerLink="customer"
               portType="lns:loanServicePT"
               operation="request"
               variable="request" createInstance="yes">
         H:轉移及其條件
         <source linkName="receive-to-assess"
            transitionCondition=
              "bpws:getVariableData('request','amount')< 10000"/>         
         <source linkName="receive-to-approval"
            transitionCondition=
              "bpws:getVariableData('request','amount')>=10000"/>
      </receive>
      H:invoke調用某個 Web 服務上的操作
      <invoke  partnerLink="assessor"
               portType="lns:riskAssessmentPT"
               operation="check"
               inputVariable="request" 
               outputVariable="risk">
         <target linkName="receive-to-assess"/>
         <source linkName="assess-to-setMessage"
            transitionCondition=
              "bpws:getVariableData('risk','level')='low'"/>
         <source linkName="assess-to-approval"
            transitionCondition=
              "bpws:getVariableData('risk','level')!='low'"/>
      </invoke>
      H:assign把資料從一個地方複製到另一個地方
      <assign>
         <target linkName="assess-to-setMessage"/>
         <source linkName="setMessage-to-reply"/>
         <copy>
            <from expression="'yes'"/>
            <to variable="approval" part="accept"/>
         </copy>
      </assign>
      H:invoke調用某個 Web 服務上的操作
      <invoke  partnerLink="approver"
               portType="lns:loanApprovalPT"
               operation="approve"
               inputVariable="request"
               outputVariable="approval">
         <target linkName="receive-to-approval"/>
         <target linkName="assess-to-approval"/>
         <source linkName="approval-to-reply" />
      </invoke>
      H:reply產生輸入/輸出操作的響應
      <reply   partnerLink="customer"
               portType="lns:loanServicePT"
               operation="request"
               variable="approval">
         <target linkName="setMessage-to-reply"/>
         <target linkName="approval-to-reply"/>
      </reply>
   </flow>

</process>

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.