Run the sample

In "Build in yourself" we already completed the execution of the customer management solution executed by the Case  Manager and the BPM System. For the handling of human tasks we used the Case Manager Client for the ACM - and the BPM Portal for the BPM human tasks. In this chapter we will use the Unified Client to display and work on tasks from a common Task List widget.

This is done in following sequence:

  1. Verify pre-requisites
  2. Verify ACM Inbasket and create BPM Saved Search
  3. Configure the Inbasket and Unified Inbox

Federated Task List

1 Pre-requisites

Note
Throughout this document you'll be asked to enter the url for the ACM - or the BPM Server. Often you see existing links, where fmtc5031 relates to the ACM Server, while fmtc5168 is the hostname of the BPM server.

From an installation and configuration point of view we need to have following pre-reqs as part of the cross-cell setup and solution installation available:
  1. Add a LDAP repository to the ICM Server. For more information refer to Integrating with IBM Business Process Manager.
  2. Add a LDAP repository to the BPM Server.
  3. Configure single-sign on; share LTPA keys between servers, i.e. establish it on the ACM as well as BPM Server. For more information refer to Exporting the LTPA key from Content Engine.
  4. Register BPM Widgets in the Case Manager Server. For details see Registering BPM Widgets.
  5. Create a Federation Domain - see below.
  6. Import and deploy the BPM process application.
    You need to do this if you just want to run the sample, but not to "Build it yourself".
    See Import the BPM Process if familiar already  and  Create and activate a snapshot and make it the default on this.
  7. Import and deploy the ACM solution.
    You only need to do this if you just want to run the sample, but not to build it.
    See Import the ACM Solution if familiar already and Extend case to create and test a case task that runs a BPM process on this.

1.1 Create a Federation Domain

To create federation domains in IBM BPM, the AdminTask createBPMApiFederationDomain is provided. It was introduced in BPM Version 7.5. The command is documented in the BPM  InfoCenter. Here are the sample commands to add federation domains on cell level using cell targets. The domain ICM will only contain IBM Case Manager, the domain BPM_ICM will contain both IBM Case Manager and IBM BPM.
  1. Open a wsadmin prompt using
    PROFILE_HOME/bin/wsadmin -lang jython
  2. Create a federation domain that contains the IBM Case Manager system
    AdminTask.createBPMApiFederationDomain('[-name ICM -addTarget [[ICM_CELL NAME "" "" ""]]]')
  3. Create a federation domain that contains both the IBM Case Manager and the IBM BPM system
    AdminTask.createBPMApiFederationDomain('[-name BPM_ICM -addTarget [[BPM_CELL NAME "" "" ""][ICM_CELL NAME "" "" ""]]]')
    where BPM_ICM is your federated domain name.
  4. Save the configuration
    AdminConfig.save()
Let's collect the info we need for this setup: BPM user name tw_admin  / password tw_admin, the BPM cell name fmtc5168Node01Cell and ICM cell name P8Node01Cell.         

The resulting wsadmin command for this test environment: .

  1. On BPM server (fmtc5168), navigate to C:\IBM\WebSphere\AppServer\profiles\ProcCtr01\bin
    wsadmin.bat -lang jython -username admin -password admin AdminTask.createBPMApiFederationDomain('[-name BPM_ICM -addTarget [[fmtc5168Node01Cell "" "" ""][P8Node01Cell "" "" ""]]]')
  2. Save the configuration
    AdminConfig.save()

    The result should look like similar to this:
    Create Federation Domain

  3. Verifying federation domains
    Use the listBPMApiFederationDomains command to list all federation domains for your environment. This command lists all federation domains that exist for a server or a cluster. The Federation API allows you to display processes and tasks created in Process Designer and Integration Designer in the same task list. The Federation API is automatically configured with your product as part of the REST Services Gateway application. If you want to change that configuration for your environment with multiple deployment targets, use wsadmin commands to create and manage federation domains. If the application server is not running, supply the -conntype NONE option when running this command.

    Jython example for listing a server's federation domains:
    AdminTask.listBPMApiFederationDomains('[-nodeName myNode -serverName myServer]')
    Since we want to see the server scope, we need to omit all parameters. The resulting wsadmin.sh command for this test environment:

    On BPM server (fmtc5168), navigate to C:\IBM\WebSphere\AppServer\profiles\ProcCtr01\bin. Enter The result should look something like this for a BPM_ICM and a BPM_ACM Domain:
    Verify Federation Domain


