Group MultiFields with a Name in DB to Group Fields
Currently, instances of multifields are stored in MultiValueField tables for all objects. When this data is queried from DB, there was no way to group them unless screen rules are read. For REST APIs , when data is directly pulled from DB, this posed challenges. A client app will not know how to group them when there is more than one multifield groups for an entity (screen or transaction).
To resolve this problem, a new column has been added to the Multifield table to store the Multifield Name/Group. The previously optional <Name> element of the Multifield will be stored in this new column. The <Name> element is now mandatory. When loading any screen or transactions containing MultiFields, if the MultiField rule does not have a <Name> element configured for the MultiField group, a stack trace error will occur indicating the <Name> element is missing.
<MultiFields>
<MultiField>
<Name>ClientPhoneNumbers</Name>
<Title>Client Phone Numbers</Title>
<ComboDisplay>Phone Number Type</ComboDisplay>
<Start>0</Start>
<End>3</End>
<Fields>……
<MultiField>
<MultiFields>
Any existing MultiField rule that does not contain the <Name> element will be updated by the v11.3.0.1 Upgrade Utility. The utility will update existing configuration, no manual configuration updates are needed. However, the configuror must be made aware of these changes and it will impact configuration of new MultiField rules. The upgrade utility script will:
- Update all existing MVF (MultiValueField) tables with a new column called "GroupName". This column will store the value of the Name element defined in the MultiField rule.
- The MVF tables impacted are:
ASACTIVITYMULTIVALUEFIELD
ASADDRESSMULTIVALUEFIELD
ASAGREEMENTMULTIVALUEFIELD
ASAGREEMENTROLEMVF
ASCLASSGROUPMULTIVALUEFIELD
ASCLASSMULTIVALUEFIELD
ASCLIENTMULTIVALUEFIELD
ASCLIENTRELATIONSHIPMVF
ASPLANSEGMENTNAMECLASSMVF
ASPOLICYMULTIVALUEFIELD
ASROLEMULTIVALUEFIELD
ASSEGMENTMULTIVALUEFIELD
ASSUSPENSEMULTIVALUEFIELD
ASQUOTEBENEFITMULTIVALUEFIELD
ASQUOTECLAIMMULTIVALUEFIELD
ASQUOTEMEMBERMULTIVALUEFIELD
ASQUOTEVERSIONMULTIVALUEFIELD
ASPLANSEGMENTNAMEMULTIFIELD
ASPROGRAMMULTIFIELD
ASREQUIREMENTRESULTTYPEFIELD
Update existing MultiField rules to ensure a Name element exists:
If no Name element is defined, the script will insert the element with a default name and indexed for instance of the MultiField element of the rule.
For instance: <Multifields><MultiField>...</MultiField><MultiField>...</MultiField> would get RuleName0, RuleName1 for each field set defined by a MultiField element.
While running the Upgrade Utility to save GroupName column for all multi value fields, if some MVF Fields in DB are not updated because they are not available in the screen rules, they should be updated with default group name "MVF Undefined".
Populate existing customer data with the defined MultiField group name or rule name and index of the MultiField group.
Use Best match algorithm to find out the exact GroupName for the records in MultiValueField tables.
Maintain the logs of the changes made by the system in the business rules in a log file which will capture RuleName and BusinessRuleGUID.
In ASREQUIREMENTRESULTTYPEFIELD table, the GroupName column should not be populated with any value. It is for future use.
When ASPROGRAMMULTIFIELD data is saved to an MVF table, the GroupName column will populate with the value defined in the rule.
- The MVF tables impacted are:
- Service layer changes need to be made to fetch the records as expected.