Compare/Update
User Guide
Compare and Update Data
: Customising Compare/Update using PML Callbacks
Customising Compare/Update using PML Callbacks
Specific company and project customisations can be implemented using PML callbacks.
A framework is provided in the cuProjectHandler PML object in the pmllib\common\objects folder. A global instance !!cuProjectHandler of this object is created on entry to any module using Compare/Update.
Note:
Compare/Update PML callbacks are not available for cable catalogue operations.
Debug Mode
You can switch on or off debug mode using the commands cuDebugOn and cuDebugOff which have been defined as synonyms to run the corresponding methods. In debug mode a line of text is output to the command line for each method call.
Where to Add Code
Each place where customised code can be added is delimited as follows.
Note:
Other parts of the PML code should not be modified.
A number of examples are provided (commented out) in the PML code.
Methods
The following methods are provided in the cuProjectHandler PML object:
Method
Description
.cuProjectHandler()
Constructor
.debugOn()
Set debug flag
.debugOff()
Clear debug flag
.raiseEvents()is BOOLEAN
Switch events on or off.
Called once for each comparison run.
Return FALSE to prevent further callbacks.
.beginCompare(
!module is STRING,
!configurationName
is STRING,
!sourceDatabase
is STRING,
!sourceType
is STRING,
!destinationDatabase is STRING,
!destinationType
is STRING,
!mode is STRING
) is STRING
Add checks before comparing the whole set of objects.
Information from the selected configuration is provided.
Mode: Source or Destination
Return a non-blank message to abort the whole run.
.beforeCompare(
!element is DBREF
) is STRING
Add checks before comparing a source/destination object that is a DBREF.
Return a non-blank message to skip comparison of this object.
.beforeCompare(
!elementId is STRING
) is STRING
Add checks before comparing a source object that is an external named string.
Return a non-blank message to skip comparison of this object.
.afterCompare(
!compareOk
is BOOLEAN,
!compareResult
is STRING,
!sourceElement
is DBREF,
!destinationElement
is DBREF
)
Add actions after comparing a matched source object that is a DBREF.
CompareResult: Yes, No, Multiple Matches, Linked, Multiple Link
.afterCompare(
!compareOk
is BOOLEAN,
!compareResult
is STRING,
!sourceId is STRING,
!destinationElement is DBREF
)
Add actions after comparing a matched source object that is an external named string.
CompareResult: Yes, No, Multiple Matches, Linked, Multiple Link
.afterCompare(
!compareOk
is BOOLEAN,
!compareResult
is STRING,
!element is DBREF
)
Add actions after comparing an unmatched source or destination object that is a DBREF.
CompareResult: Yes, No, Multiple Matches, Linked, Multiple Link
.afterCompare(
!compareOk
is BOOLEAN,
!compareResult
is STRING,
!sourceId is STRING
)
Add actions after comparing an unmatched source object that is an external named string.
CompareResult: Yes, No, Multiple Matches, Linked, Multiple Link
.endCompare()
is STRING
Add actions after comparing the whole set of objects.
Return a csv file path to capture list of skipped objects and reasons.
.getCompareResults()
is STRING
Capture the compare results grid content.
Return an xls file path for compare grid result
.beginUpdate(
!linkInsertedElements is BOOLEAN,
!linkMatchedElement
is BOOLEAN,
!updateLinkedInsertedElements
is BOOLEAN,
!updateLinkedMatchedElements
is BOOLEAN,
!unlinkElements
is BOOLEAN,
!ownerElement
is DBREF
) is STRING
Add actions before updating the whole set of accepted objects.
Settings from the Update dialogue are provided.
Return a non-blank message to abort the whole update.
.beforeUpdate(
!sourceElement
is DBREF,
!destinationElement
is DBREF,
!destinationType
is STRING
) is STRING
Add actions before updating when the matched source object is a DBREF.
Return a non-blank message to skip update of this object
.beforeUpdate(
!sourceId is STRING,
!destinationElement
is DBREF,
!destinationType
is STRING
) is STRING
Add actions before updating when the matched source object is an external named string.
Return a non-blank message to skip update of this object.
.beforeUpdate(
!sourceElement
is DBREF,
!destinationType
is STRING,
!ownerRef is DBREF
) is STRING
Add actions before updating when the unmatched source object is a DBREF.
Set ownerRef to override the owner specified for the run.
Return a non-blank message to skip update of this object.
.beforeUpdate(
!sourceId is STRING,
!destinationType
is STRING,
!ownerRef is DBREF
) is STRING
Add actions before updating when the unmatched source object is an external named string.
Set ownerRef to override the owner specified for the run.
Return a non-blank message to skip update of this object.
.beforeUpdate(
!destinationElement
is DBREF,
!destinationType
is STRING
) is STRING
Add actions before updating when the unmatched destination object is a DBREF.
Return a non-blank message to skip update of this object.
.afterUpdate(
!updateOk
is BOOLEAN,
!updateResult
is STRING,
!sourceElement
is DBREF,
!destinationElement
is DBREF,
!updatedAttributes
is ARRAY
)
Add actions after updating when the matched source object is a DBREF.
UpdateResult: Ok or error message
.afterUpdate(
!updateOk
is BOOLEAN,
!updateResult
is STRING,
!element is DBREF,
!updatedAttributes
is ARRAY
)
Add actions after updating when the unmatched source or destination object is a DBREF.
UpdateResult: Ok or error message
.afterUpdate(
!updateOk
is BOOLEAN,
!updateResult
is STRING,
!sourceId is STRING,
!updatedAttributes
is ARRAY
)
Add actions after updating when the unmatched source object is an external named string.
UpdateResult: Ok or error message
.endUpdate()
Add actions after updating the whole set of objects.
.getUpdateResults()
is STRING
Capture the update results grid content.
Return an xls file path for update grid results.
1974 to current year.
AVEVA Solutions Limited and its subsidiaries. All rights reserved.