2 Verify ACM Inbasket and create BPM Saved Search

In the task list of the unified client we want to display business attributes for endusers to organize their workitems. In ACM Case Manager this is done via attributes of the inbasket, in BPM we use Business Data Search variables.

2.1 Identify business attribute for BPM- and ACM human tasks

Open the Process Designer and access the process application CustomerManagementAirLine [CSMAL]where these business attributes are defined.

  1. Select the  ComplaintAnalysis_BPD > Variables > Details: CustomerName.
  2. Under Business Data Search check Available in Search, and define the Search Alias as CSMAL_CustomerName.
    Business Data Seacrh

    In a similar way is the ComplaintID, ComplaintStatus, and ComplaintType defined.

  3. The corresponding variable name of the BPM attribute CustomerName is CSMAL_CustomerName which can be retrieved from the Case Properties in the Case Manager Builder.
    CSMAL Customer Name


2.2 Define the structure of the Task List of the Unified Inbox

To display the same attributes in the unified ACM and BPM task list we need to define the structure of the columns to be displayed.

Verify ACM Inbasket

The Case Manager Client columns for the Role Agent specified are shown in the screenshot below.
Agent Inbasket


Create and share a Saved Search (BPM query)

As you will likely want to provide the same customized business space to many users, you need to share the saved searches. Only administrators can share saved searches using the BPM Portal. Complete the following steps to create and share a saved search which filters process apps for the acronym CSMAL and display of the business CustomerName, ComplaintID, and ComplaintStatus.

  1. Login to BPM Portal using the url http://localhost:9080/portal/ using a userid tw_admin and password tw_admin.
    The My Tasks page and the Inbox opens. The default column names are shown below.

    BPM Inbox


  2. Click Show Search on the far right.
    Show Search

    The Search Condition Window opens.
    One Search Condition with Task Status  - Equals - New or Received is listed.

  3. Define Saved Search to filter on all task that belong to the process app with acronym CSMAL.
    Press the Add New Condition and
    Replace << Choose One >>  by Process App, keep Equals as comparison parameter and enter CSMAL as acronym name for the process app to be used in this filter.

    Add new condition

    Press More to show the available columns.
    The search conditions that you specify here are applied as filters in Business Space. You can specify additional filters using the column headers in the list widgets.

  4. Select the business attributes of interest previously identified as search parameters. Identify them in the Candidate Columns list.
    Select Business Data: CSMAL_CustomerName, CSMAL_ComplaintID,  and CSMAL_ComplaintStatus.
    Press the ">>" to move these attributes to the Columns to Display area.
    Afterwards move them up according to the sequence below following the Instance:Instance Name.
    More Columns to Display

    Note
    Although you can define default sorting criteria and number of items per page for the saved search, these are not used in Business Space but in Process Portal. However, the number of items is automatically fitted to the view by default.

  5. Set the flag for Organize by Task.
    This property determines whether the saved search is available in the Tasks widget or in the Processes widget (flag not set).
    Specify Chose Columns to Sort On with Primary: Column Name: Instance Name and Sort Order: ascending.

    Currently you can't save this search. After you have executed this search (query) the first time and you are satisfied with the results the Save Search is displayed again.

  6. Press Search to run the search and check the result.
    Modify the search until your are satisfied with the result set and arrangement of columns.
    Save Search

  7. Click Save Search to save the search.
    An Explorer prompt pops up.
    Enter the name of the search (query table) using a prefix and name, everything in capital letters. Enter the name CSMAL.ACMBPMTASK_QT.
    CSMAL.ACMBPMTASK_QT
    Press OK.

  8. Share the search with other endusers.
    Click the CSMAL.ACMBPMTASK_QT.search shown in the Navigator again.
    Click Show Search.

    When you are satisfied with the search results and specification click Share this Search to make it available to all users.

    Share Saved Search

    Confirm to share the saved search with all users.
    Confirm Share Saved Search

