How do I globalize a local item?
When a global type is linked to a project you can create local items of this global type. This is necessary if you cannot find the proper item in the already linked tables.
For example, you have linked to your project the Dutch cities table of the global type City and you want to assign the value London to the City property of a particular step. Since you cannot find the linked table you decided to create a local item London of type City. Then, you extensively assign London to steps in many processes of your project.
At certain moment, the Tables manager decides to create a new table called English cities of the type City and he includes London there. Then, you decide to link this new table to your project because you want to make use of other items there like Liverpool or Sheffield. But now, you have a global item London in the linked table and the local item London that was created before. Apparently, this is the same city so you can get rid of the local item. But, this item is already used in many processes. If you just delete it, all the references to it will be removed as well. So, it seems that you have first to go over all these references and replace them by the references to the global item London.
In order to simplify these actions, we have introduced the Globalize operation. Select the table that you want to globalize (English cities in this case) and press the Globalize button in the Tables tab. First, the Engage Process Modeler will look for all local items of the selected type (City) that have the same name as the items in the selected table (thus, London will be found as a candidate for globalization).
The following dialog appears:
Select the items that you want to globalize and press OK. All references to the selected local items (local London) in all processes of the project will be replaced by references to the corresponding global items (global London). Finally, the local items of the selected global type that are no more used can be deleted. Thus, the following question appears.
Now, you can decide what to do with the not used local items. Press Yes or No, depending on your choice. In both cases, the project will be reloaded. This means that the Globalize operation cannot be undone.
If you yourself are in the Table Manager role then you are allowed to create new global table items. So, you can even globalize those local items that do not have their counterparts in the selected table. In this case, you will be able to select for globalization any local item of the corresponding type. If it is not in the global table yet the following question will appear.
If you answer No, then the item York will not be globalized.
How can I localize a global item?
A project that is linking global tables is no more self-contained. If you will export it to a file and them import this file in the environment of an another organization, then the old references to global items will be invalid in the new environment and they will be automatically created as local ones. However, only names of the missing items will be recreated. Thus, for example, an URL for a global document will be missing. You can make a project with linked global tables self-contained by localizing references to global tables.
Select a global table and press the Localize button in the Tables tab. The following dialog appears.
For each item in the global table there is a checkbox there. Select items that you want to localize and press OK. For each selected global item its local counterpart will be created. However, if there exists already a local item with one of the selected names then it will be reused for localization. You will be asked for approval.
In this case, you can press Yes if the local item London has the same meaning as the global one. If not then the local item should be renamed first.
After you press Yes or there are no conflicting local names the localization is started. First, a new local item is created for each selected global item. Then, all references to the selected global items are replaced by the references to the corresponding local items. When this operation is finished, the following message appears.
The project will be reloaded now. This means that the Localize operation is not undoable. You can revert its result by executing Globalize but only if no local items were reused for localization (since Globalize will remove them).
Similarly, Localize can be used to revert the results of Globalize but only if the corresponding global items were not referred in the project before globalization (otherwise these references will be also localized).
Can I merge my local types with global types?
In order to merge a local type with the global one rename the local one and try to give it the name of an already linked global type. Such an attempt to rename will be treated as a request to merge two types. So, you will get the following question.
If you answer Yes you will get one global type consisting of items of both original types. The merging is only possible if both local and global types have the same scope and the same item properties.
It may happen that the global type has already local items and one or more of these local items have the same name as an item of the merged local type. Since it is not clear what to do in such a situation, the following error message appears:
Then, you have to fix the conflict manually. You can just rename this local item, delete it or try to assign it to the global type property in all steps where it is assigned to the local one, and then delete it (you can use the Find function to find all these steps).
Custom types have the Scope property and the Extra item properties property. Merging is possible only if the scopes are the same and there are no extra item properties. So, you can get the following message:
To fix this you must change the scope of the local type 'Town'. However, if you get the following message:
Merging is not possible at all even if the sets of extra items properties in both types are the same.
Note: Renaming is an undoable operation. So, if you undo it the types will be split again and will get original names. However, if you close the project and open it again there will be no possibility to split the types then. You can only create a new local type with the old name but all items must be recreated again and manually assigned in all places where the old items were assigned.
Merging will be done automatically when the name of the global type that is going to be linked to a project is the same as an already existing local type name. Then the following question appears:
If you answer Yes then you will get only one merged type with the conflicting name which is global.
If, however, the local and global types have different scopes they cannot be merged automatically and you get the following advice:
Similarly, if the local and global types have extra item properties the following message will be shown: