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, not PublicID. ProductModelAPI web service primarily identifies product model objects using the property PublicID. From an external system, you can get the PublicId for 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 property CodeIdentifier for 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 env to prod (production).
  • On the development server, set the server environment property env to a value other than prod.

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 – the String lookup type name
    • PolicyLinePatternCode – the String policy line pattern code
    • CovTermPatternCode – the String coverage term pattern code
    • ProductCode – the String product code
    • JobType – the job type as a Job typekey
    • Jurisdiction – a jurisdiction as a Jurisdiction object
    • PolicyType – a policy type as a BAPolicyType object
    • UWCompanyCode – an underwriter company code as a UWCompanyCode object
    • IndustryCode – a String industry code
    • VehicleType – a vehicle type as a VehicleType object
  • offeringCode – a String offering code
  • lookupDate – the date to look up as a standard Date object

Exceptions that the methods may throw are listed below.

  • SOAPException – If communication fails
  • RequiredFieldException – If any required field is null
  • BadIdentifierException – If the API cannot find an instance with specified ID