Code identifier necessary changes

Your implementation requires changes if you explicitly reference PublicID in product model objects. This is necessary when you directly access product model objects from the database. Use the getByCodeIdentifier or getByPublicID methods.

Some areas where you may need to make changes are:

  • Product model scripts
  • Gosu code
  • System tables
  • Product model web services

Product Model Scripts and Gosu Code

In guided editing, Studio displays the generated type, which is the value of CodeIdentifier. However, some code, such as getters for product model pattern lookup which evaluate each pattern in turn, must access the patterns by CodeIdentifier or PublicID. When accessing these identifiers, always use the getByCodeIdentifier or getByPublicId methods.

For example:

schedPropCov = ClausePatternLookup.getCoveragePatternByCodeIdentifier("PATowingLaborCov")

or:

newVehicle.createCoverage(ClausePatternLookup.getCoveragePatternByPublicID("PATowingLaborCov"))

System Tables

If a new system table has a Code column that references a product model pattern, Guidewire recommends that you use CodeIdentifier instead of PublicID.

How to work going forward with existing system tables depends on how those system tables are utilized. Most system tables with data columns that reference product model patterns generally referenced the code of the product model pattern. That code was previously mapped to PublicId, but now maps to CodeIdentifier. Ideally, you can continue to use code when entering data about new product model patterns. However, in order to do so, you must review how those system tables are utilized within PolicyCenter, in particular in system table verification and other Gosu code. If the system tables are accessed explicitly using PublicId you must do one of the following:

  • Change the access in PolicyCenter to use CodeIdentifier instead of PublicID.
  • Enter PublicID directly into the system table. However, unlike CodeIdentifier, the PublicID for newly created patterns is not human readable.

The first method is recommended, but you can use the second if the first is not possible.

If the existing system table only utilizes Policy or PolicyLine codes, nothing needs to be changed since CodeIdentifier and PublicID are the same for them.

Note: For all product model patterns that existed prior to PolicyCenter 9.0.0, PublicID and CodeIdentifier will always be the same, so all methods will work for them.

Product Model Web Services

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 (not PublicID) for arguments and return values.