What is webMethods BPM?
The conflict between the business and technology people is one of the major challenges that affect the company performance and limit its abilities to reach its goals.
WebMethods BPM will allow you to develop your business process in a graphical way which will facilitate the communication between business and technology people. Business people will jump on-board and particiapte in the design phase which will increase the chance of designing superior products.
This article will be one of a series to uncover how to develop and optimize a process with webMethods BPM.
Note : All the information in this article is based on webMethods version 8, however the same knowledge might be applicable for later versions.
In this article we will cover the following points :
- The advantages of using webmethods BPM.
- How to decide to use the BPM or not?
- Webmthods BPM Getting started.
- Prepare and configure the designer.
- Create a new business process.
- Available componenets/steps in webmethods BPM.
- Design your first BPM.
- Conclusion.
1 The advantages of using webMethods BPM
- Visualize the bussiness process, which will make it easier for the business people to particiapte to make sure that you are building the rigth process.
- You can use webMethods Optimize for process, to see how your business is doing, the Service level agreement (SLA), failure rate, process bottlenecks).
- Visualize the status of a specific request (process instance), and what are the executed steps.
- Resubmitting failed request/process from any step in the business process.
2 How to decide to use the BPM or not?
BPM processes are consuming a lot of hardware resources, so depnding on the nature of your project we will decide to use it or not.
SoftwareAG designer enable two modes for the desiging the process :
- Business analyst : can only draw/design the sequence of the process steps to represent the business process from the business prespective.
- Process Developer : avail more options to transform the design done by the business analyst to real business process capable of processing the business request.
If you have a project which involves a lot of steps and interacting with many systems then the BPM might be very helpful to see the statistics, resubmit from a specific point, facilitate the communication between the IT and business, … etc. But if your project is small which involves 1 or 2 steps then it is better to save the resources for something else and use the regular flow services, triggers, schedulers, … etc to develop your project.
3 WebMethods BPM Getting Started
In this section we will start our way to build our first webmethods Business Process Model. So in this section when we say BPM we mean business process model NOT business process management.
3.1 Prepare And configure the SoftwareAG Designer
- We will use ‘SoftwareAG Designer’ to develop our webMethods business process model.
- Define the Integration server you are going to use as follows :
- Go the the menu Windows –> Preferences.
- Expand the item SoftwareAG in the list at left side of the preference window.
- Choose ‘Integration Server’.
- Edit the configuration of the ‘default’ server, and press ‘Ok’ to save the configuration.
- In the preferences window –> Software AG –> Process development –> Process Audit database, choose ‘Use Integration Server JDBC Pool’, and the server ‘Defualt’.
This configuration is used to deploy the definition of the business process model to the integration server database.
Question : Why we are using the ‘Default’, and is it possible to choose another server name?
The answer is Yes, you can choose another server name (ex. DevServer), but when compiling the business model the Designer will generate a folder with the server name, so it is inconvenient to find your code inside a folder called ‘DevServer’ in the production. This is the reason behind using the ‘default’ server.
- Now its time for changing the right perspective in the Designer. To develop/modify your Business process you have to be in the ‘Process Development Perspective’, to change the perspective from the main menu Window –> open perspective –> other –> choose ‘Process Development’ from the list.
- The current perspective will be shown under the Designer main menu.
3.2 Create a new Business process
1. To create a new Process Project, from the Designer main menu : File –> New –> Process Project.
2. Choose the name of the your project (the project might contain more than a business model), we will use the project name ‘DemoProcessroject’.
3. To create a new process model, from the Designer main menu : File –> New –> Process, we will name the process as
’DemoProcess’.
4. In the properties Tab –> General, you will find the main properties of the new process :
Process name : DemoProcess
Process ID : DemoProcessProject/DemoProcess
Version : 1
The process ID is very important as it will be the unique key of this process in webmethods database and in the process engine.
3 Available components/steps in webmethods BPM.
The screenshot below show all the possible options to use to build your business process model.
The following table will describe the most used components :
Name |
Descrpition |
Pool – Pool |
Is the main layout or box which will contain all your process model activities |
Activities – Service Task |
A step in the process model which will call a flow service in the IS. |
Activities – User Task |
A step means that the process require user intervention/action in My webmethods(WM task). |
Activities – Send Task |
Is a step that takes a publishable document as input and publish it. Note : If publishing the document failed, you will not receive an error (may be softwareAG released a fix for this problem). However you can publish a document through a normal flow service called by ‘service task’ |
Activities – Receive Task |
Is the starting point of the processing or receiving response in the middle of the process. The receive task is a trigger in the Integration server. |
3.4 Design your first process
Target Example :
We want to design a process for online magazine subscription and here is the steps :
1. The process will receive the customer request.
2. we will validate the input data (customer name, credit card length).
3. Perform the payment transaction.
4. Update the customers database.
5. Send confirmation email to the customer.
6. Inform the customer with the failure if any of steps 2, or 3 failed.
Lets start designing our model :
Assumptions : we assume that you already created a publishable document in the Integration server, and you will publish it for each customer request.
1. Open the SoftwareAG designer, and create a new process project ‘DemoProcessProject’.
2. Create a new process ‘DemoProcess’.
3. Change the Designer perspective to ‘Process Development’.
4. Make sure that you are in the ‘Process Development’ mode.
5. From the Palette on the right of the page, in the new process design area drag and drop a pool.
6. A pop up window will ask you if you want to set pool type. Choose ‘Internal’
Note : You can use the external organization to show the detail internal for other systems (not a part from your process), it is only for reference. So thats why you must have at least one ‘Internal pool’ and none or multiple ‘External pool’.
7. Drag and drop ‘Receive Task’ into the process pool, and name it ‘receiveRequest’ from the property tab.
8. Make sure that the check box ‘Allow this receive task to start new process’ in the property tab is checked (as it is the starting point of the model).
9. Here is a screenshot from the publishable document we will use.
10. Go to the properties tab –> Implementation, and chose the document you created in the last step in the ‘Receive Document’.
11. Then we will continue drawing the steps, and drag an arrow between the steps to define the sequence by dragging the arrow from a step to another.
We have created all the steps graphically, and the model will look like this :
12. For each step except ‘ProcessEnd’ go to the properties tab –> Implementation, and chose the Integration server flow service to be called to implement the logic you want.
For example in the below screenshot for the step ‘payFees’ we are calling the service ‘paymentTransaction’.
13. Go to the properties tab –> Inputs / Outputs, refresh the inputs and output and you will see the input and output of the IS flow service became the input & output of the process step.
14. The step ‘InformCustomer_failed’ which is responsible to inform the customers of the problems is reachable from two steps ‘validateInput’, and ‘payFees’. So to define the conditions to execute this step click on the arrow coming from the other two steps.
In the properties tab –> condition, choose the variable that you want to use in the condition, in the example below the processing will go from the step ‘payFees’ to ‘InformCustomer_failed’ only if the value of the variable ‘result’= ‘Error’ (result is an output parameter from the step payFees).
15. We have to configure the step ‘InforCustomer_Failed’ by going to the properties tab –> Joins, then choose the type you want. In our example we will use ‘Unsynchoronized OR’.
Here are the possible values of the join:
Value |
Meaning |
Unsynchoronized Or |
Execute the step if one condition from the two has been satisfied |
Or |
Wait till the evaluation of all conditions (on the arrows leading to the step), then start the evaluation. Usually it is used if you don’t want to continue the processing without terminating the previous steps. |
And |
Execute when all conditions have been satisfied. |
Complex |
Use complex customer logic to decide whether to execute the step or not. |
16. The end step is marking the end of the processing and it will decide the status of the process instance. For example in the below screenshot we are making the process status as ‘Completed’. (other possible value is ‘Failed’)
17. After configuring all the steps in the process model, its time for ‘Build & Upload for Execusion’ it is the button with the label ‘010’ in the below screenshot.
18. You will receive a message asking whether to enable the process or not after building it, we will choose ‘Yes’ to be able to start using the new process by publishing the subscription document to the broker.
19. The build report will confirm the status of the build as the below screenshot.
20. You can make sure that the process status is ‘Enabled’ from the MWS –> Administration –> Business –> Business Process.
To start a process instance from the model all you have to do is publishing a document and the model’s trigger will pick it up for processing. To check the running instance go to MWS –> Monitoring –> Process Instance.
Thank you for visiting our website. We are looking forward reading your comments and questions.
Follow us:
on twitter: @WM_Expert
Group on LinkedIn: webmethodsExpert.com
(C) 2014 Hossam Elsharkawy. All rights reserved.
Hi
Thanks for Sharing this article.
I am trying to implement this example in WebMethods 9.6 version.But i can’t find similar properties as shown above.
Regards
Nilesh
Hi Nilesh,
I have the same issue. I can’t find the Implementation tab and so forth from the properties. I am using the BPMS Trial installation from Software AG. Any thoughts on this, anyone?
Hi Nilesh, I have the same issue with you. I can’t find the Implementation tab under Properties. I am using webMethods 9.9 BPMS Trial package provided by Software AG website. Any ideas, anyone?
My query get resolved…. thanks
Hello Could you please help me how to use call Activity using BPM. I am using wM 9.6
Hello Paro,
Sure. You can use the ‘call activity’ to call another callable business process in your business process. The called process must be of type callable. We are preparing a fast tutorial for the call activity to help you.
Best regards,
Hossam
Thanks for your reply..I am egarly waiting for the tutorial.. Could you please post a demo for the same.thanks for your help.
Hello Paro,
The call activity tutorial is available now here is the link:
https://webmethodsexpert.com/2015/10/13/webmethods-business-process-management-bpm-call-activity/
Sorry for the delay.
Best regards,
Hossam Elsharkawy
Another excellent article. Demonstrated all the required points for a beginner. Appreciate your efforts. Thanks a ton.
Dear,
I have seen a few process models using “Start Message” event as the first step, but in the above model, “Receive Task” activity is used. Could you please let me know the difference between these two steps and when do we use them.
Thank you.
Hello Pavan,
They are the same, the only difference is that the ‘start message’ can start the model when it receives the subscription document, but for the ‘receive step’ you have the option to choose to allow the step to start the model or not from the checkbox in general tab of the properties.
So the ‘receive step’ might be an interesting option if you are waiting for a document in the middle of the process execution, and you want to accept it only when there a running instance.
Please check the tutorial in the following link, it is using both types in the same model
https://webmethodsexpert.com/2014/09/21/webmethods-bpm-using-correlation-tutorial-part-1/
Best regards,
Hossam
Hi,
Can someone share a simple example on human workflow using webmethods bpm?
Thanks,
Yamini
Hello Yamini,
We will do our best to write a tutorial for it soon.
Thank you for your interest in our tutorials.
Regards,
Hossam
Hi Hossam,
Thanks for Sharing this article.
Do you have an article/tutorial on how to deploy user tasks from MWs to another MWs?
Thanks,
Ahmed Fahim
Dear Hossam,
Do you have a tutorial on how to deploy process file?
Dear Ahmed,
I will prepare a tutorial for you concerning the business process deployment. The standard way is using the webMethods deployer, the other way of doing it is by compiling the model directly from the designer. Using the designer is very reliable but it depends on the number of integration servers and you must make sure that you are deploying the right version of the process.
Regards,
Hossam
Hi Hossam,
Could you please explain how to develop a process with human intervention in BPM? How to execute the same in MWS?
Thanks,
Yamini
Excellent article for the beginners. Before going through this if we complete First 8 chapters in the Business Process development guide. Then the concepts will be very clear.
@Hossam,
Any plans of starting about centrasite like the same way?
Hello Vicky,
I’m glad to know that you find this tutorial interesting. We will try to cover CentraSite soon. The coming tutorial will be going deeper into the business processes management, and webmethods migration from versions 8 or 9.x to version 9.
Best regards,
Hossam
Hi HOSSAM,
thanks for the detais , as per your guidance …till step 20 it worked fine…but i am unable to view the Proces Model from the MWS under Business–>BusinessProcess but i can see the Process name in Process Instances…so what might be the wrong in this case. using wm9.8
Regards,
Gangadhar
Hi this tutorial is very useful for a beginner like me. Thanks for such a clean and clear presentation. I am facing an issue while working on this process model. I have created the process model following the tutorial. But my process is not getting invoked after publishing the document. The build is successful. Even I have created another broker trigger to check if there is any problem with the subscription. The subscription is happening properly. But my process is not getting invoked for the same subscribed document. In MWS I was not able to enable ” analysis enabled”. Don’t know the reason for this. But ” process status ” is enabled. Don’t know where the mess is happening. Can you please help me in this regard.
Hello Vinodkumar,
No need to enable the Analysis, it is important only if you want to monitor the process using optimize for business process. To know where is the problem please follow the following steps:
1. Disable the process trigger from the integration server admin console (http://serverhost:port)
2. Publish the document that should start the process instance.
3. Check the broker queue in my webmethods, make sure that your document is in the queue, if not please check the subscription document and conditions/filter.
4. If the document was in the queue then enable the trigger and check in the Integration server logs for any errors.
I want to know Which version of webmethods are you using ?Are you using the native webmethods broker?
Best regards,
Hossam
Hi Hossam,
Thanks a lot for the reply. This issue got resolved. I got the following exception in my server logs.
“Exception:com.wm.app.b2b.server.ISRuntimeException: [Exception: Unable to connect to database!] not found in “com.wm.resources.CoreExcpMsgs”. while executing trigger. Rejecting Document for TriggerStore:simpleProject.simpleProcess.Default:subscriptionTrigger”.
( I think I resolved this error by using DB configurator and selecting ” process engine option in it. )
&
“Exception:com.wm.app.b2b.server.ServiceException: [PRT.0101.9613] There are no enabled Processes matching this trigger: Service123:subscriptionTrigger while executing trigger. Rejecting Document for TriggerStore:Service123:subscriptionTrigger.”
Later I resolved this issue by following the steps given in the following link.
http://tech.forums.softwareag.com/techjforum/posts/list/54337.page
And the steps are
@Mahesh/MR/Holger,
Finally Issue was resolved and I’m surprised like this also can happen with WM server because i seen in past so many time by restarting IS or MWS servers most of the issue was fixed and i know this is not a best practise either
In Designer followed these steps :-
1. I have change logical server name from “Dev97” to “IS”.
2. In Window Preferences Tested process audit DB connectivity
3. Added logical server name “IS” to Process Audit DB
4. In My Process Flow added logical IS name in all process steps + save it
5. Reset designer perspective
6. ReBuilt + Uploaded My process flow to MWS and this time it’s work fine.
It may sound weird. But this worked for me.
Thanks,
vinodkumar.
Hi Hossam Elsharkawy,
Eagerly looking forward for a BPM process sample with a ” User Task ” activity. Please let me know if you can provide us a sample implementation with step by step procedure like this.
Thanks,
vinodkumar
Hi Hossam,
Great Doc for a beginner. Thanks for sharing.
I have a quick question ( this might be very basic but just wanted to clarify).
Can a Process Model be initiated or started like a scheduler? What I mean is if I have a scheduled IS service, can I used that as a Receive Task Activity or Start Event?
regards,
S.Mukherjee
Hi,I can’t find the Implementation tab under Properties. I am using webMethods 9.9 BPMS. kindly help
Make sure you are using Process Developer view rather than Business Analyst view. Check the top bar icons.
Nice work,quality appreciated
I am getting ‘Failed to connect to the database’ error when trying to use Integration Server JDBC Pool parameters under Preferences->Software AG-> Process Development-> Process Audit Database
Hi Kruthika, you need to make sure IntegrationServer is connected and from drop down it is selected while configuring.
Hope it worked.
Hi it good tutorial for the beginers .can you plese upload the advance BPM tutorial with the installation and architecture of BPM like what are all the dependent component and how they are interacted with where the process will get store etc