Home arrow Web Services arrow Page 5 - Flow and Web Services

Flow and Web Services

Last week, we looked at process lifecycles. This week, we'll take a look at the assign and other basic activities, and study flow. This article, the fourth in a series, is excerpted from chapter 12 of Building Web Services with Java: Making sense of XML, SOAP, WSDL, and UDDI, written by Steve Graham et al. (Sams; ISBN: 0672326418).

Author Info:
By: Sams Publishing
Rating: 4 stars4 stars4 stars4 stars4 stars / 5
August 24, 2006
  1. · Flow and Web Services
  2. · XPath Extension Functions
  3. · Flows
  4. · Link Semantics
  5. · Putting Together the Flow Sample

print this article

Flow and Web Services - Putting Together the Flow Sample
(Page 5 of 5 )

Having said all that, let's get back to SkatesTown's flow as outlined in Figure 12.5. Listing 12.2 shows how this flow is expressed using the BPEL flow activity. The definition of a flow activity always starts with the specification of its links. Activities of a flow become the source and/or target of these links by referencing them via the standard activity elements source and target. The transition condition is an optional attribute of the activity's source element:

Listing 12.2 Flow Activity

<link name="validPurchaseOrder"/>
<link name="invalidPurchaseOrder"/>
<link name="inLocalStock_initiateDelivery"/>
<link name="inLocalStock_createInvoice"/>
<link name="notInLocalStock"/>
<link name="stockReplenished_initiateDelivery"/> 
<link name="stockReplenished_createInvoice"/>
<invoke partnerLink="local"
portType="skt:skatestownPortType" operation="validatePurchaseOrder" inputVariable="poSubmissionRequest" outputVariable=
"validatePurchaseOrderResponse"> <source linkName="validPurchaseOrder"
transitionCondition= "bpws:getVariableData
('validatePurchaseOrderResponse','valid')=true"/> <source linkName="invalidPurchaseOrder"
transitionCondition= "bpws:getVariableData
('validatePurchaseOrderResponse','valid')=false"/> </invoke> <throw faultName="pos:invalidPO"> <target linkName="invalidPurchaseOrder"/> </throw> <invoke partnerLink="local"
portType="skt:skatestownPortType" operation="checkLocalStock" inputVariable="poSubmissionRequest" outputVariable="checkLocalStockResponse"> <target linkName="validPurchaseOrder"/> <source linkName="inLocalStock_createInvoice"
transitionCondition= "bpws:getVariableData
('checkLocalStockResponse','available')=true"/> <source
transitionCondition= "bpws:getVariableData
('checkLocalStockResponse','available')=true"/> <source linkName="notInLocalStock"
transitionCondition= "bpws:getVariableData
('checkLocalStockResponse','available')=false"/> </invoke> <sequence name="replenishStock"> <target linkName="notInLocalStock"/> <source
linkName="stockReplenished_initiateDelivery"/> <source
linkName="stockReplenished_createInvoice"/> ... </sequence> <invoke partnerLink="local"
portType="skt:skatestownPortType" operation="initiateDelivery" inputVariable="poSubmissionRequest"> <target
linkName="inLocalStock_initiateDelivery"/> <target
linkName="stockReplenished_initiateDelivery"/> </invoke> <invoke partnerLink="local"
portType="skt:skatestownPortType" operation="createInvoice" inputVariable="poSubmissionRequest" outputVariable="poSubmissionResponse"> <target linkName="inLocalStock_createInvoice"/> <target
linkName="stockReplenished_createInvoice"/> </invoke> </flow>

Please check back next week for the continuation of this article.

DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware.

blog comments powered by Disqus

- Dealing with Loose Coupling in a Service-Ori...
- Loose Coupling in a Service-Oriented Archite...
- Safety, Idempotence, and the Resource-Orient...
- The Resource-Oriented Architecture in Action
- Features of the Resource-Oriented Architectu...
- The Resource-Oriented Architecture
- Getting Started with Flex
- Automated Billing and Faxing for the Web
- An Introduction to Web Services
- The Foundations of Web Services: From Novice...
- Web Services Reengineering: Finishing Touches
- Fault Handling with Web Services
- Flow and Web Services
- Process Lifecycles and Web Services
- Business Processes and Web Services

Watch our Tech Videos 
Dev Articles Forums 
 RSS  Articles
 RSS  Forums
 RSS  All Feeds
Write For Us 
Weekly Newsletter
Developer Updates  
Free Website Content 
Contact Us 
Site Map 
Privacy Policy 

Developer Shed Affiliates


© 2003-2019 by Developer Shed. All rights reserved. DS Cluster - Follow our Sitemap
Popular Web Development Topics
All Web Development Tutorials