WebMethods Business Process Management (BPM) – Getting Started

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 :

  1. The advantages of using webmethods BPM.
  2. How to decide to use the BPM or not?
  3. Webmthods BPM Getting started.
    1. Prepare and configure the designer.
    2. Create a new business process.
    3. Available componenets/steps in webmethods BPM.
    4. Design your first BPM.
  4. Conclusion.

 

1     The advantages of using webMethods BPM

  1. 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.
  2. You can use webMethods Optimize for process, to see how your business is doing, the Service level agreement (SLA), failure rate, process bottlenecks).
  3. Visualize the status of a specific request (process instance), and what are the executed steps.
  4. 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 :

  1. Business analyst : can only draw/design the sequence of the process steps to represent the business process from the business prespective.
  2. 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.

edit default IS

 

 

  • 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.

process Audit DB

  • 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.

process developement prespective

        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’.

create new process

                 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.

Palette

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.

analyst and designer 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’

set pool type

      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).

receiveRequestStep

        9. Here is a screenshot from the publishable document we will use.

publishable doc def

     10.  Go to the properties tab –> Implementation, and chose the document you created in the last step in the ‘Receive Document’.

implementation receive step

     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 :

final process layout

       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’.

step call IS service

       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.

pay fees screenshot

      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).

step condition

        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’.

step joins config

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’)

configureEndStep

     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.

Build and upload for execusion

      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.

automatically enable the process for execusion

     19. The build report will confirm the status of the build as the below screenshot.

Build report

    20. You can make sure that the process status is ‘Enabled’ from the MWS –> Administration –> Business –> Business Process.

process Def in MWS

       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.

31 thoughts on “WebMethods Business Process Management (BPM) – Getting Started

  1. Nilesh says:

    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

    • TS says:

      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?

    • TS says:

      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?

  2. Pavan says:

    Another excellent article. Demonstrated all the required points for a beginner. Appreciate your efforts. Thanks a ton.

  3. Pavan says:

    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

  4. Ahmed Fahim says:

    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 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

  5. Yamini says:

    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

  6. vicky says:

    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

  7. Gangadhar says:

    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

  8. vinodkumar says:

    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

      • vinodkumar says:

        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.

  9. vinodkumar says:

    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

  10. S Mukherjee says:

    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

  11. Kruthika says:

    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

  12. Ankur says:

    Hi Kruthika, you need to make sure IntegrationServer is connected and from drop down it is selected while configuring.

    Hope it worked.

  13. mahesh says:

    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

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s