To use the Saved Search in Business Space you will have to update the Tasks List widget settings. This is covered in section Configure Unified Inbox. Before we do this we have to configure the Inbasket in the ACM Server to link with the BPM process application.


3 Configure the Inbasket and Unified Inbox

Under pre-reqs we registered the BPM widgets to the ACM server, as Business Space in this setup runs on the ACM Server.

3.1 Configure the Inbasket

Configure the in baskets of the ACM solution for usage with the ICM REST API.
  1. Login to WorkplaceXT (context root is /WorkplaceXT) as P8Admin using the url http://localhost:9080/WorkplaceXT
  2. Select Tools > Administration > Process Configuration Console
    WorkPlaceXT Process Administration Console

  3. Select your connection point and click the icon for Connect (is a key icon in the palette)
    Connect

  4. Under Work Queues click CSMAL_Agent
    WorkQueue CSMAL_Agent

  5. In the dialog switch to In-baskets.
  6. Select ICM Role In-basket AgentInBasket. Switch to Custom Attributes.

  7. Enter the new attribute OneBPMQuery to string and CSMAL.ACMBPMTASK_QT.
    Enter a second new attribute OneBPMSolution to string and CustomerManagementAirLine.
    Configure_the_Inbasket_and_UnifiedWorkQueue CSMAL_Agent OneBPM

  8. Press OK.

  9. Under User Queues click Inbox.
  10. In the dialog switch to In-baskets.
  11. Select the ICM Personal InBasket CSMAL_MyTasks. Switch to Custom Attributes.

  12. Enter the new attribute OneBPMQuery to string and CSMAL.ACMBPMTASK_QT.
    Enter a second new attribute OneBPMSolution to string and CustomerManagementAirLine.
    Enter a third new attribute OneBPMPrefix to string and CSMAL_.
    Inbasket MyInbasket OneBPM

    Press OK.

  13. In the palette click the icon to commit the changes.
    Commit Changes

    Confirm to Commit Changes and wait for successful completion.
    Commit Changes Success

Manage Roles

Finally we need to assign users to the solution role Agent as described in Manage Roles. (Might have been done already when you performed the "Build it yourself").
  1. Login to Case Client (context root is /BusinessSpace) as P8Admin.
  2. Click Go to spaces. Click CustomerManagmentAirLine.
  3. Click Manage Roles.
  4. Click Add Members.
  5. Search for users in our shared LDAP directory. Click Add, then OK and OK

3.2 Configure Unified Inbox

