WorkWithPlus provides the possibility to update pattern instances from InstanceTemplate that were already created, by the 'Update Instances' functionality.
The Update Instances functionality has two main goals:
- Propagate changes made to a Template (Instance template or WebPanel Templates) to all the instances that are already created and customized. This changes could be adding a new node, modifying some property of certain node, reordering nodes, etc
- Propagate changes made to some transaction's structure. This changes include adding or removing attributes and relationship between transactions, or modifying descriptions of attributes or relationships between transactions.
In order to do execute the Update Instances functionality, there are two options:
The first one is to update all the instances that are created, and this process is irreversible. In other words, this is a batch process that will go over each instance, update it and save changes. That is why it is recommended to make a back up of the Knowledge base before executing this action.
If we want to execute this action to the instances related to transactions, we must do right-click over Instance Generation Template node and select the option 'Update Instances'. But if we want to execute this action to some webPanel's instances we must do right-click over the web panel template that we want to update its instances and select the option 'Update Instances'.
The second option is to update one instance in particular. This process will not save the object, so we could visualize the modifications that the action made over the instance and reverse that changes or save them.
To execute this action we must open the transaction's instance that we want to update, and do right-click over the main node, selecting 'Update Instance' option. Or open the webPanel which we want to update its instance and do right-click over the main node, selecting 'Update Instance' option.
In both cases, the customization that user made to the instances will not be overwritten when executing this action. With customization we refer to insert new nodes, modify properties of existent nodes, move certain node's location, delete nodes, etc.
Let's see an example over Person instance.
First, we have the following Instance template's structure and nodes:
Now we create Person's instance, which will take its nodes, and the order of them from Instance Template, and will look like the following picture:
We can appreciate that 'Attributes' node from Instance Template where replaced with the attributes from Person transaction, and the same occurs with orders and filters. On the other hand, nodes like Standard Actions or TextBlock where transcribed identically because they do not depend on the instance like the case of attributes.
Now we make the following changes to Person instance:
Then we save the object, and we make the following changes to Instance Template:
Now we execute Update Instance action over Person Instance like we can visualize below:
We visualize the results:
The first thing that appears is a confirm panel which explains that StandardAction 'Export' of object Selection was deleted from WorkWithPlus Instance template. We should determine whether to delete this node from Person instance, or if we want to maintain it.
If we press 'Cancel' the process will be canceled and the instance will not be updated if we had executed the action for only one instance (like this case that we did rigthright-click over Person transaction node > Update Instance), but if we had executed Update Instances for all instances created (by doing rigthright-click over Instance Template > Update Instances) the process will be canceled but the instances which were updated and saved will not re reverted.
We also have the option to set for all instances which we are updating the same option we took, by checking the 'Select same option for all instances' button. This only applies when we execute Update Instances from Work With Plus Settings, but not when we update only one instance like this case.
We press Yes, in order to delete this Standard Action, and the process will continue. This confirmation will appear for every object that was deleted in Instance Template. In the example we delete only one node in Instance Template, so this confirmation will appear only once.
Then the following message will appear:
Note: The 'View log' button only appears when the property Generate Log of node 'Transaction Templates' within WWP Configuration object is True.
Now the instance is already updated from Instance Template.
In Person instance, the modifications that we made before Updating it were:
- Move table that contains attribute on top of Error Viewer (in Transaction node)
- We remove StandardAction Delete (in Transaction node)
- We modified 'Caption' property of TextBlock node named 'PersonTitle'
- We add a new Variable node named newVariable, just after 'PersonTitle' textblock.
This modifications were illustrated in a picture above that shows Person's instance.
If we analyze the log, it is divided in four sections:
- Properties not updated: specifies the properties from some nodes that were not updated because they
did not have their default value. In the example, this is the case of 'Caption' property from TextBlock
node named 'TitleText'.
- Nodes with children disordered: specifies which nodes have their children disordered. In the example,
this is the case of Table 'TrnContent' of Transaction object, because we moved the table that contains
the attributes on top of 'ErrorViewer', and these nodes are inside 'TrnContent' table.
- Deleted Nodes from this instance: specifies which nodes were deleted from this instance in particular. In
the example, this is the case of StandardAction 'Delete' of Transaction object.
- Particular Nodes of this instance: specifies the nodes that were added to this instance in particular. In
the example, this is the case of Variable node (TableVariable), named 'NewVariable' of Selection object.
Finally, we visualize the results in Person instance:
You can read more about this process in the following link: Update Instances Process