Generate BPEL - Part 1. Create WSDL diagram
Business Process Model Notation (BPMN) is defacto standard of designing business process. Business Process Execution Language (BPEL) is popular language for workflow engine to execute workflow. This tutorial teaches how to generate BPEL from BPMN's business process diagram and WSDL diagram.
- Select File > New Diagram > Business Process Modeling > WSDL Diagram to create a WSDL diagram.

- Click the Create from Synchronous Template button to create WSDL Diagram using predefined template.

- Select root node wsdl:definitions. In the Name field, enter CustomerLT, and in the Target Namespace, enter http://demo.visual-paradigm.com/BPEL/Customer

- Select wsdl:definitions > wsdl:types > xsd:schema, and set the Target Namespace as http://demo.visual-paradigm.com/BPEL/Customer

- Select xsd:schema, and press the xsd:complexType button to create a complex type.

- Name the complex type as InvoiceType.

- Select InvoiceType, and press the xsd:sequence button to create a sequence.

- Select the sequence, and press the xsd:element button to create an element.

- Name the element as SessionID.

- Press the ... button next to Type, and change the type as string:XSDSimpleType.

- Create another element, InvoiceID with type as string:XSDSimpleType under InvoiceType.

- Create another complex type under xsd:schema, name it as NoticeType.

- Create a xsd:sequence under NoticeType, then create 2 elements, SessionID and NoticeID under the sequence. Both having type as string:XSDSimpleType.

- Rename the HelloElement under xsd:schema to Notice, and change type to NoticeType:XSDComplexType (press the ... button next to Type and select xsd:complexType - NoticeType).

- Create a new element under xsd:schema, name it as Invoice and having type InvoiceType:XSDComplexType.

- Select HelloMessage under wsdl:definitions > wsdl:message, and rename it to Notice.

- Select the TestPart under wsdl:message - Notice, then change to name to Part. Specify the element as Notice:XSDElement by clicking the ... button next to Element field.

- Select the root node wsdl:definitions, then press the wsdl:message button to create a new message.

- Name the message as Invoice.

- Create a wsdl:part under Invoice message, name the part as Part, with Element as Invoice:XSDElement.

- Rename the wsdl:portType under wsdl:definitions to CustomerPortType.

- Rename the wsdl:operation under CustomerPortType to sendNotice.

- Rename the wsdl:input as Input, and rename the wsdl:output as Output. The message field will be set to Notice:WSDLMessage by default.

- Create an operation under CustomerPortType, name it as sendInvoice.

- Create wsdl:input and wsdl:output under sendInvoice operation. Specify the element for both input and output as Invoice:WSDLMessage.

- Right click on node HelloSoapBinding under wsdl:definitions > wsdl:binding and select Remove Node.

- Press the Check and Fix button in diagram toolbar.

- Rename the HelloService under wsdl:definitions to CustomerService, and rename the HelloPort under CustomerService to CustomerPort.

- Click the ... button next to Binding field in CustomerPort, and specify the binding as wsdl:binding - CustomerPortTypeBinding.

- Enter http://localhost:8080/ode/processes/CustomerService in Value field under CustomerPort > xml:modelElement - soap address > location node.

- Rename the HelloPartnerLink under wsdl:definitions to CustomerPLT.

- Rename the provider under CustomerPLT to CustomerServiceProvider.

- Create a bpws:property under wsdl:definition, and name it as SessionID, with the type string:XSDSimpleType.

- Create a bpws:propertyAlias under wsdl:definition and with the following configuration
- Name: NoticeSessionID
- Property Name: SessionID:BPWSProperty
- Message Type: Notice:WSDLMessage
- Part: Part:WSDLPart(under wsdl:message - Notice)
- Query: /Notice/SessionID

- Create another bpws:propertyAlias under wsdl:definition and with the following configuration
- Name: InvoiceSessionID
- Property Name: SessionID:BPWSProperty
- Message Type: Invoice:WSDLMessage
- Part: Part:WSDLPart(under wsdl:message - Invoice)
- Query: /Invoice/SessionID

Rate this Article
Click on one of the stars below to rate this article from 1 (lowest) to 5 (highest).
One Moment Please
Thanks for rating this article.
Comments (9)
written by Hoai Nam on December 24, 2009
Good ^^
written by Ethan on January 27, 2010
These steps are too technical. Pls remember that the users of BPVA are normal end-users, not IT personnel. Even if it's IT personnel, I find the documentation too technical. It's not helping me to resolve my issue.
written by ? on January 27, 2010
I agree with you. Since there is large gap between diagram and executable language. User must go through a lot of step to convert. We will keep enhance the application and tutorial to make it simple and easy to use. Thank you for your comment.
written by Ethan on January 27, 2010
Are you able to come up with a more user-friendly BPEL tutorial now? I've already created my business process model. It would be gd if I could export the model in BPEL or XPDL format, so that I can import it into ARIS or WEBSPHERE.
written by Hec on February 4, 2010
The tutorial is one of the worst tutorials ive done in a while. When I do a step, I want to know what I am doing and why. How on earth am I going to generate my own BPEL? This has not helped. Any plans to make it more user friendly?
Ps. Where can I find more details on BPVA training.
written by Serial nr 45/23-00-78340 on February 4, 2010
Is this tutorial for robots that just receive instructions and execute them without the need to understand?
written by ? on February 4, 2010
In current implementation, the generation of BPEL includes a complex step. We keep enhance the UI to make it more simple to use in future release.
This tutorial is for user to learn a basic step of using the software.
written by b on April 26, 2010
b
written by Dennis on May 4, 2010
So what are the prerequisites of using these tutorials, it looks like you need a few years of experience with web services before you could really understand what you are doing. Some explanations in the steps being followed would be beneficial. After following through this tutorial, I have no idea what was/is going on. I'm not able to generate some BPEL code for my existing business process since I'm not sure what kind of data it is that I've been entering while following this tutorial.