Generating and installing LOB-specific endpoints

The following diagram provides a high-level overview for how a line of business is typically developed using Advanced Product Designer.


Life cycle of product in Advanced Product Designer
  1. The product and its lines of business start as metadata that is captured in either a mind map or a template.
  2. The insurer creates a visualized product by importing the LOB metadata into PolicyCenter.
    1. During the import, PolicyCenter generates a set of "in memory" endpoints that reflect the structure of the LOB.
  3. While in Advanced Product Designer, the insurer typically edits the product.
    1. This is typically an iterative process where the insurer refines the metadata as needed.
    2. Every time the product is modified, the "in memory" endpoints are regenerated.
  4. Once the refining is complete, the insurer creates a finalized product by installing the product. The finalized products consists of:
    1. The necessary artifacts for the product, including database tables and PCFs.
    2. A set of "active" endpoints that are now part of Cloud API.
Note: When importing or editing a visualized line of business through Advanced Product Designer, there is no separate step to generate LOB-specific endpoints. The endpoints are generated automatically whenever the product is imported or edited.

For more information on Advanced Product Designer, refer to Creating Products with APD App.

Related developer tasks

When working with LOB-specific endpoints, developers can do the following:

  • Generate LOB-specific endpoints as part of an entire product (through Advanced Product Designer)
  • Generate a template from an existing finalized product
  • Install LOB-specific endpoints without modifying other product-specific artifacts

Generating LOB-specific endpoints through APD

When you import, edit, or install a product through Advanced Product Designer, LOB-specific endpoints are automatically generated. For more information on how to use Advanced Product Designer, refer to Creating Products with APD App.

Note that the generation of endpoints through Advanced Product Designer can be either seamless or bootstrapped.

  • If the line of business supports seamless generation, then the LOB-specific endpoints are generated automatically from the visualized product. No manual modifications are required.
  • If the line of business supports only bootstrapped generation, then some manual modification of the generated endpoints is required.

Generate LOB-specific endpoints

About this task

You can generate an LOB-specific endpoint from an APD template. This process applies to both creating new LOB-specific endpoints as well as updating existing endpoints.

Note: PolicyCenter updates include new features for use with Cloud API. In order to apply these new features to your LOB-specific endpoints, you must update each of those endpoints after updating PolicyCenter itself.
Note: If you generate LOB-specific endpoints for a product created in Product Designer, and then you make additional changes to the line in Product Designer, you must regenerate the LOB-specific endpoints if you want the changes to the line reflected in the endpoints.

To execute this task, you must have an APD template for the LOB. If necessary, you can generate an APD template from the existing visualized product and import the template. For more information, see Generate a template using the reverse template generator

Procedure

  1. In PolicyCenter, set Options > Preferences > Product Design Mode to Developer, and then click Update.
  2. To add the template, click Administration > Product Management > Import From Template, browse and select your template, and then click Update.
  3. To generate the endpoints, from the Details pane click Edit Product > Generate Product Code > System APIs > System APIs - Code
  4. Review the model, and if acceptable, click Complete Generation.
  5. Click Return to Product Definition, and then click Save.
  6. Restart PolicyCenter.

Results

To verify the result, browse to the APD Managed pane on the Product Management page. The LOB product will be displayed, and the Last Updated column will have a value, indicating that the product has been installed. For details on viewing the API definition in Swagger, see the Cloud API Consumer Guide.

Generating LOB-specific endpoints for scheduled items in SBT products

Sometimes, an account holder wants a policy to cover a specific item that has unusual value, such as a piece of fine art or a diamond necklace. There is a generic coverage on the policy that could apply to the item. But because of the item's unusual value, it ought to be covered by its own coverage. The insurer may require additional information, such as the item's value and how this value was determined. The item's coverage may also require a deductible or limit that is outside the range of what is allowed by the more generic coverage. These types of "unusual value" items appear on the policy in a list that is called a schedule. Thus, the items themselves are called scheduled items.

The original Product Designer, Advanced Product Designer, and Schedule-Based Templates (SBTs) all have the ability to define products with scheduled items. However, the underlying mechanism for defining scheduled items in SBTs is significantly different than that of Product Designer and Advanced Product Designer. Therefore, when you generate LOB-specific endpoints for SBT products with schedule items, PolicyCenter needs additional code to determine how to generate the endpoints. This code is defined in the ComplexSchedulePlugin plugin.

Implementing the ComplexSchedulePlugin plugin

The ComplexSchedulePlugin plugin is a part of the base configuration as of the Garmisch release (2023.02.0). The manner in which this plugin is implemented varies based on the insurer's original version of PolicyCenter and the original version of the SBT.

Development starts on Garmisch (or later)

If the development of the product started on a Garmisch (or later) instance of PolicyCenter using a Garmisch (or later) instance of the SBT, then there is an implementation of the ComplexSchedulePlugin plugin included with the base configuration. No additional work is required.

Updating both a pre-Garmisch PolicyCenter and pre-Garmisch SBT to Garmisch (or later)

