CreatePolicy

This business rule is introduced to provide the ability to configure an activity-based creation of a new Policy or Application based on events occurring on an existing Policy, Application or Client. One or more Policies or Applications can be generated from a single source Policy, although only one new Policy or Application per activity is supported. All Policies and Applications are created in a pending status awaiting user review. The CreatePolicy business rule must be attached to a non-reversible activity and must be listed in the TransactionBusinessRulePacket business rule.

Note: A complete policy creation can include creation of segments (coverages), roles, impairments, requirements, benefit allocations, investment allocations, programs and activities. The creation can be based on a policy source or built from new data.

  • The CreatePolicy rule is attached to a Policy level transaction. A user adds an Activity defined by this transaction to a Policy. That Policy becomes the source Policy referenced by descriptions on this page.

  • Data from a source Policy and its related entities can be copied to create a full new Policy with a complete set of related entities. The copied source data are the initial data values for new entities with an ability in this rule to overwrite with new values and additional dynamic fields.

  • Related Policy entities supported by this rule are Policy Roles, Segments and Segment Roles, Requirements, Impairments, Benefit Splits, Policy Allocations, Comments, Programs and Activities.

    • Impairments of all levels, Benefit Splits, Policy Allocations and Comments can only be copied from the source Policy or source Segment. Configuration allows for selective copying.

    • The Policy and its Policy Roles, Requirements, Segments and Segment Roles can be copied from the source Policy or created with entirely new data.

      • Configuration allows for selective copying.

      • If these entities are copied the process will initially populate the new entities with the source entity data and configuration can overwrite individual fields with new values as desired.

      • When source Policy data includes multiple Segments with the same name (i.e. multiple child coverages), the rule can identify a source Policy's Segment through unique identifiers, SegmentGUIDs, associated to the source Policy.

      • Multiple Clients can be associated to a single Policy Role or Segment Role through a collection math variable that identifies the Client and provides a fixed or dynamic field value.

    • Programs and Activities can only be created with new data and cannot be copied from a source.

  • The rule also defines the handling of the new Policy and its related entities when the activity that creates them is reversed or undone.

Create Policy Screen: Elements and Attributes
Element Attributes Parent Element Description Element/Attribute Values
<CreatePolicy>     The required opening and closing elements of this business rule.  
<SystemCode>   <CreatePolicy>

Optional:

This element Identifies when the rule is creating an Application or a Policy. 

  • 01

    • default

    • A Policy will be created.

  • 02

    • An Application will be created.

<Policy>   <CreatePolicy>

Required:

This section defines the new Policy's data source.  

 
  PLAN <Policy>

Optional:

This attribute identifies the new Policy's plan.  The plan defines the Policy's fields through the Plan's or Product's PolicyScreen business rule. The value of the attribute must be a valid PlanGUID (unique identifier) or Plan Name.

The default behavior creates a new Policy from the same plan as the source Policy.

  • literal plan name or plan guid 

  • math variable

  • field name

    • This must be prefixed with "Activity:"

  COPYSOURCE <Policy>

Optional:

This attribute indicates a copy of source Policy data to the new Policy and only applies to AsPolicy and AsPolicyField.  The <Fields> structure can change the Policy's initial fixed and dynamic field values.

  • No

    • default value

    • All fields and their data for the new Policy are created first from the specified PolicyScreen business rule. 

    • These initial data values may be over written by this rule's <Fields> element definition.

  • Yes

    • Matching field names between the source Policy and the target Policy's field definition and their values are copied from source Policy's fields.

<Fields>   <Policy>

Optional or Required:

This element is required when the Policy being created is defined by a different plan the Policy processing the Activity to which this rule is attached.  This attribute is optional in other scenarios.

See below "Common Fields structure in this rule"

 
<Roles>   <CreatePolicy>

See below "Common Roles structure in this rule"

 
<Impairments>   <CreatePolicy>

Optional:

This element defines a structure to copy Impairments from the source Policy to the new Policy.  Because of the placement in the rule, this structure only copies Policy or Client level Impairments.

 
<ImpairmentArray>   <Impairments>

Required, Repeatable:

This element provides an array of ImpairmentGuids that are the source of impairment data to copy to the Client or new Policy.  The impairment GUIDs in this array must match LEVEL value.  For example, the impairment GUIDs in the array must be Policy level impairments when the associated LEVEL attribute is Policy.  This element is repeated to copy both levels of Impairments.

  • math variable

    • this must be an array

    • an empty array will copy no impairments from the source Policy to the new Policy

  LEVEL  <ImpairmentArray>

Required:

This attribute indicates the impairment level or entity at which the impairments should get created.

  • Policy

  • Client

<Requirement>   <CreatePolicy>

Optional, Repeatable:

This element defines a structure that identifies a  Requirement to create and initialize for the new Policy. The element is repeated for each Requirement to be created.

 
  COPYSOURCE <Requirement>

Optional:

This attribute indicates creation of a new Requirement on the new Policy by copying from the source Policy's Requirement identified by <RequirementName> and <StatusCode>.  All data including dates and GMTs are copied.  Therefore the new Requirement continues the life cycle of the sourced Requirement.

  • No

    • default

    • The new Requirement identified by this structure will not receive copied data from a source.

    • The fields structure under the Requirement's rule definition provides the fields and default values for the new Requirement.

    • The <Fields> structure provided by this Requirement structure will overwrite the defaults.

  • Yes

    • The specified Requirement's data are copied from the original Policy's Requirement.

<Tests>   <Requirement>

See below "Common Tests structure in this rule"

 
<RequirementName>

 

<Requirement>

Required:

This element's value identifies the Requirement to create.

When COPYSOURCE = "'Yes", this element's value helps identify the source Requirement that will be copied.

When COPYSOURCE = "No", the new Requirement is created from the RequirementDefinition's name identified by this element's value. 

Regardless of the COPYSOURCE value, the following <Fields> structure can over write the initial copy or the definition's default field value.

  • literal Requirement name

<StatusCode>   <Requirement>

Optional:

This element can identify the Requirement that will be copied or the status code value for the new Requirement.

When COPYSOURCE = "Yes", this element's value helps identify the source Requirement.  This element is required in this scenario.

When COPYSOURCE = "No", this element's value becomes the status code value for the new Requirement.  If this element does not exist, the Requirement is created with the default status code value. 

  • code value

    • the code value must be a value from AsCodeRequirementStatus

<Fields>   <Requirement>

Optional:

See below "Common Fields structure in this rule"

 
<Segments>   <CreatePolicy>

Optional:

A section to contain all of the Segment information to pass along to the new policy. This may be required if Segments are necessary for a new valid policy. By default, no segments are created by the rule.

 
<Segment>   <Segments>

