Tuesday, February 24, 2015

IBM BPM Client Side Human Service vs Heritage Coaches

Most of the IBM BPM projects solely depends on human services or coaches which leads to many of server performance issues and PMRs. And IBM took a smart move by introducing client side human service which takes out more than 50% the server load and pushing everything to client machine and browser. Server pushes all coaches in a single call to client browser and its browser’s responsibility to load the coaches in order, coach navigation and respond back to server after completion. Coach performance and rendering will vary based on end client machine configuration(Web browser version,CPU and RAM size).

This is a wonderful solution if you have high end browsers IE 9 or higher version and latest version of Chrome or Firefox. If you have IE 8 or lower version, client side human service is NOT for you.

Server side human service or Heritage Coaches,

Client and server interaction of heritage coach.



Client side human service,
System pushes all the coaches to client browser, once all coaches are completed and then browser pushed data back to server. It reduces no of server calls and let the high end browser’s to do the job for you.



There are few limitations, if you close the browser before reaching the end point then you may lose all the data. And we have an option to save the execution context upon each coach completion, but it will increase no of calls to server.



Combination of Client side and heritage coaches,



Combination with save execution context scenario,


Wednesday, October 15, 2014

How IBM BPM Coach framework is being loaded in client browser?

IBM BPM coach framework loads process app and associated toolkits’ java script libs and then it loads dojo framework scripts. After that it loads all coach view definitions, CV data view binding definitions and then it loads html body with all coach view default <DIV> tags to coach views.
You will find the following codes in html source code.

Load process app and toolkit JS libs.



Above piece of code loads all JS webfile assets from process app and associated toolkits.

Then framework loads dojo framework packages,




And then coach framework load coach view definitions, sample coach view source of textbox CV.



Then, it loads coach view binding definition.



You can find runtime binding rest service url, visibility, label and etc.

And then it loads the html body



In the above code, you can find the data type and data config.
Data type – it refers to particular the coach view definition
Data config – it refers to the binding and visibility definition of coach view.

Coach framework loads application JS libs, dojo packages, dojo libs, coach view definitions, coach view config’s and finally it load html body with coach view div to link CV definition and config.
A client browser takes care of loading coach views and binding of variables using dojo framework.

Friday, September 26, 2014

Can I develop a custom inbox using Coaches?

Almost 90% of new IBM BPM adopters are asking this question to implementers rather asking the product owner (IBM) before buying this product. Does it worth spending money on developing custom inbox/portals? Honest answer is big NO.

Out of the box portal is JSP page which directly interacts with DB using AJAX listeners. Also it has more features like task assignment, task auto claim, task routing and etc. OTB portal has dynamic inbox component, if another user picks a task which assigned to group, listener senses it and removes that task from user inbox as it is currently owned by other user. Task list in your inbox is more dynamic with lots of event listeners which directly interact with DB seamlessly.

What if I develop a custom inbox using coaches? Either I can query the database to get the list of tasks which are available for the logged in user or use TWSearch API to find out list of active and eligible tasks for the logged in user. Can I build a dynamic task table? Yes, but it is very complex and added more and more events listeners in on coach, it will slow down the coach performance and it can lead to script time out errors in IE(you can’t run more than 500k lines of script )

If I go for DB query approach, I need to query DB for every time and it does not seem to be right option if you want to build custom inbox for larger group. If it is very small group of people, it is okay. If you have 100+ concurrent users???

What if I user TWSearch API? Few organizations, they don’t allow developers to directly interact with product DB. In such cases, you may have to go for this option. It is like adding one more wrapper to DB approach. Instead of directly interacting with DB, you are using API’s to convert your code into DB scripts and get the response back. It is does not seem to be right option if you have larger group.

 Forget about data population for now, if I think about coaches. It is always slow performers and building dynamic view/table using coach. It will be over head for browsers to run thousand lines of client side scripts in less than a second.

Last thing, if you get into any issues with performance or product related issues. IBM won’t directly support your custom inbox and raising a PMR and get it fix will take million years.

Considering above drawbacks, I won’t really recommend it to anyone. But there are many customers willing to try this and to give up after spending lots of money on product and coach development. 

Thursday, September 18, 2014

What's new in IBM Business Process Manager 8.5?

Process Portal

Access insightful, concise information from redesigned default dashboards if you are a process owner or team manager

