There are three different interface scenarios that can be configured for every single Proxy Prop-erty
- Master
- Client
- Bi-directional
This Interface direction as well as the conflict solving mechanism must be configureable on the Relation between MetaProxy and ProxyMetaProperty.
Master
As the Proxy Property is defined as a Master, the value is always exported from UBIK. The value will never be imported. Changes from the external system will always be discarded.
Client
As the Proxy Property is defined as a Client, the value is always be updated during an import from the 3rd party system. The value will never be exported. Changes in UBIK will always be dis-carded.
Bi-Directional
As the Proxy Property is defined as export/import “Bi-Directional” the Proxy supports both, exporting and importing the Property value. During the processing conflicts must be recog-nized. A conflict is as the property was changed in UBIK AND in the external system. There are two different Conflict scenarios:
- Solve the conflict according the Timestamp information: the newest change wins agains the older one.
- Manual solve: mark the object and let the user solve the “problem”
Conflict solving scenario: Timestamp
As a MetaProxyProperty is defined to import/export it's value bidirectional, the Timestamp information is used for determine whether a value may be overwritten by an import or must be exported by an export.
The Timstamp - conflict scenario only works properly as the Value Change log is activated for the target property ! |
Import:
- A value is updated during an import when the Import Timestamp (on the proxy) is greater (newer) than the Update timestamp of the target property.
- The Import Timestamp is set as new Update Timestamp of the bidirectional target property.
You can find a ChangeLog entry even for properties of "new" created UBIK instances as they are configured as bidirectional and were created during an import process! |
Export:
- The Update Timestamp of the ubik property which is exported will be used as Export Timestamp on the Proxy instance.