Required, Repeatable:

This element defines a structure that identifies Segments to create and initialize for the new Policy. The element is repeated for each Segment to be created.

 
  COPYSOURCE <Segment>

Optional:

This attribute allows data to be copied from an identified Segment or Segments of the source Policy to a new Segment or Segments of the new Policy.  This is applicable with SEGMENTGUIDS or SEGMENTNAME.

  • No

    • default

    • New Segments identified by this structure will not copy data from a source.

    • The Segment's definition provides the fields and default values for the new Segment.

    • The <Fields> structure provided within this Segment structure will overwrite the defaults.

  • Yes

    • The specified Segments' data are copied from the original Policy's Segments.

  SEGMENTGUIDS <Segment>

Optional:

This attribute identifies one or more Segments to copy and create as new Segments on the new Policy.  This attribute is applicable only when COPYSOURCE="Yes" and cannot be used in combination with SEGMENTNAME attribute.  There is no meaning when COPYSOURCE="No".

  • math variable

    • The variable must be an array of SegmentGUIDs from the source Policy.

  SEGMENTNAME <Segment>

Optional:

This attribute identifies a Segment to create by its Segment Name.  This attribute cannot be used in combination with SEGMENTGUIDS attribute.

When COPYSOURCE = "Yes", a Segment with the Segment Name must exist on the source Policy and must have the same Segment Name defined by the <Policy> element's plan attribute.

When COPYSOURCE = "No", the Segment Name defined by the <Policy> element's plan attribute must exist.  This structure creates the new Segment's initial field default data values which can be over written by a <Fields> structure provided within this Segment structure.

  • literal

    • The value must be a valid Segment Name.

  COPYALLROLES <Segment>

Optional:

This attribute allows all Roles on an identified Segment or Segments to be copied and associated to the new Segment or Segments.  This attribute cannot co-exist with the COPY or COPYSOURCE attributes on this Segment structure's Role element.

  • No

    • default

    • Segment Roles are not copied to the new Segment.

  • Yes

    • Segment Roles are copied to the new Segment.

  PLANSEGMENTNAMEGUID <Segment>

Optional:

This attribute provides a valid PlanSegmentNameGUID to populate on the new Segment.  If the attribute is not configured, the new Segment will not receive a PlanSegmentNameGUID value.

  • math variable

  • activity field name

    • This must be prefixed with "Activity:"

<Tests>   <Segment>

See below "Common Tests structure in this rule"

 
<Fields>   <Segment>

Optional:

See below "Common Fields structure in this rule"

 
<Roles>   <Segment>

See below "Common Roles structure in this rule"

 
<Impairments>   <Segment>

Optional:

This element defines a structure to copy Impairments from a source Segment to the new Segment.  Because of the placement in the rule, this structure only copies Segment level Impairments.

 
<ImpairmentArray>   <Impairments>

Required:

This element provides an array of ImpairmentGuids that are the source of impairment data to copy to the new Segment.  The impairment GUIDs in this array must be a Segment level impairments.

  • math variable

    • this must be an array

    • an empty array will copy no impairments from the source Segment to the new Segment

<BenefitSplits>   <CreatePolicy>

Optional:

This element's structure defines creation of the new Segment's Benefit Split data.

 
<BenefitSplit>   <Segment>

Required, Repeatable:

Creates a new BenefitSplit record for the new Segment.  This element is repeated for each benefit split type that will be created on the new Segment.

 
  BENEFITSPLITCOLLECTION <BenefitSplit>

Optional:

The attribute adds Benefit Funds and Amounts to the new benefit split records with the benefit type code value referenced by TYPECODE.

  • collection

  • key = FundGUID

    • each key value must be unique

  • value = benefit amount

  COPYSOURCE <BenefitSplit>

Optional:

The attribute copies the source Segment's benefit split records with the benefit type code value referenced by TYPECODE..

Note: This attribute only applies when COPYSOURCE attribute of the Segment parent element is Yes.

  • No

    • default

    • Benefit split records of this benefit type code will not be copied.

  • Yes

    • Benefit split records of this benefit type code will be copied.   

  TYPECODE <BenefitSplit>

Required:

The attribute provides the Benefit Type Code for the new benefit split records being created.

  • code value

    • value comes from AsCodeBenefitSplitType

<Tests>   <BenefitSplit>

See below "Common Tests structure in this rule"

 
<Allocations>   <CreatePolicy>

Optional:

This element's structure defines creating Policy level Allocations on the new Policy.

 
  FUNDMAP <Allocations>

Optional:

This attribute maps funds available on one Plan to funds available on a different Plan.  This may be necessary when a Policy level activity is creating a new Policy targeted to a different Plan.  In this scenario the list of Funds available to each Plan can be different.  This attribute reconciles this disparity.  This is an unnecessary attribute if source and new Policies are associated to the same Plan.

  • math variable

    • this variable must be a collection

    • key = FundGUID

      • this is a FundGUID available to the source Policy

    • value = FundGUID

      • this is a FundGUID available to the new Policy

<Allocation>   <Allocations>

Required, Repeatable:

This element's structure defines the details needed to copy a single Policy Allocation from the source Policy, source Plan or processing Activity to a single new Policy Allocation.  This element is repeated to create multiple Policy Allocations.

 
  ALLOCATIONSOURCE <Allocation>

Optional:

This attribute causes the system to copy Allocations from the Activity with FROMTYPE = '03' to a valid Policy Allocation Type (TOTYPE).  When this attribute is not configured, the source of the copy is a Policy Allocation, not the Activity.

  • Activity

  FROMTYPE <Allocation>

Optional:

This attribute indicates a Policy Allocation that exists on the source Policy or the Activity's allocation making it eligible to copy as a new Policy Allocation provided by TOTYPE. 

If ALLOCATIONSOURCE is not configured, this attribute is required.

If ALLOCATIONSOURCE is configured, the Activity's Allocation will be copied to the Policy Allocation of the type provided by TOTYPE.  All Activity Allocations are type '03' and is the assumed value if the attribute is not configured.

  • code value

    • value must be a valid AsCodeAllocationType 

    • When the source of data is a Policy Allocation, the value is any valid Allocation type code that is not '01' and '03'.

    • When the source of data is the Activity's Allocation, the value must be '03'.

  TOTYPE <Allocation>

Required:

This attribute provides the Policy Allocation type code that will be created.

  • code value

    • value must be a valid AsCodeAllocationType

    • Any valid Policy Allocation type code

      • Valid Policy Allocation type codes are any Allocation type code that is not '01' and '03'.

<Tests>   <Allocation>

See below "Common Tests structure in this rule"

 
<Comments>   <CreatePolicy>

Optional:

