Transaction Element
The <Transaction
>
element is the starting and ending tag for each transaction. Transaction elements vary according to the configuration of each transaction. All of the possible elements of a transaction are listed in the table below, in the general order that they should appear in the transaction's XML configuration, with links to the topic explaining each element in detail.
Note: This is not the same as the <Transaction
> sub-element of several other business rules.
A user can configure a Transaction for workflow task generation when any transaction's business errors from ValidateExpressions is to be generated. A workflow task for a transaction will be generated either it is configured in a transaction or in the ValidateExpressions attached to it.
Element/Tag | Parent Element | Attribute | Definition | Element/Attribute Value and Description |
---|---|---|---|---|
<Transaction>
|
|
This is the start and end element for the transaction. |
||
<Transaction> |
ALLOWQUOTE |
|
Yes: Enables Quote functionality for the activity. The Quote button will be visible on the Activity Detail screen. No: The Quote button will not be visible on the Activity Detail screen. If blank, No will be assumed but ALLOWQUOTE attribute will not appear in XML code. |
|
<ProcessByCycle> | <Transaction> |
Optional element: Defines whether the activities to be processed by Cycle or OIPA processing engine.
|
Values: Yes | No Yes - all the activities that are in Pending status with an effective date less than or equal to the current system date will be passed to the Cycle Agent for processing from OIPA UI. No- Default value. The activity processing will not be transferred from OIPA UI to Cycle (activity processing is implemented from OIPA UI). |
|
<ValueFinancialEntry> | <Transaction> | This element initiates Financial Calculation and access to fields. | ||
<Membership> | <Transaction> | Optional element:
Indicator to calculate Class Membership |
||
<ClassGroup> | <Membership> | Required, repeatable element:
Used as the parent element to define the details of the Class Membership calculation. |
||
<ClassGroup> | TYPE | Required element:
Used to specify the Class Group type for the Membership calculation. |
||
<ClassGroup> | DISPLAYMEMBERSHIPCLASS |
Optional element: Used to specify the Class Membership types to display |
||
<WriteMembership> | <ClassGroup> |
Optional element: Used to distinguish if Membership records should be written to the database. |
Yes | No A literal string or field or variable names equal to Yes or No. |
|
<EffectiveFromDate> | <ClassGroup> |
Optional element: Defines the effective from date of the Membership calculation |
SystemDate or the name of date field or variable. | |
<EffectiveToDate> | <ClassGroup> |
Optional element: Defines the effective to date of the Membership calculation. |
SystemDate or the name of date field or variable. | |
<ActivitySequenceProcess> | <Transaction> | Optional: Used for Data Intake Record transactions—defines the activities to attach to system entities. | ||
<ActivitySequence> | <ActivitySequenceProcess> | Required and repeatable:Defines the activity sequence. | ||
<ActivitySequence> | NAME |
Required attribute: Defines a name for the activity sequence. |
A string. | |
<ActivitySequence> | IF |
Optional attribute: Allows the use of conditional logic to determine if the ActivitySequence should be created. If the value of the condition is true, the sequence will be created. If false, it will not be created. |
A conditional statement. | |
<Activity> | <ActivitySequence> |
Required, repeatable element: Defines the name of the activity or activity array MathVariable to be created by the sequence. |
||
<ActivitySequence> | PROCESSIMMEDIATE |
Required attribute: Specifies if the activity or activity array being created should be processed immediately. |
Yes: The activity/activity array should be processed immediately. No: The activity/activity array should not be processed immediately. |
|
<ActivitySequence> | IF |
Optional element: Allows the use of conditional logic to determine if the activity or activity array should be created. If the value of the condition is true, the activity or activity array will be created. If false, it will not be created. |
A conditional statement. | |
<CopyBook> |
<Transaction> |
|
See CopyBook element. |
|
<EffectiveDate> |
<Transaction> |
|
See EffectiveDate element. |
|
<Allocation> |
<Transaction> |
|
See Allocation element. |
|
<AllocationFrom> |
<Transaction> |
|
See AllocationFrom element. |
|
<DefaultAllocation> |
<Transaction> |
|
See DefaultAllocation element. |
|
<FundAllocation> |
<Transaction> |
|
See FundAllocation element. |
|
<Valuation> |
<Transaction> |
|
See Valuation element. |
|
<Suspense> |
<Valuation> |
|
See Suspense element. |
|
<ValuesBlock> |
<Transaction> |
|
See ValuesBlock element. |
|
<Withholding> |
<Transaction> |
|
See Withholding element. |
|
<AllowComments> |
<Transaction> |
|
See AllowComments element. |
|
<Transitions > |
<Transaction> |
|
See Transitions element. |
|
<Membership> |
<Transaction> |
|
See Membership element. |
|
<MultiSuspense> |
<Transaction> |
|
See MultiSuspense element. |
|
<FundLevels> |
<Transaction> | See FundLevel Element. | ||
<WorkflowTask> | <Transaction> |
Optional: This element identifies the workflow task that is generated when the workflow feature is "turned on" (system property) and any business error is generated from ValidateExpressions. Note: This has no dependence on the WORKFLOWTASK attribute in ValidateExpressions. |
Values: Workflow task name | |
<WorkflowTask> | CREATEONUSEREXECUTION | The attribute indicates when the Workflow Task is generated. By default, Workflow Tasks are generated by cycle, DI and AsFile post insert processes and not by user initiated activity execution. | Values
Yes - workflow task is generated by all execution methods including user initiated activity execution. No - workflow task is generated only by cycle, DI and AsFile post insert processes. This is the default. |
|
<Fields> |
<Transaction> |
|
See Fields element. |
|
<Actions> |
<Transaction> |
|
See Actions element. |
|
<Events> |
<Transaction> |
|
See Events element. |
|
<MultiFields> |
<Transaction> |
|
|
|
<Address> |
<Transaction> |
|
See Address element. |
|
<ScreenMath> |
<Transaction> |
|
See ScreenMath element. |
|
<Math> |
<ScreenMath> |
|
See Math element. |
|
<ActivitySequences> |
<Transaction> |
|
See Activity Sequence element. |
|
<Spawns> |
<Transaction> |
|
See Spawns element. |
|
<Buttons> | <Transaction> | See Buttons element. |
XML Schema
<Transaction ALLOWQUOTE="[Yes|No]">
<ProcessByCycle> Yes|No </ProcessByCycle>
<EffectiveDate STATUS="[Enabled|Disabled]" TITLE="[string]" TYPE="{SYSTEM|SQL}">[sql]</EffectiveDate>
<Allocation ALLOCATIONTYPES="[Percent|Amount|PercentOfFund|Units]" ALLOWMIXEDMETHODS="[Yes|No]" EXCLUDEFUNDFIELD="[string]" EXCLUDEFUNDFIELDVALUE="[Yes|No}" EXCLUDEFUNDNAME="[string]" EXCLUDEFUNDSTATUS="[Yes|No]" EXCLUDEFUNDSTATUSERROR="[Yes|No]" EXCLUDETYPE="[string]" FUNDLIMIT="[integer]" INCLUDEFUNDFIELD="[string]" INCLUDEFUNDFIELDVALUE="[Yes|No]" MIXEDALLOCATIONTYPES="[Mixed|Percent|Amount|Units]" SHOWVALUATION="[Yes|No]"/>
<AllocationFrom ALLOCATIONTYPES="[Percent|Amount|PercentOfFund|Units]" ALLOWMIXEDMETHODS="[Yes|No]" AMOUNTMINIMUM="[number]" EXCLUDEFUNDFIELD="[string]" EXCLUDEFUNDFIELDVALUE="[Yes|No]" EXCLUDEFUNDNAME="[string]" EXCLUDEFUNDSTATUS="[Yes|No]" EXCLUDETYPE="[string]" FUNDLIMIT="[integer]" INCLUDEFUNDFIELD="[string]" INCLUDEFUNDFIELDVALUE="[Yes|No}" MIXEDALLOCATIONTYPES="[Mixed|Percent|Amount|Units]" SHOWVALUATION="[Yes|No]"/>
<DefaultAllocation TYPE="[Policy|Plan]" CODE="[code value]">[Yes|No|Locked]</DefaultAllocation>
<FundAllocation ALLOCATIONTYPES="[Percent|Amount|Mixed|Units]" ALWAYSEQUALPERCENT="[Yes|No]" AMOUNTPRECISION="[integer]" ASSIGNMENT="[Transfer]" CLASS="[string]" EXCLUDEFUNDFIELD="[string]" EXCLUDEFUNDFIELDVALUE="[Yes|No]" EXCLUDEFUNDSTATUS="[string]" EXCLUDETYPE="[string]" FUNDLIMIT="[integer]" INCLUDEFUNDFIELD="[string]" INCLUDEFUNDFIELDVALUE="[string]" PERCENTPRECISION="[integer]" REPEATFUND="[Yes|No]" SHOWVALUATION="[Yes|No]" UNITPRECISION="[integer]" USEFUNDCLASSALLOCATION="[Yes|No]">[Yes|No]</FundAllocation>
<Valuation EFFECTIVEDATE="[string]" POLICYVALUES="[Yes|No]" VALUEFINANCIALENTRY="[Yes|No]">
<EffectiveDateNUBMustExist>[Yes|No]</EffectiveDateNUBMustExist>
<SystemDateNUVMustExist>[Yes|No]</SystemDateNUVMustExist>
</Valuation>
<Suspense OVERRIDABLE="[Yes|No|Ignore]" VALUE="[Sufficient|Equals]" REQUIRED="[Yes|No]" AUTOENTRY="[Yes|No]">[field name]</Suspense>
<MultiSuspense AUTOENTRY="[Yes|No]">[field name]</MultiSuspense>
<ValuesBlock>
<FundDetails EXPRESSION="[condition statement]" TYPE="[Accumulation|Payout]"/>
</ValuesBlock>
<Withholding>[Yes|No]</Withholding>
<AllowComments>[Yes|No]</AllowComments>
<Transitions>
<Queue METHOD="VALUATION" ADVANCETOSYSTEMDATE="[Yes}No]"/>
</Transitions>
<FundLevels>
<FundLevel LEVEL="{Parent|Child|Lateral]">
<Relation>
<Criteria NAME="[field name]" DATATYPE="[TEXT|DATE|INTEGER|DECIMAL]">[variable name]</Criteria>
</Relation>
</FundLevel>
</FundLevels>
<WorkflowTask CREATEONUSEREXECUTION="[Yes|No]">[workflow task name]</WorkflowTask>
<Fields>
<Field>
<Name BOLD="[Yes|No]" ITALICS="[Yes|No]"/>
<Group ROLECODE="[role code]">[Policy|Role|Client]</Group>
<Display BOLD="[Yes|No]" ITALICS="[Yes|No]">[Yes|No]</Display>
<DataType MASK="[mask name]" CALENDAR="[Gregorian|ISO code]" FORMAT="[translation key]">[Blank|Check|Client|Combo|Date|Decimal|Identifier|Integer|Label|Line|Message|Money|Percent|Radio|Text|TextArea|Title]</DataType>
<Encrypt ERASE="[Yes|No]">[Yes|No]</Encrypt>
<Decrypt>[Yes|No]</Decrypt>
<Parts>
<Part TYPE="VALUE">[string]</Part>
<Part TYPE="SYSTEMDATE" FORMATE="[YY|MM|DD|YYYY|YYYYMM|YYMMDD|YYYYMMDD]"/>
<Part TYPE="FIELD" LEFT=[integer]" RIGHT="[integer]" MID="[integer,integer]" FORMAT="[padding characters]">[field name]</Part>
<Part TYPE="SEQUENCE" FORMAT="[padding characters]" SEQUENCEDATE="[field name]|SYSTEMDATE|EffectiveDate">[sequence name]</Part>
</Parts>
<DefaultValue>[string]</DefaultValue>
<Query TYPE="[SQL|FIXED]">[sql statement]
<Options>
<Option>
<OptionValue>[key value]</OptionValue>
<OptionText>[string]</OptionText>
</Option>
</Options>
</Query>
<Calculated TYPE="[SQL|REPLACE|MESSAGE|FUNCTION]" METHOD="[IFEMPTY|FORCE]">[sql statement|function name}text]</Calculated>
<ClearOnRecycle>[Yes|No]</ClearOnRecycle>
<Disabled>[Yes|No|ReadOnly]</Disabled>
<Hidden>[Yes|No]</Hidden>
<Expanded>[Yes|No]</Expanded>
<Required>[Yes|No]</Required>
<Currency>[currency code list]</Currency>
<DefaultCurrency>[currency code]</DefaultCurrency>
<Final>[Yes|No]</Final>
</Field>
</Fields>
<Actions>
<QuerySet ID="[string]">
<Condition IF="[conditional statement]">
<Action ACTIONTYPE="[SQLQUERY|MATHCOLLECTION|HIDE|SHOW|DISABLE|DISABLEALL|ENABLE|ASSIGN|CALLEXTERNALEVENT]" FIELD="[field name]" INDEX="[integer]" MULTIFIELD="[multifield rule name]" ID="[text]">[string]</Action>
<ElseIf IF="[conditional statement]">
<Action>. . .</Action>
</ElseIf>
<Else>
<Action>. . .</Action>
</Else>
</Condition>
</QuerySet>
<ActionSet>
<Condition IF="[conditional statement]">
<Action ACTIONTYPE="[ERROR|WARNING|SHOW|HIDE|ENABLE|DISABLE|DISABLEALL|ENABLEALL|READONLY|ASSIGN]" FIELD="[field name]" INDEX="[integer]" MULTIFIELD="[multifield rule name]" ID="[text]">[string]</Action>
<ElseIf IF="[conditional statement]">
<Action>. . .</Action>
</ElseIf>
<Else>
<Action>. . .</Action>
</Else>
</Condition>
</ActionSet>
</Actions>
<Events>
<Event TYPE="[ONLOAD|ONCHANGE|ONSUBMIT|CALLEDEVENT]" FIELD="[field name]" ID="[string]">
<ActionSet ID="[string]" FIELD="[field name]"/>
</Event>
<Event TYPE="[ONLOAD|ONCHANGE|ONSUBMIT|CALLEDEVENT]" FIELD="[field name]" ID="[string]">
<QuerySet ID="[string]" FIELD="[field name]"/>
</Event>
</Events>
<ScreenMath>
<Math ID="[string]">
<MathVariables>
<MathVariable>. . .</MathVariable>
</MathVariables>
</Math>
</ScreenMath>
<MultiFields RULE="[rule name]">[Yes|No]</MultiFields>
<Address COPYSOURCEADDRESSGUID="[field name]" DEFAULTADDRESSTYPE="[code value]">
<AddressTypes>
<AddressType>[code value]</AddressType>
</AddressTypes>
</Address>
<ValueFinancialEntry/>
<Buttons>
<Button>[Ok|Quote|Verify}</Button>
</Buttons>
<Membership>
<ClassGroup TYPE="[class group type]" DISPLAYMEMBERSHIPCLASS="[class membership type]">
<WriteMembership>[Yes|No]</WriteMembership>
<EffectiveFromDate>[system date|date field]</EffectiveFromDate>
<EffectiveToDate>[system date|date field]</EffectiveToDate>
</ClassGroup>
</Membership>
<Math/>
<ActivitySequenceProcess>
<ActivitySequence IF="[condition]">
<Activity PROCESSIMMEDIATE="[Yes|No]" IF="[condition]">[transaction name]</Activity>
</ActivitySequence>
<ActivitySequenceProcess>
<Spawns>
<Spawn IF="[conditional statement]">
<Transaction COLLECTION="[collection name]" CLIENT="[variable name]" CLIENTLISTQUERY="[sql statement]" SCHEDULEGUID="[variable name]" FIELD="[variable name]" SPAWNCODE="[code value]" SQL="[sql statement]"/>
<Allocation TYPE="[Policy|Parent|Segment|Program]" ProgramGUID="[variable name|field]">[allocation code]</Allocation>
<SpawnFields>
<SpawnField>
<From>[math variable]</From>
<To>[field name]</To>
<DataType>[Check|Combo|Date|Decimal|Integer|Money|Percent|Radio|Text|TextArea]</DataType>
</SpawnField>
</SpawnFields>
</Spawn>
</Spawns>
<CopyBook>[copybook name]</CopyBook>
</Transaction>
XML Example
<TransactionALLOWQUOTE="Yes" >
<ProcessByCycle> Yes </ProcessByCycle>
<ValueFinancialEntry></ValueFinancialEntry>
<EffectiveDate STATUS="Enabled" TITLE="Next Subscription Date" TYPE="SYSTEM"/>
<Membership>
<ClassGroup TYPE="02" DISPLAYMEMBERSHIPCLASS="LowestOnly">
<WriteMembership>Yes</WriteMembership>
<EffectiveFromDate>Activity:EffectiveDate</EffectiveFromDate>
<EffectiveToDate>MVEffDate</EffectiveToDate>
</ClassGroup>
</Membership>
<Valuation>
<EffectiveDateNUVMustExist>No</EffectiveDateNUVMustExist>
<SystemDateNUVMustExist>No</SystemDateNUVMustExist>
</Valuation>
<FundLevel LEVEL="Child">
<Relation>
<Criteria NAME="BandVariable" DATATYPE="TEXT">Policy:BandVariable</Criteria>
</Relation>
</FundLevel>
<Fields>
<Field>
<Name>ModalFrequency</Name>
<Display>Fund Subscription Frequency</Display>
<DataType>Combo</DataType>
<Query TYPE="SQL">SELECT CodeValue, ShortDescription FROM AsCode
WHERE CodeName = 'AsCodeMode'
AND CodeValue IN ('01', '02', '04', '12')
ORDER BY CodeValue DESC</Query>
</Field>
<Field>
<Name>TerminatePlan</Name>
<Display>Terminate Plan</Display>
<DataType>Check</DataType>
</Field>
<Field>
<Name>ConfirmationNumber</Name>
<Display>Confirmation Number</Display>
<DataType>Identifier</DataType>
<ClearOnRecycle>Yes</ClearOnRecycle>
<Hidden>Yes</Hidden>
<Parts>
<Part TYPE="VALUE">C</Part>
<Part TYPE="VALUE">N</Part>
<Part TYPE="SEQUENCE" FORMAT="0000000000">ConfirmationNumber</Part>
</Parts>
</Field>
</Fields>
<Math>
<MathVariables>
<MathVariable VARIABLENAME="ActivityEffectiveDate" TYPE="FIELD" DATATYPE="DATE">Activity:EffectiveDate</MathVariable>
<MathVariable VARIABLENAME="ModalFrequencyMV" TYPE="FIELD" DATATYPE="TEXT">Activity:ModalFrequency</MathVariable>
<MathVariable VARIABLENAME="NextSubscriptionSpawnDate" TYPE="FUNCTION" DATATYPE="DATE">NextMultipleMode(ActivityEffectiveDate, ModalFrequencyMV, 1)</MathVariable>
<MathVariable VARIABLENAME="SourceFundAllocationCount" TYPE="SQL" DATATYPE="INTEGER">SELECT COUNT(*) FROM AsAllocation WHERE RelatedGUID = '[Activity:PolicyGUID]' AND TypeCode = '13'</MathVariable>
<MathVariable VARIABLENAME="TargetFundAllocationCount" TYPE="SQL" DATATYPE="INTEGER">SELECT COUNT(*) FROM AsAllocation WHERE RelatedGUID = '[Activity:PolicyGUID]' AND TypeCode = '16'</MathVariable>
<MathVariable VARIABLENAME="InputOffset" TYPE="PLANFIELD" DATATYPE="INTEGER">ExchangeDateOffset</MathVariable>
<MathVariable VARIABLENAME="CurrencyExchangeDate" TYPE="VALUE" DATATYPE="DATE"/>
<MathVariable VARIABLENAME="GainLossCurrencyExchangeDate" TYPE="VALUE" DATATYPE="DATE"/>
<MathVariable VARIABLENAME="RatesExist" TYPE="EXPRESSION" DATATYPE="BOOLEAN">false</MathVariable>
<MathStatement TYPE="ACTIVITYFUNCTION" FUNCTIONNAME="FindNextExchangeDatePricing">
<Parameters>
<Parameter NAME="ExchangeDateOffset" TYPE="INPUT">InputOffset</Parameter>
<Parameter NAME="GuaranteedExchangeDate" TYPE="OUTPUT">CurrencyExchangeDate</Parameter>
<Parameter NAME="GainLossExchangeDate" TYPE="OUTPUT">GainLossCurrencyExchangeDate</Parameter>
<Parameter NAME="RatesExist" TYPE="OUTPUT">RatesExist</Parameter>
</Parameters>
</MathStatement>
<MathVariable VARIABLENAME="SwitchFeeRate" TYPE="VALUE" DATATYPE="DECIMAL" LOG="Yes">0.0</MathVariable>
<MathVariable VARIABLENAME="SwtitchFeeMoneyTypeCode" TYPE="VALUE" DATATYPE="TEXT" LOG="Yes">05</MathVariable>
<MathVariable VARIABLENAME="ConfirmationNumberMV" TYPE="IDENTIFIER" DATATYPE="TEXT"
LOG="Yes">
<Parts>
<Part TYPE="VALUE">C</Part>
<Part TYPE="VALUE">N</Part>
<Part TYPE="SEQUENCE" FORMAT="0000000000">ConfirmationNumberMV</Part>
</Parts>
</MathVariable>
</MathVariables>
<Assignment TYPE="Switch" SWITCHFEERATE="SwitchFeeRate" SWITCHFEEMONEYTYPE="SwtitchFeeMoneyTypeCode"/>
</Math>
<Transitions>
<Queue METHOD="VALUATION" ADVANCETOSYSTEMDATE="No"/>
</Transitions>
<Spawns>
<Spawn IF="Activity:TerminatePlan = 'UNCHECKED'">
<Transaction SPAWNCODE="03" FIELD="NextSubscriptionSpawnDate">AutomaticInvestment</Transaction>
<SpawnFields>
<SpawnField>
<From>Activity:ModalFrequency</From>
<To>ModalFrequency</To>
<DataType>Text</DataType>
</SpawnField>
<SpawnField>
<From>Activity:TerminatePlan</From>
<To>TerminatePlan</To>
<DataType>Text</DataType>
</SpawnField>
</SpawnFields>
</Spawn>
</Spawns>
<Buttons>
<Button>Ok</Button>
</Buttons>
</Transaction>