A search is made for the two model objects in the first model library found in the library list.
Redirecting references involves repointing model objects. Since the primary key of model objects is the internal surrogate number, it is this value that is involved in the repointing mechanism. In effect, repointing involves changing the foreign key references of model objects from the source surrogate number to the target surrogate number. Note the following points:
Only objects of type FUN and MSG can be repointed.
It is not possible to repoint between a MSG and a FUN.
Any usages of the source object are switched to use the target object.
Archive objects will not be updated during the repointing process. This has repercussions for partial rollback. See the Synon/CM Enhancements section on Rollback procedure for more details.
The from object must be the current member of its group.
If the target of the command is not a member of the same group, then it must be the current member of its group.
If the target of the command is not a member of the same group, then the from object remains current after the transfer, and the implementation name (if there is one) is not transferred. This is necessary to ensure that there is a current member in the from group.
The implementation name of the object is transferred to the new current object. This is the message identifier for MSG type objects and the source member name for generatable FUN type objects.
Note that for EXCUSRSRC and EXCUSRPGM there is special processing due to the fact that these types are corrupted by concurrent development unless the previous source member is preserved. The source member name is transferred to the target function. However, if the source member exists, a new source member name is automatically generated to contain a copy of the original source prior to the transfer.
Model objects can either be identified by object name (FRMOBJNAM) or by object surrogate key number (FRMOBJSGT). If the FRMOBJNAM parameter is used, the processing program must convert to surrogate key number internally. Thus, it will normally be more efficient to use the surrogate number if this value is available. The surrogate number for an object can be obtained using the Retrieve Model Object command (YRTVMDLOBJ).
Note that if TFRNAM (*YES) is specified, the object names are swapped between the two objects. Developers should take note of this change and also that model object lists are not automatically updated to reflect this change to the objects referred to by the entries. Use the Check Model Object List command (YCHKMDLLST) to refresh model object list entries.