This element's structure defines the Comments that will be copied from a source.  The data source is the source Policy or data in the Activity.

 
  COPYALL <Comments>

Optional:

This attribute instructs the system to copy all Policy Comments from the source Policy to the new Policy

  • No

    • default

    • Policy Comments will not be copied from the source.

  • Yes

    • All Policy Comments are copied from the source Policy.

<Comment>   <Comments>

Optional:

This provides a comment to create as a new Comment on the new Policy.

  • math variable

    • The variable must contain text.  The text becomes the new Policy Comment.

  • literal

<Tests>   <Comments>

See below "Common Tests structure in this rule"

 
<Programs>   <CreatePolicy>

Optional:

This element contains a structure that defines the Programs to create on the new Policy.

 
<Program>   <Programs>

Required, Repeatable:

This element structure defines the details for a single Program to create.  This element is repeated to create multiple Policy level Programs.

 
  PROGRAMNAME <Program>

Required:

This attribute provides the Program Name to create.

  • literal

    • valid program names come from AsProgramDefinition

  PROCESSPROGRAM <Program>

Optional:

This attribute specifies that the named program processes upon insert or remain in the pending state.

  • No

    • default

    • The program will not process upon insert.

  • Yes

    • The program will process upon insert.

<Tests>   <Program>

See below "Common Tests structure in this rule"

 
<Fields>   <Program>

Optional:

See below "Common Fields structure in this rule"

 
<Activities>   <CreatePolicy>

Optional:

This element's structure allows multiple Policy level Activities to be created.  These Activities are pending and waiting for further processing to another Activity status.

 
<Activity>   <Activities>

Required, Repeatable:

This element defines a single activity to create.  The element is repeated to create multiple Policy level Activities.

 
  TRANSACTIONNAME <Activity>

Required:

This attribute provides a name of a Policy level transaction to insert as an Activity.

  • literal

    • The literal value must be a valid Policy level Transaction name on the Plan identified by the <Policy> element's PLAN attribute.

<Tests>   <Activity>

See below "Common Tests structure in this rule"

 
<Fields>   <Activity>

Required:

See below "Common Fields structure in this rule"

 
<ReversalProcessing>   <CreatePolicy>

Optional:

This element's structures defines the new Policy's disposition when the Activity that created it is reversed.

 
<ShadowOnReversal>   <ReversalProcessing>

Optional: 

This element indicates the Policy created by the Activity is Shadowed upon the Activity's reversal.  This element takes precedence when the system attempts to process this element and <DeleteOnReversal> element.

 
<Tests>   <ShadowOnReversal>

See below "Common Tests structure in this rule"

The Activity's fields and logged Activity Math can be used to form conditions to control this behavior.

 
<DeleteOnReversal>   <ReversalProcessing>

Optional:

This element indicates the Policy created by the Activity is physically deleted upon the Activity's reversal.  The <ShadowOnReversal> element takes precedence when the system attempts to process <ShadowOnReversal> and this element.

 
<Tests>   <DeleteOnReversal>

See below "Common Tests structure in this rule"

The Activity's fields and logged Activity Math can be used to form conditions to control this behavior.

 

Common Roles structure in this rule

Element Attribute Parent Element Description Element/Attribute Values
<Roles>   <Policy>,<Segment>

Optional:

This element defines the creation of Policy level Roles or Segment level Roles.  The parent element identifies the entity in which the Roles are associated. 

 
  COPYALL <Roles>

Optional:

This attribute allows all Roles from the source entity to be copied to the new entity and cannot co-exist with a <Role> element.

  • No

    • default

    • Roles will not be copied from the source entity's Roles to the new entity's Roles.

  • Yes

    • All Roles from the source entity's Roles will be copied to the new entity's Roles. 

<Fields>   <Roles>

Optional:

See below "Common Fields structure in this rule"

The fields defined in this structure apply to all Roles created on the associated parent entity. 

 
<Role>   <Roles>

Optional, Repeatable:

This element's structure defines the process to create new Roles associated to the parent entity.  The element cannot co-exist with the COPYALL attribute.

 
  ROLECODE <Role>

Required:

The attribute identifies the Role to create by a single Role Code.

  • code value

    • value comes from AsCodeRole

  CLIENTGUID <Role>

Optional:

This attribute identifies a Client to associate to this Role.  The attribute is cannot co-exist with COPY or COPYSOURCE attributes.

  • math variable

    • variable must contain a ClientGUID

  COPY <Role>

Optional:

The attribute allows the all Roles of the associated Role Code on the associated entity to be copied from the source Policy to the new Policy.  The attribute cannot coexist with COPYALLROLES attribute when the parent entity is Segment.  The 

  • No

    • default

    • Roles will not be copied from the source.

  • Yes

    • all Roles associated to the Role Code value will be copied from the source.

  COPYSOURCE <Role>

Optional:

This attribute allows all Roles of the associated Role Code on the associated entity to be copied from the source Policy to the new Policy.  The attribute cannot coexist with COPYALLROLES attribute when the parent entity is Segment.

  • No

    • default

    • Roles will not be copied from the source.

  • Yes

    • all Roles associated to the Role Code value will be copied from the source.

<Tests>   <Role>

See below "Common Tests structure in this rule"

 
<Fields>   <Role>

Optional:

See below "Common Fields structure in this rule"

 
<MultiFields>   <Role>

See below "Common MultiField structure in this rule"

 

Common Fields structure in this rule

Element Attribute Parent Element Description Element/Attribute Values
<Fields>  

<Policy>,

<Segment>,

<Roles>,

<Role>,

<Requirement>,

<Program>

Optional or Required (dependent on parent element):

This element defines a structure of fixed and dynamic fields and their data values needed to create a new entity.  This structure will override the field values that are defaulted as defined by the entity's screen or rule business rule or copied from a source from another Policy.  The entity being created is identified by the parent element.  Each entity has a rule defining fields that a specific instance of the entity can contain.

Note: This element is required for the <Policy> parent element when 'PLAN' and 'COPYSOURCE' attributes are not present inside the <Policy> element.  At a minimum PolicyName and IssueState fields must be configured.

 
<Field>   <Fields>

Required, Repeatable:

This element defines a structure of fields and their data values to create the new Requirement.

 
<From>   <Field>

Required:

This element defines a data source value from which to create an entity's field that is identified by field name in the <To> element.  This element cannot be configured when <FromCollection> is configured for the field.

  • literal

    • math variable

    • activity field name

      • This must be prefixed with "Activity:"

<To>   <Field>

Required:

This element identifies the target entity field that will contain the value referenced by the <From> element.

  • field name

    • The field must be defined in the entity's screen or tule definition.

<OptionText>   <Field>

Optional:

