MultiFields Business Rule
The MultiFields business rule defines a multifield rule configuration. This configuration defines a set of one or more fields and a number range. The number range allows the user to select the number of fields to display on the screen. Each configured multifields business rule can be referenced by its rule name in MultiFields elements in screen and transaction configurations that use multifields.
Note: For class, segment name, and client relationship only, the<Actions> and <Events> elements are valid within the MultiFields rule. See Actions/Events.
Note: The SQL statements in the <Start> and <End> elements of the <MultiField> element may refer to the value of fields in a transaction, with the field name enclosed in brackets [ ], as in the example:
<Start>SELECT MIN(FieldIndex)+1 FROM AsAgreementMultiValueField
Where AgreementGUID = '[SelectedPerformanceContact]'</Start>
Note: The <Name> value should be unique across a given MultiField BR. In case more than one <Field> inside the same <MultiField> section or across multiple <MultiField> sections is defined with the same <Name>, the display and behavior of the system under Action/Events will not be able to differentiate between those Fields.
MultiFields on Plan level Segments
OIPA will load multifields of plan and product level override of a segment even though a multifield is configured at plan level. The system will combine the multifields of segment of both Product and Plan override of a segment when there is segment product relationship. SegmentName uses an inheritance functionality and merges the SegmentName definitions of the Product and Plan hierarchy.
The referenced rule will find all the versions of the MultiField in the tree of overrides for Product/Plan and aggregate the field defined for each MultiField Section with the lower level override affecting those above it.
Additionally, a MultiField rule may define multiple sections by name within the rule. Each of the named sections of field definitions will be aggregated independently.
Element | Definition | Attribute | Element/Attribute Values |
---|---|---|---|
<MultiFields> |
Required: The opening and closing tag of the MultiFields rule. |
|
|
<MultiField> |
Required: |
|
|
<Name>
|
Used to define the name of the multifield for Events. This name can be different than Title but must be unique. | ||
<Title> |
Optional element: Defines the title of the MultiFields pop-up display window. |
|
If this element is omitted in the business rule, the MultiFields window title will be "MultiFields". |
<ComboDisplay> |
Optional element: Defines the display name of the Number of Fields combo box where the user can select the number of multifields to display. |
|
|
<Start> |
Required:
This specifies the starting value of the Number of Fields combo box that allows the user to select how many multifields to display. |
|
Integer
A SQL statement may be used that returns an integer value. |
<End> |
Required:
This specifies the ending value of the Number of Fields combo box. |
|
Integer
A SQL statement may be used that returns an integer value. |
<Fields> |
Optional element: If no fields are specified, the Number of Fields combo box in the Multifield section will be empty. See Fields Element. |
|
|
<Events> |
|
|
For class, segment name, and client relationship only, the<Actions> and <Events> elements are valid within the MultiFields rule. |
<Event>
|
Optional conditional logic. All existing Elements and Attributes for Actions/Events are available for use within MultiField tags. |
|
Any expression resulting in a true or false value. MultiValueFieldIndex=(starting from 0) This is a built in variable available when the Event processing is in multifields scope. |
<Actions> |
All existing Elements and Attributes are available for use within MultiField tags. See Actions/Events. |
|
|
<ActionSet>
|
All existing Elements and Attributes are available for use within MultiField tags | ||
<Condition>
|
Optional conditional logic. All existing Elements and Attributes are available for use within MultiField tags | IF |
Any expression resulting in a true or false value. MultiValueFieldIndex=(starting from 0) This is a built in variable available when the Event processing is in multifields scope. |
<Action>
|
All existing Elements and Attributes are available for use within MultiField tags | ACTIONTYPE |
String $$$MultiValueFieldIndex$$$ This can be used within string. It is a built in variable available when the Event processing is in multifields scope. |
XML Sample
<MultiFields>
<MultiField>
<Name>TextTestMF</Name>
<Title>Text Test</Title>
<ComboDisplay>Text Test</ComboDisplay>
<Start>3</Start>
<End>5</End>
<Fields>
<Field>
<Name>TextTest1</Name>
<Display>Text Test 1</Display>
<DataType>Text</DataType>
</Field>
<Field>
<Name>TextTest2</Name>
<Display>Text Test 2</Display>
<DataType>Text</DataType>
</Field>
<Field>
<Name>TextTest3</Name>
<Display>Text Test 3</Display>
<DataType>Text</DataType>
</Field>
<Field>
<Name>TextTest4</Name>
<Display>Text Test 4</Display>
<DataType>Text</DataType>
<Default>Test4</Default>
</Field>
</Fields>
<Events>
<Event TYPE="ONLOAD">
<ActionSet ID="TestTextAction"/>
</Event>
<Event TYPE="ONCHANGE" FIELD="TextTest1">
<ActionSet ID="TestTextAction"/>
</Event>
<Event TYPE="ONSUBMIT">
<ActionSet ID="TestTextAction"/>
</Event>
</Events>
<Actions>
<ActionSet ID="TestTextAction">
<Condition IF="IsEmpty( TextTest1 ) And MultiValueFieldIndex=1">
<Action ACTIONTYPE="ERROR">TextTest1 $$$MultiValueFieldIndex$$$ cannot be empty.
</Action>
</Condition>
<Condition IF="Not IsEmpty(TextTest1) And TextTest1 = 'Test'">
<Action ACTIONTYPE="ERROR">TextTest1 $$$MultiValueFieldIndex$$$ cannot be Test.
</Action>
</Condition>
<Action ACTIONTYPE="ASSIGN" FIELD="TextTest4">'Text4'</Action>
<Action ACTIONTYPE="HIDE" FIELD="TextTest3"/>
<Action ACTIONTYPE="DISABLE" FIELD="TextTest4"/>
</ActionSet>
</Actions>
</MultiField>
</MultiFields>
MultiField-Segments at a Product Level Rule
<MultiFields>
<MultiField>
<Name>Section1</Name>
<Fields>
<Field>
<Name>FieldA</Name>
<Display>FieldA</Display>
<DataType>Text</DataType>
</Field>
</Fields>
</MultiField>
<MultiField>
<Name>Section2</Name>
<Fields>
<Field>
<Name>FieldB</Name>
<Display>FieldB</Display>
<DataType>Text</DataType>
</Field>
</MultiField>
</MultiFields>
MultiField-Segments at a Plan Level Override of the Same Rule
<MultiFields>
<MultiField>
<Name>Section1</Name>
<Fields>
<Field>
<Name>FieldA</Name>
<Display>FieldC</Display>
<DataType>Text</DataType>
<Hidden>Yes</Hidden>
</Field>
<Field>
<Name>FieldC</Name>
<Display>FieldC</Display>
<DataType>Text</DataType>
</Field>
</Fields>
</MultiField>
<MultiField>
<Name>Section3</Name>
<Fields>
<Field>
<Name>FieldD</Name>
<Display>FieldD</Display>
<DataType>Text</DataType>
</Field>
</MultiField>
</MultiFields>
For consistency of configuration, the Segment MultiField support is extended for the inheritance logic of the Segment Fields to the referenced MultiField rules. Within a SegmentName rule, a single MultiField rule may be named like this:
<Segment><MultiFields RULE="MultiField-MultiFieldSet">Yes</MultiFields></Segment>