TerminateProgram

The TerminateProgram attached business rule is used to terminate one or more Policy level or a Segment level programs. The result of processing this rule shadows the Program's pending activities and spawns a Program termination activity that is the transaction defined by the Programs' definition rule associated to the Terminate ProgramAction. The <Fields> element structure in this rule will transfer parent activity variable data to the spawned termination activity. The generated activity receives its effective date from one of the <Field> elements in this rule. When the TerminateProgram business rule is reversed or undone, the Program's status value is returned to its prior status by the undo of the spawned termination activity and shadowed activities are brought back to pending status.

The transactions this rule is attached can be program or non-program transactions. Programs are terminated when the Program reaches its scheduled end, when Policy conditions may dictate the program to terminate, such as insufficient Policy cash value or on a Policy's voluntary termination or on the Policy's death notification or death benefit payout. Program transactions are the transactions defined in ProgramActions in the ProgramDefinition rule. The generated Activity from this rule is an instance of a Program activity. When the TerminateProgram rule is processed by a Program activity, the activity is associated to one Program and that Program will be terminated. The rule should not be provided a Program identity. Non-program activities are those not associated to a ProgramAction. The TerminateProgram rule in these activities must be provided one or more Program identities to terminate. All activities include an "IsProgram" variable that can be used in the Activity's Math and in this rule's conditions.

Elements Attributes Parent Element Description Element / Attribute Values
<TerminateProgram>     This is the root element for the rule.  
<Program>   <TerminateProgram>

Required:

This element structure may identify the Program or Programs to terminate and passes Program data to the generated reinstatement Activity.  The generated activity is defined by the ProgramDefinition rule.

 
<Tests>   <Program>

Optional:

This element provides one or more conditions that, when all evaluate to true, allow processing of the remainder of the parent element's configuration.

 
<Test>   <Tests>

Required, Repeatable:

This element provides a single condition.  It is repeated to provide multiple conditions.

  • condition

<Fields>   <Program>

Required:

This element's structure maps available data to the termination activity that will be generated by this rule.

 
<Field>   <Fields>

Required, Repeatable:

This element's structure maps source data to a single field in the generated Terminate activity.  EffectiveDate is a necessary field to be passed to the generated activity.

The <Fields> structure must be configured with either <From> elements or <FromCollection> elements and cannot contain both elements.

 
<From>   <Field>

Optional:

This element identifies the data source that is passed to a generated activity field.  The data source is a math variable or field from the parent activity.  

This element is applicable when processing in a Program activity.  This element is not applicable when processing in a non-Program activity.

  • variable

  • field

<FromCollection>   <Field>

Optional:

This element identifies the data source from a collection math variable in the parent activity.

This element is applicable when processing in a non-Program activity.  This element is not applicable when processing in a Program activity.

  • collection

    • key = ProgramGUID being terminated

    • value = field data to pass to the generated activity

<To>   <Field>

Required:

This element identifies the field in the generated Terminate activity that is created with the the data from the <From> or <FromCollection> element.

  • field name

<OptionText>   <Field>

Optional:

This element identifies the data source that will update the OptionText applicable to a field with the datatype of combo or radio in a single Program activity.

This element is applicable when <From> element is configured within the same parent <Field> element.  It is ignored when <FromCollection> element is configured within the same parent <Field> element.

  • variable

<OptionTextCollection>   <Field>

Optional:

This element identifies the collection that will update the OptionText applicable to a field with the datatype of combo or radio for multiple Program activities.

This element is applicable when <FromCollection> element is configured within the same parent <Field> element.  It is ignored when <From> element is configured within the same parent <Field> element.

  • collection

XML Schema

<TerminateProgram>
    <Program>
        <Tests>
            <Test>[condition]</Test>
            <Test>...</Test>
        </Tests>
        <Fields>
            <Field>
                <From>[variable | field]</From>
                <To>[field name]</To>
            </Field>
            <Field>
                <From>[variable | field]</From>
                <To>[field name]</To>
                <OptionText>[variable]</OptionText>
            </Field>
            <Field>...</Field>
        </Fields>
    </Program>
</TerminateProgram>
 
OR
 
<TerminateProgram>
    <Program>
        <Tests>
            <Test>[condition]</Test>
            <Test>...</Test>
        </Tests>
        <Fields>
            <Field>
                <FromCollection>[variable]</FromCollection>
                <To>[field name]</To>
            </Field>
            <Field>
                <FromCollection>[variable]</FromCollection>
                <To>[field name]</To>
                <OptionTextCollection>[variable]</OptionTextCollection>
            </Field>
            <Field>...</Field>
        </Fields>
    </Program>
</TerminateProgram>

XML Example

<TerminateProgram>
    <Program>
        <Fields>
            <Field>
                <FromCollection>NextBusinessDayCollection</FromCollection>
                <To>EffectiveDate</To>
            </Field>
        </Fields>
    </Program>
</TerminateProgram>