The profile reconciliation feature allows one profile or
specification (referred to as the object profile or specification) to take on
the attributes of another profile or specification. Note that throughout this
document the terms specification and profile will be used interchangeably. Reconciliation
can be handy especially in cases where you are starting with a captured message,
and you want its element attributes to comply with either a standard library, or
even a specialized project library. Among other applications, it is also very useful
for transferring example values from one profile to another.
Operationally, reconciliation works in similar fashion to
profile comparison. You first load the object profile i.e. the one you want to
change. Then as with specification comparison, you select a comparison profile.
This is the one that has the attribute values that you want to transfer to the
object profile.
The reconciliation takes place at and below the segment
level, transferring the comparison profile’s attribute values right down to
the sub-component level. It takes place segment by segment, using the comparison
profile’s list of segments as the iterative driver. Segments appearing in the
comparison profile but not in the object profile are disregarded. Conversely,
segments appearing in the object profile but not in the comparison profile are
ignored as well. The ordering of segments within the two profiles is not
important, i.e. they do not have to be the same.
Within each segment, the evaluation takes place
positionally, which means that if the fields are out of synch with each other,
then the data types of the object specification’s fields are likely to change
along with the other selected attributes. The exception to this, is that when
the data type attribute is not selected for reconciliation, the process will not
carry beyond the field level i.e. component and sub-component reconciliation
will not occur.
After selection of the object and comparison profiles, the next step is to select Reconcile Profile from the Profile Comparison drop down menu on the toolbar. This opens up a new tab on the MWB. A prominent feature on this tab is the Attribute checklist. Ordinarily a default set of attributes will be checked, corresponding to the attributes used in comparison (these are defined via the Maint/Options/Fld Compare tab). You may alter them as you need. Only the checked attributes will be used in the reconciliation process, so for example if you are interested in your object specification taking on the value of the optionality in the comparison spec, then you must have the Optionality attribute checked. If not, no change will be effected on that attribute. Note that Usage Note is synonymous with Implementation note, as is VSExample with Example Value.
There are 3 buttons that can help you in the attribute selection process. The top one will always set the selection to the defaults used in specification comparison as discussed above. The second button will invert the selection, which is helpful in selection by exclusion. The third button clears all of the checks and allows you to start fresh.
It is possible through the Maint/Options menu to extend the list of attributes available for selection. The list of attributes available via this option is much greater than that normally pertinent for profile reconciliation, and may expose 'internal' attributes that can be of little or no value in reconciliation. If you find that you are confused by the selection of available attributes, it is suggested that you click on the Set Default button, which will select the attributes of value in reconciliation.
After the attributes are selected, decide on a reconciliation
method. There are three types of reconciliation. The first unconditionally
replaces the object profile’s attribute values with those of the comparison
specification. The second mode, will only replace the object profile’s
attribute value if the comparison attributes value is non-null. So for example,
if the object profile had a value for the length attribute of 3, but the
comparison profile had a length attribute value of 0 (0 is considered null for
numeric attributes), then the object length attribute value would remain 3. The
third mode of reconciliation ensures that the object profile’s attribute
values will be replaced only if they are null. Thus for example if the object
spec had an example value of ‘3’ for a particular field, and the comparison
spec had one of ‘5’, no change to the object spec would occur since it had a
non-null value.
As was mentioned above, the reconciliation takes place
positionally, so given a segment ZZZ for example with 3 fields in the
object specification and 5 in the comparison specification, reconciliation will
occur in the first 3 fields of the object specification and by default the reconciliation
will end there. If you want however, you may elect by checking the Add
Missing Fields box to add the remaining fields from the comparison
specification to the end of the object specification’s ZZZ segment. The
result is that both ZZZ segment specifications will have 5 fields.
The Report only box signifies that you don’t want
any changes to occur, but you would like to see a report of what changes would
occur in the reconciliation process. This box is checked by default in the
belief that its always a good idea to do a ‘dry run’ before making the
actual changes. This is a complicated and complex process, it’s a good idea to
be able to anticipate the results before committing. On the other hand, there is
no real danger to performing a reconciliation. You may elect to abandon the
changed specification by not saving it or save it as another file without
affecting the original profile.
Press the Reconcile button to start the process.
When the process is completed, the Display/Reports tab will be focused,
and you will be presented with a report of the ‘proposed’ changes in the
case that you selected Report only, or the actual changes otherwise. To
view the actual changes in the specification, click on the Message Definition
tab.
The Reconcile tab will remain visible until the Close button is clicked, or until another comparison spec is selected. This allows for a somewhat incremental approach to the process. Keep in mind however that the only way to return the object spec to its original state is to re-load it.