Configuring product model availability checks

To configure product model availability checking, you use the Gosu ProductModelSynchIssuesHandler class in package gw.web.productmodel as the initial entry point. The class contains methods that can force availability checking for the following:

  • Coverages
  • Modifiers
  • Question answers
  • Coverables (for whichever type you pass in)
Important: Product model synchronization can significantly impact performance, particularly if complicated availability scripts are used in the product model. To minimize performance impact, synchronize the smallest possible portion of the product model. For example, do not synchronize modifiers if the screen does not display modifiers. Do not synchronize all coverages if the screen displays only coverages from particular categories. Be aware that you may need to display a smaller set of product model data on a single page to attain adequate performance. Also, do not call synchronization more than necessary. For example, avoid calling synchronization every time the user modifies a field or executes other actions.

You can call the ProductModelSynchIssuesHandler class from any Gosu code. Comments in the class provide details on how to use the various class methods. However, you typically call it from a PCF page. For example, you can instruct PolicyCenter to perform a product model availability check before entering the Vehicles screen of the Personal Auto line. To view an example of a product model availably check, open the LineWizardStepSet.PersonalAuto PCF page. Select the JobWizardStep with id PersonalVehicles. View the following code in the onEnter attribute.

if (openForEdit) {
  gw.web.productmodel.ProductModelSyncIssuesHandler.syncModifiers
    (policyPeriod.PersonalAutoLine.AllModifiables, jobWizardHelper)
}

The following illustration shows how this availability check is configured in the base configuration.

The ProductModelSynchIssuesHandler class is a utility class whose purpose is to call other, more specific, classes to handle details of product model availability checking. For example, the call to ProductModelSyncIssuesHandler.syncModifiers() in turn calls class MissingModifierIssueWrapper, which defines the following behavior:

override property get ShouldFixDuringNormalSync()     : boolean { return true }
override property get ShouldDisplayDuringNormalSync() : boolean { return false }
override property get ShouldFixDuringQuote()          : boolean { return true }
override property get ShouldDisplayDuringQuote()      : boolean { return false }

To change the default behavior, modify the appropriate value accordingly. For example, if PolicyCenter encounters a missing modifier during availability checking, the default behavior requires that PolicyCenter must correct the issue as it moves between wizard steps. The following code ensures that missing modifiers must be fixed:

override property get ShouldFixDuringNormalSync() : boolean { return true }

To change this behavior so that the issue need not be corrected at that point in the wizard, set the return value to false.