Generating historical data

It is possible to generate historical data with an IBM® Business Process Manager utility to help you simulate processes using business data versus the timing data that is normally available with simulations.

About this task

Normally, you would run instances of your processes in a production environment for some time in order to generate and store meaningful performance data in the Business Performance Data Warehouse.

Procedure

Note: Before generating historical data, be sure to use autotracking, specify the business data (variables) to track, and send tracking definitions to the Business Performance Data Warehouse.
To generate historical data using a simulation analysis scenario:

  1. From the IBM BPM library, double-click a simulation analysis scenario to open it. For this procedure, use the Case Management sample scenario. In the scenario, notice that you are generating data for one version of a process called Billing Disputes. The Optimizer generates data as if 100 instances of the process actually ran, to match the Max instances setting in this scenario. You can learn more about the Billing Disputes sample process when you review the sample simulations.
    Note: If you select multiple versions in the Simulation Analysis Scenario window, this utility generates data for all of the versions that you include. However, in the generated data, you cannot specify different data per version. If you want to generate different data per version, run the utility and alter the data as needed for each version.
  2. From the IBM BPM main menu, click Scenario > Generate Historical Data.
  3. In the Generate Historical Data from Simulation window box, set the Instance and Task ID values to previously unused ranges (this is necessary in order to avoid data overwrites where data has been previously generated for the selected scenario). If this is the first time data has been generated for this scenario, you do not need to change these values.
  4. Accept the default Business Performance Data Warehouse option as the Destination for generated data to go ahead and edit the local XML file that IBM BPM generates. Click File if you want to save initial data to the local XML file, open and edit the XML file in your favorite editor, and then come back to this window box later to generate and send the historical data to the Performance Data Warehouse.
  5. Click the Edit xml file link to edit the local XML file by providing specific values for the steps in the process included in your scenario. If the XML file exists, the Optimizer opens the file. If the file does not exist, the Optimizer creates a file and then opens it.

    The XML file has the same name as the simulation analysis scenario that you are using to generate historical data. In the previous example, you can see all the data that will be tracked, including the default Key Performance Indicators (KPIs) and the tracked fields for the process included in the sample scenario (Billing Disputes).

  6. Scroll through the XML file and provide values to initialize the data for each activity and flow component in the process.
    1. For example, you can initialize the customer name for the Gather Dispute Information activity using standard JavaScript as shown in the following example.
      <flowObject id='bpdid:5e6cd2e3efad952:29c8c36a:1138c758934:-7f5c' name='Start'>
      </flowObject>
      <flowObject id='bpdid:5e6cd2e3efad952:29c8c36a:1138c758934:-7f4d' name='Gather Dispute Information'>
      		<!--Activity-->
      		<!--<assignTo>'bpd Online Call Center West'</assignTo>-->
      		<var name='name'>
      		var arr = new Array('BJR Supplies', "Majestic', 'ABC Inc', 'Acme');
      		arr[Math.floor(Math.random()*arr.length)];
      		</var> 
      	</flowObject>
      The JavaScript randomly iterates through the names in the supplied array.
    2. You can provide a simple calculation to determine the totalActualAmount and totalRequestAmount for the Gather Dispute Information activity, as shown in the following example.
      <var name='totalActualAmount'>
      			500 + Math.floor(75 * (Math.random()-.5));
      </var>
      
      <var name='totalRequestAmount'>
      			500 + Math.floor(75 * (Math.random()-.5));
      </var>
      	
    3. You can also establish the process flow. For example, you can provide algorithms to determine the values for variables like researchRequired and approvalRequired as shown in the following example.
      <var name='researchRequired'>
      var s;
      if (Math.random() &lt; .90) {s = 'Yes';} else {s = 'No';}
      s;
      </var>
      
      <var name='approvalRequired'>
      	var s;
      if (Math.random() &lt; .60) {s = 'Yes';} else {s = 'No';}
      s;
      </var>
      	
    4. You can specify the flow of the process according to values of these variables. Scroll down to the gateways and indicate what should happen for each condition. As in the following example, you can establish what should happen for the Yes condition for the Research Required gateway.
      <flowObject id='bpdid:5e6cd2e3efad952:29c8c36a:1138c758934:-7be4' name='ResearchRequired?'>
      		<!--Gateway 1, conditions needed:1-->
      		<conditions>
      			<condition name='Yes'  bpmnId='bpdid:5e6cd2e3efad952:29c8c36a:1138c758934:-7be4' 
      			researchRequired=='Yes'</condition>
      		</conditions>
      </flowObject>
      <flowObject id='bpdid:fc87b608e236270a:-6209de48:113b7dd45d9:-7beb' name='Researching'>
      </flowObject>
      <flowObject id='bpdid:fc87b608e236270a:-6209de48:113b7dd45d9:-7beb' name='Submitted'>
      </flowObject>
  7. When your edits are complete and you are ready to generate and send data to the Business Performance Data Warehouse, click Finish.
    Note: If you're simulating a large number of instances (for example, 50,000 instances) generating historical data can take up to 10-15 minutes per scenario. If you notice slower performance, do not perform any other work while this utility is running.

Results

IBM BPM Optimizer generates historical data using the specifications from the simulation analysis scenario and the values from the XML file and sends the data to the Business Performance Data Warehouse. (Be sure to set the Performance Data Warehouse as the destination when you are ready to generate and send data.)
Note: If you change the structure of the processes that you are analyzing or if you change the processes included in the simulation analysis scenario, you must delete the existing XML file before generating historical data for the revised processes or scenario.

What to do next

After the data is sent to the Business Performance Data Warehouse, you can perform historical analyses for the included processes.