When the <To> element identifies an entity's field define as a Combo data type, option text associated to the <From> element's data value must be provided.

  • math variable

    • Value must be text.

<FromCollection>   <Field>

Required:

This element is applicable when configuration defines creation of one or more Roles where the associated field will be inserted.  This element cannot be configured when <From> is configured in the <Field> structure.  This element is applicable only within the parent element structure of <Roles> and <Role>.

  • math variable

    • Variable must be a collection

    • key = ClientGUID

      • each key value must be unique

    • value = updated data value

<OptionTextCollection>   <Field>

Optional:

This element is applicable when configuration defines creation of one or more Roles where the associated field will be inserted.  This element cannot be configured when <From> is configured in the <Field> structure.  It is applicable only when <FromCollection> is configured in the <Field> structure and must be provided when the field's data type is Combo.  This element cannot be configured when <OptionText> is configured for the <Field> structure.

  • math variable

    • Variable must be a collection

    • key = ClientGUID

      • each key value must be unique

    • value = updated option text value

<MultiFields>  

<Policy>,

<Segment>,

<Roles>,

<Role>,

<Requirement>,

<Program>

See below "Common MultiField structure in this rule"  

Common MultiField structure in this rule

Element Attribute Parent Element Description Element/Attribute Values
<MultiFields>  

<Policy>,

<Segment>,

<Role>,

<Requirement>

Optional, Repeatable: 

Defines the multifield structure to be inserted.  The element is repeated to create multiple multifield named structures.  This element can be associated to multiple parent elements in the rule.  These parent elements define the entity to which the inserted structure is associated.  The entity's screen business rule must contain a <MultiField> element that identifies the multifield rule containing a definition of the structure names and fields.  Structure names and fields referenced in the various parent elements in the CreatePolicy rule are validated against the screen entity's MultiField rule.

 
  NAME <MultiFields>

Required:

This attribute identifies the multifield's named section whose definition will control the fields that can be inserted.

  • literal name

  END <MultiFields>

Required:

The attribute specifies the total number of instances of multifields that will be inserted.  If NAME is omitted or does not exist in the parent element's screen rule's MultiField rule, all fields in all named multifield structures are repeated "END" number of times.

  • integer

  • math variable

    • value must be an integer

<Field>   <MultiFields>

Optional, Repeatable:

This element defines a multifield structure of fields and their data values to create on the new entity record identified by the parent element.  This element is repeated to identify multiple field creation.  This element and its sub elements may be omitted in order to insert the Multifield's fields with default values for "END" number of times.

 
<FromIndexCollection>   <Field>

Required:

This element defines source data values for one or more instances of a targeted multifield field identified by the <To> element.

  • math variable

    • The variable must contain a collection

    • key = integer

      • each key value must be unique

    • value = updated data value

<To>   <Field>

Required:

This element identifies the targeted multifield field that will contain the data value referenced by the <FromIndexCollection> element.  The system validates targeted field names with the field names in the Segment's MultiField rule.

  • literal field name

Common Tests structure in this rule

Element Attribute Parent Element Description Element/Attribute Values
<Tests>  

<Requirement>,

<Segment>,

<Role>,

<Program>,

<Activity>,

<ShadowOnReversal>,

<DeleteOnReversal>

Optional:

This element defines a structure containing one or more conditions that allow the parent structure to continue processing when all conditions contained by the structure evaluate to true.

 
<Test>   <Tests>

Required, Repeatable:

This element defines a condition.  The element is repeated to define an additional condition connected by a logical AND in the code.

  • literal

    • The literal must be phrased as a conditional statement.

    • A conditional statement uses operators =, >, <, <>.

    • A single element may contain multiple conditional statements connected by a OR or AND.

General XML Schema without regard to impact element and attribute values have on other optional elements and attributes

