Semantic Processing - Integration - Update 44 - Customization & Programming - Hexagon

SmartPlant Integration Customization

Language
English
Product
Integration
Search by Category
Customization & Programming
SmartPlant Foundation / SDx Version
10

Certain methods on the metadata adapter will be called as necessary from within the Schema Editor. The implementation of these methods allows the metadata adapter some control over the behavior of the Schema Editor. However, these methods are fairly limited in the control they provide and the metadata adapter writer may decide that more semantic processing is required.

To add the additional semantic processing, the metadata adapter should, as part of its Connect processing, extend the metaschema to include objects identifying the semantic events for which they wish to be notified. The semantic events for which the metadata adapter can be notified are:

  • InsertSemanticDef – Definition includes identification of classes for which insert semantic is to be called

  • InsertRelSemanticDef – Definition includes identification of relationship definitions for which insert semantic is to be called

  • UpdateSemanticDef – Definition includes identification of properties for which update semantic is to be called

  • DeleteSemanticDef – Definition includes identification of classes for which delete semantic is to be called

  • DeleteRelSemanticDef - Definition includes identification of relationship definitions for which delete semantic is to be called

While there are other semantic types that the metadata adapter can define, this set should be sufficient for the semantic operations that the metadata adapter might wish to add.

To be notified when an event of a type occurs, the metadata adapter, via its Connect method, should instantiate objects of the appropriate type (e.g., UpdateSemanticDef), define the properties for those objects and relate them to the appropriate objects (e.g., for UpdateSemanticDef, the instantiated object should be related using PropertyDefUpdateSemanticDefs relationships to the property definitions for which the semantic is to be called).

One of the properties on every semantic is SemanticProgID. This property identifies the progID of the object to be instantiated when the semantic is triggered. This object must implement the appropriate interface (e.g., IInsertSemantic for insert object semantics, IUpdateSemantic for update property semantics, etc.).