·Visualize process performance issues more easily, and in real time. For example, instantly see overdue and at risk work.
·Take corrective actions directly from the dashboard to improve business process outcomes or balance workloads.
·Collaborate with team members and contribute to instance activity streams without leaving the dashboard.

Experience a highly effective and collaborative work environment with improved social capabilities

·See whether other users are logged in to Process Portal to identify and contact an expert to move work forward.
·Keep up to date with posts to the @Mentions stream. Unseen posts are counted and marked, and streams are automatically refreshed.
·Easily find and choose the right experts to send an invitation to collaborate on tasks.
Work more efficiently and effectively as process participants
  • Complete tasks in environments that are integrated with IBM Connections and IBM Domino® Server.
  • Decide which pages are shown in the Process Portal interface by reordering the displayed and hidden tabs.
  • Copy URLs for inclusion in chat sessions, emails, and documents.

Process Designer and Process Center


More efficiently design dashboards for Process Portal users

·         Modify and extend the newly designed, default dashboards using tools that are in Process Designer. 
·         Create custom, localized dashboards with the reusable components that are in the Dashboards toolkit: interface elements, implementation services, and data objects.

More easily design Coaches

  • Use Ctrl + SPACE code assistance to see the available Coach API when you are entering JavaScript code. JavaScript code and HTML code now feature syntax highlighting.
  • Add variables to custom HTML items that are resolved when the HTML page is generated. For example, you can assign a user name as a variable so that each user’s name is displayed on the HTML page.
  • Set the visibility of a Coach View when you are editing it in a Coach.
  • Call classes and functions that are in Dojo 1.8.3.
  • Use Tab and Table stock controls that feature improved runtime performance. This enhanced performance is for all browsers including Microsoft Internet Explorer 8.

Enable groups of users to interact with processes more easily

  • Define organizational structure of teams by adding managers that teams report to.
  • Delegate the specification of a team's members to a team retrieval service that dynamically returns a list of users that is based on parameters.
  • Use a team filter service to specify who must work on a task from the originally assigned users.
There are also terminology improvements: participant group changed to team in IBM Process Designer, Process Portal, and Process Admin Console; milestone changed to phase in Process Designer.

More easily integrate services

  • Optionally select to cache the results of an integration service. The results are cached according to unique input variable data.
  • Add a new web service configuration on the Servers tab of the Process App Settings editor. You can reuse the new web service configuration from multiple web service invocations.
  • Configure web services with policy sets that are reusable.
  • Use variables to add SOAP headers to an outbound message request and automatically retrieve SOAP headers from an incoming response message. Using this method, you can work with SOAP headers whether or not they are defined in the WSDL definition.

Rename business objects, their attributes, and variables with refactoring support

See how renaming a business object will affect the objects that refer to it before you rename the business object.

Correlate on top-level properties of variables when working with intermediate events

When you are designing intermediate events that are attached to undercover agents, you can now correlate on an individual top-level property of a variable, instead of only on the variable object.
Consistently interact with documents in the internal IBM BPM document store and external CMIS-compatible ECM systems
  • IBM Business Process Manager supports Enterprise Content Management (ECM) integration with IBM FileNet® 5.1 Content Manager, IBM Content Manager 8.4.3, Microsoft Sharepoint 2010, and Alfresco Community 4.2.
  • ECM Coach Views now work with the internal IBM Business Process Manager document store.

More easily work with processes that were originally created in Blueworks Live™

  • You now can view Blueworks Live processes in Blueworks Live when you are subscribing to the processes from IBM BPM.
  • You now can search to find specific spaces and processes when you are subscribing to Blueworks Live processes.
  • Blueworks Live activity details that are not imported into another field are now imported into the documentation field, including business owners, experts, systems, suppliers, inputs, outputs, customers, risk, custom fields, problems, and existing documentation.
  • Some Blueworks Live values are automatically imported into KPIs: cost, work time, wait time, total time, and value add.
  • You now can check for updates to the original Blueworks Live processes from IBM BPM.

Enjoy more flexibility with enhanced importing

You can now import BPMN files into an existing process application instead of creating a process application that is based on a BPMN model.

Extend your ability to administer snapshots

·         You can now specify which snapshots recognize and respond to a message event.
·         You can now delete unnamed and archived snapshots of a process application using the new BPMSnapshotCleanupcommand.
·         You can schedule IBM Process Center to automatically delete unnamed snapshots.