<CreatePolicy>
    <SystemCode>[01 | 02]</SystemCode>
    <Policy PLAN="[literal | variable | field]" COPYSOURCE="[No | Yes]">
        <Fields>
            <Field>
                <From>[variable | field | literal]</From>
                <To>[field name]</To>
                <OptionText>[variable]</OptionText>
            </Field>
            <Field>...</Field>
        </Fields>
        <MultiFields NAME="[literal]" END="[variable | integer]">
            <Field>
                <FromIndexCollection>[variable]</FromIndexCollection>
                <To>[field name]</To>
            </Field>
            <Field>...</Field>
        </MultiFields>
        <MultiFields>...</MultiFields>
    </Policy>
    <Roles COPYALL="[No | Yes]" ROLECODE="[code]" CLIENTGUID="[variable]" COPY="[No | Yes]" COPYSOURCE="[No | Yes]">
        <Fields>
            <Field>
                <From>[variable | field | literal]</From>
                <FromCollection>[collection]</FromCollection>
                <To>[field name]</To>
                <OptionText>[variable]</OptionText>
                <OptionTextCollection>[collection]</OptionTextCollection>
            </Field>
            <Field>...</Field>
        </Fields>
        <MultiFields NAME="[literal]" END="[variable | integer]">
            <Field>
                <FromIndexCollection>[variable]</FromIndexCollection>
                <To>[field name]</To>
            </Field>
            <Field>...</Field>
        </MultiFields>
        <MultiFields>...</MultiFields>
    </Roles>
    <Segments>
        <Segment COPYSOURCE="[No | Yes]" SEGMENTNAME="[literal]" SEGMENTGUIDS="[array]" PLANSEGMENTNAMEGUID="[variable | field]"
            COPYALLROLES="[No |Yes]">
            <Tests>
                <Test>[condition]</Test>
                <Test>...</Test>
            </Tests>
            <Fields>
                <Field>
                    <From>[variable | field | literal]</From>
                    <To>[field name]</To>
                    <OptionText>[variable]</OptionText>
                </Field>
                <Field>...</Field>
            </Fields>
            <MultiFields NAME="[literal]" END="[variable | integer]">
                <Field>
                    <FromIndexCollection>[variable]</FromIndexCollection>
                    <To>[field name]</To>
                </Field>
                <Field>...</Field>
            </MultiFields>
            <MultiFields>...</MultiFields>
            <Roles COPYALL="[No | Yes]">
                <Fields>
                    <Field>
                        <From>[variable | field | literal]</From>
                        <FromCollection>[collection]</FromCollection>
                        <To>[field name]</To>
                        <OptionText>[variable]</OptionText>
                        <OptionTextCollection>[collection]</OptionTextCollection>
                    </Field>
                    <Field>...</Field>
                </Fields>
                <MultiFields NAME="[literal]" END="[variable | integer]">
                    <Field>
                        <FromIndexCollection>[variable]</FromIndexCollection>
                        <To>[field name]</To>
                    </Field>
                    <Field>...</Field>
                </MultiFields>
                <MultiFields>...</MultiFields>
                <Role ROLECODE="[code]" CLIENTGUID="[variable]" COPY="[No | Yes]" COPYSOURCE="[No | Yes]">
                    <Tests>
                        <Test>[condition]</Test>
                        <Test>...</Test>
                    </Tests>
                    <Fields>
                        <Field>
                            <From>[variable | field | literal]</From>
                            <FromCollection>[collection]</FromCollection>
                            <To>[field name]</To>
                            <OptionText>[variable]</OptionText>
                            <OptionTextCollection>[collection]</OptionTextCollection>
                        </Field>
                        <Field>...</Field>
                    </Fields>
                    <MultiFields NAME="[literal]" END="[variable | integer]">
                        <Field>
                            <FromIndexCollection>[variable]</FromIndexCollection>
                            <To>[field name]</To>
                        </Field>
                        <Field>...</Field>
                    </MultiFields>
                    <MultiFields>...</MultiFields>
                </Role>
                <Role>...</Role>
            </Roles>
            <Impairments>
                <ImpairmentArray>[array]</ImpairmentArray>
            <Impairments>
            <BenefitSplits>
                <Tests>
                    <Test>[condition]</Test>
                    <Test>...</Test>
                </Tests>
                <BenefitSplit BENEFITSPLITCOLLECTION="[collection]" COPYSOURCE="[No | Yes]" TYPECODE="[code]" />
                <BenefitSplit>...</BenefitSplit>
            </BenefitSplits>
        </Segment>
        <Segment>...</Segment>
    </Segments>
    <Impairments>
        <ImpairmentArray LEVEL="[Policy | Client]">[array]</ImpairmentArray>
        <ImpairmentArray>...</ImpairmentArray>
    </Impairments>
    <Requirement COPYSOURCE="[No | Yes]">
        <Tests>
            <Test>[condition]</Test>
            <Test>...</Test>
        </Tests>
        <RequirementName>[literal]</RequirementName>
        <StatusCode>[code value]</StatusCode>
        <Fields>
            <Field>
                <From>[variable | field | literal]</From>
                <To>[field name]</To>
                <OptionText>[variable]</OptionText>
            </Field>
            <Field>...</Field>
        </Fields>
        <MultiFields NAME="[literal]" END="[variable | integer]">
            <Field>
                <FromIndexCollection>[variable]</FromIndexCollection>
                <To>[field name]</To>
            </Field>
            <Field>...</Field>
        </MultiFields>
        <MultiFields>...</MultiFields>
    </Requirement>
    <Requirement>...</Requirement>
    <Allocations FUNDMAP="[variable]">
        <Allocation ALLOCATIONSOURCE="Activity" FROMTYPE="03" TOTYPE="[code]">
            <Tests>
                <Test>[condition]</Test>
                <Test>...</Test>
            </Tests>
        </Allocation>
        <Allocation FROMTYPE="[code]" TOTYPE="[code]">
            <Tests>
                <Test>[condition]</Test>
                <Test>...</Test>
            </Tests>
        </Allocation>
        <Allocation>...</Allocation>
    </Allocations>
    <Comments COPYALL="[No | Yes]">
        <Tests>
            <Test>[condition]</Test>
            <Test>...</Test>
        </Tests>
        <Comment>[variable | literal]</Comment>
    </Comments>
    <Programs>
        <Program PROGRAMNAME="[literal]" PROCESSPROGRAM="[No | Yes]">
            <Tests>
                <Test>[condition]</Test>
                <Test>...</Test>
            </Tests>
            <Fields>
                <Field>
                    <From>[variable | field | literal]</From>
                    <To>[field name]</To>
                    <OptionText>[variable]</OptionText>
                </Field>
                <Field>...</Field>
            </Fields>
        </Program>
        <Program>...</Program>
    </Programs>
    <Activities>
        <Activity TRANSACTIONNAME="[literal]">
            <Tests>
                <Test>[condition]</Test>
                <Test>...</Test>
            </Tests>
            <Fields>
                <Field>
                    <From>[variable | field | literal]</From>
                    <To>[field name]</To>
                    <OptionText>[variable]</OptionText>
                </Field>
                <Field>...</Field>
            </Fields>
        </Activity>
        <Activity>...</Activity>
    </Activities>
    <ReversalProcessing>
        <ShadowOnRevrsal>
            <Tests>
                <Test>[condition]</Test>
                <Test>...</Test>
            </Tests>
        </ShadowOnRevrsal>
        <DeleteOnReversal>
            <Tests>
                <Test>[condition]</Test>
                <Test>...</Test>
            </Tests>
        </DeleteOnReversal>
    </ReversalProcessing>
</CreatePolicy>

XML Schema for Policy Roles and Segment Roles with regard to the impact element and attribute values have on other elements and attributes

<!-- begin Policy Roles -->
<CreatePolicy>
    <Policy>...</Policy>
    ...
    <Roles COPYALL="Yes">
        <Fields>
            <Field>
                <From>[variable | field | literal]</From>
                <To>[field name]</To>
                <OptionText>[variable]</OptionText>
            </Field>
            <Field>...</Field>
            <Field>
                <FromCollection>[collection]</FromCollection>
                <To>[field name]</To>
                <OptionTextCollection>[collection]</OptionTextCollection>
            </Field>
            <Field>...</Field>
        </Fields>
        <MultiFields NAME="[literal]" END="[variable | integer]">
            <Field>
                <FromIndexCollection>[variable]</FromIndexCollection>
                <To>[field name]</To>
            </Field>
            <Field>...</Field>
        </MultiFields>
        <MultiFields>...</MultiFields>
    </Roles>
    ...
</CreatePolicy>
 
OR
 