If the development of the product started on a pre-Garmisch instance of PolicyCenter using a pre-Garmisch instance of the SBT, and both PolicyCenter and the SBT are updated to Garmisch (or later), then no additional work is required. An implementation of the ComplexSchedulePlugin plugin will be added to PolicyCenter during the update process.

Updating a pre-Garmisch PolicyCenter to Garmisch (or later) while using a pre-Garmisch SBT

If the development of the product started on a pre-Garmisch instance of PolicyCenter using a pre-Garmisch instance of the SBT, and only PolicyCenter is updated to Garmisch (or later), then some additional work is required to make the pre-Garmisch SBT compatible with Garmisch PolicyCenter. This additional work consists of the following:

  1. Download a Garmisch (or later) version of the SBT.
  2. Copy the following files from the Garmisch (or later) version of the SBT to the existing pre-Garmisch SBT
File location File name
/config/plugin/registry ComplexSchedulePlugin.​gwp
/gsrc/gw/lob/common/rest/productdefinition/v1/coverage SbtScheduledItemPropertyWrapper.​gs
/gsrc/gw/plugin/rest/v1/impl/ SbtComplexSchedulePlugin.​gs

3. In the Garmisch (or later) SBT, find the file from the list below that matches the SBT you are implementing. Replace the pre-Garmisch version of this file in your SBT with the Garmisch (or later) version from the downloaded SBT.

SBT File location File name
SBT-BP7 /gsrc/gw/lob/bp7 BP7BusinessOwnersLineScheduleEnhancement.​gsx
SBT-CA7 /gsrc/gw/lob/ca7 CA7CommAutoLineScheduleEnhancement.​gsx
SBT-CP7 /gsrc/gw/lob/cp7 CP7PropertyLineScheduleEnhancement.​gsx
SBT-CR7 /gsrc/gw/lob/cr7 CR7CrimeLineScheduleEnhancement.​gsx
SBT-GL7 /gsrc/gw/lob/gl7 GL7GeneralLiabilityLineScheduleEnhancement.​gsx
SBT-WCM /gsrc/gw/lob/wcm WCMWorkersCompLineScheduleEnhancement.​gsx
Note: The structure of SBTs has changed significantly over time. If you are working with an SBT that was released in 2015 or earlier, Guidewire recommends contacting your Guidewire representative to discuss the best way to implement your SBT on a Garmisch or later release.

Differences between "product designer" scheduled items and SBT scheduled items

Once there is a suitable plugin implementation, the endpoints for SBT scheduled items work almost entirely the same as scheduled items in Product Designer/Advanced Product Designer products. There are two differences with endpoints for scheduled items in SBT products.

  • They have two new scheduled item property types: additionalInsured and option. These properties have corresponding value properties on the ScheduledItemProperty schema definition.
  • They can have a set of child /coverage endpoints. This is because scheduled items in an SBT product can have coverages attached to them. When the ComplexSchedulePlugin plugin identifies that a given coverable has at least one coverage that has scheduled items with child coverages, it generates the child /coverage endpoints. For example, for an SBT product, there could be an endpoint such as .../buildings/{buildingId}/coverages/{coverageId}/scheduled-items/{scheduledItemId}/coverages/{scheduledItemCoverageId}.

Generating templates from a finalized product

Products can be created in PolicyCenter using approaches other than Advanced Product Designer. These approaches create a product with several LOB-specific artifacts (such as LOB-specific database tables or PCFs). But, they do not create any LOB-specific endpoints. If you want to expose these lines of business to Cloud API, you need to generate LOB-specific endpoints.

You can achieve this by doing the following:

  1. Create a template for the product using the reverse template generator.
  2. Import the product into Advanced Product Designer.
  3. From the imported product, install only the LOB-specific endpoints.

The reverse template generator is a script that creates an XML template from an installed product. Because the generator generates XML based on the installed product, the resulting template typically has more information in it than what exists in a mind map or in a product that is only visualized.

Advanced Product Designer is not required to run the reverse template generator. Therefore, it is possible to run the reverse template generator in older versions of PolicyCenter to generate a template. However, Advanced Product Designer is required to import the template and install the corresponding endpoints.

Generate a template using the reverse template generator

Procedure

  1. In PolicyCenter, select Administration > Product Management > Externally Managed. This pane contains a list of products that have been installed by means other than APD.
  2. In the Installed Products pane, select the product for which you wish to generate an APD template.
  3. In the Details pane, click Extract APD Representation. PolicyCenter generates the APD template and stores it in the <USER_HOME>/Downloads directory.

Results

Once the product is imported as a visualized product and any inconsistencies have been corrected, you can install just the endpoints. For details, see Generate LOB-specific endpoints.

Installing LOB-specific endpoints without installing other artifacts

In some situations, you may have an installed product that has no LOB-specific endpoints. For example, this can occur when a product has been created outside of Advanced Product Designer, such as:

  • A base configuration product
  • A product installed from a Standards Based Template (SBT)
  • A product created in Product Designer

You can create a template from the installed product using the reverse template generator, and then import the template into Advanced Product Designer. Once the product has been imported, you can install only the endpoints, without modifying any of the other existing product-specific artifacts.