Use governance processes to provide approvals for snapshots that are installed by wsadmin commands

Installations that are initiated through BPMInstall and BPMCreateOfflinePackage commands now can use a governance process. With a governance process, you can attach rules or approvals to the installation of a snapshot on a server.

Process Server

Experience more options for managing applications and artifacts by using wsadmin commands

  • Update system toolkits with interim fixes by using the BPMUpdateSystemApp command.
  • Administer the new IBM BPM document store with the following commands:
    • maintainDocumentStoreAuthorization
    • getDocumentStoreStatus
    • startDocumentStoreMigration
    • maintainDocumentStoreTrace
    • updateDocumentStoreApplication

Monitor events with the centralized Failed Events Manager

The Failed Event Manager is now available from the administrative console under your deployment environment.

Customize a context root prefix across a deployment environment to simplify administration

Experience easier deployment-environment administration with a custom context root prefix configuration. You can now use theBPMConfig command with the -update parameter to create a single context root prefix configuration, minimizing the initial costs, reducing security costs, and hiding context root management issues from users.

Remove durable subscription messages from your database

Using the BPMDeleteDurableMessages command, you can remove old durable subscription messages from the LSW_DUR_MSG_RECEIVED database table. You can use this capability to trim the size of the table periodically.

Integration Designer

Speed setup time with simplified installation

You can now install IBM Integration Designer and the IBM Process Server test environment from the launchpad:
  • Select the specific features in IBM Integration Designer to install.
  • Specify the user names and passwords for cell administrative account fields and deployment manager account fields while you are installing the Process Server.
  • Specify the user name and password for database connectivity.
In addition, the options IBM Integration Designer for WebSphere Enterprise Service Bus and IBM Integration Designer for IBM Business Monitor are no longer available.

Enjoy improved flexibility with custom XPath extension functions

Custom XPath extension functions can be used in BPEL processes. You now can create your own XPath extension functions instead of using only predefined functions. Custom XPath extension functions are helpful if you are migrating from a different product and want to use existing functions with IBM BPM.

Mobile

Develop mobile applications with the IBM Business Process Manager V8.5 and IBM Worklight® bundle

IBM Business Process Manager Advanced and IBM Business Process Manager Standard V8.5 now include a nonproduction license entitlement for IBM Worklight Enterprise Edition as a supporting program. You can download Worklight Enterprise Edition from Passport Advantage® based on your IBM BPM entitlements.
Worklight Enterprise Edition offers organizations a wide set of services to help manage, develop, and deploy functionally rich, cross-platform mobile applications. When you combine Worklight Enterprise Edition (nonproduction license entitlement) with IBM BPM, you can do the following tasks:
·         Develop custom hybrid mobile applications that extend IBM BPM experiences to smartphones and tablets.
·         Use IBM BPM APIs and Coaches in custom mobile applications.
·         Use authentication, notification, and analytics capabilities from Worklight Enterprise Edition.
·         Use the Worklight App Center private application store to test the distribution of your application inside your enterprise.
When you are ready to move your application to a production environment, you can do so by purchasing either a Worklight Enterprise Edition license or a Worklight Consumer Edition license, depending on your needs.

Performance Data Warehouse

Control the size of the Performance Data Warehouse


Delete records from the Performance Data Warehouse by using the new prune command, which is part of the Performance Data Warehouse tool (perfDWTool). By pruning records that you no longer need, you can keep the Performance Data Warehouse from becoming too large.

Sunday, December 29, 2013

Manage orphaned tokens after In-flight Instance Migration

There are two ways to manage orphaned tokens in IBM Business Process Manager Editions,
  • Managing orphaned tokens with a policy file
  • Managing tokens using the REST API Client and Process Inspector
