Introduction
webMethods ‘Optimize for process’ is component which is responsible for monitoring the customer requests, generating statistics, calculate the KPIs, and notifying you with any violation for the rules you define to monitor your business process.
In this article we will cover the following:
- The possible options to send data to ‘Optimize for business process’.
- How to send data from ‘WM Business Process’ to Optimize.
- How to send data from ‘WM flow service’ or any third part application.
- How to configure a new event in Optimize through ‘MyWebMethods’
- Configure KPIs, and Dimension.
Note: all the information in this article is based on webMethods version 8.2.
1. Possible options to send data to Optimize for Business Process.
There are two ways to send data to Optimize:
- Use the data in the ‘Business Process’ Model pipeline and the model will send it automatically with doing some configuration in the model using ‘SoftwareAg Designer’ and in the business process configuration through MWS.
- Use the Web service Data collector to send the information you need to the Optimize. In this case you will have to extract the WSDL from the WS Data collector, generate the client using softwareAG designer or any other third-party application, and finally call it with the target parameters.
Regardless the option you choose from the two previous options to send the data to Optimize the rest of the configuration in the Optimize will be the same.
2. Sending data to optimize using ‘webMethods Business Process’.
To send data to Optimize through ‘WM Business Process’, follow the following steps in SoftwareAG Designer:
1. Create your model and define the inputs and outputs for each step.
2. Click on the step which has the information ready to be sent, and open the properties-> logged fields.
3. In the logged fields tab, choose the document which contains the information you want to send.
4. Build the model and deploy it.
5. Go in the MWS –> Business –> Business Processes.
6. Make sure that the option ‘Analysis Enabled’ is checked, if not click on ‘EDIT’ and enable it.
7. Run one instance of your model, by publishing the subscription document to the model. The model will send the event automatically to Optimize.
8. Check the new events In MWS under ‘MWS –> Analytics –> KPIs –> Business data’. The event will be under unmapped event types with the name of the model and the document checked in the logged feilds.
9. Now you are ready to configure the data in Optimize. We will discuss this part in section 4, after discussing sending the data using the ‘web-service data collector’.
3. Sending Data to Optimize using the web service Data collector
The web service data collector is a web service existing with the data collector webmethods components. It enables you to use the optimize even if you don’t use business process model. So we use it to simulate the action taken by the model to send the logged feilds to Optimize.
Use the following address to extract the web service data collector WSDL:
http://datacollectorServer:12603/services/WSDimensionalDataCollector.wsdl
Note: The web service data collector signature has been changed after the Optimize_8.2.1_fix_9. So it is strongly recommended to install the following fixes before start using the optimize version 8.2.1.
- Optimize_8.2.1_fix_9 or Optimize_8.2.1_fix_10
- Process_Engine_8.2.1_fix_8 (as the logged fields will not send the data to optimize after installing the optimize_fix_9)
Here is a screen short from calling the web service data collector in the softwareAG Designer.
After calling the web service data collector with your data during the execution of the flow service, you will be able to see the new event (in the screen shot ‘TestEvent’) in the ‘MWS –> Analytics –> KPIs –> Business Data –> unmapped event type’
At this point all the configuration will be done with the optimize using the MWS.
3. Configuring the new Events in Optimize through MyWebmethods.
The following part is common for all the events sent to optimize, regardless of the way used to send the data to Optimize (logged fields or WS data collector). We will use the example created in section 1 (using the logged fields), the document used is ‘salesOrder’.
3.1 Configuring the Event received
- Go to myWebMethods.
- Go to MWS –> Analytics –> KPIs –> Business Process
- Click on the event ‘DemoProcess – salesOrder’ under ‘unmapped Event types’.
- We will name the new event ‘salesEvent’, and choose the ‘DemoProcess’ from the dropdown list.
5. Click on the ‘Edit’ button for each variable to configure it.
6. Configuration variable in the event as follows:
Feild | Display Name | Type | Calculation Type | UOM |
Id | Id | Transaction | NA | NA |
Price | Price | Fact | Sum | $ |
productName | productName | Dimension | NA | NA |
storeId | storeId | Dimension | NA | NA |
Note: UOM = Unit of measurement
Fact: use this type for the info involved in the calculation. In the example we want to calculate the revenue from the sold items (sum of prices), so the price must be a fact.
Dimension: use this type for the info which can be used to categorize the statistics or the requests. Example you need to know the revenue from sold item per store.
Transaction: It is a unique data for this transaction, this is the reason it is not used to generate any statistics. In our example we can consider the ‘Id’ is the serial number of the sold item.
7. Click the ‘Save’ button to save your configuration.
3.2 Configuring the KPI, and KPI Hierarchy
In this section we will see how to group and view the data generated from Optimize. So we will start with the KPI Hierarchy.
1. Go to MWS –> Administration –> Analytics –> KPIs –> KPI hierarchies.
2. Click the button ‘Add Hierarchy’.
3. Choose name for the hierarchy, in our example ‘MyProduct’.
4. Choose the dimension, we will choose the productName dimension (ProductDim). We will explain in more details later.
Now we will define the KPI and assign it to the KPI hierarchy. Here are the steps:
- Go To MWS –> Administration –> Analytics –> KPIs –> Business Data
- Click the button ‘Add KPI’.
- We will name the KPI of this example ‘demoRevenue’.
- The collection interval we will choose 1 minute. During this interval the Optimize will be aggregating the data. For example if the collection interval is 1 day, then the Optimize will get the sum of the sales transaction by the end of day.
- In the KPI Information:
- Choose the event ‘salesEvent’.
- Fact will be the ‘price’.
- The hierarchy will be ‘MyProduct’
Note: the rest of the information will be created automatically from the configuration done before.
4. Viewing the statistics – Analytic Overview
Let us see the results of our work. Please run a couple of requests to make sure that the Optimize received some data. Here is a screenshot of the data sent to optimize.
To see the statistics please follow these steps:
- Go to MWS –> Monitoring –> Analytics Overview.
- Under the name of your process you will find the KPI folder with the data.
As you see in the screenshot the Optimize is using the dimension to categorize the revenue based on the ProductName (ex. demoRevenue (BlackBerry Q10)). The last reading means the last sum of prices of the sold products in the last collection interval which is 1 minute in our example.
3. We will go into the details of one of the dimensions.
And you can check the data instead of the graph by pressing the button ‘View Data’
We can see in the below screenshot the aggregation done by Optimize in the collection interval. So if you need to get the revenue by day for this dimension, you can change the collection interval definition of the KPI.
You can also create rules by clicking the button ‘Create Rule’ to receive an alert when something goes wrong.
The data and aggregation done by Optimize is also available in the database, we will talk about how to extract the data from the database later …
We hope that you find this article useful, and we are looking forward reading your comments and questions.
© 2014 Hossam Elsharkawy. All rights reserved.
Hi Hossam Elsharkawy,
Please give me a detail guide for “3. Sending Data to Optimize using the web service Data collector” also where can i download fix package. Or explain why data don’t sent to Optimize Although I really do all steps as you say in -2. Sending data to optimize using ‘webMethods Business Process’
Thanks you very much!
Hello Thanhnv,
Thank you for your interest in our guide. We are happy to assist you till solving your problem.
Concerning Sending data to optimize using ‘webMethods Business Process’:
After deploying the model, you have to run at least one instance of the business process to see your event in the My webMethods under unmapped events. So did you run any instance of the model after deploying? Please tell us what is your fix level for the process-engine, and optimize?
For the process-engine fix, go to IS admin page –> about –> Software –> Updates
For the optimize fix, go to the My webmethods –> about –> optimize for process tab.
To download the latest fixes you have to use SoftwareAG update manager. If you don’t have it you can download it using the SoftwareAG installer (the same way used to download webMethods component installation images). After installing the update manager you will use your SoftwareAG empower account to login. We will prepare a quick step-by-step guide and post it soon.
Note: if this is the first time to download a fix/Installation image from SoftwareAG you will have to login to the empower.softwareag.com with your account and accept the license agreement. Otherwise the update manager will give you a message that you are not authorized to download fixes.
Concerning using the Web service data collector, did you manage to extract the wsdl from the below address and create the client (as web service consumer) in the Integration Server?
http://datacollectorServer:12603/services/WSDimensionalDataCollector.wsdl
We are preparing more detailed steps in using the web service data collector for you.
Waiting for your feedback, to decide the next step in the investigation if the problem was not solved.
New article available for installing the fixes with SoftwareAG Update Manager. Here is the link: https://webmethodsexpert.com/2014/09/02/installing-fixes-with-softwareag-update-manager/
Hello Thanhnv,
More details are available now regarding optimize for process web service data collector.
Here is the link:
https://webmethodsexpert.com/2014/09/09/webmethods-optimize-for-process-web-service-data-collector-tutorial/
Best regards,
Hossam
Hi Hossam,
I am unable to configure Optimize for for process model.
Please help me. My process model is working fine only Optimize not able to configure.
I am trying to analyse my Process model who have input field action = insert
Hello Vir,
Assuming that the optimize for process components is done properly, we recommend that you check the following:
1. Go to the integration server — management — and click the home button of the package wmoptimize.
Make sure that the configuration of analytic engine host,port, user, password, and broker URL are configured.
2. In mws — Administration — my webmethods — system settings — servers– make sure that your server with the analytic engine host and ports are defined.
3. Make sure that you are choosing the right server from the drop down list in the top right corner of the page of mws — administration — analytics — KPIs — business data.
It is a good idea to check the integration server log file after sending the request from the business process instance (the logged fields are checked).
Best regards,
Hossam
Thanks Hossam for the good information
Hello Expert please help on config optimize.
we have install optimize. after config the analytic engine I am unable to view the process model at Business Process.
Hello Vir,
If the process instances in mws — monitoring — process instances, or the definition of the business process in the mws — administration — business — business process don’t exist, please check the server name in the drop-down list in the upper right corner of the mws (below the logout link). In both cases you must choose server name which is configured with the integration server parameters. Make sure that you define the integration server a long with the analytical engine server in mws — administration — my webmethods — system settings — servers. And press the button check server to make sure that the IS is up and running (you should see green square beside the server name).
Note: you will not be able to see the process instance or business processes definition if the IS is down.
Hope that this solve the problem.
Best regards,
Hossam
Thanks Hossam for providing the usefull information. everything is working fine.
I have one more question
if we have multiple IS do we need to install optimize for each server.
Hello V,
I’m glad to know that it is working fine now.
Because the IS is getting the info from the database. So the answer will be as follows :
1. If you have more than an integration server running independently (not in cluster), then the answer is yes, you have to define each is in my webmethods as each IS is using its own database.
2. If your integration server are in cluster, this means that all of them are using the same database so you can define only one and you will be able to see all the results.
Note: if the configured Integration server is down you will not be able to see the results, so if you have a load balancer in front of the integration server, it is a good idea to use the load balancer address instead of the IS.
We are looking forward answering your future questions.
Best regards,
Hossam
Hi Expert,
I need help on creating event map. my document structure is as follow
Record
employee
Address
addressLine1
addressLine2
here Record is root document inside Address is separate document.
I want to make employee as dimension. but unable to make it as I am getting separate event for address that don’t have employee field.
Please help me handle to such case.
Hello V,
Did the employee field is a part from the document in the unmapped events before configuring it? Please tell me the type of each field in the document (dimension, fact, transaction).
Thanks,
Hossam
Yes
Employee is part of Document. I unable to attach screen shot here.
and created Employee as Dimension
Hello V,
I got your point. I think you are using the logged field in the process step to send the info for optimize. The business process is sending the root document, and the sub document as two separate events. To overcome this problem is suggest one of two options:
1. Create a new document (all data in the same level) as output of your business process step and mark it as logged field. The advantage of this that you will have a specific document with the data you want without affecting the business data. Because sometimes you will need to make some calculation before sending to optimize to support new statistics requested from business, so this way will give you the flexibility to add the field in your document without changing the document used in the processing of your business.
2. use the web service data collector to send the data, it is covered in our website. This way gives you the same advantages of option 1.
I would like to know what is the statistics you need to get from your example?
Best regards,
Hossam
Thanks Hossam.
for your great information.
Thanks Hossam.. This is really nice work. I could find anywhere as good as this.
Thank you Tanveer, we are glad that you find it interesting.
Regards,
Hossam
Hi Hossam,
I am working on 9.8 Optimize I have configured everything working as expected now I want to migrate Optimize related entities ( KPIs rules etc) for particular Process. How I can achieve that I tried to configure deployer but not able do that.
Please provide some light on it.
Regards,
V
Even though i have given analytical engine host details correct, it says server unavailable, why is it so?
It’s an remarkable piece of writing in favor of all the
online users; they will get benefit from it I am sure.