When retrieving a document all the objects are processed within that document. For each object being retrieved, the software looks for an existing Smart P&ID item that should be updated. If it finds one, it generates an Update task. If it doesn’t find one, it generates a Create task.
When we retrieve an object, we follow a standard procedure. For example, when we find an equipment object in the retrieved document we do the following:
-
Look for a SameAs relation in the retrieved document that refers to this item. If we find one, then we use the remote UID from that SameAs and do a query for a Smart P&ID item with SP_ID = remote UID. If such an object is found, that is the item that needs to be updated.
-
If no item to update is found, use the UID of the object and perform a query for a Smart P&ID item with SP_DesignBasisUID = UID. If such an object is found, that is the item that needs to be updated.
-
If no item to update is found, use the IObject.Name of the object and do a query for a Smart P&ID item with ItemTag = Name and belonging to the same Plant Group (for a Stream we query for a P&ID PipeRun item where StreamNo = Name). If such an object is found, that is the item that needs to be updated.
-
If no item to update is found, a Create task is generated instead of an Update task.
If an item to update is found by means of a matching Item Tag, the resulting Update task shows that the item will be correlated when the task is run (see the Update tab on the properties dialog of a task). Being correlated means that the Smart P&ID item carries the UID of the retrieved object in the DesignBasisUID plant item attribute.