<CreatePolicy>
    <SystemCode>[01 | 02]</SystemCode>
    <Policy>...</Policy>
    ...
    <Roles COPYALL="No">
        <Role ROLECODE="[code]">
            <Tests>
                <Test>[condition]</Test>
                <Test>...</Test>
            </Tests>
            <Fields>
                <Field>
                    <FromCollection>[collection]</FromCollection>
                    <To>[field name]</To>
                    <OptionTextCollection>[collection]</OptionTextCollection>
                </Field>
                <Field>...</Field>
            </Fields>
        </Role>
        <Role ROLECODE="[code]" CLIENTGUID="[variable]">
            <Tests>
                <Test>[condition]</Test>
                <Test>...</Test>
            </Tests>
            <Fields>
                <Field>
                    <From>[variable | field | literal]</From>
                    <To>[field name]</To>
                    <OptionText>[variable]</OptionText>
                </Field>
                <Field>
                    <FromCollection>[collection]</FromCollection>
                    <To>[field name]</To>
                    <OptionTextCollection>[collection]</OptionTextCollection>
                </Field>
                <Field>...</Field>
            </Fields>
            <MultiFields NAME="[literal]" END="[variable | integer]">
                <Field>
                    <FromIndexCollection>[variable]</FromIndexCollection>
                    <To>[field name]</To>
                </Field>
                <Field>...</Field>
            </MultiFields>
            <MultiFields>...</MultiFields>
        </Role>
        <Role ROLECODE="[code]" COPY="[No | Yes]">
            <Tests>
                <Test>[condition]</Test>
                <Test>...</Test>
            </Tests>
            <Fields>
                <Field>
                    <From>[variable | field | literal]</From>
                    <To>[field name]</To>
                    <OptionText>[variable]</OptionText>
                </Field>
                <Field>
                    <FromCollection>[collection]</FromCollection>
                    <To>[field name]</To>
                    <OptionTextCollection>[collection]</OptionTextCollection>
                </Field>
                <Field>...</Field>
            </Fields>
            <MultiFields NAME="[literal]" END="[variable | integer]">
                <Field>
                    <FromIndexCollection>[variable]</FromIndexCollection>
                    <To>[field name]</To>
                </Field>
                <Field>...</Field>
            </MultiFields>
            <MultiFields>...</MultiFields>
        </Role>
        <Role ROLECODE="[code]" COPYSOURCE="[No | Yes]">
            <Tests>
                <Test>[condition]</Test>
                <Test>...</Test>
            </Tests>
            <Fields>
                <Field>
                    <From>[variable | field | literal]</From>
                    <To>[field name]</To>
                    <OptionText>[variable]</OptionText>
                </Field>
                <Field>
                    <FromCollection>[collection]</FromCollection>
                    <To>[field name]</To>
                    <OptionTextCollection>[collection]</OptionTextCollection>
                </Field>
                <Field>...</Field>
            </Fields>
            <MultiFields NAME="[literal]" END="[variable | integer]">
                <Field>
                    <FromIndexCollection>[variable]</FromIndexCollection>
                    <To>[field name]</To>
                </Field>
                <Field>...</Field>
            </MultiFields>
            <MultiFields>...</MultiFields>
        </Role>
        <Role>...</Role>
    </Roles>
    ...
</CreatePolicy>
<!-- end of Policy Roles -->
 
OR
 
<!-- begin Segment Roles -->
<CreatePolicy>
    ...
    <Segments>
        ...
        <Roles COPYALL="Yes">
            <Fields>
                <Field>
                    <From>[variable | field | literal]</From>
                    <To>[field name]</To>
                    <OptionText>[variable]</OptionText>
                </Field>
                <Field>...</Field>
                <Field>
                    <FromCollection>[collection]</FromCollection>
                    <To>[field name]</To>
                    <OptionTextCollection>[collection]</OptionTextCollection>
                </Field>
                <Field>...</Field>
            </Fields>
            <MultiFields NAME="[literal]" END="[variable | integer]">
                <Field>
                    <FromIndexCollection>[variable]</FromIndexCollection>
                    <To>[field name]</To>
                </Field>
                <Field>...</Field>
            </MultiFields>
            <MultiFields>...</MultiFields>
        </Roles>
        ...
    </Segments>
    ...
</CreatePolicy>
 
OR
 
<CreatePolicy>
    ...
    <Segments>
        ...
        <Segment>
            ...
            <Roles COPYALL="No">
                <Role ROLECODE="[code]">
                    <Tests>
                        <Test>[condition]</Test>
                        <Test>...</Test>
                    </Tests>
                    <Fields>
                        <Field>
                            <FromCollection>[collection]</FromCollection>
                            <To>[field name]</To>
                            <OptionTextCollection>[collection]</OptionTextCollection>
                        </Field>
                        <Field>...</Field>
                    </Fields>
                </Role>
                <Role ROLECODE="[code]" CLIENTGUID="[variable]">
                    <Tests>
                        <Test>[condition]</Test>
                        <Test>...</Test>
                    </Tests>
                    <Fields>
                        <Field>
                            <From>[variable | field | literal]</From>
                            <To>[field name]</To>
                            <OptionText>[variable]</OptionText>
                        </Field>
                        <Field>
                            <FromCollection>[collection]</FromCollection>
                            <To>[field name]</To>
                            <OptionTextCollection>[collection]</OptionTextCollection>
                        </Field>
                        <Field>...</Field>
                    </Fields>
                    <MultiFields NAME="[literal]" END="[variable | integer]">
                        <Field>
                            <FromIndexCollection>[variable]</FromIndexCollection>
                            <To>[field name]</To>
                        </Field>
                        <Field>...</Field>
                    </MultiFields>
                    <MultiFields>...</MultiFields>
                </Role>
                <Role ROLECODE="[code]" COPY="[No | Yes]">
                    <Tests>
                        <Test>[condition]</Test>
                        <Test>...</Test>
                    </Tests>
                    <Fields>
                        <Field>
                            <From>[variable | field | literal]</From>
                            <To>[field name]</To>
                            <OptionText>[variable]</OptionText>
                        </Field>
                        <Field>
                            <FromCollection>[collection]</FromCollection>
                            <To>[field name]</To>
                            <OptionTextCollection>[collection]</OptionTextCollection>
                        </Field>
                        <Field>...</Field>
                    </Fields>
                    <MultiFields NAME="[literal]" END="[variable | integer]">
                        <Field>
                            <FromIndexCollection>[variable]</FromIndexCollection>
                            <To>[field name]</To>
                        </Field>
                        <Field>...</Field>
                    </MultiFields>
                    <MultiFields>...</MultiFields>
                </Role>
                <Role ROLECODE="[code]" COPYSOURCE="[No | Yes]">
                    <Tests>
                        <Test>[condition]</Test>
                        <Test>...</Test>
                    </Tests>
                    <Fields>
                        <Field>
                            <From>[variable | field | literal]</From>
                            <To>[field name]</To>
                            <OptionText>[variable]</OptionText>
                        </Field>
                        <Field>
                            <FromCollection>[collection]</FromCollection>
                            <To>[field name]</To>
                            <OptionTextCollection>[collection]</OptionTextCollection>
                        </Field>
                        <Field>...</Field>
                    </Fields>
                    <MultiFields NAME="[literal]" END="[variable | integer]">
                        <Field>
                            <FromIndexCollection>[variable]</FromIndexCollection>
                            <To>[field name]</To>
                        </Field>
                        <Field>...</Field>
                    </MultiFields>
                    <MultiFields>...</MultiFields>
                </Role>
                <Role>...</Role>
            </Roles>
            ...
        </Segment>
        ...
    </Segments>
    ...
