Webmethods Business Process Management (BPM)- Call Activity

In this tutorial we will discuss how to use the call activity in your business process. We will cover the following points:

  1. Difference between ‘Call-Activity’, and ‘Sub-process’.
  2. Example using the ‘Call Activity’.

 

Note: This tutorial is valid for webMethods versions 8.X to 9.X. You need to be familiar with webMethods business process familiar. 

If you are not familiar with developing a business process with webMethods, please read the article on the following link:

webMethods Business Process Management (BPM) – Getting started

1. Difference between ‘Call-Activity’, and ‘Sub-process’.

Call Activity: it a step in a business process which invoke an existing ‘callable’ business process model. The business process which uses the call activity is called ‘Parent process’, and the called process is called ‘Child process’.

‘Sub-process’: is a block/group of steps in the business process, it is used to make reading the model easier, or repeat the sub-process in a loop.

So the difference is that the ‘Call activity’ can be used in more than one model to perform a specific functionality, but ‘Sub-process’ is used inside one business process, and it can’t be used in another model because it is simply a group of steps in a model.

2. Example using ‘Call Activity’

objective: develop a business process for a bank to issue a new credit card. The process will:

  • Validate if the customer already exists in the bank system or not.
  • If the customer doesn’t have an account, the process will call another business process ‘createCustomer’ to create the user profile. The ‘CreateCustomer’ process should be available for future use by another business process.
  • The business process will send the order to issue the credit card and send it to client.

So we are going to develop two business models:

  1. Create Customer (callable business process/ child business process),
  2. Credit card request (the parent business process)

Note: We will discuss the details related to creating the callable business process, and using the call activity. We will not discuss the details of the regular steps as we already explained it in our earlier tutorials.

1. ‘CreateCustomer’ business process

This process should be callable business process and it should follow the specification of BPMN 2.0 (Business Process Model and Notation) as the use webMethods business process is deprecated (we will discuss the BPMN 2.0 specification in future tutorials).

Here is the process model:

CallAct- create Customer Model

The differences between this process model and any other regular business process(webMethods business processes) are in the start, end step, and configuring the ‘Global Process Specifications’.

The process must start with a ‘non-start event’ step (the empty green circle), and it must ends with the ‘End’ step (the empty red circle).

call activityin the palette

The start, and End steps are for marking the starting point, and end point of the model only, that’s why there is no input or output document in the implementation tab.

non start event property

The remaining steps are:

‘validateData’: is a service task to make sure that all the requires fields are present.

‘CreateCustomer’: is a service task responsible in creating the customer in the bank system, and it is called only if the validation result is ‘true’ (Valid=true).

‘PrepareOutputDoc’: is a service task which is responsible to map/construct the final output document which will be passed to parent/caller model. The join type on this step  ‘Un-Synchronized OR ’ which means it will be executed if only one of the conditions was true (Valid= true, or valid != true).

The last and important step is configuring the ‘Global Process Specifications’. Click anywhere outside of the process pool of the process and you will find the business process properties in the property tab, choose the ‘Global Process Specifications’ as per the below image.

createCustomer - global process specification

Add the document type of the input and output in the ‘Input/output specification for callable process’. This step is important for the following reasons:

a) The process engine will search for the output document type in the pipeline while terminating the process instance in the runtime to be returned to the parent/caller business process.

b) For the caller/parent business process the callable business process is like a service call and its input/output parameters are the parameters defined in the ‘Global Process Specifications’.

This model is ready, please deploy it to be able to use/call it from the parent business process in the next section.

2. ‘CreditCardRequest’ process

Which is responsible for checking if the customer is an existing customer or not. If it found that it is a new customer the process will call the callable business process ‘CreateCustomer, then it issues the credit card for the customer.

Credit card request

The process is a regular business process following the rules we discussed in our earlier tutorials. The new is the use of the call activity to call another business process ‘CreateCustomer’ as a step in the business process. From the palette choose the ‘Call Activity’.

call activityin the palette

Click on the call activity step in your model to configure the business process to be called in the ‘properties > Implementation’ tab.

call activity properties

We will choose the type ‘BPMN callable process’, and we will press the ‘…’ button to choose the business process.

Note: You have to compile/deploy the callable business process (createCustomer)to be able to choose it.

If you go to the inputs/outputs parameters of the ‘Call activity’ step you will find the parameters of the callable business process which were defined in the ‘Process Global Specifications’.

Please deploy the process after finishing the development of the other steps (validation service, choosing the subscription document for the parent process, …)

Note: In the run time you will find one instance for the parent model(CreditCardRequest), and another one for the child model (createCustomer) in myWebmethods.

We hope that you find what you are looking for in our tutorial, and we are looking forward reading your comments and questions.

Follow us:

on twitter: @WM_Expert

Group on LinkedIn: webmethodsExpert.com

(C) 2015 Hossam Elsharkawy. All rights reserved.

Advertisement

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.