Verifying system tables

No two system table files can have the same entity types in them. PolicyCenter loads system tables, unlike other product model entities, into a single database table. Therefore, if the same entity exists in more than one system table, an IllegalStateException occurs at system startup.

If you use Studio to change entity definitions and those entities reference system tables, Product Designer does not validate the changes for consistency. To validate system tables, do one of the following:

  • Start the PolicyCenter development instance in which you have made the changes.
  • Run the command-line validator gwb verifyResources.

PolicyCenter can be configured to verify other system table data consistency rules. You can do this configuration by using the Verifier parameter to add a verifier class to the system table definition in systables.xml. For example:

<FileDefinition Name="cancelrefund.xml" Priority="0"> 
    <Entity Type="CancelRefund" Verifier="gw.systable.verifier.CancelRefundVerifier"/> 

You then must write a Verifier class that implements the Verifier interface. Include a single method named verify() in the class. In the base configuration, verifiers are defined for many common data consistency checks in the system tables, such as:

  • All PublicID values are valid.
  • The end effective date is later than the start effective date for each row.
  • Effective dates on multiple rows do not overlap in system class code and industry code system tables.
  • Unique indexes defined for the system table entity are unique.
Note: In very large system tables, such as territory codes, complex data verifications can take a long time to execute, which can have a significant impact on server startup time.