This document contains official content from the BMC Software Knowledge Base. It is automatically updated when the knowledge article is modified.
Remedy IT Service Management Suite
Remedy ITSM for OnDemand
BMC AtriumCore, any version above 8.x
The Compare activity ( see Comparing datasets by using the Reconciliation Engine ) is a seldom used type of task, but still useful in a wide range of scenarios.
Not only compares the contents of two datasets ( Source and Destination ), which is useful for things such as validating expected data versus discovered data or testing a new reconciliation process and generate a report out of it, but also gives you the option to execute workflows actions.
- For a given Compare activity, you can specify a Workflow Execution ruleset that can contain multiple Workflow Execution rules.
- Each rule operates against only one BMC Atrium class, and contains a qualification specifying criteria that executes an action. The qualification can compare attributes from both datasets.
- When the Compare activity runs and the qualification is met, a code you created for the rule is written to the CompareActionCode attribute in the instance you specify, either in the left dataset or the right dataset.
As an example:
We want to compare a source dataset (BMC.SAMPLE) and its destination (BMC.ASSET) and if the Company value matches 'Calbro Services', we will set the value for 'AdminPasswordStatus' to 'Enabled', because is coming as a NULL value from the source.
First, we must create the comparison job:
Now, to Edit the Compare activity we just created:
The first dataset you choose, 'Dataset1', will be the 'Left' participant, and Dataset2 will become the Right side. This is important, because when you define the workflow ruleset, you need to indicate on wich side will be executed.
As with any other job, you can add a Qualification ( if you want, for instance, to process one single class of data ) or leave it checked with the option 'Use all classes and instances'
Then, you have the exclusion rules. The comparison activity will check every attribute,and report their differences, if you don't care for data that you know it will be different, like 'CreateDate', or 'ModifiedDate', this is the place to enter the exclusions.
At this point, you may want to 'test & validate'. You can save the job as is so far, and execute it. It will not modify any data ( there is no action to it yet ) and once it was executed, you'll have the option to see the comparison log, as shown below:
Next, is the definition of the workflow execution ruleset.
Once you have validated the results, you will want to add the execution ruleset, and write up the workflow to execute. To create the Workflow Execution Ruleset you need to define the following:
The Name of your ruleset
The class is going to act upon
The execution side ( Left or Right, remember? )
Its execution code, or the 'trigger' that will execute the workflow
And finally, the qualification that will look for the matching records to be processed.
The last step is the creation of the workflow.
In this simple example, we are creating a filter with an execution order of 1000, ensuring that any filters not related to Compare activities are skipped:
Associated form: BMC.CORE:BMC_ComputerSystem (join)
Execution Options: Enabled | Submit, Modify, Merge | 1000
Run If Qualification: 'CompareActionCode' = "Test_BMC"
If Actions: Set Fields CURRENT TRANSACTION
'AdminPasswordStatus' = "Enabled"
Upon execution of the Compare job, the result will be that the 'AdminPasswordStatus' field has now a value of 'Enabled'
This example is simple, but the possibilities to use workflow in such a way are available with little effort.
For more information about the Workflow Execution Rulesets, please read Executing workflow against instances after a reconciliation Compare activity