ProgramDefinition
The ProgramDefinition rule provides association between program definition, program action, and program activity. This rule is used to define program fields, map program field values to program activity field data, and trigger defined program operations with the ONSUBMIT event.
Element | Attribute | Definition | Value and Description |
---|---|---|---|
<ProgramDefinition> |
|
|
|
<Fields> |
|
Required element Common field definition. See Fields Element. |
|
<Events> |
|
Optional element Common events definition. See Actions/Events. |
|
<Event>
|
|
Required if <Events> is present. |
|
TYPE |
The ONSUBMIT event is used to trigger the execution of program operations. ONCHANGE is used as is customary. |
ONSUBMIT | ONCHANGE ONSUBMIT: Triggers the execution of program operations. |
|
<ScreenMath> |
|
Optional element Common screen math definition. See ScreenMath. |
|
<Math>
|
|
Optional element Common math definition. See Math Element. |
|
ID |
Required attribute |
|
|
<Actions> |
|
Optional element Common Actions definition. See Actions/Events. |
|
<ActionSet> |
ID |
Required attribute Identifies the action set by name. |
String |
<Condition>
|
|
Optional element |
|
IF |
Optional attribute Specifies an expression evaluating true or false. |
String: Conditional expression. |
|
<Action>
|
|
Optional element Common action definitions and action types apply. |
|
TYPE |
Required if <Action> is present The action type of OPERATION is used in conjunction with the ONSUBMIT event |
OPERATION |
|
RESULT |
Required if TYPE="OPERATION". |
String The value of the attribute is one of the five defined program operations: |
|
<Fields> |
|
Optional element Maps program field values to pending program activity fields if the RESULT attribute is ChangePending or Close Program. |
|
<Field> |
|
Required if <Fields> is present. Common field definition. See Fields Element. |
|
<From> |
|
Required if <Fields> is present. Defines program field as source field using "Program: . . ." |
|
<To> |
|
Required if <Fields> is present. Defines pending program activity field as the target field for the update. |
|
<DataType> |
|
Required if <Fields> is present. Identifies the data type of the source and target fields. |
|
<ElseIf>
|
|
Optional element Defines a conditional expression and action to be executed if previous conditional expressions evaluate to false. |
|
IF |
Optional attribute Specifies an expression evaluating true or false. |
String: Conditional expression. |
|
<Action> |
|
Same as <Action> element above. Defines the action to be taken if the <ElseIf> condition is met. |
|
<Else> |
|
Optional element Defines an action to be executed if all previous expressions in the Condition element evaluate to false. |
|
<Action> |
|
Same as <Action> element above. Defines the action to be taken if the <Else> condition is reached. |
|
<ProgramActions> |
|
Required and repeatable element Configuration defines the transactions associated with add and stop actions. |
|
<ProgramAction> |
|
Repeatable element |
|
ACTION |
Required attribute The ACTION attribute values define the action, and the Transaction element value associates a transaction to the action specified here. Actions should be associated to different transactions for easiest implementation. |
Start | Run | Terminate | Reinstate | Change Start: Defines the program action to initiate a program instance. Run: Defines the program action to start a specific program activity by name. Terminate: Defines the program action to stop the specified program activity. Reinstate: Defines the program action to initiate a program reinstatement activity as defined by the ReinstateProgram rule. Change: Defines the program action to change the program value on a specific date by initiating an specific activity by name |
|
<Transaction> |
|
Required and repeatable element The value identifies the transaction corresponding to the ACTION attribute value of Start, Run, or Terminate. |
String: |
<Fields> |
|
Required element if ACTION="Start". Will be used to map program field values to SetUp activity fields. Names the from and to fields and their values. |
|
<Field> |
|
Required if <Fields> is present. Standard field definition. |
|
<From> |
|
Required if <Fields> is present. Defines the field in the ProgramScreen rule as the source field |
|
<To> |
|
Required if <Fields> is present. Activity field associated with the named transaction. |
|
<DataType> |
|
Required if <Fields> is present. Identifies the data type of the source/target field |
|
<ReinstateTransaction> |
|
Required element if ACTION="Reinstate". This section of configuration defines the specific reinstatement activity to be created by the ReinstateProgram rule based on program and prior program status. |
|
<ProgramPriorStatusCode> |
|
Required and repeatable element Defines the programs status prior to suspension |
Singular Program status code from AsCodeProgramStatus. No comma delimited lists |
<Transaction> |
|
Required and repeatable element Identifies the reinstatement transaction by transaction name. |
String: |
XML Example
<ProgramDefinition>
<Fields>
<Field>
<Name>ClientName</Name>
<Display>ClientName</Display>
<DataType>Client</DataType>
</Field>
<Field>
<Name>ProgramFrequency</Name>
<Display>Program Frequency</Display>
<DataType>Combo</DataType>
<Query TYPE="SQL">SELECT AsCode.CodeValue, AsCode.ShortDescription
FROM AsCode WHERE AsCode.CodeName = 'AsCodeMode'</Query>
</Field>
<Field>
<Name>ProgramAmount</Name>
<Display>Program Amount</Display>
<DataType>Money</DataType>
</Field>
<Field>
<Name>NextScheduledDate</Name>
<Display>Next Scheduled Date</Display>
<DataType>Date</DataType>
<Disabled>Yes</Disabled>
</Field>
</Fields>
<Events>
<Event TYPE="ONSUBMIT">
<Math ID="ProgramScreenMath"></Math>
<ActionSet ID="FieldVerification"></ActionSet>
</Event>
</Events>
<ScreenMath>
<Math ID="ProgramScreenMath" GLOBAL="No">
<MathVariables>
<MathVariable VARIABLENAME="ProgramGUIDMV" TYPE="EXPRESSION" DATATYPE="TEXT">ProgramGUID</MathVariable>
<MathVariable VARIABLENAME="ProgramEndDateMV" TYPE="SQL" DATATYPE="DATE">
SELECT EndDate FROM AsProgram WHERE ProgramGUID = '[ProgramGUIDMV]'
</MathVariable>
</MathVariables>
</Math>
</ScreenMath>
<Actions>
<ActionSet ID="FieldVerification">
<Condition IF="IsEmpty(EffectiveDate)">
<Action ACTIONTYPE="ERROR">Effective Date requires a value.</Action>
</Condition>
<Condition IF="IsEmpty(StartDate)">
<Action ACTIONTYPE="ERROR">Start Date requires a value.</Action>
</Condition>
<Condition IF="IsEmpty(EndDate)">
<Action ACTIONTYPE="ERROR">End Date requires a value.</Action>
</Condition>
<Condition IF="Not IsEmpty(StartDate) And Not IsEmpty(EndDate) And StartDate >= EndDate">
<Action ACTIONTYPE="ERROR">Program Start Date must be less than Program End Date.</Action>
</Condition>
<Condition IF="StatusCode='05' AND EndDate < ProgramScreenMath:ProgramEndDateMV">
<Action ACTIONTYPE="OPERATION" RESULT="Rollback"></Action>
</Condition>
</ActionSet>
</Actions>
<ProgramActions>
<ProgramAction ACTION="Start">
<Transaction>SetUpProgram</Transaction>
<Fields>
<Field>
<From>StartDate</From>
<To>StartDate</To>
<DataType>Date</DataType>
</Field>
<Field>
<From>ProgramFrequency</From>
<To>ProgramFrequency</To>
<DataType>Text</DataType>
</Field>
<Field>
<From>ProgramAmount</From>
<To>ProgramAmount</To>
<DataType>Money</DataType>
</Field>
</Fields>
</ProgramAction>
<ProgramAction ACTION="Run">
<Transaction>PolicyProgramAScheduledActivity</Transaction>
<Fields>
<Field>
<From>StartDate</From>
<To>StartDate</To>
<DataType>Date</DataType>
</Field>
<Field>
<From>ProgramFrequency</From>
<To>ProgramFrequency</To>
<DataType>Text</DataType>
</Field>
<Field>
<From>ProgramAmount</From>
<To>ProgramAmount</To>
<DataType>Money</DataType>
</Field>
</Fields>
</ProgramAction>
<ProgramAction ACTION="Terminate">
<Transaction>TerminateProgram</Transaction>
</ProgramAction>
<ProgramAction ACTION="Reinstate">
<ReinstateTransaction>
<ProgramPriorStatusCode>04</ProgramPriorStatusCode>
<Transaction>ReinstateProgramSkip</Transaction>
</ReinstateTransaction>
</ProgramAction>
</ProgramActions>
</ProgramDefinition>
XML Schema
<ProgramDefinition>
<Fields>
<Field/>
</Fields>
<Events>
<Event TYPE="[ONSUBMIT|ONCHANGE]"> </Event>
</Events>
<ScreenMath>
<Math ID="XXX"/>
</ScreenMath>
<Actions>
<ActionSet ID="">
<Condition IF="">
<Action TYPE="OPERATION" RESULT="Name behavior expected"/>
<Else>
<Action TYPE="OPERATION" RESULT="[ChangePending|Terminate]">
<Fields>
<Field>
<From/>
<To/>
<DataType/>
</Field>
</Fields>
</Action>
</Else>
</Condition>
</ActionSet>
</Actions>
<ProgramActions>
<ProgramAction ACTION="[Start|Run|Terminate|Change]">
<Transaction>name of ACTION transaction</Transaction>
<Fields>
<Field>
<From/>
<To/>
<DataType/>
</Field>
</Fields>
</ProgramAction>
<ProgramAction ACTION="Reinstate">
<ReinstateTransaction>
<ProgramPriorStatusCode/>
<ProgramPriorStatusCode/>
<Transaction></Transaction>
</ReinstateTransaction>
<ReinstateTransaction>
<ProgramPriorStatusCode/>
<ProgramPriorStatusCode/>
<Transaction></Transaction>
</ReinstateTransaction>
</ProgramAction>
</ProgramActions>
</ProgramDefinition>