CodeIdentifier and PublicID on product model patterns

Product model pattern have two identifiers which serve different purposes.

  • CodeIdentifier – Identifier of product model patterns in the Product Designer user interface and in Studio. Define this value as human-readable value because it is the generated type that identifiers the object in Gosu code. For example, you might give a Personal Auto Liability coverage the CodeIdentifier of PALiabilityCov. For most product model patterns, the CodeIdentifier length is 128. For PolicyLine and Product, the length is 64.
  • PublicID – Generated value and is not human-readable, but must be used in certain situations. For example, you must use PublicID to identify product model patterns in the product model API. The length of PublicID is 64.

These two identifiers usually have different values since PublicID is generated. However, CodeIdentifier and PublicID have the same value in:

  • Policy or PolicyLine patterns
  • Upgraded product model pattern created in PolicyCenter 8.0.3 or earlier

In Product Designer screens, the Code field displays the CodeIdentifier property for product model patterns. CodeIdentifier is the identifier of product model patterns in the Product Designer user interface. In Studio, the generated type is the CodeIdentifier. For example, PALiabilityCov and PAMedPayCov are the CodeIdentifier values on product model coverage objects:

// Create line-level coverages
_liabilityCov = paLine.PALiabilityCov
_medPaymentCov = paLine.PAMedPayCov

Some code, such as getters for product model pattern lookup which evaluate each pattern in turn, must access the patterns explicitly by CodeIdentifier or PublicID. When accessing these identifiers, always use the getByCodeIdentifier or getByPublicId methods.

Because CodeIdentifier and PublicID have the same value in upgraded patterns, test your code with at least one product model pattern where the values are different. Do not use Policy or PolicyLine patterns because the CodeIdentifier and PublicID have the same values even in new patterns.