</CreatePolicy>
<!-- end of Segment Roles -->

XML Schema for Segments with regard to the impact element and attribute values have on other elements and attributes

<CreatePolicy>
    ...
    <Segments>
        <Segment COPYSOURCE="Yes" SEGMENTGUIDS="[array]" PLANSEGMENTNAMEGUID="[variable | field]" COPYALLROLES="No">
            <Tests>
                <Test>[condition]</Test>
                <Test>...</Test>
            </Tests>
            <Fields>
                <Field>
                    <From>[variable | field | literal]</From>
                    <To>[field name]</To>
                    <OptionText>[variable]</OptionText>
                </Field>
                <Field>...</Field>
            </Fields>
            <MultiFields NAME="[literal]" END="[variable | integer]">
                <Field>
                    <FromIndexCollection>[variable]</FromIndexCollection>
                    <To>[field name]</To>
                </Field>
                <Field>...</Field>
            </MultiFields>
            <MultiFields>...</MultiFields>
            <Roles COPYALL="No">
                <Role ROLECODE="[code]">...</Role>
                <Role ROLECODE="[code]" CLIENTGUID="[variable]">...</Role>
                <Role ROLECODE="[code]" COPY="[No | Yes]">...</Role>
                <Role ROLECODE="[code]" COPYSOURCE="[No | Yes]">...</Role>
                <Role>...</Role>
            </Roles>
            <Impairments>
                <ImpairmentArray>[array]</ImpairmentArray>
            </Impairments>
            <BenefitSplits>
                <Tests>
                    <Test>[condition]</Test>
                    <Test>...</Test>
                </Tests>
                <BenefitSplit BENEFITSPLITCOLLECTION="[collection]" COPYSOURCE="[No | Yes]" TYPECODE="[code]" />
                <BenefitSplit>...</BenefitSplit>
            </BenefitSplits> 
        </Segment>
        <Segment COPYSOURCE="Yes" SEGMENTGUIDS="[array]" PLANSEGMENTNAMEGUID="[variable | field]" COPYALLROLES="[No | Yes]">
            <Tests>
                <Test>[condition]</Test>
                <Test>...</Test>
            </Tests>
            <Fields>
                <Field>
                    <From>[variable | field | literal]</From>
                    <To>[field name]</To>
                    <OptionText>[variable]</OptionText>
                </Field>
                <Field>...</Field>
            </Fields>
            <MultiFields NAME="[literal]" END="[variable | integer]">
                <Field>
                    <FromIndexCollection>[variable]</FromIndexCollection>
                    <To>[field name]</To>
                </Field>
                <Field>...</Field>
            </MultiFields>
            <MultiFields>...</MultiFields>
            <Roles COPYALL="Yes">...</Roles>
            <Impairments>
                <ImpairmentArray>[array]</ImpairmentArray>
            </Impairments>
            <BenefitSplits>
                <Tests>
                    <Test>[condition]</Test>
                    <Test>...</Test>
                </Tests>
                <BenefitSplit BENEFITSPLITCOLLECTION="[collection]" COPYSOURCE="[No | Yes]" TYPECODE="[code]" />
                <BenefitSplit>...</BenefitSplit>
            </BenefitSplits> 
        </Segment>
        <Segment COPYSOURCE="[No | Yes]" SEGMENTNAME="[literal]" PLANSEGMENTNAMEGUID="[variable | field]" COPYALLROLES="No">
            <Tests>
                <Test>[condition]</Test>
                <Test>...</Test>
            </Tests>
            <Fields>
                <Field>
                    <From>[variable | field | literal]</From>
                    <To>[field name]</To>
                    <OptionText>[variable]</OptionText>
                </Field>
                <Field>...</Field>
            </Fields>
            <MultiFields NAME="[literal]" END="[variable | integer]">
                <Field>
                    <FromIndexCollection>[variable]</FromIndexCollection>
                    <To>[field name]</To>
                </Field>
                <Field>...</Field>
            </MultiFields>
            <MultiFields>...</MultiFields>
            <Roles COPYALL="No">
                <Role ROLECODE="[code]">...</Role>
                <Role ROLECODE="[code]" CLIENTGUID="[variable]">...</Role>
                <Role ROLECODE="[code]" COPY="[No | Yes]">...</Role>
                <Role ROLECODE="[code]" COPYSOURCE="[No | Yes]">... </Role>
                <Role>...</Role>
            </Roles>
            <Impairments>
                <ImpairmentArray>[array]</ImpairmentArray>
            </Impairments>
            <BenefitSplits>
                <Tests>
                    <Test>[condition]</Test>
                    <Test>...</Test>
                </Tests>
                <BenefitSplit BENEFITSPLITCOLLECTION="[collection]" COPYSOURCE="[No | Yes]" TYPECODE="[code]" />
                <BenefitSplit>...</BenefitSplit>
            </BenefitSplits> 
        </Segment>
        <Segment COPYSOURCE="[No | Yes]" SEGMENTNAME="[literal]" PLANSEGMENTNAMEGUID="[variable | field]" COPYALLROLES="[No | Yes]">
            <Tests>
                <Test>[condition]</Test>
                <Test>...</Test>
            </Tests>
            <Fields>
                <Field>
                    <From>[variable | field | literal]</From>
                    <To>[field name]</To>
                    <OptionText>[variable]</OptionText>
                </Field>
                <Field>...</Field>
            </Fields>
            <MultiFields NAME="[literal]" END="[variable | integer]">
                <Field>
                    <FromIndexCollection>[variable]</FromIndexCollection>
                    <To>[field name]</To>
                </Field>
                <Field>...</Field>
            </MultiFields>
            <MultiFields>...</MultiFields>
            <Roles COPYALL="Yes">...</Roles>
            <Impairments>
                <ImpairmentArray>[array]</ImpairmentArray>
            </Impairments>
            <BenefitSplits>
                <Tests>
                    <Test>[condition]</Test>
                    <Test>...</Test>
                </Tests>
                <BenefitSplit BENEFITSPLITCOLLECTION="[collection]" COPYSOURCE="[No | Yes]" TYPECODE="[code]" />
                <BenefitSplit>...</BenefitSplit>
            </BenefitSplits> 
        </Segment>
        <Segment>...</Segment>
    </Segments>
    ...
</CreatePolicy>

XML Schema for Comments with regard to the impact element and attribute values have on other elements and attributes

<CreatePolicy>
    ...
    <Comments COPYALL="No">
        <Tests>
            <Test>[condition]</Test>
            <Test>...</Test>
        </Tests>
        <Comment>[variable | literal]</Comment>
    </Comments>
    ...
</CreatePolicy>
 