The ACM system automatically configures a space called CustomerManagemenAirLine, with the same name as the solution, but for the display of case task only. Therefore we want to create a new space based on the Unified Inbox Template.
  1. Logon to the ACM Case Client (BSpace http://localhost:9080/CaseClient) as a user with administrative rights, in our case buser1.
    Note
    P8admin is not registered to shared LDAP, same as the tw_xxxx users in the BPM System.

  2. Press Manage Spaces > Create Space.
  3. Enter your own name, here Unified Inbox ACM-BPM and create a new space using the template Integrated Inbox.
    Create Space

    Press Save.

  4. Share the new Space with other users.
    Next to the Unified Inbox ACM-BPM select Actions > Share.
    Share Space
  5. Search for and select the users you want to allow to edit the setting. Press Add to Edit. Press Save.
    Share Space with Users

  6. Click the new space to edit it.
    Press Edit Space.
    For the page Inbox open the small arrow for the drop-down list, i.e. not Actions.
    Select Edit Settings.
    Edit Edit Settings


  7. The Inbox window with Content tab opens.
    From Select list to display chose the federation domain, which restricts the list of potential task list / query filters.

  8. Press Add… .
    The Add Lists window opens. From the drop-down list select the process application CustomerManagementAirLine.
    The Available Lists (Type of filter) shows the ones applicable for this federation domain. Select BPM_ICM.CSMAL.ACMBPMTASK_QT.

    Note
    Select the federation name BPM_ICM as created under Create a Federation Domain and not default as shown below.
    Add Application

    Press OK. Press OK.

  1. Ensure that the list to display in the BPM_ICM.CSMAL.ACMBPMTASK_QT.
    Arrange your custom properties in such a way that they are in front of the list, i.e. move the attributes
    CSMAL_CustomerName, CSMAL_CompaintID,  and CSMAL_ComplaintStatus up and down in a similar way than shown below.
    Attributes Sequence

    As a result of this, when you see the Inbox of the Business Space managed by the ACM Server you see the unified task list in a similar way than the saved search in the BPM Portal.
    Press the twisty next to All and select the CSMAL.ACMBPMTASK_QT BPM query (saved search).
    Query Table

  2. Select and start any task that you have in the Inbox.
    BSpace' page navigation switches to the Work on Tasks page and displays e.g. the Analyze Complaint Task Coach.
    Work on Tasks

    Verify the data and set the ComplaintStatus from verified to accepted. Press Ok.

  3. Press Save. Press Finish Editing to save your settings.
    Save Finish Editing

Congratulations !!! You have successfully performed this sample on the federated or unified client !!!




Known issues at the time when the sample was created
  1. Troubleshooting IBM Business Process Manager: "403 BMWPX0006E: The URL you tried to access through the proxy is not allowed"

    This error (HTTP 403 Forbidden) means that Internet Explorer was able to connect to the website, but it does not have permission to view the webpage. Build additionalEndpoints.xml file with 9443 as port numbers.
    Follow the instructions in the technote Adding proxy target URLs.

    <?xml version="1.0" encoding="UTF-8"?>

    <tns:BusinessSpaceRegistry xmlns:tns="http://com.ibm.bspace/BusinessSpaceRegistry" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://com.ibm.bspace/BusinessSpaceRegistry BusinessSpaceRegistry.xsd ">
      <tns:Endpoint>
        <tns:id>{com.sample}CoachForm</tns:id>
        <tns:type>{com.sample}CoachForm</tns:type>
        <tns:version>1.0.0.0</tns:version>
        <tns:url>https://fmtc5168.boeblingen.de.ibm.com:9443/teamworks</tns:url>
        <tns:description>Location of coach forms</tns:description>
      </tns:Endpoint>
     
      <tns:Endpoint>
        <tns:id>{com.sample}CoachFormPortal</tns:id>
        <tns:type>{com.sample}CoachFormPortal</tns:type>
        <tns:version>1.0.0.0</tns:version>
        <tns:url>https://fmtc5168.boeblingen.de.ibm.com:9443/portal</tns:url>
        <tns:description>Location of coach forms</tns:description>
      </tns:Endpoint>
    </tns:BusinessSpaceRegistry>


  2. BPM Business Space cannot retrieve JSON objects
    When you configure the Unified Inbox you have to select a configured Federation Domain - BPM Query.
    Select Federation Domain BPM Query

    Doing so the BPM System will use the Federated Domains created and retrieve the solutions and queries (BPM Saved Search and ACM Inbaskets). As part of this it uses a REST API call to th ACM System to retrieve the solutions / process apps.

    https://fmtc5031.boeblingen.de.ibm.com:9443/CaseManager/P8BPMREST/p8/bpm/ICMRole/P8ConnPt1/v1/processApps

    The ACM Rest API call returns and empty Json object or could not be used to configure the unified inbox properly.