Product Model web services
You can use the PolicyCenter product model web service ProductModelAPI to do several things.
- Update the PolicyCenter product model on a running development server from the local file system XML representation of the product model. The product model lists all the insurance products that an insurance company sells. Typically, you would manage the product model using the Product Designer application.
- Update system tables on a running development server based on local file system representation of the system tables.
- Query the server for product
model information. Generally speaking, it is best to identify product
model objects using the property
CodeIdentifier, notPublicID.ProductModelAPI web service primarily identifies product model objects using the propertyPublicID. From an external system, you can get thePublicIdfor a product model object by calling the ProductModelAPI web service method getPublicIdForCodeIdentifier. If you develop your own web services that manipulate product model types, Guidewire recommends using the propertyCodeIdentifierfor arguments and return values.
Synchronize Product Model in database with file system XML
The most important method in the ProductModelAPI web service is the synchronizeProductModel method. Use the synchronizeProductModel method to update the PolicyCenter product model in memory from the local file system XML representation of the product model.
The Product Designer application uses this API to reload the PolicyCenter server in-memory product model after modifying the local XML files.
Suppose you plan to introduce a new insurance product such as a new type of auto insurance coverage. You may want to change the PolicyCenter product model in multiple ways. However, never push product model changes directly to the production server.
Instead, test changes on different instances of the development server. Ensure your product model changes are correct before deploying to the production server.
To maintain business data integrity, PolicyCenter forbids some types of changes to product model entity properties on production servers. Some product model changes are impossible to undo after you deploy the changes to a production server. For example, a coverage term with the value 100 cannot change to the value 200 on a production server. That would fundamentally change the meaning of any policies that used that coverage term. This is a difference between working with a development server which has no customer data and a production server where customer data is bound by legal and customer service implications.
The development server must have an identical PolicyCenter configuration as the production server, except for the following configuration settings.
- On the production server, set
the server environment property
envtoprod(production). - On the development server,
set the server environment property
envto a value other thanprod.
Fully test product model changes on a development server. PolicyCenter protects the business and legal integrity of customer data in a special way for production servers. Deploying unacceptable property changes to existing product model entities prevents PolicyCenter from starting in production environment.
If you call the ProductModelAPI web service on
a server whose system environment variable env is set to the value prod, the web service throws an
exception.
Use this API in the following cases.
- If you need to revert the product model to the product model XML files stored on the server instead of the data persisted in the database.
- If you change a development server’s local file resources in some other way during development due to source control changes or hand-editing of files.
Use this API if you change a development server’s local file resources in some other way during development due to source control changes or hand-editing of files.
Do not use this API if the file did not change since server startup.
Synchronize system tables
Another ProductModelAPI
web service method is synchronizeSystemTables.
Use the synchronizeSystemTables
method to modify the PolicyCenter database’s system tables from the
local file system XML representation of system tables. This method takes
no arguments, and returns nothing.
The Product Designer application uses this API to reload the database system tables into PolicyCenter after modifying the local XML files.
If you call this API on a server whose
system environment variable env
is set to the value prod,
the web service throws an exception.
Use this API if you change a development server’s local file resources in some other way during development due to source control changes or hand-editing of files.
Do not use this API if the files did not change since server startup.
Query the database for Product Model information
On a running PolicyCenter server, you can query the database for product model information.
There are multiple types of queries you can perform.
- To return the list of available
questions for a specified policy period, call the ProductModelAPI web service method
getAvailableQuestions.
The return type is a list of question sets, as the type
List<QuestionSet>. - To return the list of
available clauses (such as coverages, conditions, and exclusions) for
a specified policy period, call the ProductModelAPI
web service method getAvailableClausePatterns.
The return type is a list of clause patterns, as the type
List<ClausePattern>.
The arguments are the same for both methods.
- lookupRoot
– the information about the entity to search for availability, as a
LookupRootImpl object.
The LookupRootImpl object
encapsulates the search criteria and contains the following properties:
LookupTypeName– theStringlookup type namePolicyLinePatternCode– theStringpolicy line pattern codeCovTermPatternCode– theStringcoverage term pattern codeProductCode– theStringproduct codeJobType– the job type as aJobtypekeyJurisdiction– a jurisdiction as a Jurisdiction objectPolicyType– a policy type as a BAPolicyType objectUWCompanyCode– an underwriter company code as a UWCompanyCode objectIndustryCode– aStringindustry codeVehicleType– a vehicle type as a VehicleType object
- offeringCode
– a
Stringoffering code - lookupDate – the date to look up as a standard Date object
Exceptions that the methods may throw are listed below.
SOAPException– If communication failsRequiredFieldException– If any required field is nullBadIdentifierException– If the API cannot find an instance with specified ID