Procedure to managing orphaned tokens with a policy file,
  1. Generate a policy file using the wsadmin command. Use this XML file during the migration of active process instances. The wsadmincommand compares two snapshots and produces an XML file listing all the steps in the BPD where orphaned tokens could potentially occur. The command generates an XML representation of all possible locations of orphan tokens in a policy file.
  2. Edit the policy file using a text editor.
    1. Go through the list of potential orphaned tokens and decide whether each token should be moved or deleted. By default, a delete action is specified for each token. You can change delete to move.
    2. When you are moving a potential orphaned token, you need to specify the target activity using the activity acronym. In Process Designer, select the target activity to which you want to move the orphaned token. From the Properties view for that activity, copy its system ID (which has a value like bpdid:b999d6be478ef107:21bb67e6:134387269e4:-7ff4) to your clipboard. The ID is case sensitive.
    3. Add a move instruction to the policy file in place of the delete instruction that is there by default. Paste the token ID into the instruction. Here is an example of a simple move instruction:
      <process bpdId="27d4fbbc-0175-4201-80d1-132100aca191" name="Top-level only">
          <step id="bpdid:b12b770ce3d97e30:3a0ee98f:133c7d2dc73:-7fe0" name="B">
            <move targetStepId="bpdid:b12b770ce3d97e30:3a0ee98f:133c7d2dc73:-7ff4" name="A"/>
          </step>
      </process>
      The policy file will not let you move a token to an invalid location. See Managing orphaned tokens for some general advice about moving potential orphaned tokens.
  3. Optional: You can add an attribute to suspend the process for any activity in the policy file. That attribute suspends the process instance after a token has been deleted or moved so you can edit the data before resuming the instance. To use the suspendProcess option, set the attribute to "true".
    <move targetStepId="bpdid:b12b770ce3d97e30:3a0ee98f:133c7d2dc73:-7f72" name="E1" suspendProcess="true"/>
    The attribute suspendProcess="true" applies only to active instances. Inactive instances are not affected by the attribute. If an instance is already suspended, after migration using the orphaned token policy file it remains suspended.
  4. From the Process Admin Console, select Installed Apps.
  5. From the list of snapshots, select the one to which you are migrating data.
  6. In the Migrate Inflight Data from Snapshot window, select a snapshot to migrate from, then browse to the location of the policy file and click Migrate.
  7. Look at the result in the Process Inspector to ensure that all orphaned tokens have been deleted or moved or to adjust any data values after migration.
Procedure to managing tokens using the REST API Client and Process Inspector,

To move a token to a new activity, complete the following steps:

  1. Use the Process Inspector in the Process Admin Console to inspect the currently running process instances and select the instance containing orphaned tokens that you want to move. Make a note of the process instance ID as well as the ID of the orphaned token, which will be shown in the execution call stack.
  2. Use Process Designer to identify the system ID of the activity where you want to move the orphaned token (the target activity). Record the complete value of that activity, including the "bpdid:" prefix.
  3. To move the token to a activity, in the REST API client, enter the following: :
    /rest/bpm/wle/v1/process/instance_ID?action=moveToken&tokenId=
    token_ID &target=target_step_ID[&resume=resume_value]
    The following identifies the parameters of the API:
    • instance_ID - the instance ID number of the process instance containing tokens to be moved
    • action - states the action to be taken (moveToken)
    • token_ID - the token ID number of the token you need to move
    • target_step_ID - the ID number of the new process step that you are moving the token to
    • resume_value - the action used to resume the instance after moving the token (set to "true" or "false"); the default value is "true"
  4. Press Enter to complete the move.
  5. The system returns one of the following response codes:
  • 200 = Success
  • 405 = Not Authorized
  • 400 = Server Error (unable to move token)
Deleting tokens using the REST API client
  1. Use the Process Inspector in the Process Admin Console to inspect the currently running process instances and select the instance containing orphaned tokens that you want to delete. Make a note of the process instance ID as well as the ID of the orphaned token, which will be shown in the execution call stack.
  2. To delete the token, in the REST API client, enter the following: :
    /rest/bpm/wle/v1/process/instance_ID?action=deleteToken&tokenId=
    token_ID[&resume=resume_value]
    The following identifies the parameters of the API:
    • instance_ID - the instance ID number of the process instance containing tokens to be moved
    • action - states the action to be taken (deleteToken)
    • token_ID - the token ID number of the token you need to delete
    • resume_value - the action used to resume the instance after deleting the token (set to "true" or "false"); the default value is "true"
  3. Press Enter to complete the delete action.
  4. On the Inspector tab of Process Designer, verify that the orphan token is now deleted.
To delete a token from a process instance, complete the following steps:
  1. Open the process instance in Process Inspector.
  2. In the Actions panel, click Delete Orphaned Tokens.