Fetching value

Note:  In this section, "field" and "subfield" are used. This is for HRL/VRL/FRL formats. For HMD formats, replace "field" with "component" and "subfield" with "subcomponent."

The fetching value based on a field-level address has changed from CIS5.8 to CIS6.0 and later versions.

In pre-CIS6.0 versions, when setting a field-level address as the source in an action and the field had subfields, the engine would expand the field. After this, the engine retrieves all the subfield’s content and put the values in a list.

This led to issues:

  • If there was only one destination, then only the first subfield content was copied to that destination.
  • If there are several destinations, then the subfield’s content was copied to incorrect destinations.

A change has been made in how the engine retrieves values from a field-level address as the source side in a translation action.

When the subfield-level address is used as a source of a COPY action, the engine retrieves the whole subfield content. This includes all sub-subfields, as a string. It does not copy only the first sub-subfield.

Then, the whole content as a string is assigned to xlateInVals.

When the field-level address is set as a source, the engine retrieves the whole field content. This includes all its subfields and the subfield separator characters as a string, so that the whole field content is copied to the destination.