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

📄 trip.bpel

📁 ejb3 java session bean
💻 BPEL
字号:
<?xml version="1.0" encoding="UTF-8"?><bpws:process exitOnStandardFault="yes" name="TripReservation"    targetNamespace="http://jbpm.org/examples/trip"    xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/process/executable"    xmlns:tic="http://jbpm.org/examples/ticket"    xmlns:tns="http://jbpm.org/examples/trip"    xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">    <bpws:import importType="http://schemas.xmlsoap.org/wsdl/"        location="trip.wsdl" namespace="http://jbpm.org/examples/trip"/>    <bpws:import importType="http://schemas.xmlsoap.org/wsdl/"        location="ticket.wsdl" namespace="http://jbpm.org/examples/ticket"/>    <bpws:partnerLinks>        <bpws:partnerLink myRole="Agent" name="traveler" partnerLinkType="tns:Traveler-Agent"/>        <bpws:partnerLink name="ticket"            partnerLinkType="tns:Agent-Ticket" partnerRole="TicketIssuer"/>    </bpws:partnerLinks>    <bpws:variables>        <bpws:variable messageType="tns:purchaseRequest" name="purchaseRequest"/>        <bpws:variable name="cost" type="xsd:double"/>        <bpws:variable name="items" type="tns:ItemSet"/>        <bpws:variable name="dateReached" type="xsd:boolean"/>        <bpws:variable messageType="tns:detailRequest" name="detailRequest"/>        <bpws:variable messageType="tns:detailResponse" name="detailResponse"/>        <bpws:variable messageType="tns:cancelRequest" name="cancelRequest"/>        <bpws:variable messageType="tns:cancelResponse" name="cancelResponse"/>    </bpws:variables>    <bpws:correlationSets>        <bpws:correlationSet name="trip" properties="tns:tripLocator"/>    </bpws:correlationSets>    <bpws:faultHandlers>        <bpws:catch faultName="tns:cancelation">            <bpws:sequence name="Cancel">                <bpws:compensateScope name="UndoPurchase" target="TripPurchase" />                <bpws:assign name="PreparePenalty" validate="no">                    <bpws:copy>                        <bpws:from variable="cost"/>                        <bpws:to part="penalty" variable="cancelResponse">                            <bpws:query><![CDATA[@fee]]></bpws:query>                        </bpws:to>                    </bpws:copy>                </bpws:assign>                <bpws:reply name="SendPenalty" operation="cancelTrip"                    partnerLink="traveler" portType="tns:TravelAgent" variable="cancelResponse"/>            </bpws:sequence>        </bpws:catch>    </bpws:faultHandlers>    <bpws:sequence name="Main">        <bpws:scope name="TripPurchase">            <bpws:variables>                <bpws:variable messageType="tic:ticketRequest" name="ticketRequest"/>                <bpws:variable messageType="tic:ticketMessage" name="ticketMessage"/>                <bpws:variable messageType="tns:purchaseResponse" name="purchaseResponse"/>            </bpws:variables>            <bpws:sequence name="PurchaseTrip">                <bpws:receive createInstance="yes"                    name="ReceiveTripOrder" operation="purchaseTrip"                    partnerLink="traveler" portType="tns:TravelAgent" variable="purchaseRequest"/>                <bpws:flow>                    <bpws:invoke inputVariable="ticketRequest"                        name="CreateTicket" operation="createTicket"                        outputVariable="ticketMessage"                        partnerLink="ticket" portType="tic:TicketIssuer">                        <bpws:correlations>                            <bpws:correlation initiate="yes"                                pattern="in" set="trip"/>                        </bpws:correlations>                    </bpws:invoke>                    <bpws:sequence name="EvaluateCost">                        <bpws:assign name="InitializeCost" validate="no">                            <bpws:copy>                                <bpws:from><![CDATA[0]]></bpws:from>                                <bpws:to variable="cost"/>                            </bpws:copy>                            <bpws:copy>                                <bpws:from part="order" variable="purchaseRequest">                                    <bpws:query><![CDATA[items]]></bpws:query>                                </bpws:from>                                <bpws:to variable="items"/>                            </bpws:copy>                        </bpws:assign>                        <bpws:if name="FlightDecision">                            <bpws:condition><![CDATA[$items/flight and string($items/flight/@xsi:nil) != '1']]></bpws:condition>                            <bpws:scope name="FlightReservation">                                <bpws:compensationHandler>                                    <bpws:assign name="ReimburseFlight" validate="no">                                    <bpws:copy>                                    <bpws:from><![CDATA[$cost - 300 + 100]]></bpws:from>                                    <bpws:to variable="cost"/>                                    </bpws:copy>                                    </bpws:assign>                                </bpws:compensationHandler>                                <bpws:assign name="ChargeFlight" validate="no">                                    <bpws:copy>                                    <bpws:from><![CDATA[$cost + 300]]></bpws:from>                                    <bpws:to variable="cost"/>                                    </bpws:copy>                                </bpws:assign>                            </bpws:scope>                        </bpws:if>                        <bpws:if name="HotelDecision">                            <bpws:condition><![CDATA[$items/hotel and string($items/hotel/@xsi:nil) != '1']]></bpws:condition>                            <bpws:scope name="HotelReservation">                                <bpws:compensationHandler>                                    <bpws:assign name="ReimburseHotel" validate="no">                                    <bpws:copy>                                    <bpws:from><![CDATA[$cost - 100 + 25]]></bpws:from>                                    <bpws:to variable="cost"/>                                    </bpws:copy>                                    </bpws:assign>                                </bpws:compensationHandler>                                <bpws:assign name="ChargeHotel" validate="no">                                    <bpws:copy>                                    <bpws:from><![CDATA[$cost + 100]]></bpws:from>                                    <bpws:to variable="cost"/>                                    </bpws:copy>                                </bpws:assign>                            </bpws:scope>                        </bpws:if>                        <bpws:if name="CarDecision">                            <bpws:condition><![CDATA[$items/rentalCar and string($items/rentalCar/@xsi:nil) != '1']]></bpws:condition>                            <bpws:scope name="CarReservation">                                <bpws:compensationHandler>                                    <bpws:assign name="reimburseCar" validate="no">                                    <bpws:copy>                                    <bpws:from><![CDATA[$cost - 50 + 5]]></bpws:from>                                    <bpws:to variable="cost"/>                                    </bpws:copy>                                    </bpws:assign>                                </bpws:compensationHandler>                                <bpws:assign name="ChargeCar" validate="no">                                    <bpws:copy>                                    <bpws:from><![CDATA[$cost + 50]]></bpws:from>                                    <bpws:to variable="cost"/>                                    </bpws:copy>                                </bpws:assign>                            </bpws:scope>                        </bpws:if>                    </bpws:sequence>                </bpws:flow>                <bpws:assign name="PrepareInvoice" validate="no">                    <bpws:copy>                        <bpws:from part="ticketNo" variable="ticketMessage"/>                        <bpws:to part="invoice" variable="purchaseResponse">                            <bpws:query><![CDATA[@locator]]></bpws:query>                        </bpws:to>                    </bpws:copy>                    <bpws:copy>                        <bpws:from variable="cost"/>                        <bpws:to part="invoice" variable="purchaseResponse">                            <bpws:query><![CDATA[@cost]]></bpws:query>                        </bpws:to>                    </bpws:copy>                </bpws:assign>                <bpws:reply name="SendInvoice" operation="purchaseTrip"                    partnerLink="traveler" portType="tns:TravelAgent" variable="purchaseResponse">                    <bpws:correlations>                        <bpws:correlation initiate="no" set="trip"/>                    </bpws:correlations>                </bpws:reply>            </bpws:sequence>        </bpws:scope>        <bpws:assign name="SetDateNotReached" validate="no">            <bpws:copy>                <bpws:from><![CDATA[false()]]></bpws:from>                <bpws:to variable="dateReached"/>            </bpws:copy>        </bpws:assign>        <bpws:while name="PredateLoop">            <bpws:condition><![CDATA[$dateReached = 'false']]></bpws:condition>            <bpws:pick name="PredateMenu">                <bpws:onMessage operation="getTripDetail"                    partnerLink="traveler" portType="tns:TravelAgent" variable="detailRequest">                    <bpws:correlations>                        <bpws:correlation initiate="no" set="trip"/>                    </bpws:correlations>                    <bpws:sequence name="GetTripDetail">                        <bpws:assign name="PrepareTripDetail" validate="no">                            <bpws:copy>                                <bpws:from part="order" variable="purchaseRequest">                                    <bpws:query><![CDATA[items]]></bpws:query>                                </bpws:from>                                <bpws:to part="detail" variable="detailResponse">                                    <bpws:query><![CDATA[items]]></bpws:query>                                </bpws:to>                            </bpws:copy>                            <bpws:copy>                                <bpws:from variable="cost"/>                                <bpws:to part="detail" variable="detailResponse">                                    <bpws:query><![CDATA[@cost]]></bpws:query>                                </bpws:to>                            </bpws:copy>                        </bpws:assign>                        <bpws:reply name="SendTripDetail"                            operation="getTripDetail"                            partnerLink="traveler"                            portType="tns:TravelAgent" variable="detailResponse"/>                    </bpws:sequence>                </bpws:onMessage>                <bpws:onMessage operation="cancelTrip"                    partnerLink="traveler" portType="tns:TravelAgent" variable="cancelRequest">                    <bpws:correlations>                        <bpws:correlation initiate="no" set="trip"/>                    </bpws:correlations>                    <bpws:throw faultName="tns:cancelation" name="CancelTrip"/>                </bpws:onMessage>                <bpws:onAlarm>                    <bpws:until><![CDATA[$purchaseRequest.order/date]]></bpws:until>                    <bpws:assign name="SetDateReached" validate="no">                        <bpws:copy>                            <bpws:from><![CDATA[true()]]></bpws:from>                            <bpws:to variable="dateReached"/>                        </bpws:copy>                    </bpws:assign>                </bpws:onAlarm>            </bpws:pick>        </bpws:while>    </bpws:sequence></bpws:process>

⌨️ 快捷键说明

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