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

📄 atm.bpel

📁 ejb3 java session bean
💻 BPEL
📖 第 1 页 / 共 2 页
字号:
                          <to part="detail" variable="unauthorizedAccess">                            <query>customerName</query>                          </to>                        </copy>                      </assign>                      <reply name="DenyAccess" operation="logOn" partnerLink="atm"                        portType="atm:FrontEnd" variable="unauthorizedAccess"                        faultName="atm:unauthorizedAccess">                        <documentation>send fault back to ATM</documentation>                      </reply>                    </sequence>                  </else>                </if>                <while name="AccountLoop">                  <documentation>accept account requests, one at a time</documentation>                  <condition>$logged</condition>                  <pick name="AccountMenu">                    <onMessage operation="getBalance" partnerLink="atm" portType="atm:FrontEnd"                      variable="customerMsg">                      <correlations>                        <correlation initiate="no" set="customerInteraction" />                      </correlations>                      <sequence name="BalanceSeq">                        <invoke inputVariable="customerMsg" name="QueryBalance"                          operation="queryBalance" outputVariable="balanceMsg" partnerLink="account"                          portType="acc:AccountSystem">                          <documentation>get current account balance</documentation>                        </invoke>                        <reply name="TellBalance" operation="getBalance" partnerLink="atm"                          portType="atm:FrontEnd" variable="balanceMsg">                          <documentation>return balance to ATM</documentation>                        </reply>                      </sequence>                    </onMessage>                    <onMessage operation="deposit" partnerLink="atm" portType="atm:FrontEnd"                      variable="balanceChange">                      <correlations>                        <correlation initiate="no" set="customerInteraction" />                      </correlations>                      <sequence name="DepositSeq">                        <assign name="PrepareDeposit" validate="no">                          <documentation>populate balance update request</documentation>                          <copy>                            <from part="customerName" variable="balanceChange" />                            <to part="body" variable="accountOperation">                              <query>customerName</query>                            </to>                          </copy>                          <copy>                            <from part="amount" variable="balanceChange" />                            <to part="body" variable="accountOperation">                              <query>amount</query>                            </to>                          </copy>                        </assign>                        <invoke inputVariable="accountOperation" name="UpdateBalance"                          operation="updateBalance" outputVariable="balanceMsg"                          partnerLink="account" portType="acc:AccountSystem">                          <documentation>post positive balance update</documentation>                          <correlations>                            <correlation initiate="no" pattern="out" set="customerInteraction" />                          </correlations>                        </invoke>                        <reply name="TellNewBalance" operation="deposit" partnerLink="atm"                          portType="atm:FrontEnd" variable="balanceMsg">                          <documentation>make new balance available to ATM</documentation>                        </reply>                      </sequence>                    </onMessage>                    <onMessage operation="withdraw" partnerLink="atm" portType="atm:FrontEnd"                      variable="balanceChange">                      <correlations>                        <correlation initiate="no" set="customerInteraction" />                      </correlations>                      <sequence name="WithdrawSeq">                        <assign name="PrepareBalanceQuery" validate="no">                          <documentation>populate balance query request</documentation>                          <copy>                            <from part="customerName" variable="balanceChange" />                            <to part="customerName" variable="customerMsg" />                          </copy>                        </assign>                        <invoke inputVariable="customerMsg" name="QueryBalance"                          operation="queryBalance" outputVariable="balanceMsg" partnerLink="account"                          portType="acc:AccountSystem">                          <documentation>get current account balance</documentation>                          <correlations>                            <correlation initiate="no" pattern="out" set="customerInteraction" />                          </correlations>                        </invoke>                        <assign name="EvaluateNewBalance" validate="no">                          <documentation>                            evaluate amount that would remain in account                          </documentation>                          <copy>                            <from>$balanceMsg.balance - $balanceChange.amount</from>                            <to variable="newBalance" />                          </copy>                        </assign>                        <if name="BalanceDecision">                          <documentation>decide outcome of withdraw request</documentation>                          <condition>$newBalance >= 0.0</condition>                          <sequence name="PositiveBalanceSeq">                            <documentation>accept withdrawal</documentation>                            <assign name="PrepareWithdraw" validate="no">                              <documentation>populate balance update request</documentation>                              <copy>                                <from part="customerName" variable="balanceChange" />                                <to part="body" variable="accountOperation">                                  <query>customerName</query>                                </to>                              </copy>                              <copy>                                <from>-$balanceChange.amount</from>                                <to part="body" variable="accountOperation">                                  <query>amount</query>                                </to>                              </copy>                            </assign>                            <invoke inputVariable="accountOperation" name="UpdateBalance"                              operation="updateBalance" outputVariable="balanceMsg"                              partnerLink="account" portType="acc:AccountSystem">                              <documentation>post negative balance update</documentation>                              <correlations>                                <correlation initiate="no" pattern="out" set="customerInteraction" />                              </correlations>                            </invoke>                            <reply name="TellNewBalance" operation="withdraw" partnerLink="atm"                              portType="atm:FrontEnd" variable="balanceMsg">                              <documentation>return new balance to ATM</documentation>                            </reply>                          </sequence>                          <else>                            <sequence name="NegativeBalanceSeq">                              <documentation>reject withdrawal</documentation>                              <assign name="PrepareRejection" validate="no">                                <documentation>populate withdraw fault</documentation>                                <copy>                                  <from part="customerName" variable="balanceChange" />                                  <to part="detail" variable="insufficientFunds">                                    <query>customerName</query>                                  </to>                                </copy>                                <copy>                                  <from part="balance" variable="balanceMsg" />                                  <to part="detail" variable="insufficientFunds">                                    <query>amount</query>                                  </to>                                </copy>                              </assign>                              <reply name="RejectWithdraw" operation="withdraw" partnerLink="atm"                                portType="atm:FrontEnd" variable="insufficientFunds"                                faultName="atm:insufficientFunds">                                <documentation>return fault to ATM</documentation>                              </reply>                            </sequence>                          </else>                        </if>                      </sequence>                    </onMessage>                    <onMessage operation="logOff" partnerLink="atm" portType="atm:FrontEnd"                      variable="customerMsg">                      <correlations>                        <correlation initiate="no" set="customerInteraction" />                      </correlations>                      <assign name="SetLoggedOff" validate="no">                        <documentation>turn off logged flag</documentation>                        <copy>                          <from>false()</from>                          <to variable="logged" />                        </copy>                      </assign>                    </onMessage>                    <onAlarm>                      <for>'PT2M'</for>                      <assign name="SetLoggedOff" validate="no">                        <documentation>                          turn off logged flag after a period of inactivity                        </documentation>                        <copy>                          <from>false()</from>                          <to variable="logged" />                        </copy>                      </assign>                    </onAlarm>                  </pick>                </while>              </sequence>            </scope>          </onMessage>          <onMessage operation="disconnect" partnerLink="atm" portType="atm:FrontEnd"            variable="ticketMsg">            <correlations>              <correlation initiate="no" set="atmInteraction" />            </correlations>            <assign name="SetDisconnected" validate="no">              <documentation>turn off connected flag</documentation>              <copy>                <from>false()</from>                <to variable="connected" />              </copy>            </assign>          </onMessage>        </pick>      </while>    </scope>  </sequence></process>

⌨️ 快捷键说明

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