Escolar Documentos
Profissional Documentos
Cultura Documentos
Implementation Guide
© Copyright 2008
Pegasystems Inc., Cambridge, MA
All rights reserved.
This document describes products and services of Pegasystems Inc. It may contain trade
secrets and proprietary information. The document and product are protected by copyright
and distributed under licenses restricting their use, copying distribution, or transmittal in any
form without prior written authorization of Pegasystems Inc.
This document is current as of the date of publication only. Changes in the document may be
made from time to time at the discretion of Pegasystems. This document remains the
property of Pegasystems and must be returned to it upon request. This document does not
imply any commitment to offer or deliver the products or services described.
This document may include references to Pegasystems product features that have not been
licensed by your company. If you have questions about whether a particular capability is
included in your installation, please consult your Pegasystems service consultant.
For Pegasystems trademarks and registered trademarks, all rights reserved. Other brand or
product names are trademarks of their respective holders.
Although Pegasystems Inc. strives for accuracy in its publications, any publication may
contain inaccuracies or typographical errors. This document or Help System could contain
technical inaccuracies or typographical errors. Changes are periodically added to the
information herein. Pegasystems Inc. may make improvements and/or changes in the
information described herein at any time.
Integral to the Insurance Industry Framework is the capability for defining and
managing new products configurations. Pegasystems’ Product Configurator
Solution Framework is used in conjunction with this Framework to provide this
capability. These product specifications define the structure and valid
configurations of what maybe offered for sale in terms of insured objects,
coverages / benefits, services, etc., the business rules and calculations
surrounding the sale and servicing activities, and act as a model for each
instantiation of the product as a specific agreement as “bought” by a customer.
By externalizing product rules from manual and legacy systems, rules can be
more easily maintained by users. The Insurance Industry Framework can be the
system of record for such rules and activities and these can then be leveraged in
all insurance solutions that rely on detailed knowledge of the insurance product
or resulting agreement. However, the Insurance Industry Framework can also
access external rules engines and existing core administration applications if
expeditious to do so, as long as the basic product / agreement hierarchical
structure is defined in the Insurance Industry Framework for each product type –
since this is used to drive screen and workflows, data mapping, and structure
work objects correctly.
Before You Begin 1-3
■ Provides industry data and process models covering most insurance lines of
business derived from IBM’s Insurance Application Architecture.
Note: The Insurance Industry Foundation includes assets derived from IBM
Insurance Application Architecture (IAA) models. Please refer to your license
agreement for the Insurance Industry Framework for restrictions on the use of
these assets.
1-4 Insurance Industry Framework Implementation Guide
Insurance Products
Insurance products are specified as valid combinations of such things insured
objects (property, financial exposure, life, etc.), locations, coverages and
benefits, services, investments, and terms and conditions that can be quoted and
offered for purchase under a set of predetermined circumstances (who may buy /
sell / dates). They are at the level at which the purchase agreement is made. The
amount of detail that resides in the Insurance Industry Framework as the system
of record versus that held in other applications and called from Insurance
Industry Framework varies for each unique implementation.
■ Term Life
Note: These products contain key components and attributes only, they do
not represent complete product specifications.
Insurance Components
Components of the Insurance Product and derived quotation and agreements
include:
■ Jurisdictions
■ Locations
■ Coverages / benefits
■ Risks
■ Investments
You can use the Framework RuleSets as a starting point for extending the
Framework, making it specific to your organizational needs.
Before You Begin 1-7
Note: For additional information about completing any of the forms, use
the PegaRULES Process Commander Application Developer Help and
the Pega Developer Network (PDN).
2-2 Insurance Industry Framework Implementation Guide
■ Preflight — to evaluate the flow rules, flow action rules, section rules
and activities against the design and implementation principles known as
SmartBuild guardrails.
The short description from the rule form appears with each rule listed.
Deploying the Framework 2-3
The Flow Explorer is available from the Process Slice (Facility) on the
Developer Portal. It lets you display the starter flows and helps you to
understand the relationships among the flow rules in the selected application.
Starter flows (those that create new work objects) appear at the left of the
display. Subflows (called Branched To flows) are referenced by a Split-Join
or Split-forEach shape appear to the right. Lines connect the starter flows to
the subflows.
To begin:
You can also select the View > Rules option to run several different rule
reports.
As you extend your Framework, complete the Full Description and Usage
fields on the History tab of each rule form. Enter information in these fields
that explains what the rule is for and how it is used. You can then create a list
view report that shows the information you entered for each rule.
2-4 Insurance Industry Framework Implementation Guide
Give your RuleSet a name that helps you manage and identify its contents.
Your RuleSet name can be up to 255 characters long, must start with a letter,
and should contain only letters, and digits. Use names that are short and
easy to remember.
The first part of the name should represent your company and the second
part should represent the application content or purpose. For example, you
might use your company’s stock ticker symbol and then add something
representing the application purpose or its contents.
2. Click New. The New form appears. Complete and Save the New form.
The RuleSet form appears.
4. Go to the History tab and complete the Full Description and Usage
fields.
When you create a RuleSet, you must create the initial version number,
01-01-01, for that RuleSet. Use the required format of xx-yy-zz, where xx is
the major version, yy is the minor release within that version, and zz is the
interim, or update level within that release.
2. Click New. The New form appears. Complete and Save the New form.
The RuleSet Version form appears.
4. Go to the History tab and complete the Full Description and Usage
fields.
2. Click the administrator access group for your application to display the
rule. Figure 2-1 shows an example using the PegaInsure access group.
The PegaInsurance application shown under Applications on the left
specifies the RuleSets that you need for the Insurance Industry
Framework.
3. Insert a blank field at the top of the Production RuleSet list and enter
the name of your RuleSet.
4. Go to the History tab and complete the Full Description and Usage
fields.
For simplicity and clarity, use the same (or similar) names for the RuleSet
and its top-level class. In many cases, you may find it useful to define the
top-level class as the company name. For example, SampleCo- could be the
top-level class name for the company SampleCo.
Naming conventions:
■ Start names with a capital letter.
2. Click New. The New form appears. Complete and Save the New form.
The Class form appears.
3. Complete the Basic and History tabs. (Complete the Restrictions tab if
you want to limit which other objects can reference this class.)
4. Click Save.
2-8 Insurance Industry Framework Implementation Guide
Class groups are the link between your class structure and the underlying
database, and they must be unique across your organization (the application
prevents you from creating a duplicate).
The Clone a Class Group link in the Database section of the Administration
workspace starts the Direct Inheritance wizard. The wizard creates a new set
of classes (one of which corresponds to a class group) that matches the
classes below a specified class.
3. Complete the fields and click Next. The second wizard screen (Class
Mapping) appears.
4. Change the RuleSet name to your custom RuleSet name so the rules
are created in your RuleSet.
5. Scroll down and click Next. The third screen appears and displays a list
of generated classes.
Deploying the Framework 2-9
1. From the Rules By Type Explorer, select Data- > Admin- > DB- > Table
to display a list of tables.
2. Scroll down until you see the instance you want to copy.
3. Open the instance and click Save As. The Save As form appears.
4. Change the Class Name replacing what exists with your Class Name.
Click Save As to save the instance in your class. (You only need to
replace the XX portion of the name with your name.)
Setting Up Calendars
The calendar identifies business days and the hours of operation on these
days. Holidays and other non-work days, typically Saturday and Sunday, are
considered non-business days.
■ Service Level Rules that measure goal and deadline times in business
days
As part of the deployment process, you can add, delete, and update the
calendar to reflect your operation’s open business days and local holidays.
The RuleSet record is Data-Admin-Calendar. The default time zone is EST.
Figure 2-2 shows the 2007 calendar supplied with the product.
Setting Up Correspondence
The Insurance Industry Framework comes with a few predefined
correspondence templates.
Tip: To copy and customize the templates in your RuleSet, maintain the
same Correspondence Rule name to avoid unnecessary updates to
workflow elements that call specific templates. Add templates only when
no alternative is available.
Deploying the Framework 2-13
Operators — Operator IDs define the type of users who work with the
Framework and the application you build. Your Framework comes with a set
of predefined operator IDs that you can use to create your own.
When you associate an access role or privilege with a class, you not only
associate the names of the rules, but you also specify the level of access
a role or privilege has to a class or the conditions under which the role or
privilege can access the class. This process allows for an extremely
flexible and powerful way of defining class-based security.
Chapter 3
What Is Already Set Up
This chapter describes defaults and samples that are set up and ready for your
use. It is expected that you will use these as a basis for extending the Insurance
Foundation Framework. The topics include:
■ System Administrator Account
■ RuleSet Hierarchy
■ Data Classes
■ Work Object Naming Conventions
■ Default Work Groups and Workbaskets
■ Default Operators and Access Groups
■ Predefined Access Roles and Privileges
■ Predefined Work Parties
■ Correspondence Templates
■ Sample Data for Testing Purposes
■ Party Search
3-2 Insurance Industry Framework Implementation Guide
Note: Operator IDs are not case sensitive, but passwords are case sensitive.
RuleSet Hierarchy
RuleSets are arranged hierarchically, with the more general rules at the bottom
and more specific rules at the top. The four RuleSets at the bottom are standard
in all applications and control the underlying Process Commander operations,
while the rules towards the top control application functions. The RuleSet order is
critical to rule resolution. To find the appropriate rule, Process Commander
begins with the top RuleSet in this list, and if the rule is not found moves to the
next RuleSet. In this manner, custom, site-specific rules have precedence over
application-specific rules. Figure 3-1 shows the RuleSet hierarchy with all the
Framework layers.
Class Structure
When developing class and property definitions for your applications, create a
RuleSet that inherits from the PegaInsure RuleSet. Use class names that do not
include “Pega” as a prefix thereby preserving the namespace integrity of created
rules. Because different systems have different requirements, the Framework’s
Piif classes and properties are configured as generically as possible. It is
expected that they will be overridden at a higher level RuleSet when appropriate.
Class Inheritance
This section describes how properties are inherited in the Framework.
Parties are defined in the PegaIns-Data-Party- class and inherit from Data-Party.
The class structure to support these work types may have Line Of Business
specific variants as shown below.
PegaIns-Work-
PegaIns-Work-Application
PegaIns-Work-Application-Com-
PegaIns-Work-Application-Com-Automotive
PegaIns-Work-Application-Com-BOP
PegaIns-Work-Application-Indiv-
PegaIns-Work-Application-Indiv-TermLife
PegaIns-Work-Application-Indiv-VarUnivLife
PegaIns-Work-Application–Indiv-WholeLife
PegaIns-Work-Application-Pers-
PegaIns-Work-Application-Pers-Automotive
PegaIns-Work-Application-Pers-Household
PegaIns-Work-ChgPolicy
PegaIns-Work-ChgPolicy-Com-
PegaIns-Work-ChgPolicy-Indiv-
PegaIns-Work-ChgPolicy-Pers-
PegaIns-Work-ChgPolicy-Pers-Automotive
What Is Already Set Up 3-7
Data Classes
Data classes define the data structures for supporting information that the
Framework uses to process work. The data classes used in the Framework are
listed below.
The data classes that represent components used in defining a policy are:
■ PegaIns-Data-PolCmp-
– and its subclasses for policy components
The data classes that represent parties involved in an insurance agreement are:
■ PegaIns-Data-Party-Person
■ PegaIns-Data-Party-Person-Agent
■ PegaIns-Data-Party-Org-
■ PegaIns-Data-Party-Org-Company
■ PegaIns-Data-Party-Org-Agency
3-8 Insurance Industry Framework Implementation Guide
Interface Classes
The Insurance Industry Framework uses external database tables to store its
data instances for an insurance policy. It uses a simplified data model to
represent insurance policies. It also uses the same data model that PegaApp
uses to represent a contact, storing the contact information in various database
tables, such as the PA_CONTACT and PA_ADDRESS tables among others. The
remaining policy information is stored in the IIF_POLICY, IIF_POLICY_LINK and
IIF_AGENCY_LOB tables. More detailed information on these tables can be
found in Chapter 6: Integrating with External Systems.
The Interface classes described below are the concrete data classes used to
persist insurance policy data.
PegaIns-Interface-InsurancePolicy
This class Inherits from PegaApp-Interface. PegaApp does not have an
InsurancePolicy class to inherit from. Consideration was given to inherit from the
PegaApp’s Account class, but an account and insurance policy have enough
differences to warrant two different classes, The InsurancePolicy class does not
inherit from Account. This gives the ability for the expansion of the IIF to use the
PegaApp-Interface-Account class in the future.
PegaIns-Interface-PolicyLink
This class inherits from PegaApp-Interface. Similar to the Policy class, PegaApp
does not have a PolicyLink class to inherit from. The PolicyLink class contains
information that links the policies with contacts via roles. It also contains
information to facilitate policy searches.
PegaIns-Interface-AgencyLOB
This class represents the Agency LOB data. It contains sample data for each
agencies Line Of Business. An Agency is stored in the BusinessUnit table. Each
instance in this class represents a line of business that an agency is licensed to
sell in a given state, and specified period of time. It is linked to the agency by the
AgencyCode.
PegaIns-Interface-Contact
This class inherits from PegaApp-Interface-Contact. It contains sample contact
data used in the Framework.
What Is Already Set Up 3-9
PegaIns-Interface-Roles
Inherits from PegaApp-Interface-Roles. It contains sample role data used in the
Framework, such as Applicant and InsuredParty.
Data-Admin-DB-Table
Each of the interface classes mentioned above have associated instances in the
Data-Admin-DB-Table class to identify the database information for the
associated table. More information about these database tables can be found in
Chapter 6: Integrating with External Systems. The following table lists the
interface classes and their instances in the Data-Admin-DB-Table class.
When your application initiates a work object, a predefined model populates key
property values (such as urgency) that directly affect the work object’s relative
priority and placement in operator worklists. As work objects progress towards
resolution, core property values such as priority and status are continually
updated to reflect the current stage of processing. In the case of Insurance
Applications for new business, models are applied to all the embedded
components in the product definitions before the data entry screens are
generated.
Workbasket Description
UnderwriterQueue Policy applications waiting for underwriting specific assignments
PegaInsureWorkManager IIFWorkManager
PegaInsureACORD DeveloperSP
■ Applicant
■ Broker
■ Originator
■ Underwriter
■ Beneficiary
■ AuthorizedParty
■ Interested
■ Agent
Note: When the product is commercial, the party classes are defined to
reflect that difference, and are changed to -party-org instead of
-party-person.
What Is Already Set Up 3-15
Correspondence Templates
The Framework comes with a number of sample correspondence templates and
fragments. Templates are defined as instances of Rule-Obj-Corr. Fragments are
defined as instances of Rule-Corr-Fragment and are used in compiling
correspondence templates. Figure 3-6 and Figure 3-7 list the templates that
come with Process Commander and the Framework.
Framework Templates
Figure 3-7 lists templates that are used in the Framework workflows. These are
samples and if you decide to use any of these templates, copy them to your
RuleSet to modify them to meet your requirements.
Contact Search
The contact search functionality is implemented in the Framework using the
searching capability provided in the PegaApp software layer. The rules provided
in PegaApp that implement contact searching have been extended and modified
to fit the specific Framework requirements For more information on these rules
see Chapter 6: Integrating With External Systems. Figure 3-9 lists the rules
involved in executing a contact search. This table is followed by processing
details for the key rules in the search process.
Activity PegaIns-Work IIFMapPartyDetails Maps data from the contact search data into
the work object
Activity PegaIns-Work IIFAppGetBusinessUnitDetails Gets business unit details for selected item
Activity PegaIns-Work IIFMapBusinessUnitPartyDetail Maps data from the business unit search data
s into the work object
PegaIns-Work.IIFAppContactSearch Flow
This flow handles searching for both a business unit and a person contact. It
accepts two parameters:
■ BUSearch – True if this should search for a BusinessUnit. This is set to True
in the Commercial product NB flows. All other flows do not set this
parameter. The default value is False.
■ PartyRole, Specifies the role that this contact is being searched for. This
PartyRole parameter signifies the role that this contact has in the insurance
policy, ie, InsuredParty, Claimant, etc. It is used to map the contact data into
the correct pyWorkParty page group for this role.
This flow:
– Uses the PegaApp-Work.AppFindContact flow action to enter the search
criteria and present a list of contacts that fit the search criteria
– When one contact is selected, it calls the IIFAppGetContactDetails
activity to retrieve the contact data
– Then, exits
PegaIns-Work.IIFAppGetContactDetails Activity
This activity:
– Uses an input parameter of Role Name and executes a number of steps
to gather the details for the contact that was selected from the list of
contacts.
– Uses activities provided with PegaApp to retrieve the contact data from
the various database tables and reconstitute the data into the PegaIns-
Interface-Contact class
– Calls IIFCreateContactParty to create the work party
PegaIns-Work.IIFCreateContactParty Activity
This activity:
– Creates the pyWorkParty instance using the RoleName input parameter
as the value of the PageGroup index
– Calls IIFMapPartyDetails to map the data from the selected Contact into
the work object
PegaIns-Work.IIFAppGetBusinessUnitDetails Activity
This activity:
– Uses an input parameter of Role Name and executes a number of steps
to gather the details for the business unit that was selected from the
previously displayed list of business units
– Uses activities provided with PegaApp to retrieve the business unit data
from the various database tables
– Calls IIFCreateBusinessUnitParty to create the work party
What Is Already Set Up 3-21
PegaIns-Work.IIFCreateBusinessUnitParty Activity
This activity:
– Creates the pyWorkParty instance using the RoleName input parameter
as the value of the PageGroup index
– Calls IIFMapBusinessUnitPartyDetails to map the data from the selected
BusinessUnit into the work object
PegaIns-Work.IIFMapPartyDetails Activity
This activity maps data from the AppContact page on the clipboard that was
populated by the PegaApp contact search rules to the pyWorkParty page
specified by the input parameter, RoleName.
3-22 Insurance Industry Framework Implementation Guide
Policy Search
The Framework provides the ability to search for policies in a number of different
ways. Policies can be searched by:
■ Contact
These searches are described on the following pages which also include details
about how they are implemented in the Framework.
1. Policy searches are initiated from a flow action that specifies an HTML-
Section to display on the HTML tab.
2. On the HTML tab of the Section, include a JSP tag that references a
ListView that is configured as a Selectable ListView
3. In addition to using the standard configuration for a list view, the following
Framework configuration was implemented to configure the ListView as a
‘selectable’ list view:
■ Name: pyWorkPage – specifying the properties for the selected policy you
want to put on the clipboard for reference later
Extension Tip: For details about setting up a List View and more information
about the use and configuration of Selectable List Views, see Application
Developer Help or the PDN.
PegaIns-Work-ChgPolicy.InsPickPolicy FlowAction
On the HTML tab of the flow action, reference the HTML-Section named
PolicyListForPolicyholder.
PegaIns-Work.PolicyListForPolicyholder HTML-Section
This Section is in the PegaIns-Work class making it available for all work types.
On the HTML tab of this section, include directives to execute a list view as
follows:
PegaIns-Interface-InsurancePolicy.ListPoliciesForPolicyholder ListView
Specify a custom getContent activity, getContentPoliciesForPolicyholder, to get
the list of policies from the Policy and PolicyLink tables.
What Is Already Set Up 3-25
Embed-ListParams.getContentPoliciesForPolicyholder Activity
This activity sets .PartyID on QueryParams page for the SQL statement to use as
search criteria. It then executes an RDB-List to call depending on whether the
policyholder has a party type of ‘B’ (BusinessUnit) or ‘C’ (Contact). If it is a ‘C’ it
executes the IIFGetPolicyListForPolicyholder SQL, Otherwise, it executes the
IIFGetPolicyListForPolicyholderAndAuthorizedParty SQL.
PegaIns-Interface-InsurancePolicy.IIFGetPolicyListForPolicyholder
Connect-SQL
This SQL rule currently only exists for an Oracle database. It executes a SQL
statement to return information for a list of policies for the PartyID specified on
the QueryParams page on the clipboard. If more than one policy transaction
exists for any given policy, the latest transaction is returned.
PegaIns-Interface-
InsurancePolicy.IIFGetPolicyListForPolicyholderAndAuthorizedParty
Connect-SQL
This SQL rule only exists for an Oracle database. It executes a SQL statement to
return information for a list of policies for the PartyID and AuthorizedParty
specified on the QueryParams page on the clipboard. If more than one policy
transaction exists for any given policy, the latest transaction is returned.
Figure 3-11. Policy Search By Policyholder-Effective Date and Policy Type Rules
PegaIns-Work.PolicyListForPolicyholder HTML-Section
This Section is in the PegaIns-Work class so it is available for all work types. It
should be called from the flow action that you set up to execute this search. On
the HTML tab of this section, include directives to execute a list view as follows:
<pega:listView name="ListPoliciesForPolicyholder_Date_PolicyType"
className="PegaIns-Interface-InsurancePolicy" header="false" />
PegaIns-Interface-
InsurancePolicy.ListPoliciesForPolicyholder_Date_PolicyType ListView
This rule specifies a custom getContent activity,
getContentPoliciesForPolicyholder_Date_PolicyType, to get the list of policies
from the Policy and PolicyLink tables.
Embed-ListParams.getContentPoliciesForPolicyholder_Date_PolicyType
Activity
This activity sets .PartyID on QueryParams page for the SQL to use as search
criteria. It then executes an RDB-List to call the
IIFGetPolicyListForPolicyholder_Date_PolicyType SQL.
What Is Already Set Up 3-27
PegaIns-Interface-
InsurancePolicy.IIFGetPolicyListForPolicyholder_Date_PolicyType
Connect-SQL
This SQL rule currently only exists for an Oracle database. It executes a SQL
statement to return information for a list of policies that meet the search criteria
specified in the PartyID, PolicyType, and SearchDate properties on the
QueryParams page of the clipboard.
PegaIns-Work.FindPolicyByID FlowAction
This flow action is called from the IIFAppContactSearch flow. It displays a field to
enter the policy id which is used in the subsequent flow to get the policy.
3-28 Insurance Industry Framework Implementation Guide
PegaIns-Work.FindPolicyByID Flow
This flow first calls the activity, GetCurrentPolicyKeys, to retrieve the policy keys
for the latest transaction for this policy id. If the policy id is not found, it displays
the PolicyNotFound flow action. If the policy id is found, it returns to the calling
flow for continued processing. The actual retrieval of the policy data happens in
the SelectPolicy flow, using the keys determined in this flow.
PegaIns-Work.GetCurrentPolicyKeys Activity
PegaIns-Work.PolicyNotFound FlowAction
Displays that the policy is not found and allows the user to search again.
■ Work Classes
■ Data Classes
■ Interface Classes
■ Work Objects
■ PegaIns-Work-Application
− Supports NewBusiness (NB) and Quote processing
− Contains the rules that are common to all types of Application (or NB)
processing. Most of the flows and subflows are found in this class with a
few of them extended into a lower class for modified processing
■ PegaIns-Work-ChgPolicy
− Supports Endorsement processing
− Contains the rules that are common to all types of policy change
processing
Within each work type class, there are subclasses for the following lines of
business. Figure 4-2 shows the structure in the Class Explorer.
Within each class for a line of business, there are subclasses for product
groups such as Automotive, BOP (Business Owners Policy), and TermLife.
These subclasses can be specialized further to provide support for additional
subtypes of these product groups. In the Framework, these product groups
are associated with the product groups defined in the Product Configurator
Framework. Figure 4-3 shows the lines of business structure in the Class
Explorer.
Extending the Framework 4-5
By setting up your class structure in a similar way and inheriting from the
PegaIns-Work class hierarchy, you have the start of a framework that can be
used to build out the class structure that meets your requirements. In
addition, you have access to all the rules provided in the framework that
support basic Insurance Processes.
Extension Tip: When extending the work class, you should clone the
class defining the work pool, PegaIns-Work, using the standard Process
Commander Clone a Class Group wizard. Do not make changes to the
PegaIns-Work class structure or rules. Instead, extend and override them
in your own class structure.
4-6 Insurance Industry Framework Implementation Guide
The PegaIns-Data- class structure is set up to inherit from the Piif class
structure to provide access to the many properties provided in Piif.
The Piif class, and its children provide the foundation data structures of the
Framework. Piif contains over 550 classes, and over 2,000 properties that
can be used to represent the data aspects of insurance products,
agreements, and life-cycle processing.
The structure is based on the Interface Design Model of the IBM Insurance
Application Architecture (IAA) version 2006TR with one exception — the
Framework also leverages Process Commander’s extensive Party classes
and associated rules. The Process Commander party classes are
subclassed, with each new class directly inheriting from their Piif equivalent.
This provides direct access to both Process Commander and Piif party
properties.
The structure also can inherit from the PegaIns-Data-PolCmp classes. These
classes provide many of the common elements required to create Products
and their associated Policies. The PegaIns-Data-PolCmp classes typically
aggregate multiple Piif classes to provide more generic objects than using
Piif alone.
4-10 Insurance Industry Framework Implementation Guide
The PegaIns- class structures provide data classes for the following:
■ InsurancePolicy
− Class that represents a general insurance policy. It is specialized by its
subclasses.
− Contains subclasses that represent lines of business and product groups
similar to the class structure in PegaIns-Work-.
■ PolCmp
− Contains a number of subclasses that represent components in a
product. These classes are used when defining product and component
rules in the Product Configurator Framework. Subclasses defined here
inherit from the Piif class structure to take advantage of the many
Insurance properties provided by IAA – IBM’s Insurance Application
Architecture.
■ Party
− Contains classes that define parties used in the IIF
Underwriting rules
Figure 4-7 shows an example of inheritance from the PegaIns-Data-PolCmp
class. In this example, the component subclasses are subclassed further to
provide additional specialization. The PolCmp classes contain many of the
underwriting rules. In the case where the underwriting rules are common to
the lines of business, the additional subclass specialization allows for this.
For example, the AutoCoverage rules may be different between Commercial
Auto and Personal Auto. In this case the AutoCoverage class would be
subclassed as:
■ PegaIns-Data-PolCmp-AutoCoverage-Com-Auto
■ PegaIns-Data-PolCmp-AutoCoverage-Pers-Auto
4-12 Insurance Industry Framework Implementation Guide
■ PegaIns-Interface-Contact
■ PegaIns-Interface-Contact-PolicyRoleSummary
■ PegaIns-Interface-InsurancePolicy
■ PegaIns-Interface-PolicyLink
■ PegaIns-Interface-AgencyLOB
■ PegaIns-Interface-Roles
Extending the Framework 4-13
The flow structure for each work type is similar. Each flow is controlled by a
main flow that calls the appropriate subflows for the work type. They follow
the basic structure of ‘entering party data’, ‘entering data for the work type’,
and ‘processing the work type’. The flows for each work type are discussed
on the following pages.
The following figures show the preconfigured flows shipped with the
Framework that comprise the New Business process. The Application flows
have been built to show the Quote, Underwrite, Bind and Issue steps
involved in processing an Application. As previously mentioned, the
NewWork flows for Applications exist in the subclass for the particular
product group, for example: Personal Auto or Homeowners. Each NewWork
flow (Figure 4-8) calls the Application Main flow (Figure 4-9) that is common
to all product groups.
If this work is being executed by an agent, the Agent work party is populated
with the Agent’s information from the AgentProfile page on the clipboard.
The flow calls the PopulateAgentData activity to handle this process.
Extending the Framework 4-17
The BackOffice flow needs to be called via a spin-off flow shape to allow the
back office functions to be handled via the Framework even when the
application was handled by another system or framework application such as
CPM for Insurance. The back office functions include Underwrite (Figure
4-17),Bind Policy (Figure 4-18), and Issue Policy (Figure 4-19) which are
each handled by subflows.
To facilitate entering party data, users are taken through the Contact Search
functionality. After the contact data is entered, a list of available products
displays in a selection list. This list is created from the products that are
defined in the Product Configuration layer for the product group associated
with the work object.
Figure 4-20 lists the Work- classes containing rules that filter the information.
Figure 4-21 shows an example of the filtering during the entry of a
Commercial Lines application.
4-26 Insurance Industry Framework Implementation Guide
If the Product Configuration Framework drives the process, there are actions
that allow users to select a different product within the same Line of
Business, to enter details for the selected product, and to confirm or reenter
the same. The detail screens presented to the user depend on the product
selected.
4-28 Insurance Industry Framework Implementation Guide
ChgPolicy – Endorsements
The ChgPolicy work type and flows handle the processing of Endorsements
(or Mid-Term Adjustments). The framework includes flows that process In-
Sequence Endorsements and can be extended to support Out-of-Sequence
endorsements. The following figures show the preconfigured flows shipped
with the Framework that comprise the ChgPolicy process. The ChgPolicy
NewWork flow (Figure 4-23) is the main flow that controls the required
processing steps by calling the appropriate subflows.
If this work is being executed by an agent, the Agent work party is populated
with the Agent’s information from the AgentProfile page on the clipboard.
The flow calls the PopulateAgentData activity to handle this process.
The next step is to select a policy to apply the change. The SelectPolicy flow (Figure 4-25)
handles the steps needed to display a list of policies for the Policyholder and gathers the
policy data for the policy that is selected from the list. If you are executing this flow in a
CPMINS implementation, the policy data is already retrieved, bypassing this part of the flow.
Similarly, if the policy is present (the policyid is not blank), then the policy list is bypassed and
control goes directly to FetchPolicyData.
The EnterEndorsementData flow (Figure 4-27) displays the data for the
policy that was selected and allows the data to be modified.
4-32 Insurance Industry Framework Implementation Guide
On the ChgPolicy screens, there are two buttons at the top of the screen as
seen in Figure 4-28. When clicked, the first button, View Endorsement
History, gives a list of previous endorsements for this policy in a pop-up
window. One can click on any of these to see the policy details for this
endorsement. The second button, View Endorsement Basis, shows the
policy details for the current version of the policy, which is the basis for this
endorsement.
After the desired changes have been made to the policy and confirmed,
control is then sent to the ProcessPolicyChanges flow (Figure 4-29). This
flow first calls the ReQuote subflow (Figure 4-30) to handle the Re-Quote
process and sends it to the customer for acceptance. If the customer accepts
the re-quote, it then spins off the BackOffice subflow (Figure 4-31) to handle
the processes of Underwriting, Binding and Issuing the Endorsement.
4-34 Insurance Industry Framework Implementation Guide
Figure 4-33 shows the products (Insurance Policies) available for the
Commercial Lines as displayed by the system’s Product Explorer. The
Product Explorer is available from the Edit menu on the task bar located at
the top of the workspace.
Figure 4-34 shows an example of the product component definition for the
BusinessOwnersPolicy shown in the Product Explorer in Figure 4-33.
Pricing Details
Extension Tip: If the final amount is not a simple sum, you will have to
create component class specific calculation routines and insert them into
this process. Pricing for the BOM policy example follows this model.
Agencies
Master Agencies and Agencies are stored in the PA_BUSINESSUNIT table.
The relationship between them is stored in the PA_BUSINESSUNIT_LINK
table. The Agency LOB data is stored in a new table IIF_AGENCY_LOB.
See Chapter 6 and Appendix A for more information on this table. The keys
to the AgencyLOB table are:
Agents
Agents are stored in the PA_CONTACT table. Each agency also can have
many agents working for it. This relationship is stored in the
PA_CONTACT_BUSINESSUNIT_LINK table.
Agent Profiles
An operator on the system can be either an agent or a representative of the
carrier performing work on behalf of the agent. When the operator is an
agent, an AgentProfile is created at the time the operator signs onto the
system. The link between the operator and agent is in the AgentProfile
decision table. The AgentProfile contains the agent and agency data for this
agent. This data is used in later processing. The following rules are involved
in creating the AgentProfile:
Code-Security.ApplicationProfileSetup Activity
This activity is invoked when the operator signs onto the system. It is
overridden in the PegaInsure ruleset with one line that is added to call the
BuildAgentProfile activity.
Extending the Framework 4-43
PegaIns-Data-AgentProfile.BuildAgentProfile Activity
This activity is responsible for creating the AgentProfile page on the
clipboard. This page contains agent and agency information for the operator.
It looks the operator up in the AgentProfile decision table to get the
AgentCode (contact id) and AgencyCode (business unit id) for this operator.
The agent and agency data are then read from the PA_CONTACT table and
the PA_BUSINESSUNIT table using these values as keys.
PegaIns-Work-Application.InitializeNewPolicyData Activity
This activity is called when a new policy is created in the new business
process to set initial data. This is used to set the AgencyData property when
the operator is an agent and the AgentProfile page exists on the clipboard.
PegaIns-Data-Party-Org-Agency.GetAgencyData Activity
This activity is called from an OnChange event defined on the AgencyCode
property in the AgencyDisplay section. When a value is put into the
AgencyCode field, this activity is called to retrieve the agency data from the
database and populate the AgencyData embedded page in the policy.
Extending the Framework 4-45
Master Agencies
AgencyCode Name Address City State
ABC ABC Brokers 123 Main St Alexandria NY
Agencies
Agency MasterAgency Name Address City State
Code
TOMSINS Smith Insurance Toms Insurance 1420 Newton St Needham MA
Agency Agency
Agents
AgentId Name Agency
CONTA-100 Tom Smith Toms Insurance Agency
■ The driver (using age, driving record, college, etc.) and the vehicle (using
age, coverage, repair cost, theft risk, and so on.) are rated separately.
■ Next, the combined derived risk is determined. The rating of vehicles and
drivers is numeric — the lower the value, the lower the risk of loss
expected.
■ The vehicles and drivers are associated using a method described in the
section below or some other method.
■ Once the vehicles and drivers have been associated, and the combined
vehicle-driver risk value for each is derived, the process moves to
calculating the price. Pricing is different for each company. This can
involve quantity and multi line discounts, and the algorithms used for
aggregating the total risk and discount may vary greatly. See Chapter 5:
Pricing Rules and Models of this document for information about pricing
models used in the Framework.
Extending the Framework 4-49
There are a number of methods that can be used to make the association
between drivers and vehicles. Some approaches are related to the corporate
policy for the carriers while others are legally mandated,to limit how negative
a consideration a company can make. Common methods are:
In this method the driver-vehicle pairs are defined by the customer. It allows
the customer to specify the primary driver of a given vehicle.
Following the rating of the drivers and vehicles, the lists are ordered from
highest to lowest. Iterating through the list of vehicles from highest to lowest
rated, look for the driver with the highest rating who is not associated with
any vehicle. Associate the driver with this vehicle.
If there are vehicles remaining after matching all available drivers, the list of
drivers is reused starting from the beginning of the list.
Pre-associated pairs are removed from the first iteration through vehicle list
and the rest of the process uses Method 1.
In a scenario where there are two vehicles and two drivers, the
VehiclesToDrivers property structure resembles the sample in Figure 4-39
indicating that the Driver specified in the second element of the NamedDriver
Extending the Framework 4-51
pagelist is matched with the vehicle specified in the first element of the
InsuredVehicle pagelist and so on:
3. Override the logic to rate the drivers and vehicles. This logic is
implemented in the pricing activity for a given auto coverage
component. For example, the activity PegaIns-Data-PolCmp-
AutoCoverage.CalculateBodilyInjury contains the steps to calculate the
driver rating that it utilizes.
Chapter 5
Pricing Rules and Models
■ Pricing Overview
Pricing Overview
Pricing calculations are used to calculate the premiums for coverages
included in an insurance policy and for the policy itself. These pricing
algorithms are very specific to the product examples shipped with the
framework and are in themselves examples of how pricing can be
implemented.
The activities used to calculate the price for a given product and its
components are specified in the Product Configuration product and
component rules. The activity RunCalculations, used to initiate the pricing
process, is invoked from a step in the post processing activity,
ActionFinalCheck, called from the EnterProductData flow action. The logic
loops through the product tree and calls the pricing activity defined in each
component rule from the bottom up.
One of the requirements across all insurance products is that each coverage
have a premium associated with it and, therefore, needs to be able to have a
pricing calculation applied to it. In order to meet this requirement, all
coverages are implemented as components in the Product Configuration
Framework layer (as compared to features). This allows a pricing activity to
be specified in the component rule for any given coverage.
The algorithms used in calculating the price for the example products that are
included in the Framework, along with the activities that implement them, are
described on the following pages for each example product. The Personal
Auto pricing rules show an example of how to use circumstancing to handle
pricing rules that vary by state.
5-4 Insurance Industry Framework Implementation Guide
The rate and adjustment percentages are determined in decision tables that
belong to the class of the component that is referencing it. The rate decision
tables are based on the DeductibleAmount. The greater the deductible
Pricing Rules and Models 5-5
amount, the less risk is given to the carrier, which is reflected in the rate
tables. The adjustment decision tables are based on the exposureAmount of
the coverage. The general pricing activity that implements this algorithm and
can be used for all coverages is PegaIns-Data-PolCmp.CalculatePrice. This
CalculatePrice activity is sometimes extended in the class of the associated
component.
PegaIns-Data-PolCmp-.CalculatePrice Activity
Input parameters: Rate table
Adjustment table
The Rate and Adjustment values are determined from decision tables that
are passed in as parameters. The InsuredValue and DeductibleAmount
values are specified by the customer at data entry.
Rate Tables
There are a number of sample rate tables included in the framework. The
values in each table are specific to the type of component and the
component class:
The decision table for the rate is named SpecifiedItemRate. This table exists
in the class of the component the price is being calculated for.
5-6 Insurance Industry Framework Implementation Guide
ProdSumcomponentsWithDiscount Activity
This activity sums all the component and subcomponent prices into the
product price and then applies a discount to the product and subcomponent
prices. The discount is passed as a parameter.
ProductSumOfCompPrices Activity
This activity sums the prices for the first level of components under a product
and rolls them up into the total price for the product.
It loops through the first level of components in the product and sums up the
.exposureAmount in the .optionData page into the TotalexposureAmount
property and .SPPrice in the optionData page into the .SPPrice property for
the product.
The following sections describe the specific pricing algorithms used by the
sample products provided in the Framework.
5-8 Insurance Industry Framework Implementation Guide
Each policy can have a number of property locations. Each property location
has a postal address. Each property location is defined to have Business
Interruption coverage, Content Coverage, and can have multiple buildings
defined for it. Figure 5-1 illustrates the product and component structure
displayed by the Product Explorer. Each building has coverages as well as
the Content Coverage component has various coverages. The BOP product
also has a General Liability component with its coverages.
The basic coverages, Theft, Fire and Flood, are defined for the buildings,
content coverage and specified item components. They are defined in the
PegaIns-Data-PolCmp-BuildingCoverageBenefit class and have the same
pricing algorithm as the coverages in the Homeowners Policy. Each of these
coverages uses the general PegaIns-Data-PolCmp-.CalculatePrice activity
(described in the General Pricing Activities for Coverages section) and the
SpecifiedItemRate table in the PegaIns-Data-PolCmp-
BuildingCoverageBenefit class. No adjustment is applied to the price
calculation for these coverages.
Figure 5-2 lists the pricing activities called for each of the Business Owner
Policy components
5-10 Insurance Industry Framework Implementation Guide
Location PricePlusSumOfSubcomponentPrices
BusinessInterruption CalculatePrice
Building PricePlusSumOfSubcomponentPrices
TheftCoverage CalculatePrice
FireCoverage CalculatePrice
FloodCoverage CalculatePrice
ContentCoverage SumOfSubcomponentPrices
TheftCoverage CalculatePrice
FireCoverage CalculatePrice
FloodCoverage CalculatePrice
SpecifiedItem PricePlusSumOfSubcomponentPrices
TheftCoverage CalculatePrice
FireCoverage CalculatePrice
FloodCoverage CalculatePrice
GeneralLiability PricePlusSumOfSubcomponentPrices
Fraud CalculatePrice
SexHarassment CalculatePrice
Figure 5-2. Business Owners Policy Pricing Activities
Pricing Rules and Models 5-11
PricePlusSumOfSubcomponentPrices Activity
This activity first determines the Content Coverage Price and then rolls up
the subcomponent prices into the total price for the Content Coverage.
The pricing activities used here are specific to the TermLife product and do
not use the generic CalculatePrice activity. Figure 5-4 lists the TermLife
components and pricing activities.
PricingByAgeAndDecisionTable
This activity is in the PegaIns-Data-PolCmp-InsuredLife class and is used
only in calculating the TermLife price. This activitiy is referenced in the
TermLife component rule. It determines a rate based on the age of the
insured person. It then multiplies the .CoveredAmount entered on the screen
by this rate. The decision table it uses is PegaIns-Data-PolCmp-
InsuredLife.TermLifeRates. The decision logic is:
The pricing activities used here are specific to the VUL product and do not
use the generic CalculatePrice activity. Figure 5-6 lists the pricing activities
that are called for each of the VUL components:
5-14 Insurance Industry Framework Implementation Guide
BasicDemographicInformation BasicDemographicInformation
BasicPolicyInformation BasicPolicyInformation
RiderInformation BasicRiderInformation
Figure 5-6. Variable Universal Life Pricing Activities
BasicDemographicInformation Activity
Payment Rate
Fequency
1 .1
2 .05
4 .03
12 0
Other 0
Figure 5-7. Frequency Discouont Table
Pricing Rules and Models 5-15
Default .2 .3
Else .3
Figure 5-8. Age and Smoker and NonSmoker Decision Values
BasicPolicyInformation Activity
This activity is in the PegaIns-Data-PolCmp-InsuredLife class and used only
in calculating the BasicPolicyInformation price. It is referenced in the
BasicPolicyInformation component rule. It calculates the price using two
rates:
5-16 Insurance Industry Framework Implementation Guide
<=30 .00090
<=35 .00094
<=40 .00102
<=45 .00119
<=50 .00166
<=60 .00323
<=70 .00686
Default .3
Figure 5-9 Age and Smoker Rate Table
BasicRiderInformation Activity
This activity is in the PegaIns-Data-PolCmp-InsuredLife class and is used
only in calculating the BasicRiderInformation price. It is referenced in the
RiderInformation component rule. It calculates the price using hard coded
rates and the .ChildRider and .SpousalRider values that are entered on the
screen in the following calculation:
Personal Auto
The Personal Auto Product structure contains both vehicles and named
drivers. The Vehicles are subcomponents of the GaragingLocations
components. Each vehicle has the coverages shown below in the product
structure displayed by the Product Explorer.
OptionalBodoilyInjuryToOthers; CalculateBodilyInjuryPrice
BodilyInjuryFromUninsuredAuto
PersonalInjuryProtection CalculatePersInjProtPrice
DamageToOthersProperty CalculateDamangeToOthersPropertyPrice
Collision CalculateCollisionPrice
LimitedCollison CalculateLimitedCollisionPrice
Figure 5-11. Automobile Specific Coverage Activities
Commercial Auto
The Commercial Automotive products are similar to the Personal Auto,
except that they do not have the NamedDriver component as seen in the
product structure display from the Product Explorer (Figure 5-12).
The pricing activities are the same activities used for the Covered Vehicle
components, ignoring any data references to the Named Driver driving
record information.
Pricing Rules and Models 5-21
DwellingPremium = (FireCoveragePremium +
FloodCoveragePremium + LossOfUseCoveragePremium +
ContentCoveragePremium)
ContentCoveragePremium = (TheftCoveragePremium +
FireCoveragePremium + FloodCoveragePremium +
SpecifiedItemPremium) and so on.
5-22 Insurance Industry Framework Implementation Guide
■ TheftCoverage
■ FloodCoverage
■ FireCoverage
■ LossOfUseCoverage
In most cases, an external system of record stores the policy information when
the Framework is deployed. In other cases, the insurance system built in Process
Commander will be the system of record where the data is stored in database
tables external to the Framework. This means that Party data and Policy data
must be recorded and retrieved from other systems.
There are a number of integration activities that perform specific functions such
as writing out policy data, searching for contact or policy data, or reading in the
policy data. The Insurance Industry Framework comes with sample integration
rules that you can extend in your RuleSet or use as models for creating new
integration rules. The following sections discuss these integration functions:
PegaApp-Work.AppSaveContactRecordDetails Activity
This activity is the controlling activity that writes out the contact data. It calls each
of the other activities listed in the table. Each called activity executes the
Connect- SQL rule listed directly below the activity in Figure 6-2 to write the data
to the database table.
6-4 Insurance Industry Framework Implementation Guide
PegaApp-Interfrace-Account.AppReadContactList Acitivity
This activity generates a list of contacts by running the Connect-SQL
AppListByContactID to execute the search.
Integrating with External Systems 6-5
PegaIns-Work.WritePolicy Activity
Writing the policy is handled by the WritePolicy activity. This activity does the
following:
■ Maps the insurance policy data from the embedded data page in the work
object, pyWorkPage.ProductData.ProductOptionData, to the policy interface
class, PegaIns-Interface-InsurancePolicy
■ Calls SetExposedColumns to set the values of the columns that are exposed
in the table
The WritePolicy activity is called from the IssuePolicy activity. Because the
processing to issue a policy is different for New Business or Policy Change, the
IssuePolicy activity is applied to both the PegaIns-Work-Application and PegaIns-
Work-ChgPolicy classes.
■ Maps the data to the work object in the embedded page of the class
PegaIns-Data-InsurancePolicy
Part of the agency data is information about the Lines of Business that an agency
can write. This data is stored in the IIF_AGENCY_LOB table. Part of the key to
this table is the AgencyCode which links it to an agency. The agency data for a
particular policy is ultimately stored as an embedded page in the policy. There
are two integration points where the AgencyLOB data is accessed:
The following table (Figure 6-8) lists the integration rules that may need to be
modified when accessing the agency lob data.
PegaIns-Data-AgentProfile.BuildAgentProfile Activity
This activity creates the AgentProfile page on the clipboard. It gets the agent and
agency data from the contact and business unit tables respectively using the
activites mentioned above. It then calls an RDB-List that executes
IIFGetAgencyLOBs to get the agency line of business data from the database.
6-10 Insurance Industry Framework Implementation Guide
PegaIns-Data-Party-Org-Agency.GetAgencyData Activity
This activity is called when an agency is manually assigned to a policy in the
New Business flow. When the AgencyCode is populated, this activity retrieves
the agency data for that AgencyCode.
1. Agency data is retrieved from the business_unit table using the data in the
AgencyCode property
PegaIns-Data-AgencyLOB.IIFGetAgencyLOBs Connect-SQL
This rule contains SQL that will need to be replaced with the correct SQL to get
your agency line of business data.
Chapter 7
Processing ACORD XML Messages
The chapter describes the design and processing flow for ACORD XML
inbound and outbound messages that pass data between insurance
institutions and other entities and the Insurance Industry Framework. Topics
covered are:
■ Sample Messages
7-2 Insurance Industry Framework Implementation Guide
■ Parse and map the data from the message to a work object page on the
clipboard
■ Execute a flow that processes the data and calculates the premium and
creates a work object
■ Map the data from the work object page on the clipboard to the XML
outbound response message
■ Rule type
General Rules
General rules are the rules in the ACORD message process configuration
that are reusable in any of products that you may add when extending the
Framework. The general rules are placed in parent classes.
Applies To PegaIns-Work
Package MyCoInsureACORD
ProcessACORDMessage Activity
Applies To PegaIns-Work-Application
Package MyCoInsureACORD
Description Called from the SOAP service to process the ACORD message.
This is the main activity in the ACORD design. It finds the
message type and calls ProductSelection and SetWorkPageClass
decision tables to set the pyWorkPage class and pyLabel. Using
ProductSelection decision table, the message type is set to the
pyLabel property. In the SetWorkPageClass decision table, the
pyLabel is passed as the input property and returns the respective
work class of the product. Next, the ProcessACORDMessage
activity of the work class (Depending on the input message type)
is called to continue the parsing. Finally, the
ProcessACORDMessage flow creates the response message,
calculates the premium and handles the errors. If any errors found
during the validation of the message or processing the message
then it sets the task status to errorsfound. Depending on the
status message, the flow will be executed.
Modifications Needed Include the tag name of the message type (like
PersAutoPolicyQuoteInqRq (for PersonalAuto) and
HomePolicyQuoteInqRq for HomeOwner) in the Java step of the
activity. Append the tag name to the local variable msgTags in
the java step (Instructions to append the string are provided in the
java step).
Processing ACORD XML Messages 7-7
Applies To PegaIns-Work-Application
Description Sets the product name to the pyLabel property depending on the
input message type. Include the message type tag and the
product name for the respective tag in this rule.
Modifications Needed Append the tag name and the respective product name for the
product.
Applies To PegaIns-Work-Application
Modifications Needed Append the pyLabel and the respective work class for the
product.
7-8 Insurance Industry Framework Implementation Guide
ProcessACORDMessage Flow
Applies To PegaIns-Work-Application
Description Calls the activities for price calculation, handles errors and
creates the appropriate response messages. Respective price
calculation activities will be called from the product, and premium
is calculated
CreateACORDResponse Activity
Applies To PegaIns-Work-Application
QuoteResponse XML
Description Gets the data from clipboard properties, creates an XML message
and sets the message to a string property on the clipboard. This
rule incorporates some other Rule-Obj-XML rules. In order to set
the clipboard property values, create the Obj-XML rules based on
tthe clipboard structure (see the QuoteResponse instance for the
personal auto product).
Modifications Needed Save this rule into the work class and modify the code
accordingly.
CreateACORDErrorResponse Activity
Applies To PegaIns-Work-Application
Description If there are any errors while processing the message, this activity
is invoked. It calls the (Rule-Obj-Xml) QuoteErrorResponse of
particular work class of the product to set the outbound ACORD
message on to the clipboard page to send the error response
data.
QuoteErrorResponse XML
Applies To PegaIns-Work-Application-Pers-Automotive
Description Gets the data from the clipboard properties, creates an XML
message and sets the message to a string property on the
clipboard. In order to get the clipboard property values, create the
Obj-XML rules according to the clipboard structure (See the
QuoteResponse instance for the personal auto product). This rule
can be invoked if there are any error messages on the clipboard
pages.
Modifications Needed Save this rule into the work class and modify the code
accordingly.
Processing ACORD XML Messages 7-11
Parsing Rules
These general rules parse the incoming ACORD message and place it on
the clipboard.
Applies To PegaIns-Data-ACORD-SignonRq
Description Parses the Sign on related data from the inbound message onto
the clipboard page SignOnRq
ParseApplicant Activity
Rule Type Rule-OBJ-Activity
Applies To PegaIns-Work-Application
Description Gets the chunk of xml from the original xml and calls the parsing
rules to map the applicant details onto the clipboard structure. It
gets the chunk of xml from the original message for the
InsuredOrPrincipal tag and stores the value in a value list. This
rule is a generalized rule; therefore, this can be reusable in all the
products.
Applies To Data-Party
ParseBroker Activity
Applies To PegaIns-Work-Application
Description Gets the chunk of xml from original xml and then calls the parsing
rules to map the Broker (producer) details on to the clipboard
structure. It also gets the chunk of xml from the original message
for Producer tag and stores the value in a value list.
Applies To Data-Party
ProcessACORDMessage Activity
Applies To PegaIns-Work-Application-Pers-Automotive
Description This rule belongs to the work class of the product (For example,
the rule referenced here is for the PegaIns-Work-Application-
Pers-Automotive product). Save this rule into each product class.
Rules need to be modified/created in this activity according to the
product design. This activity calls SetupProductData of PegaSP-
Work- to create the clipboard structure of the application. After
that, the ParseMessage activity in the respective work class of the
product is called to parse the message. A Work object is created
by calling the AddWork activity.
Modifications Needed Save this rule into the product work class. Modify the steps
according to the product.
7-14 Insurance Industry Framework Implementation Guide
ParseMessage Activity
Applies To PegaIns-Work-Application-Pers-Automotive
Description This activity is defined in the work class of the product (eg:
PegaIns-Work-Application-Pers-Automotive). It calls subsequent
activities, browsing the clipboard structure to parse the inbound
XML on to the clipboard properties. All the parsing mechanisms
related to the product are implemented in this activity. Different
Parse-XML rules need to be created according to the clipboard
structure of the product.
Modifications Needed Save this rule into the product work class. Modify the steps
according to the product design and clipboard structure of the
product.
Applies To PegaIns-Work-Application-Pers-Automotive
Modifications Needed Save this rule into the product work class. Modify properties
according to the product design and clipboard structure of the
product.
Processing ACORD XML Messages 7-15
Note: The following activity and parsing rules support the clipboard
structure for processing the personal auto product. These rules provide
good examples to work from when implementing new products but are
not be useful for any other product by simply saving them into another
work class.
ParseAcordGaragingLocations Activity
Applies To Embed-PegaSP-ProductComponents
Description This rule is specified for use in the personal auto product.
Modifications Needed Used in only personal auto. If required can be used in the
commercial auto product.
7-16 Insurance Industry Framework Implementation Guide
ParseAcordInsuredPropertyLocation Activity
Applies To PegaIns-Data-PolCmp-InsuredPropertyLocation
Description This rule is specified for use in the personal auto product. For
each optiondata page (Location) this activity is called.
Modifications Needed Used in only personal auto. If required can be used in the
commercial auto product.
ParseAcordCoveredVehicles Activity
Applies To Embed-PegaSP-ProductComponents
Description This rule is specified for use in the personal auto product. For
each component (CoveredVehicles) page, this activity will be
called. This activity gets the chunk of xml for <persVeh> tag and
appends the values to the value list on the clipboard. If the value
list has more than one value then it will call InsertSubPage
activity of PegaSP-Work- to create one more option data page.
And finally calls the ParseAcordInsuredVehicleData activity for
each option data page
Modifications Needed Used in only personal auto. If required can be used in the
commercial auto product.
Processing ACORD XML Messages 7-17
ParseAcordInsuredVehicleData
Applies To PegaIns-Data-PolCmp-InsuredVehicle
Description This rule is specified for use by the personal auto product. For
each Optiondata page (for vehicles) this activity will be called.
This activity gets the chunk of xml for each coverage tag in the
input XML and appends it to the CoverageList on the clipboard. It
will map the vehicle info on to the clipboard as well.
Modifications Needed Used in only personal auto. If required can be used in the
commercial auto product.
Applies To PegaIns-Data-PolCmp-InsuredVehicle
Description This parse xml will map the vehicle details onto the clipboard
structure, if provided with the chunk of xml for vehicle data.
Modifications Needed Used in only personal auto. If required can be used in the
commercial auto product.
7-18 Insurance Industry Framework Implementation Guide
ParseAcordCoverages Activity
Applies To PegaIns-Data-PolCmp-InsuredVehicle
Modifications Needed Used in only personal auto. If required can be used in the
commercial auto product.
Processing ACORD XML Messages 7-19
Note: Rule-Obj-XML rules should be built using JSP tags instead of the
HTML directives option.
■ There are many optional tags that may or may not be included in an
outbound message. According to ACORD standards, an optional tag
should not appear in the message if it does not contain a value (if the
value of tag is blank). To comply with that standard, it is necessary to
add a When rule for each tag to validate if the value of property is blank
before including the tag into the message.
Step 1.
Create sample inbound XML for the product if it is not available. The ACORD
help file is a good reference to use to help create the sample messages.
Step 2.
Update the java step (Desc: Set the tag for inbound message here) in the
ProcessACORDMessage activity in the PegaIns-Work-Application class.
Append the product tag to the local variable msgTags (See
PersAutoPolicyQuoteInqRq and HomePolicyQuoteInqRq for examples). This
is used to find the message type. Follow the instructions mentioned in the
java step to append the tag.
Step 3.
Update the ProductSelection and SetWorkPageClass Decision tables of
PegaIns-Work-Application class to include product name and the work class
for the new product.
Step 4.
Create/Save the ProcessAcordMessage activity in the respective work class
of the ACORD message (For example: PegaIns-Work-Application-Pers-
Automotive). Customize the activity to populate the required product to the
clipboard.
Step 5.
Create/Save the ParseMessage activity in the respective work class of the
ACORD message and call it in the ProcessAcordMessage of the work class.
This activity will bundle all the Parsing rules for the product
Processing ACORD XML Messages 7-21
Step 6.
Create the Rule-Parse-XML and the activities to call these Rule-Parse-XML
rules by hand to map the request data from the message to the clipboard.
These Parse-XML rules will be bundled in ParseMessage activity. All the
parsing rules should be created by looking into clipboard structure. You will
get an idea by looking into the Personal Auto product.
When there are repeating elements (eg: <PersVeh>) in the message, same
number of corresponding components should be created in the Clipboard.
For that, the PegaSP- Work.InsertSubPage activity is used. Chunk xml
which contains the repeating group of the main xml message is taken to a
value list property (See the ParseAcordCoveredVehicles activity in Embed-
PegaSP-Component class for reference) using the GetXMLElementbyTag
Rule-Utility-Function. Then, for each value in the value list InsertSubPage
activity is called and corresponding component is added to the clipboard.
Step 7.
Call the AddWork activity from the ProcessAcordMessage activity to create
the work object.
Step 8.
Create QuoteResponse and QuoteErrorResponse Rule-Obj-Xml’s in the
respective work class of the product.
Step 9.
After that, do the following:
− Create the Rule-Obj-XML rules by hand to map the response data from
the product’s work page on the clipboard to the xml message. Use JSP
tags instead of using the HTML.
− For each tag that needs to be included in the outbound message, add a
When condition to not to include the tag in outbound message if the
value is blank. These rules should be created according to the clipboard
structure and all rules should be embedded into the QuoteResponse
XML rule of the work class of the product. See QuoteResponse and
QuoteErrorResponse in the Personal Auto Product for reference.
7-22 Insurance Industry Framework Implementation Guide
Sample Messages
Sample inbound and outbound XML message formats are included in the
installation media. The message samples are available for:
This appendix includes a list of those database tables that are installed with
the Framework. The following information, where applicable, is included for
each database:
■ Constraints
Database Tables
Figure A-1 lists the tables in the database structure. Tables fall into two
categories:
■ The IIF (Insurance Industry Framework) database tables that are specific
to the framework and contain Insurance specific data.
Tables and lists beginning on page A-3 provide details, where applicable,
about column structures, constraints, LOB storage, foreign keys, and
referencing tables for each of the tables listed in Figure A-1.
Note: In Oracle, all table data and column headings appear in uppercase
characters, but correct SQL is in lowercase. The Insurance Industry
Framework follows a universal approach and uses lowercase characters.
IIF_Tables
IIF_POLICY IIF_POLICY_LINK
IIF_AGENCY_LOB
PA_ Tables
PA_ADDRESS PA_CONTACT_BUSINESSUNIT_LINK
PA_ADDRESS_TYPE PA_CUSTOMER_TYPE
PA_BUSINESSUNIT PA_INDUSTRY
PA_BUSINESSUNIT_LINK PA_NOTES
PA_COMMUNICATION_OPTIONS PA_PRODUCT
PA_COMMUNICATION_TYPES PA_PRODUCT_TYPE
Figure A-1. List of Tables in the Insurance Industry Framework
Database Tables A-3
IIF_POLICY
This table stores policy specific information. Replace calls to this table with
calls to your external database tables or the interface to the system of record
for your policy data.
Columns
Name Datatype Size Scale Nulls? Dflt
POLICYID VARCHAR2 20 No
MODNUMBER NUMBER 3 0 No
TRANSACTIONEFFECTIVEDATE DATE 7 No
TRANSACTIONPROCESSDATE DATE 7 No
Constraints
Constraint Name SYS_C0014541
Type PRIMARY
Disable No
Referenced Schema
Referenced Table
Cascade On Delete No
Check Condition
Deferrable? No
No Validate? No
Initially Deferred? No
POLICYID SYS_C0014541
MODNUMBER
TRANSACTIONEFFECTIVEDATE
TRANSACTIONPROCESSDATE
Figure A-4. IIF_POLICY Constraint Column Details
Database Tables A-7
Tablespace: USERS
MODNUMBER MODNUMBER
TRANSACTIONEFFECTIVEDATE TRANSACTIONEFFECTIVEDATE
TRANSACTIONPROCESSDATE TRANSACTIONPROCESSDATE
Figure A-6. IIF_POLICY Referencing Tables and Columns
A-8 Insurance Industry Framework Implementation Guide
IIF_POLICY_LINK
This table maintains the relationship between a contact or business unit, a
policy id and the role that the contact or business unit has with the policy
Columns
Name Datatype Size Scale Nulls? Dflt
PXCREATEDATETIME DATE 7 Yes
Constraints
Constraint Name POLICYLINK_INDEX_PK
Type PRIMARY
Disable No
Referenced Schema
Referenced Table
Cascade On Delete No
Check Condition
Deferrable? No
No Validate? No
Initially Deferred? No
PZINSKEY POLICYLINK_INDEX_PK
Figure A-9. IIF_POLICY_LINK Constraint Column Details
Database Tables A-11
IIF_AGENCY_LOB
This table stores the line of business information that an agency is licenses
to write in a given state for a stated period of time.
Columns
Name Datatype Size Scale Nulls? Dflt
AGENCYCODE VARCHAR2 20 No
LINEOFBUSINESS VARCHAR2 30 No
LOBEFFECTIVEDATE DATE 7 No
LICENSEDSTATE VARCHAR2 2 No
Constraints
Constraint Name SYS_C0017441
Type PRIMARY
Disable No
Referenced Schema
Referenced Table
Cascade On Delete No
Check Condition
Deferrable? No
No Validate? No
Initially Deferred? No
AGENCYCODE SYS_C0017441
LINEOFBUSINESS
LOBEFFECTIVEDATE
LICENSEDSTATE
Figure A-13. IIF_AGENCY_LOB Constraint Column Details
A-14 Insurance Industry Framework Implementation Guide
PA_ADDRESS
This table stores address information about contacts and business units.
Replace calls to this table with calls to your data tables.
Columns
Name Datatype Size Scale Nulls? Dflt
OWNERID VARCHAR2 12 No
ADDRESSID VARCHAR2 1 No
ADDRESSTYPE VARCHAR2 4 No
DATEADDED DATE 7 No
Database Tables A-15
Constraints
Constraint Name SYS_C0013127
Type PRIMARY
Disable No
Referenced Schema
Referenced Table
Cascade On Delete No
Check Condition
Deferrable? No
No Validate? No
Initially Deferred? No
OWNERID SYS_C0013127
ADDRESSID
ADDRESSTYPE
DATEADDED
Figure A-16. PA_ADDRESS Constraint Column Details
PA_ADDRESS_TYPE
This table stores the valid address types (for example, HOME or BILLING)
used within the system. Replace the sample entries in this table with address
types valid for your configuration.
Columns
Name Datatype Size Scale Nulls? Dflt
ADDRESSTYPE VARCHAR2 4 No
ADDRESSTYPEDESCRIPTION VARCHAR2 36 No
Constraints
Constraint Name SYS_C0013128
Type PRIMARY
Disable No
Referenced Schema
Referenced Table
Cascade On Delete No
Check Condition
Deferrable? No
No Validate? No
Initially Deferred? No
ADDRESSTYPE SYS_C0013128
Figure A-20. PA_ADDRESS_TYPE Constraint Column Details
PA_BUSINESSUNIT
This table stores information about business units. Replace calls to this table
with calls to your data tables.
Columns
Name Datatype Size Scale Nulls? Dflt
BUSINESSUNITID VARCHAR2 20 No
BUSINESSUNITNAME VARCHAR2 50 No
Constraints
Constraint Name SYS_C0013137 SYS_C0013138 SYS_C0013139
Disable No No No
Cascade On Delete No No No
Check Condition
Deferrable? No No No
No Validate? No No No
Initially Deferred? No No No
PA_BUSINESSUNIT_LINK
This table stores business-to-business relationships. For example, it shows
that Acme Technology is a subsidiary of Acme Software.
Columns
Name Datatype Size Scale Nulls? Dflt
BUSINESSUNIT1 VARCHAR2 20 No
BUSINESSUNIT2 VARCHAR2 20 No
TYPE VARCHAR2 50 No
DATEADDED DATE 7 No
Constraints
Constraint Name SYS_C0013140 SYS_C0013141
Disable No No
Referenced
FRM5102
Schema
Cascade On Delete No No
Check Condition
Deferrable? No No
No Validate? No No
Initially Deferred? No No
PA_COMMUNICATION_OPTIONS
This table stores communication information for contacts and business units.
Replace calls to this table with calls to your data tables.
Columns
Name Datatype Size Scale Nulls? Dflt
OWNERID VARCHAR2 12 No
COMMUNICATIONID VARCHAR2 1 No
COMMUNICATIONTYPE VARCHAR2 10 No
DATEADDED DATE 7 No
Constraints
Constraint Name SYS_C0013129
Type PRIMARY
Disable No
Referenced Schema
Referenced Table
Cascade On Delete No
Check Condition
Deferrable? No
No Validate? No
Initially Deferred? No
BUSINESSUNITID SYS_C0013129
COMMUNICATIONID
COMMUNICATIONTYPE
DATEADDED
Figure A-31. PA_CMMUNICATION_OPTIONS Constraint Column Details
Database Tables A-27
PA_COMMUNICATION_TYPES
This table stores the valid communication types (for example, HOME-EMAIL
or HOME-PHONE) used within the system. Replace the sample entries in
this table with communication types valid for your configuration.
Columns
Name Datatype Size Scale Nulls?
TYPE VARCHAR2 10 No
Constraints
Constraint Name SYS_C0013130
Type PRIMARY
Disable No
Referenced Schema
Referenced Table
Cascade On Delete No
Check Condition
Deferrable? No
No Validate? No
Initially Deferred? No
TYPE SYS_C0013130
Figure A-35. PA_COMMUNICATION_TYPES Constraint Column Details
A-30 Insurance Industry Framework Implementation Guide
PA_CONTACT
This table is a sample table that stores information about contacts. Replace
calls to this table with calls to your data tables.
Columns
Name Datatype Size Scale Nulls? Dflt
CONTACTID VARCHAR2 12 No
CUSTOMERTYPE VARCHAR2 15 Yes
SOCIALSECURITYNUMBER VARCHAR2 9 Yes
LASTNAME VARCHAR2 50 No
FIRSTNAME VARCHAR2 36 Yes
MIDDLENAME VARCHAR2 36 Yes
SALUTATION VARCHAR2 12 Yes
SUFFIX VARCHAR2 5 Yes
SHORTNAME VARCHAR2 20 Yes
DATEOFBIRTH DATE 7 Yes
DATEOFDEATH DATE 7 Yes
MARITALSTATUS VARCHAR2 10 Yes
LANGUAGE VARCHAR2 18 Yes
PIN VARCHAR2 30 Yes
MOTHERMAIDENNAME VARCHAR2 50 Yes
TERRITORYID VARCHAR2 12 Yes
PRIORITYTYPE VARCHAR2 36 Yes
ACTIVE VARCHAR2 5 Yes
WEBPRIVILEGES VARCHAR2 1 Yes
LOGINS NUMBER 10 0 No 0
A-32 Insurance Industry Framework Implementation Guide
BADLOGINS NUMBER 10 0 No 0
DATEOFLASTLOGIN DATE 7 Yes
NICKNAME VARCHAR2 26 Yes
BUSINESSAFFILIATION VARCHAR2 12 Yes
DATEADDED DATE 7 Yes
ADDEDBY VARCHAR2 50 Yes
DATEUPDATED DATE 7 Yes
UPDATEDBY VARCHAR2 50 Yes
DATEDELETED DATE 7 Yes
DELETEDBY VARCHAR2 50 Yes
GENDER VARCHAR2 1 Yes
SECURITYQUESTION VARCHAR2 100 Yes
SECURITYANSWER VARCHAR2 50 Yes
COMMUNICATIONPREFERENCE VARCHAR2 10 Yes
PRIORITYNOTE VARCHAR2 255 Yes
CUSTOMERVALUE VARCHAR2 30 Yes
BESTTIMETOCALL VARCHAR2 20 Yes
NOMARKETINGBYMAIL VARCHAR2 5 Yes
NOMARKETINGBYPHONE VARCHAR2 5 Yes
NOMARKETINGBYEMAIL VARCHAR2 5 Yes
COMPANY VARCHAR2 50 Yes
OCCUPATION VARCHAR2 50 Yes
Figure A-37. PA_CONTACT Table Columns
Database Tables A-33
Constraints
Constraint Name SYS_C0013131
Type PRIMARY
Disable No
Referenced Schema
Referenced Table
Cascade On Delete No
Check Condition
Deferrable? No
No Validate? No
Initially Deferred? No
CONTACTID SYS_C0013131
Figure A-39. PA_CONTACT Constraint Column Details
A-34 Insurance Industry Framework Implementation Guide
PA_CONTACT_BUSINESSUNIT_LINK
This table stores contact-to-business relationships. For example, Jeff Buten
is associated with Buten Bearings as an authorized party.
Columns
Name Datatype Size Scale Nulls? Dflt
CONTACTID VARCHAR2 12 No
BUSINESSUNITID VARCHAR2 20 No
TYPE VARCHAR2 50 No
DATEADDED DATE 7 No
Constraints
Constraint Name SYS_C0013134
Type PRIMARY
Disable No
Referenced Schema
Referenced Table
Cascade On Delete No
Check Condition
Deferrable? No
No Validate? No
Initially Deferred? No
CONTACTID SYS_C0013134
BUSINESSUNITID
TYPE
DATEADDED
Figure A-44. PA_CONTACT_BUSINESSUNIT_LINK Constraint Column Details
Database Tables A-37
PA_CUSTOMER_TYPE
This table stores the information used to describe the business unit as a
particular type of customer. Examples of customer type values are Fortune
500, Small Business, and Partnership.
Columns
Name Datatype Size Scale Nulls? Dflt
CUSTOMERTYPE VARCHAR2 15 No
Constraints
Constraint Name SYS C0013132
Type PRIMARY
Disable No
Referenced Schema
Referenced Table
Cascade On Delete No
Check Condition
Deferrable? No
No Validate? No
Initially Deferred? No
CUSTOMERTYPE SYS_C0013132
MODNUMBER
TRANSACTIONEFFECTIVEDATE
TRANSACTIONPROCESSDATE
Figure A-48. PA_CUSTOMER_TYPE Constraint Column Details
A-40 Insurance Industry Framework Implementation Guide
PA_INDUSTRY
This table stores information that describes the industry in which a business
operates. Examples of industry values are Healthcare, Insurance, and
Technology.
Columns
Name Datatype Size Scale Nulls? Dflt
INDUSTRYCODE VARCHAR2 15 No
Constraints
Constraint Name SYS C0013133
Type PRIMARY
Disable No
Referenced Schema
Referenced Table
Cascade On Delete No
Check Condition
Deferrable? No
No Validate? No
Initially Deferred? No
INDUSTRYCODE SYS_C0013133
Figure A-52. PA_INDUSTRY Constraint Column Details
PA_NOTES
This table stores ad-hoc notes that are added to contact or policy records. It
is provided with the PegaApp layer, but currently is not used by the
Insurance Framework.
Columns
Name Datatype Size Scale Nulls? Dflt
NOTEID NUMBER 10 0 No
NOTEDATE DATE 7 No
Constraints
Constraint Name SYS C0013135
Type PRIMARY
Disable No
Referenced Schema
Referenced Table
Cascade On Delete No
Check Condition
Deferrable? No
No Validate? No
Initially Deferred? No
NOTEID SYS_C0013135
Figure A-56. PA_NOTES Constraint Column Details
Database Tables A-45
PA_PRODUCT
This table stores product information. It is provided in the PegaApp layer and
is not currently used in the Insurance Framework.
Columns
Name Datatype Size Scale Nulls? Dflt
Constraints
Constraint Name PR_PRODUCT_PK
Type PRIMARY
Disable No
Referenced Schema
Referenced Table
Cascade On Delete No
Check Condition
Deferrable? No
No Validate? No
Initially Deferred? No
PZINSKEY PA_PRODUCT_PK
Figure A-59. PA_PRODUCT Constraint Column Details
Database Tables A-47
PA_PRODUCT_TYPE
This table stores information about the product type. It is provided in the
PegaApp layer and is currently not used by the Insurance Framework.
Columns
Constraints
Constraint Name PA_PRODUCT_TYPE_PK
Type PRIMARY
Disable No
Referenced Schema
Referenced Table
Cascade On Delete No
Check Condition
Deferrable? No
No Validate? No
Initially Deferred? No
PZINSKEY PA_PRODUCT_TYPE_PK
Figure A-62. PA_PRODUCT_TYPE Constraint Column Details
A-50 Insurance Industry Framework Implementation Guide
PA_ROLES
This table stores roles for policy, contact, and business unit links. Some
workflows use the role type to determine processing steps. Add your own
affiliations for account, contact, and business unit associations.
Columns
Name Datatype Size Scale Nulls? Dflt
ROLETYPE VARCHAR2 5 No
Constraints
Constraint Name SYS_C0013126
Type PRIMARY
Disable No
Referenced Schema
Referenced Table
Cascade On Delete No
Check Condition
Deferrable? No
No Validate? No
Initially Deferred? No
ROLETYPE SYS_C0013126
Figure A-65. PA_ROLES Constraint Column Details