OR
 
<CreatePolicy>
    ...
    <Comments COPYALL="Yes">
        <Tests>
            <Test>[condition]</Test>
            <Test>...</Test>
        </Tests>
    </Comments>    
    ...
</CreatePolicy>

XML Example

<CreatePolicy>
    <Policy PLAN="Functional Prototype Plan" COPYSOURCE="No">
        <Fields>
            <Field>
                <From>Policy:IssueStateCode</From>
                <To>IssueStateCode</To>
                <OptionText>IssueStateCodeOptionText</OptionText>
            </Field>
            <Field>
                <From>NewContractNumber</From>
                <To>PolicyNumber</To>
            </Field>
            <Field>
                <From>PendingStatusCode</From>
                <To>StatusCode</To>
                <OptionText>StatusCodeOptionText</OptionText>
            </Field>
        </Fields>
    </Policy>
    <Segments>
        <Segment SEGMENTNAME="Base Coverage" COPYSOURCE="No">
            <Fields>
                <Field>
                    <From>Policy:PlanDate</From>
                    <To>EffectiveDate</To>
                </Field>
            </Fields>
        </Segment>
    </Segments>
    <Requirements>
        <Requirement REQUIREMENTNAME="Blood Test" COPYSOURCE="No">
            <Fields>
                <Field>
                    <From>Policy:bloodgroup</From>
                    <To>Bloodgroup</To>
                    <OptionText>BloodgroupOptionText</OptionText>
                </Field>
            </Fields>
        </Requirement>
    </Requirements>
    <Roles COPYALL="No">
        <Role ROLECODE="11" COPYSOURCE="No">
            <Fields>
                <Field>
                    <From>NewCSRClientGUID</From>
                    <To>ClientGUID</To>
                </Field>
            </Fields>
        </Role>
        <Role ROLECODE="23" COPYSOURCE="No">
            <Fields>
                <Field>
                    <From>NewPBClientGUID</From>
                    <To>ClientGUID</To>
                </Field>
            </Fields>
        </Role>
        <Role ROLECODE="30" COPYSOURCE="No">
            <Fields>
                <Field>
                    <From>NewOBClientGUID</From>
                    <To>ClientGUID</To>
                </Field>
            </Fields>
        </Role>
        <Role ROLECODE="37" COPYSOURCE="No">
            <Fields>
                <Field>
                    <From>NewInsuredClientGUID</From>
                    <To>ClientGUID</To>
                </Field>
            </Fields>
        </Role>
    </Roles>
    <Activities>
        <Activity TRANSACTIONNAME="StatusChange">
            <Tests>
                <Test>TransactionToAddMV='02'</Test>
            </Tests>
            <Fields>
                <Field>
                    <From>ActiveStatusCode</From>
                    <To>NewStatus</To>
                    <OptionText>NewStatusOptionText</OptionText>
                </Field>
                <Field>
                    <From>EffectiveDateMV</From>
                    <To>EffectiveDate</To>
                </Field>
            </Fields>
        </Activity>
        <Activity TRANSACTIONNAME="ValuesBlockNoAllocation">
            <Tests>
                <Test>TransactionToAddMV='01'</Test>
            </Tests>
        </Activity>
    </Activities>
    <Programs>
        <Program PROGRAMNAME="ProgramB" PROCESSPROGRAM="Yes">
            <Tests>
                <Test>ProgramToAddMV='02'</Test>
            </Tests>
            <Fields>
                <Field>
                    <From>StartDate</From>
                    <To>StartDate</To>
                    <OptionText>StartDateOptionText</OptionText>
                </Field>
                <Field>
                    <From>EndDate</From>
                    <To>EndDate</To>
                    <OptionText>EndDateOptionText</OptionText>
                </Field>
                <Field>
                    <From>EffectiveDate</From>
                    <To>EffectiveDate</To>
                </Field>
            </Fields>
        </Program>
        <Program PROGRAMNAME="ProgramA" PROCESSPROGRAM="No">
            <Tests>
                <Test>ProgramToAddMV='01'</Test>
            </Tests>
            <Fields>
                <Field>
                    <From>StartDate</From>
                    <To>StartDate</To>
                </Field>
                <Field>
                    <From>EndDate</From>
                    <To>EndDate</To>
                </Field>
                <Field>
                    <From>EffectiveDate</From>
                    <To>EffectiveDate</To>
                </Field>
            </Fields>
        </Program>
    </Programs>
    <ReversalProcessing>
        <ShadowOnReversal>
            <Tests>
                <Test>Expression</Test>
            </Tests>
        </ShadowOnReversal>
        <DeleteOnReversal>
            <Tests>
                <Test>Expression</Test>
            </Tests>
        </DeleteOnReversal>
    </ReversalProcessing>
</CreatePolicy>

Create Policy with multiple Policy Roles

<CreatePolicy>
    ...
    <Roles>
        <Role ROLECODE="72">
            <Fields>
                <Field>
                    <FromCollection>MVRolePercentCollection</FromCollection>
                    <To>RolePercent</To>
                </Field>
                <Field>
                    <FromCollection>MVEffectiveDateCollection</FromCollection>
                    <To>EffectiveDate</To>
                </Field>
                <Field>
                    <FromCollection>MVCommonRoleFieldCollection</FromCollection>
                    <To>CommonRoleField</To>
                    <OptionTextCollection>MVCommonRoleFieldCollectionOptionText</OptionTextCollection>
                </Field>
                <Field>
                    <FromCollection>MVRoleTestDateCollection</FromCollection>
                    <To>RoleTestDate</To>
                </Field>
            </Fields>
        </Role>
    </Roles>
    ...
</CreatePolicy>

XML Example - Create multiple Segment Roles

<CreatePolicy>
    ...
    <Segments>
        <Segment SEGMENTNAME="RiderWithRoles">
            <Roles>
                <Role ROLECODE="72">
                    <Fields>
                        <Field>
                            <FromCollection>MVRolePercentCollection</FromCollection>
                            <To>RolePercent</To>
                        </Field>
                        <Field>
                            <FromCollection>MVEffectiveDateCollection</FromCollection>
                            <To>EffectiveDate</To>
                        </Field>
                        <Field>
                            <FromCollection>MVCommonRoleFieldCollection</FromCollection>
                            <To>CommonRoleField</To>
                            <OptionTextCollection>MVCommonRoleFieldCollectionOptionText</OptionTextCollection>
                        </Field>
                        <Field>
                            <FromCollection>MVRoleTestDateCollection</FromCollection>
                            <To>RoleTestDate</To>
                        </Field>
                    </Fields>
                </Role>
            </Roles>
        </Segment>
    </Segments>
    ...
</CreatePolicy>