0% found this document useful (0 votes)
3K views794 pages

Config Guide

Uploaded by

Ah Re Loco
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3K views794 pages

Config Guide

Uploaded by

Ah Re Loco
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 794

Guidewire

ClaimCenter ™

Configuration Guide
Release 9.0.5
©2001-2018 Guidewire Software, Inc.
For information about Guidewire trademarks, visit http://guidewire.com/legal-notices.
Guidewire Proprietary & Confidential — DO NOT DISTRIBUTE

Product Name: Guidewire ClaimCenter


Product Release: 9.0.5
Document Name: Configuration Guide
Document Revision: 27-April-2018
Configuration Guide 9.0.5

Contents

About ClaimCenter documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27


Conventions in this document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28
Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28

Part 1
ClaimCenter configuration basics
1 Overview of ClaimCenter configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
What you can configure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
Guidewire internal methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34
How you configure ClaimCenter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34
Types of application environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
The development environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
The production environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
Deploying configuration files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36
Deploying changes in a development environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36
Deploying changes to the production server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36
Regenerating the data and security dictionaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37
Generating the data and security dictionaries in HTML format . . . . . . . . . . . . . . . . . . . . . . .37
Generating the data and security dictionaries in XML format . . . . . . . . . . . . . . . . . . . . . . . .38
Generating the security dictionary from ClaimCenter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38
Generating the dictionaries as you generate a .war or .ear file . . . . . . . . . . . . . . . . . . . . . . . .38
Aspects of regenerating the Security Dictionary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38
Managing configuration changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39

2 Application configuration parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41


Working with configuration parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
Adding custom parameters to ClaimCenter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
Configuration parameter behaviors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
View configuration parameters on a running server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
Access configuration parameters in Gosu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
Adding custom MIME types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
Approval parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
BulkInvoiceApprovalPattern. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
PaymentApprovalPattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
RecoveryApprovalPattern. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
RecoveryReserveApprovalPattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
ReserveApprovalPattern. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
Archive parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
ArchiveEnabled. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
AssignClaimToRetriever . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
DaysClosedBeforeArchive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
DaysRetrievedBeforeArchive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
DomainGraphKnownUnreachableTables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
PolicySystemArchivingEnabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
RestorePattern. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
SnapshotEncryptionUpgradeChunkSize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
Assignment parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
Contents 3
Configuration Guide 9.0.5

AssignmentQueuesEnabled. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
WeightedAssignmentEnabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
WeightedAssignmentGlobalDefaultWeight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
Batch process parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
BatchProcessHistoryPurgeDaysOld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
Business calendar parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
BusinessDayDemarcation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
BusinessDayEnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
BusinessDayStart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
BusinessWeekEnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
HolidayList (obsolete) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
IsFridayBusinessDay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
IsMondayBusinessDay. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
IsSaturdayBusinessDay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
IsSundayBusinessDay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
IsThursdayBusinessDay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
IsTuesdayBusinessDay. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
IsWednesdayBusinessDay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
MaxAllowedDate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
MinAllowedDate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
Business rules parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
BizRulesCacheStaleTimeMinutes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
BizRulesEnabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50
BizRulesDeploymentEnabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50
BizRulesDeploymentId . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50
BizRulesImportBootstrapRules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50
BizRulesLeafSearchNumOfHops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50
OnlineJavadocPrefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
Cache parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
ActivityPatternCacheMaxDuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
ExchangeRatesCacheRefreshIntervalSecs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
GlobalCacheActiveTimeMinutes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
GlobalCacheDetailedStats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52
GlobalCacheReapingTimeMinutes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52
GlobalCacheSizeMegabytes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52
GlobalCacheSizePercent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52
GlobalCacheStaleTimeMinutes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52
GlobalCacheStatsRetentionPeriodDays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53
GlobalCacheStatsWindowMinutes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53
GroupCacheRefreshIntervalSecs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53
ScriptParametersRefreshIntervalSecs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53
TreeViewRefresh. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53
ZoneCacheRefreshIntervalSecs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53
Claim catastrophe parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53
HeatMapCredential . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54
HeatMapServiceTemplate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54
MaxCatastropheClaimFinderSearchResults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54
Claim health indicator and metric parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54
ClaimHealthCalcMaxLossDateInYears . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54
InitialReserveAllowedPeriod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54
MaxClaimResultsPerClaimHealthCalcBatch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54
Clustering parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54
ClusteringEnabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55
ClusterMemberPurgeDaysOld. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55
ConfigVerificationEnabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55

4
Configuration Guide 9.0.5

PDFMergeHandlerLicenseKey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56
SerializationWhitelistEnabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56
Database parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56
DisableHashJoinForClaimSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56
DisableHashJoinForTeamGroupActivities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56
DisableIndexFastFullScanForClaimSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
DisableIndexFastFullScanForRecoverySearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
DisableIndexFastFullScanForTeamGroupActivities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
DisableSequenceUtil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
DisableSortMergeJoinForClaimSearch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
DisableSortMergeJoinForTeamGroupActivities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
DiscardQueryPlansDuringStatsUpdateBatch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
IdentifyQueryBuilderViaComments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
IdentifyORMLayerViaComments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58
MigrateToLargeIDsAndDatetime2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58
QueryRewriteForClaimSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58
SetSemiJoinNestedLoopsForClaimSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59
UseOracleHintsOnMessageQueries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59
Data destruction parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59
ArchiveReferenceTrackingEnabled Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59
ContactDestructionRequestAgeForPurgingResults parameter . . . . . . . . . . . . . . . . . . . . . . . .59
PersonalDataDestructionEnabled parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59
Deduction parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59
BackupWithholdingTypeCode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60
CalculateBackupWithholdingDeduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60
StandardWithholdingRate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60
Document creation and document management parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60
DisplayDocumentEditUploadButtons. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60
DocumentContentDispositionMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60
DocumentTemplateDescriptorXSDLocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60
FinalDocumentsNotEditable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
MaximumFileUploadCount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
MaximumFileUploadSize. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
MaximumTotalUploadSize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
Environment parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
AddressDeletionDelay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
AddressVerificationFailureAsError . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
AlwaysShowPhoneWidgetRegionCode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62
CurrentEncryptionPlugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62
DeprecatedEventGeneration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62
EnableAddressVerification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62
EnableInternalDebugTools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63
EntityValidationOrder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63
KeyGeneratorRangeSize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63
MemoryUsageMonitorIntervalMins. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63
PublicIDPrefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63
ResourcesMutable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64
RetainDebugInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64
StrictDataTypes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65
TwoDigitYearThreshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65
UnreachableCodeDetection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65
UnrestrictedUserName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65
UseOldStylePreUpdate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66
WarnOnImplicitCoercion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66
WebResourcesDir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66

Contents 5
Configuration Guide 9.0.5

Financial parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66


AllowMultipleLineItems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66
AllowMultiplePayments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66
AllowNegativeManualChecks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66
AllowNoPriorPaymentSupplement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67
AllowPaymentsExceedReservesLimits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67
CheckAuthorityLimits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67
CloseClaimAfterFinalPayment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67
CloseExposureAfterFinalPayment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67
EnableMulticurrencyReserving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67
Financials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67
PaymentLogThreshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68
PaymentRoundingMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68
ReserveRoundingMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68
SetReservesByTotalIncurred . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69
UseDeductibleHandling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69
UseRecoveryReserves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69
Geocoding parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69
UseGeocodingInPrimaryApp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69
UseGeocodingInAddressBook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70
ProximitySearchOrdinalMaxDistance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70
ProximityRadiusSearchDefaultMaxResultCount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70
UseMetricDistancesByDefault . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70
Globalization parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70
DefaultApplicationLanguage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70
DefaultApplicationLocale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71
DefaultApplicationCurrency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71
DefaultRoundingMode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71
MulticurrencyDisplayMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .72
DefaultCountryCode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .72
DefaultPhoneCountryCode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .72
DefaultNANPACountryCode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .72
AlwaysShowPhoneWidgetRegionCode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .72
Integration parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73
ContactAutoSyncBundleCommitSize. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73
ContactAutoSyncWorkItemChunkSize. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73
DefaultXmlExportIEncryptionId . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73
EnableMetroIntegration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73
InstantaneousContactAutoSync . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74
ISOPropertiesFileName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74
KeepCompletedMessagesForDays. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74
LockDuringDistributedMessageRequestHandling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74
LockPrimaryEntityDuringMessageHandling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74
MetroPropertiesFileName. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74
PluginStartupTimeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75
PolicySystemURL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75
Miscellaneous bulk invoice activity pattern parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75
BulkInvoiceItemValidationFailedPattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75
BulkInvoiceUnableToStopPattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75
BulkInvoiceUnableToVoidPattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75
Miscellaneous financial activity parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75
CheckDeniedPattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76
CheckUnableToStopPattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76
CheckUnableToVoidPattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76
ClaimOrExposureUnableToClosePattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76

6
Configuration Guide 9.0.5

LastPaymentReminderPattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76
RecoveryDeniedPattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76
Miscellaneous parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76
ClaimLossDateDemarcation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76
ConsistencyCheckerThreads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76
EnableClaimNumberGeneration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77
EnableClaimSnapshot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77
EnableStatCoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77
MaintainPolicyValidationLevelOnPolicyChange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77
MaxCachedClaimSnapshots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77
MaxStatCodesInDropdown. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77
ProfilerDataPurgeDaysOld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77
VendorNotificationAPIRetryTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77
TransactionIdPurgeDaysOld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77
PDF print settings parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78
DefaultContentDispositionMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78
PrintFontFamilyName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78
PrintFontSize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78
PrintFOPUserConfigFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78
PrintHeaderFontSize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78
PrintLineHeight. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78
PrintListViewBlockSize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79
PrintListViewFontSize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79
PrintMarginBottom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79
PrintMarginLeft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79
PrintMarginRight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79
PrintMarginTop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79
PrintMaxPDFInputFileSize. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79
PrintPageHeight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79
PrintPageWidth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80
PrintPdfDefaultBaseFileExtension. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80
PrintPdfMimeType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80
Print settings parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80
PrintCsvDefaultBaseFileExtension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80
PrintCsvMimeType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80
PrintDefaultBaseFileName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80
Scheduler and workflow parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80
IdleClaimThresholdDays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80
SchedulerEnabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81
SeparateIdleClaimExceptionMonitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81
WorkflowLogDebug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81
WorkflowLogPurgeDaysOld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81
WorkflowPurgeDaysOld. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81
WorkflowStatsIntervalMins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81
Search parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81
FreeTextSearchEnabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82
MaxActivitySearchResults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82
MaxBulkInvoiceSearchResults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82
MaxCheckSearchResults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82
MaxClaimSearchResults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82
MaxContactSearchResults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82
MaxContactDocumentSearchResults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82
MaxDocTemplateSearchResults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82
MaxDuplicateContactSearchResults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83
MaxNoteSearchResults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83

Contents 7
Configuration Guide 9.0.5

MaxPolicySearchResults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83
MaxRecoverySearchResults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83
Security parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83
EnableDownlinePermissions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83
FailedAttemptsBeforeLockout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83
LockoutPeriod. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83
LoginRetryDelay. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .84
MaxACLParameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .84
MaxPasswordLength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .84
MinPasswordLength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85
RestrictContactPotentialMatchToPermittedItems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85
RestrictSearchesToPermittedItems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85
SessionTimeoutSecs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85
UseACLPermissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85
Segmentation parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85
ClaimSegment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85
ClaimStrategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
ExposureSegment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
ExposureStrategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
Service request parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
ServiceRequestAPIMaxDaysKeepActiveWithoutInvoice . . . . . . . . . . . . . . . . . . . . . . . . . . .86
ServiceRequestAPIMaxMessageResults. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
ServiceRequestAPIMaxSearchResults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
Statistics, team, and dashboard parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
AddIndexHintForLossDate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87
AgingStatsFirstDivision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87
AgingStatsSecondDivision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87
AgingStatsThirdDivision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87
CalculateLitigatedClaimAgingStats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87
DashboardIncurredLimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87
DashboardShowByCoverage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87
DashboardShowByLineOrLoss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87
DashboardWindowPeriod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87
GroupSummaryShowUserGlobalWorkloadStats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88
UserStatisticsWindowSize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88
User interface parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88
ActionsShortcut. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88
AutoCompleteLimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88
HidePolicyObjectsWithNoCoveragesForLossTypes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88
HighlyLinkedContactThreshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89
IgnorePolicyTotalPropertiesValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89
IgnorePolicyTotalVehiclesValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89
InputMaskPlaceholderCharacter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89
ListViewPageSizeDefault . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89
MaxBrowserHistoryItems (obsolete) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89
MaxChooseByCoverageMenuItems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89
MaxChooseByCoverageTypeMenuItems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90
MaxClaimantsInClaimListViews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90
MaxTeamSummaryChartUserBars. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90
QuickJumpShortcut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90
RequestReopenExplanationForTypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90
ShowCurrentPolicyNumberInSelectPolicyDialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90
ShowFixedExposuresInLossDetails . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90
ShowNewExposureChooseByCoverageMenuForLossTypes . . . . . . . . . . . . . . . . . . . . . . . . .90
ShowNewExposureChooseByCoverageTypeMenuForLossTypes . . . . . . . . . . . . . . . . . . . . .91

8
Configuration Guide 9.0.5

ShowNewExposureMenuForLossTypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .91
UISkin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92
WebUIAJAXTimeout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92
Work queue parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92
InstrumentedWorkerInfoPurgeDaysOld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92
WorkItemCreationBatchSize. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92
WorkItemPriorityMultiplierSecs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92
WorkItemRetryLimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93
WorkQueueHistoryMaxDownload. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93
WorkQueueThreadPoolMaxSize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93
WorkQueueThreadPoolMinSize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93
WorkQueueThreadsKeepAliveTime. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94

Part 2
The Guidewire development environment
3 Getting started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97
What Is Guidewire Studio? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97
The Studio development environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .98
Working with the QuickStart development server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99
Connecting the development server to a database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99
Deploying your configuration changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
ClaimCenter configuration files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Key directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Studio and IntelliJ IDEA configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Using Studio with IntelliJ IDEA Ultimate Edition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Setting IntelliJ IDEA properties in Studio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Studio and the DCEVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Start Guidewire Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Stop Guidewire Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Updating Guidewire Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Enable or disable automatic update checks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Manually check for Studio updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Setting the Studio update site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Updating Studio manually . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

4 Working in Guidewire Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109


Entering valid code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Using dot completion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Accessing reference information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Accessing the Gosu API Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Accessing the PCF Reference Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Accessing the Gosu Reference Guide. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Using Studio keyboard shortcuts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Saving your work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Verifying configuration resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Inspecting configuration resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Compiling configuration resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Enabling or disabling Gosu compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Setting options for Gosu command prompt compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Suppressing compiler warnings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Editing the XML definition of Studio resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

5 Working with Guidewire Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117


Improving Studio performance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

Contents 9
Configuration Guide 9.0.5

Set the maximum amount of memory available to Guidewire Studio . . . . . . . . . . . . . . . . . . 117


Set the amount of memory for project builds in Guidewire Studio . . . . . . . . . . . . . . . . . . . . 118
Resetting Guidewire Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Rebuild the Studio project files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Rebuild the Studio file index cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Setting font display options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

6 ClaimCenter Studio and Gosu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121


Gosu building blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Gosu case sensitivity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Working with Gosu in ClaimCenter Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Gosu packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Create a new package. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Gosu classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Create a new Gosu class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
ClaimCenter base configuration classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Class visibility in Studio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Preloading Gosu classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Gosu enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Create a new enhancement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
XML and GX models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Define a GX model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Script parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Script parameters overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Script parameters as global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Script parameter examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Working with script parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Referencing a script parameter in Gosu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

Part 3
Guidewire Studio editors
7 Using the Studio editors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Editing in Guidewire Studio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Working in the Gosu editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

8 Using the plugins registry editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135


What are plugins?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Plugin implementation classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
What is the plugins registry? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Startable plugins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Working with plugins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Create a plugins registry item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Add an implementation to a plugins registry item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Set environment and server context for plugin implementations . . . . . . . . . . . . . . . . . . . . . 138
Customizing plugin functionality. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Working with plugin versions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

9 Working with web services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141


Using the web service editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Defining a web service collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

10 Implementing QuickJump commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143


What Is QuickJump?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Adding a QuickJump navigation command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

10
Configuration Guide 9.0.5

Implementing QuickJumpCommandRef commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144


Implementing StaticNavigationCommandRef commands . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Implementing ContextualNavigationCommandRef commands . . . . . . . . . . . . . . . . . . . . . . 146
Checking permissions on QuickJump navigation commands . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

11 Using the entity names editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149


Entity names editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Variable table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
The Entity Path column . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
The Use Entity Name? column . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
The Sort columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Gosu text editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Including data from subentities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Entity name types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

12 Using the messaging editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155


Messaging editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Open the messaging editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Add or remove a messaging configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Add a message destination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Associating event names with a message destination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

13 Using the display keys editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159


Overview of display keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Display key requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Creating display keys in a Gosu editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Retrieving the value of a display key. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

Part 4
Data model configuration
14 Working with the Data Dictionary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
What is the Data Dictionary? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
What can you view in the Data Dictionary? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Using the Data Dictionary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Property colors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Object attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Property attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Entity subtypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Data field types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Virtual properties on data entities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

15 The ClaimCenter data model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171


What is the data model? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
The data model in Guidewire application architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
The base data model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Working with dot notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Overview of data entities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Data entity metadata files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
The extensions properties file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Working with entity definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Search for an existing entity definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Create a new entity definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Extend an existing entity definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
ClaimCenter data entities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

Contents 11
Configuration Guide 9.0.5

Data entities and the application database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177


ClaimCenter database tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Data objects and scriptability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Base ClaimCenter data objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Delegate data objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Entity data objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Extension data objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Non-persistent entity data objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Subtype data objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
View entity data objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
View entity extension data objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Data object subelements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
<array> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
<column> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
<edgeForeignKey> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
<events>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
<foreignkey> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
<fulldescription> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
<implementsEntity> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
<implementsInterface>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
<index> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
<onetoone>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
<remove-index> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
<tag> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
<typekey> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

16 Working with associative arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223


Overview of associative arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Associative array mapping types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Scriptability and associative arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Setting array member values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Subtype mapping associative arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Working with array values using subtype mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Typelist mapping associative arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Working with array values using typelist mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Example: Mapping an entity to entities of a different type . . . . . . . . . . . . . . . . . . . . . . . . . 230
Constant mapping associative arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Working with array values using constant mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231

17 Modifying the base data model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233


Planning changes to the base data model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Overview of data model extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Strategies for extending the base data model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
What happens if you change the data model? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Naming restrictions for extensions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Defining a new data entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Create a new entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Default properties on a new entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Extending a base configuration entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
Create a new extension file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
Working with attribute and element overrides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Overriding data type attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Overriding nested subelements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Extending the base data model: examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Creating a new delegate object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Extending a delegate object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
12
Configuration Guide 9.0.5

Defining a subtype. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248


Defining a reference entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
Define an entity array. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
Implementing a many-to-many relationship between entity types . . . . . . . . . . . . . . . . . . . . 251
Extending an existing view entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Removing objects from the base configuration data model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
Remove a base extension entity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
Remove an extension to a base object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
Implications of modifying the data model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Deploying data model changes to the application server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257

18 Example: Creating assignable entities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259


Creating an assignable extension entity type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
Step 1: Create extension entity type UserAssignableEntity_Ext. . . . . . . . . . . . . . . . . . . . . . 259
Step 2: Create assignment class NewAssignableMethodsImpl. . . . . . . . . . . . . . . . . . . . . . . 261
Step 3: Test assignment of your extension entity instance . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Making your extension entity type eligible for round-robin assignment . . . . . . . . . . . . . . . . . . . . 264
Step 1: Extend the AssignmentState entity types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
Step 2: Subclass class AssignmentType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Step 3: Create class UserAssignableEntityExtEnhancement . . . . . . . . . . . . . . . . . . . . . . . . 268
Step 4: Test round-robin assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Creating an assignable extension entity type that uses foreign keys. . . . . . . . . . . . . . . . . . . . . . . 270
Step 1: Create extension entity type TestClaimAssignable_Ext . . . . . . . . . . . . . . . . . . . . . . 270
Step 2: Add foreign keys to assignable entity types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Step 3: Create new assignment type for extension entity type TestClaimAssignable_Ext . . . . 272
Step 4: Create enhancement class TestClaimAssignableExtEnhancement . . . . . . . . . . . . . . . 274
Step 5: Create delegate class TestClaimAssignableMethodsImpl . . . . . . . . . . . . . . . . . . . . . 274
Step 6: Add the necessary permission for the extension entity type . . . . . . . . . . . . . . . . . . . 276
Step 7: Test assignment of the assignable entity type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278

19 Data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281


Overview of data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Working with data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
Using data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
Defining a data type for a property. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
The data types configuration file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
<...DataType> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Deploying modifications to the data types configuration file . . . . . . . . . . . . . . . . . . . . . . . . 285
Customizing base configuration data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
The Length attribute. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
The Precision and Scale attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
The Validator attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
List of customizable data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Working with the medium text data type (Oracle) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Working with the VARCHAR data type (SQL Server). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
The data type API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
Retrieving the data type for a property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
Retrieving a particular data type in Gosu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
Retrieving a data type reflectively . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Using the IDataType methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Define a new data type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Defining a new tax identification number data type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
Step 1: Register the data type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
Step 2: Implement the IDataTypeDef Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
Step 3: Implement the data type aspect handlers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293

Contents 13
Configuration Guide 9.0.5

20 Field validation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295


Field validators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Field validator definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
<FieldValidators> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
<ValidatorDef> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Modifying field validators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
Using <column-override> to modify field validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300

21 Working with typelists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303


What is a typelist? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Terms related to typelists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Typelists and typecodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Typelist definition files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Different kinds of typelists. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Internal typelists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
Extendable typelists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
Custom typelists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Working with typelists in Studio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
The typelist editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Entering typecodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Typekey fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
Example: Typekey field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
Removing or retiring a typekey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Remove a typekey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Retire a typekey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Typelist filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Static filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Create a static filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Creating a static filter using categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Creating a static filter using includes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
Creating a static filter using excludes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
Dynamic filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
Creating a dynamic filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
Typecode references in Gosu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
Mapping typecodes to external system codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322

22 The ClaimCenter archive domain graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325


Overview of the archive domain graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
The archive domain graph Is a directed acyclic graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
The archive domain graph and entity instance graphs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
The archive domain graph and reference data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
Claim purging and the archive domain graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
Understanding ClaimCenter entity ownership . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
Foreign key ownership in the archive domain graph. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Inverse foreign key ownership in the archive domain graph . . . . . . . . . . . . . . . . . . . . . . . . 330
Ownership relationships in the ClaimCenter archive domain graph. . . . . . . . . . . . . . . . . . . . . . . 330
Entities in the archive domain graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
Archive entities and the RootInfo delegate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Archive entities and the Extractable delegate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Archive entities and the OverlapTable delegate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Data model changes that impact archiving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
Working with shared entity data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
About cycles in the archive domain graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
Circular foreign key references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
Ownership cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Validation of the archive domain graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
14
Configuration Guide 9.0.5

Graph validation errors that prevent the server from starting . . . . . . . . . . . . . . . . . . . . . . . . 337
Graph validation warnings that do not prevent the server from starting. . . . . . . . . . . . . . . . . 338
About archive domain graph errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
Resolve archive graph errors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
Resolve archive graph warnings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
Resolving issues with custom archive entities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
Defining a cross-domain tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
About archive graph error messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
Graph validation errors generated during server startup . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
Graph validation errors generated at run time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
About archiving and event messages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Viewing the archive domain graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Generate the archive domain graph in PDF format. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Generate the archive domain graph in PNG format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
Using archive logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346

Part 5
User interface configuration
23 Using the PCF editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Page configuration (PCF) editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Page canvas overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Creating a new PCF file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
Create a new PCF folder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
Create a new PCF file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
PCF file type icons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
Working with shared or included files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
Understanding PCF modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
Setting a PCF mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
Create new modal PCF files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
Page Config menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
Toolbox tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
Structure tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
Properties tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
Child lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
PCF elements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
PCF elements and the Properties tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
Working with elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
Adding an element to the canvas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
Moving an element on the canvas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
Changing the type of an element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
Adding a comment to an element. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
Find a PCF element on the canvas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
View the source of a PCF element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
Duplicate a PCF element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
Delete a PCF element. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Copy a PCF element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Cut a PCF element. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Paste a PCF element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Linking widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362

24 Introduction to page configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363


Page configuration files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
Page configuration elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
What is a PCF element? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
Contents 15
Configuration Guide 9.0.5

Types of PCF elements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364


Identifying PCF elements in the user interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Getting started configuring pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
Finding an existing element to edit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
Creating a new standalone PCF element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
Modifying style and theme elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
Changing or adding images. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
Overriding CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
Changing theme colors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
Advanced theming. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370

25 Data panels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371


Panel overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
Detail view panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
Define a detail view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
Add columns to a detail view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
Format a detail view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
List view panel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
Define a list view. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
Iterate a list view over a data set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
Choose the data source for a list view. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380

26 Location groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383


Location group overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
Define a location group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
Location groups as navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
Location groups as tab menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
Location groups as menu links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
Location groups as sidebar navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386

27 Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
Navigation overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
Tab bars. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Configure the default tab bar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Specify which tab bar to display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Define a tab bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Tabs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
Define a tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
Define a drop-down menu on a tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391

28 Configuring search functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393


Search overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
Database search configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
ClaimCenter database search functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
Configuring database search criteria in XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
Customizing a database search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
Deploying customized database search files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
Search criteria validation on server start-up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
Free-text search configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
Overview of free-text search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
Free-text search system architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
Enabling free-text search in ClaimCenter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
Enable free-text search in ClaimCenter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
Configuring the Guidewire Solr Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
Configuring free-text search for indexing and searching . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
Configuring the free-text batch load command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428

16
Configuration Guide 9.0.5

Configuring the Search by Contact screen for free-text search. . . . . . . . . . . . . . . . . . . . . . . 428


Modifying free-text search for additional fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
Localizing free-text search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433

29 Configuring special page functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435


Adding print capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
Overview of print functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
Types of printing configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
Working with a PrintOut page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
Overriding the print settings in a file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
Troubleshooting print configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
Linking to a specific page using an EntryPoint PCF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
Entry points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
Create a Forwarding EntryPoint PCF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
Linking to a specific page using an ExitPoint PCF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
Creating an ExitPoint PCF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445

Part 6
Workflow, activity patterns, and email configuration
30 Using the workflow editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
Workflow in Guidewire ClaimCenter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
Workflow in Guidewire Studio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
Access the workflow editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
Workflow editor window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
Workflow editor elements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
Understanding workflow steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
Using the workflow right-click menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
Using search with workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454

31 Guidewire workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455


Understanding workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
Workflow instances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
Work items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
Workflow process format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
Workflow step summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
Workflow Gosu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
Workflow versioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
Workflow localization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
Workflow structural elements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
<Context> workflow element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
<Start> workflow element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
<Finish> workflow element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
Common step elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
Enter and exit scripts in workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
Asserts in workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
Events in workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
Notifications in workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
Branch IDs in workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
Basic workflow steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
AutoStep workflow step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
MessageStep workflow step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
ActivityStep workflow step. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
ManualStep workflow step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
Outcome workflow step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468

Contents 17
Configuration Guide 9.0.5

Step branches. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468


Working with branch IDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
GO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
TRIGGER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
TIMEOUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
Creating new workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
Clone an existing workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
Extend an existing workflow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
Extending a workflow: a simple example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
Instantiating a workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
A simple example of instantiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
The workflow engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
Distributed execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
Synchronicity, transactions, and errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
Workflow subflows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
Workflow administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
Workflow debugging and logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
Process logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486

32 Defining activity patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487


What is an activity pattern? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
Pattern types and categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
Activity pattern types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
Categorizing activity patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
Using activity patterns in Gosu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
Calculating activity due dates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
Target due dates (deadlines) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
Escalation dates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
Defining the business calendar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
Base configuration activity patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
Activity pattern objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
Use activity patterns with eocuments and emails . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
Specifying document and email templates in CSV files . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
Localizing activity patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493

33 Guidewire ClaimCenter and Email . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495


Configure email plugin parameters in Guidewire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
The email object model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
Email utility methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
Email transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
About email templates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
Create an email template file. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
Create an email template descriptor file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
Localize an email template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
Sending emails from Gosu code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
Saving an email message as a document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
Creating an HTML email within code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501

Part 7
Testing Gosu code
34 Testing and debugging your configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
Testing ClaimCenter with Guidewire Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
Running ClaimCenter without debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
Debugging ClaimCenter within Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512

18
Configuration Guide 9.0.5

Debugging a ClaimCenter server that is running outside of Studio. . . . . . . . . . . . . . . . . . . . 512


The Studio debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
Setting breakpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
Set a breakpoint. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
View a breakpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
Remove a breakpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
Stepping through code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
Viewing current values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
Viewing variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
Defining a watch list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
Resuming execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
Using the Gosu scratchpad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517
Run the Gosu scratchpad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517
Executing code in the Gosu scratchpad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517
Accessing application data in the Gosu scratchpad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517
Run scratchpad code in the application server debug process . . . . . . . . . . . . . . . . . . . . . . . 517
Understanding internally generated code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
Manually generate code for configuration resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
Enable or disable code generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
Change code generation for XML classes to generate source code . . . . . . . . . . . . . . . . . . . . 518
Change PCF code generation error behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
Suggestions for testing rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
Compiling and building the application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520

35 Using GUnit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521


The TestBase class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
Overriding TestBase methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522
Configuring the server environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
Server runtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
Configuring the test environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524
Set default configuration parameters for all tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524
Add a named set of configuration parameters for tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
View test configuration settings before launching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
Configuration parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
Creating a GUnit test class. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526
Server tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527
Using entity builders to create test data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529
Creating an entity builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529
Entity builder examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532
Creating new builders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534

Part 8
Guidewire ClaimCenter configuration
36 Configuring policy behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
Understanding aggregate limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
Aggregate limit data model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
Defining aggregate limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544
Aggregate limit configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545
Storing aggregate limit data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
Aggregate limit used recalculation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
Advanced aggregate limit configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
The AggregateLimitTransactionPlugin plugin implementation . . . . . . . . . . . . . . . . . . . . . . 551
Example – Configure a claim for aggregate limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552
Example – Configure aggregate limits for deductible recoveries . . . . . . . . . . . . . . . . . . . . . 553
Contents 19
Configuration Guide 9.0.5

How to specify policy menu links. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554


How to define internal ClaimCenter policy fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554
How to create internal-only fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554

37 Configuring snapshot views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557


How ClaimCenter renders claim snapshots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
Understanding snapshot PCF interaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
Encrypting claim snapshot fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558
How to configure snapshot templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558
Snapshots and data model extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559

38 Configuring lines of business. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561


LOB typelists. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
LOB Typelists and policies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563
LOB typelists and incidents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563
Relationships among LOB typelists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563
Edit a typecode with multiple parents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
LOB typelist validations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
Relationships between LOB typelists and other typelists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566
LOB typelists referenced by non-LOB typelists. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566
LOB typelists that reference non-LOB typelists. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
Modal PCF files that use LOB typelists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
Editing LOB typelists and typecodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568
LOB typelists editor tabs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568
LOB typelists editor right-click menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569
Editing an LOB typelist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569
Editing an LOB typecode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570
Adding a child LOB typecode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570
Add a non-LOB typecode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571
Adding a parent to an LOB typecode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571
Removing an LOB typecode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571
Retiring an LOB typecode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
Removing an LOB typecode from its parent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
Exporting an LOB typecode or typelist. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573
Localize an LOB typelist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573
Coverages and policies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573
Personal auto coverages and the LOB typelists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573
Personal auto coverages in the base configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574
Add a new LossType typecode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
Creating detail views and list views for a new loss type . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
Adding a new ExposureType typecode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577
Creating detail views for a new exposure type. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577

39 Configuring services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579


How to import and configure services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579
Vendor service tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579
Vendor service details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582
How to import a service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
How to edit a service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584
How to localize services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584
How to configure the depth of the service hierarchy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586
Service request data model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589
Lifecycle of a service request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591
Quote only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591
Quote and perform service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591
Service only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592
20
Configuration Guide 9.0.5

Unmanaged service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593


How to configure service requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594
How to create service requests dynamically . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594
How to manage changes to service requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595
How to configure service request metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596
Example - Creating a custom service request metric. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596

40 Configuring business rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601


The business rules plugin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601
What can you modify in the business rules plugin class? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601
Working with the business rules plugin class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602
Configuring methods and properties for business rule conditions. . . . . . . . . . . . . . . . . . . . . 602
Rule actions on custom entity extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603
Triggering point mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603
Custom rule utility functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603
Rule contexts and rule context definitions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604
Configuring applicability criteria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612
Add a new ClaimCenter applicability criterion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613

41 Configuring deductibles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615


Deductible data model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615
Typecodes for deductibles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617
Permissions for deductibles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617
Deductibles and checks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617
Transferring checks and deductibles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617
Recoding payments and deductibles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617
Deleting, voiding, and stopping checks and deductibles . . . . . . . . . . . . . . . . . . . . . . . . . . . 618
Denying or resubmitting checks and deductibles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618
Applying deductibles on multicurrency checks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618
Cleared or issued checks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618
Cloning checks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618
Deductibles and rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618

42 Configuring weighted workload assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621


About weighted workload configuration parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621
Enable weighted workload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622
Weighted workload permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622
Workload weight recalculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622
Weighted workload data model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624
Weighted workload configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625
Workload weight computation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625
User assignment API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626
Weighted workload assignment strategies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627
Custom configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628
Configuring the default weight in code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628
Creating custom workload strategies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628
Adding criteria to workload classifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629
Example - Add flag status to claim workload classification. . . . . . . . . . . . . . . . . . . . . . . . . 630
Adding workload classification conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633
Example - Add a color condition to claim workload classification . . . . . . . . . . . . . . . . . . . . 633

43 Working with catastrophe bulk associations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641


Catastrophe bulk association configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641
The GWCatastropheEnhancement class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641
Catastrophes data model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642
Catastrophe configuration parameter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642

Contents 21
Configuration Guide 9.0.5

44 Configuring the catastrophe dashboard. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643


Technical features of the catastrophe dashboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643
Heat map generation and components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643
Server, browser, and service interactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644
Principal heat map classes and files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645
Data sets and map data points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647
Data sets and caching. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647
Use or add filters in a data set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648
Configuring the catastrophe heat map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648
Common configuration use cases for heat maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649
Advanced configuration topics for heat maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649

45 Configuring duplicate claim and check searches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653


Understanding the Gosu templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653
Duplicate claim search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654
Change search criteria for duplicate claim search. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654
Duplicate check search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655

46 Configuring claim health metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657


Adding a new tier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657
Example - Adding a new tier to ClaimCenter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658
Adding a high-risk indicator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660
Example – Add a high-risk indicator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660
Adding a new claim metric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663
Example – Add a new claim metric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663
How to configure days in metrics calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667

47 Configuring recently viewed claims . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669


Add a loss date to the recently viewed claim list. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669

48 Configuring incidents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671


Implicit incidents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671
Explicit incidents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672
Quick claim configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672
Injured contact role . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673
Contact role constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673
The Incident data model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673
Incidents and the Claim Entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673
Incidents and the Exposure entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673
The Incident entity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674
Incidents and the Coverage entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674
Entities and typelists related to incidents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674

49 Configuring special handling instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675


Creating service tiers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675
Special handling data model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676
Add service tiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676
Configure email notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677
Configure claim headline comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677
Configure activity patterns for special handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678

50 Configuring roles and relationships . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679


Adding contact roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679
Example - Add a contact role . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679
Policy contact roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 680
About contact roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 680
Defining role constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681
22
Configuration Guide 9.0.5

About contact role constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681


About entity role constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682
How configuring roles impacts entity data and types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684
Generated role methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684
Entity property for Exclusive or Exclusive & Required Roles . . . . . . . . . . . . . . . . . . . . . . . 685
Entity array key for required or ZeroToMore role . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 686
Avoiding errors with contact properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 686
Avoiding compilation errors with generated entity and role properties . . . . . . . . . . . . . . . . . 687
Add a new contact role: example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 688
Relationships between contacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 690
Adding a bidirectional contact relationship: example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 690
Add new contact relationship to ClaimCenter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 690
Test new contact relationship in ClaimCenter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 692
Add new contact relationship to ContactManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693
Test new contact relationship in ContactManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694

51 Configuring multicurrency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697


How to configure multicurrency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697
Multicurrency in financial calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698
Multicurrency data model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698
Foreign exchange adjustments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701
Foreign exchange transactions and calculated values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 702
Foreign exchange adjustments on claims and payments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 702
Applying foreign exchange adjustments multiple times . . . . . . . . . . . . . . . . . . . . . . . . . . . 703

52 Claim archiving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705


How ClaimCenter selects claims for archive eligibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705
Restore archived claims using system tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 706
Monitoring archiving activity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707
Understanding errors in the archiving process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707
Logging archiving activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707
Archive configuration options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708
Archive configuration parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708
Archive rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708
Default group claim archiving rule set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708
Archive events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709
Archiving and the SQL Server database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709
Understanding the archiving plugins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709

53 Configuring personal data destruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711


Data destruction configuration parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 712
Data destruction web service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 712
PersonalDataDestructionAPI web service methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713
Lifecycle of a personal data destruction request. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713
Personal data destruction request entities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715
Example of a request made with AddressBookUID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715
Example of a request made with PublicID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715
Typelists for status of personal destruction workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715
Work queues used in personal data destruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716
PersonalDataDestructionController class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717
Data model configuration for data destruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718
DestructionRootPinnable delegate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718
Do Not Process flag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
Display keys for data destruction messages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
Obfuscatable delegate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
Obfuscator interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 720
Contents 23
Configuration Guide 9.0.5

Marking entity fields for obfuscation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 720


ContactInfo support for personal data destruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721
Entity domain graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722
Identifying archived objects that affect destruction of data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722
Data Protection Officer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723
Data Protection Officer permissions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723
Notifying the data protection officer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723
Data destruction purge configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724
Purging and the ClaimCenter entity domain graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724
Defining the destroyer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724
PersonalDataPurge event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725
Specifying which objects in the graph can be destroyed . . . . . . . . . . . . . . . . . . . . . . . . . . . 726
Data obfuscation in ClaimCenter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727
Implementing the Obfuscatable delegate in an entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728
Implementing the Obfuscator interface in an entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728
Personal data obfuscator classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729

Part 9
Guidewire ClaimCenter financials
54 Configuring ClaimCenter financials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735
The financials data model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735
Transactions and cost types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737
Financials-related typelists. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737
Financial transaction statuses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738
Financial configuration parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739
Batch processes related to checks and payments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740
The financials escalation process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740
The TAccounts Escalation process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741
The bulk invoice escalation process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741
Scheduling the financials batch processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 742

55 ClaimCenter financial calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743


Financial calculation APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743
The FinancialsCalculations class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743
Understanding ClaimCenter financial calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 744
Using the predefined financial calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745
Using a FinancialsCalculator object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745
Obtaining calculated amounts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745
The FinancialsCalculationUtil class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746
Different ways to retrieve an amount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 747
Forming composite custom expressions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 747
Creating custom financial gosu classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 748
Predefined financial calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 749
Payment calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 749
Reserve calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 750
Recovery calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751
Floating financials calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751
Predefined reinsurance calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753
Predefined reinsurance calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753
Predefined reinsurance reserves calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754
Predefined reinsurance recoveries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754
Retrieving transaction IDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754
Financial calculations with a negative value. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 755
Eroding and non-eroding payments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756
24
Configuration Guide 9.0.5

Using floating financial calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756


Example – Using reserve lines in multiple currencies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756

56 Creating financial transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759


Setting reserves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759
Setting reserve values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759
Creating reserve transactions directly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761
Creating checks and payments by using CheckCreator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761
Creating recovery transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763
Claim objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764
Exposure objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764
Creating recoveries directly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764
Creating recovery reserve transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765
Setting recovery reserve values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765
Creating recovery reserve transactions directly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766

57 Configuring ClaimCenter financial screens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767


Configuring the financial summary screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
The Financials Summary page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
Configuring the filter drop-down . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 768
Defining the model used by a panel set. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769
Controlling the display of the financial model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 770
Configuring reserve behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 772
Understanding how configuration impacts reserves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 772
Reserve permissions and authority limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775
Set the number of reserve items to show. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776
Configuring checks and payments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777
Understanding checks and payments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777
Permissions and authority limits that apply to payments . . . . . . . . . . . . . . . . . . . . . . . . . . . 777
Editing checks in rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 778
Configuring the check wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 779
Configuring the check wizard recurrence settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 779
Configuring the check wizard’s default payment type . . . . . . . . . . . . . . . . . . . . . . . . . . . . 780
Configuring straight-through invoice processing (STIP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 780
Using the IInvoiceAutoProcessingPlugin plugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 781
Disabling STIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 782
Configuring STIP – modifying limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783
Configuring financial holds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 784
Modifying the automatic setting of coverage in question . . . . . . . . . . . . . . . . . . . . . . . . . . 784
Modifying the conditions for applying financial holds . . . . . . . . . . . . . . . . . . . . . . . . . . . . 785
Modifying claimcost initial reserves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 785
Configuring authority limits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 785
Add an authority limit type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 786
Add an authority limit filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787
Configuring bulk invoice payments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791
Overview of bulk invoices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791
The bulk invoices data model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 792
Configuring the bulk invoices feature. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793

Contents 25
Configuration Guide 9.0.5

26
Configuration Guide 9.0.5

About ClaimCenter documentation

The following table lists the documents in ClaimCenter documentation:

Document Purpose
InsuranceSuite Guide If you are new to Guidewire InsuranceSuite applications, read the InsuranceSuite Guide for
information on the architecture of Guidewire InsuranceSuite and application integrations. The
intended readers are everyone who works with Guidewire applications.
Application Guide If you are new to ClaimCenter or want to understand a feature, read the Application Guide. This guide
describes features from a business perspective and provides links to other books as needed. The
intended readers are everyone who works with ClaimCenter.
Database Upgrade Guide Describes the overall ClaimCenter upgrade process, and describes how to upgrade your ClaimCenter
database from a previous major version. The intended readers are system administrators and
implementation engineers who must merge base application changes into existing ClaimCenter
application extensions and integrations.
Configuration Upgrade Guide Describes the overall ClaimCenter upgrade process, and describes how to upgrade your ClaimCenter
configuration from a previous major version. The intended readers are system administrators and
implementation engineers who must merge base application changes into existing ClaimCenter
application extensions and integrations. The Configuration Upgrade Guide is published with the
Upgrade Tools and is available from the Guidewire Community.
New and Changed Guide Describes new features and changes from prior ClaimCenter versions. Intended readers are business
users and system administrators who want an overview of new features and changes to features.
Consult the “Release Notes Archive” part of this document for changes in prior maintenance releases.
Installation Guide Describes how to install ClaimCenter. The intended readers are everyone who installs the application
for development or for production.
System Administration Guide Describes how to manage a ClaimCenter system. The intended readers are system administrators
responsible for managing security, backups, logging, importing user data, or application monitoring.
Configuration Guide The primary reference for configuring initial implementation, data model extensions, and user
interface (PCF) files. The intended readers are all IT staff and configuration engineers.
PCF Reference Guide Describes ClaimCenter PCF widgets and attributes. The intended readers are configuration engineers.
Data Dictionary Describes the ClaimCenter data model, including configuration extensions. The dictionary can be
generated at any time to reflect the current ClaimCenter configuration. The intended readers are
configuration engineers.
Security Dictionary Describes all security permissions, roles, and the relationships among them. The dictionary can be
generated at any time to reflect the current ClaimCenter configuration. The intended readers are
configuration engineers.
Globalization Guide Describes how to configure ClaimCenter for a global environment. Covers globalization topics such as
global regions, languages, date and number formats, names, currencies, addresses, and phone
numbers. The intended readers are configuration engineers who localize ClaimCenter.

About ClaimCenter documentation 27


Configuration Guide 9.0.5

Document Purpose
Rules Guide Describes business rule methodology and the rule sets in ClaimCenter Studio. The intended readers
are business analysts who define business processes, as well as programmers who write business
rules in Gosu.
Contact Management Guide Describes how to configure Guidewire InsuranceSuite applications to integrate with ContactManager
and how to manage client and vendor contacts in a single system of record. The intended readers are
ClaimCenter implementation engineers and ContactManager administrators.
Best Practices Guide A reference of recommended design patterns for data model extensions, user interface, business
rules, and Gosu programming. The intended readers are configuration engineers.
Integration Guide Describes the integration architecture, concepts, and procedures for integrating ClaimCenter with
external systems and extending application behavior with custom programming code. The intended
readers are system architects and the integration programmers who write web services code or
plugin code in Gosu or Java.
Java API Reference Javadoc-style reference of ClaimCenter Java plugin interfaces, entity fields, and other utility classes.
The intended readers are system architects and integration programmers.
Gosu Reference Guide Describes the Gosu programming language. The intended readers are anyone who uses the Gosu
language, including for rules and PCF configuration.
Gosu API Reference Javadoc-style reference of ClaimCenter Gosu classes and properties. The reference can be generated
at any time to reflect the current ClaimCenter configuration. The intended readers are configuration
engineers, system architects, and integration programmers.
Glossary Defines industry terminology and technical terms in Guidewire documentation. The intended readers
are everyone who works with Guidewire applications.

Conventions in this document


Text style Meaning Examples
italic Indicates a term that is being defined, A destination sends messages to an external system.
added emphasis, and book titles. In Navigate to the ClaimCenter installation directory by running the
monospace text, italics indicate a variable to following command:
be replaced.
cd installDir

bold Highlights important sections of code in for (i=0, i<someArray.length(), i++) {


examples. newArray[i] = someArray[i].getName()
}

narrow bold The name of a user interface element, such Click Submit.
as a button name, a menu item name, or a
tab name.
monospace Code examples, computer output, class and The getName method of the IDoStuff API returns the name of the
method names, URLs, parameter names, object.
string literals, and other objects that might
appear in programming code.
monospace italic Variable placeholder text within code Run the startServer server_name command.
examples, command examples, file paths, Navigate to http://server_name/index.html.
and URLs.

Support
For assistance, visit the Guidewire Community.
28 About ClaimCenter documentation
Configuration Guide 9.0.5

Guidewire Customers
https://community.guidewire.com

Guidewire Partners
https://partner.guidewire.com

About ClaimCenter documentation 29


Configuration Guide 9.0.5

30 About ClaimCenter documentation


part 1

ClaimCenter configuration basics


Configuration Guide 9.0.5
chapter 1

Overview of ClaimCenter
configuration

This topic provides some basic information, particularly about the Guidewire ClaimCenter data model and system
environment. Guidewire recommends that before you undertake any configuration changes, that you thoroughly
understand this information.

What you can configure


Application configuration files determine virtually every aspect of the ClaimCenter application. For example, you
can make the following changes by using XML configuration files and simple Gosu:

Extend the data model


You can add fields to existing entities handled by the application, or create wholly new entities to support a wide
array of different business requirements. You can:
• Add a field such as a column, typekey, array or foreign key to an extendable entity. For example, you can add an
IM Handle field to contact information.
• Create a subtype of an existing non-final entity. For example, you can create an Inspector object as a subtype of
Person.
• Create a new entity to model an object not supported in the base configuration product. For example, you can
create an entity to archive digital recordings of customer phone calls.

Overview of ClaimCenter configuration 33


Configuration Guide 9.0.5

Change or augment the ClaimCenter application


You can extend the functionality of the application:
• Build new views of claims and other associated objects.
• Create or edit validators on fields in the application.

Modify the ClaimCenter interface


You can configure the text labels, colors, fonts, and images that comprise the visual appearance of the ClaimCenter
interface. You can also add new screens and modify the fields and behavior of existing screens.

Implement security policies


You can customize permissions and security in XML and then apply these permissions at application runtime.

Create business rules and processes


You can create customized business-specific application rules and Gosu code. For example, you can create business
rules that perform specialized tasks for validation and work assignment.

Designate activity patterns


You can group work activities and assign to claim adjusters.

Integrate with external systems


You can integrate ClaimCenter data with external applications.

Define application parameters


You can configure basic application settings such as database connections, clustering, and other application settings
that do not change during server runtime.

Define workflows
You can create new workflows, create new workflow types, and attach entities to workflows as context entities. You
can also set new instances of a workflow to start within Gosu business rules.

Guidewire internal methods


Some code packages contain Guidewire internal methods that are reserved for Guidewire use only. Gosu code
written to configure ClaimCenter must never call an internal method for any reason. Future releases of ClaimCenter
can change or remove an internal method without notification.
The following packages contain Guidewire internal methods.
• All packages in com.guidewire.*
• Any package whose name or location includes the word internal
Gosu configuration code can safely call methods defined in any gw.* package (except for those packages whose
name or location includes the word internal).

How you configure ClaimCenter


Guidewire provides a configuration tool, Guidewire Studio, that you use to edit files stored in the development
environment. (Guidewire also calls the development environment the configuration environment.) You then deploy
the configuration files by building a .war or .ear file and moving it to the application (production) server.
Guidewire Studio provides graphical editors for most of the configuration files. A few configuration files you must
manually edit (again, through Studio).
34 chapter 1 Overview of ClaimCenter configuration
Configuration Guide 9.0.5

See also
• “Using the Studio editors” on page 133

Types of application environments


Configuring the application requires an installed development instance of the application (often called a
configuration environment). You use Guidewire Studio to edit the configuration files. Then, you create a .war
or .ear file and copy it to the production server. This section describes some of the particular requirements of these
two environments:
• “The development environment” on page 35
• “The production environment” on page 35

The development environment


The development environment for ClaimCenter has the following characteristics:
• It includes an embedded development QuickStart server and database for rapid development and deployment.
• It includes a repository for the source code of your customized application files. Guidewire expects you to check
your source code into a supported Software Configuration Management—SCM—system.
• It includes directories for the base configuration application files and your modifications of them.
• It provides command line tools for creating the deployment packages. (These are new, customized, versions of
the server application files that you use in a production environment.)
Guidewire provides a development environment (Guidewire Studio) that is separate from the production
environment. Guidewire Studio is a stand-alone development application that runs independently of Guidewire
ClaimCenter. You use Studio to build and test application customization in a development or test mode before
deploying your changes to a production server. (You can for example, modify a PCF file or add a new workflow.)
It is important to understand that any changes that you make to application files through Studio do not automatically
propagate into your production environment. You must specifically build a .war or .ear file and deploy it to a
production server for the changes to take effect. Studio and the production application server—by design—do not
share the same configuration file system.

The production environment


The deployed production application server for ClaimCenter has the following characteristics:
• It runs as an application within an application server.
• It handles web clients, or SOAP message requests, for claim information or services.
• It generates the web pages for browser-based client access to ClaimCenter.

Types of application environments 35


Configuration Guide 9.0.5

Deploying configuration files


There is a vast difference in how you deploy modified configuration files in a development environment as opposed
to a production environment. The following sections describes these differences:
• “Deploying changes in a development environment” on page 36
• “Deploying changes to the production server” on page 36

Deploying changes in a development environment


In the base configuration, Guidewire provides an embedded application server in the development environment.
This, by design, shares its file structure with the Studio application configuration files. Thus:
• If you modify a file, in many cases, you do not need to deploy the changed configuration file. The development
server reflects the changes automatically. For example, if you add a new typelist, Studio recognizes this change.
• If you modify certain resource files, you must stop and restart Studio for the change to become effective. For
example, if you add a new workflow type, then you must stop and restart Studio before a Gosu class that you
create recognizes the workflow.
• If you modify the base configuration data model files, you must stop and restart the development server to force a
database upgrade.
It is possible to use a different development environment and database other than that provided by Guidewire in the
base configuration. If you do so, then deployment of modified configuration files can require additional work. For
details on implementing a different development environment, see the Installation Guide.

Deploying changes to the production server


About this task
To deploy configuration changes to the ClaimCenter production application server, you must do the following:
• Create an application .war (or .ear) file with your configuration changes in the development environment.
• Shut down the production server.
• Remove the old ClaimCenter instance on the production application server.
• Deploy the .war (or .ear) file to the production application server.
• Restart the production application server.
In the following procedure, notice whether you need to do a task on the development or production server.

Procedure
1. After making configuration changes in your development environment, run one of the build commands from
your development ClaimCenter directory.
For example:

gwb warTomcatDbcp

2. Shut down the production application server.


3. Delete the existing web application folder in the production server installation.
For example (for Tomcat), delete the following folder:

ClaimCenter/webapps/cc

Also, delete the existing .war (or .ear) file on the production server. In any case, moving a new copy to the
production server overwrites the existing file.

36 chapter 1 Overview of ClaimCenter configuration


Configuration Guide 9.0.5

4. Navigate to your development installation dist directory (for example, ClaimCenter/dist). The build script
places the new cc.war or cc.ear file in this directory.
5. Copy the newly created cc.war file to the production webapps folder (for Tomcat). If using WebSphere or
WebLogic, use the administrative console to deploy the cc.ear file.
6. Restart the production application server.
7. During a server start, if the application recognizes changes to the data model, then it mandates that a database
upgrade be run. The server runs the database upgrade automatically.

Next steps
See also
• If working in a clustered server environment, see the System Administration Guide.

Regenerating the data and security dictionaries


If you change the metadata, for example by extending base entities, it is important that you regenerate the Data
Dictionary and Security Dictionary to reflect those changes. In this way, other people who use the dictionaries can
see these changes.
To generate the Data Dictionary or the Security Dictionary, use one of the following methods:

Method Use to generate More information

ClaimCenter Administration→Utilities→Export Data Security Dictionary “Generating the security dictionary from ClaimCenter”
on page 38
Command prompt gwb genDataDictionary Security Dictionary “Generating the data and security dictionaries in HTML
Data Dictionary format” on page 37
“Generating the data and security dictionaries in XML
format” on page 38

See also
• To understand the Data Dictionary and the information it includes, see “Working with the Data Dictionary” on
page 165.
• To understand the Security Dictionary and the information it includes, see the Application Guide

Generating the data and security dictionaries in HTML format


About this task
To generate the ClaimCenter Data Dictionary and ClaimCenter Security Dictionary in HTML format, run the
following command from the ClaimCenter directory:

gwb genDataDictionary

This command generates HTML files for the dictionaries in the following locations:

ClaimCenter/build/dictionary/data
ClaimCenter/build/dictionary/security

To view a dictionary, open its index.html file from the listed locations.

Regenerating the data and security dictionaries 37


Configuration Guide 9.0.5

Generating the data and security dictionaries in XML format


About this task
You can generate the Data Dictionary and Security Dictionary in XML format, with associated XSD files. Use the
generated XML and XSD files to import the Data Dictionary and Security Dictionary into third-party database
design tools.
To generate the Data Dictionary and Security Dictionary in XML format, run the following command from the
ClaimCenter directory:

gwb genDataDictionary -DoutputFormat=xml

This command generates the following XML and XSD files for the dictionaries:

ClaimCenter/build/dictionary/data/entityModel.xml
ClaimCenter/build/dictionary/data/entityModel.xsd

ClaimCenter/build/dictionary/security/securityDictionary.xml
ClaimCenter/build/dictionary/security/securityDictionary.xsd

The parameter that specifies the output format has two allowed values.

-DoutputFormat={html|xml}

If you specify -DoutputFormat=html or you omit the -DoutputFormat parameter, the genDataDictionary
command generates HTML versions of the Data Dictionary and the Security Dictionary.

Generating the security dictionary from ClaimCenter


If you add or modify a user role or role permission, you need to regenerate the Security Dictionary to ensure that it
reflects the changes that you made. You can regenerate the Security Dictionary either through a command prompt
tool or from within ClaimCenter itself.
To generate the Security Dictionary from ClaimCenter, you must have administrative privileges and be able to
access the ClaimCenter Administration tab. On the Administration tab, navigate to the Utilities Export Data screen. From
here, you can download the current security information in HTML and XML format.

Generating the dictionaries as you generate a .war or .ear file


About this task
You can generate the Data Dictionary and the Security Dictionary in HTML format as you generate the Guidewire
application .war (.ear) file. To do so, use one of the build commands. For example:

gwb warTomcatDbcp -DincludeDictionary=true

Next steps
See also
• Installation Guide

Aspects of regenerating the Security Dictionary


Guidewire ClaimCenter stores the role information used by the Security Dictionary in the base configuration in the
following file:

ClaimCenter/modules/configuration/config/import/gen/roleprivileges.csv

38 chapter 1 Overview of ClaimCenter configuration


Configuration Guide 9.0.5

ClaimCenter does not write this file information to the database.


If you make changes to roles using the ClaimCenter interface, ClaimCenter does write these role changes to the
database.
ClaimCenter does not base the Security Dictionary on the actual roles that you have in your database. Instead,
ClaimCenter bases the Security Dictionary on the roleprivileges.csv file.

IMPORTANT It is possible for the Security Dictionary to become out of synchronization with the actual roles in
your database. Guidewire ClaimCenter bases the Security Dictionary on the file roleprivileges.csv only.

Managing configuration changes


To track, troubleshoot and replicate the configuration changes that you make, Guidewire strongly recommends that
you use a Software Configuration Management (SCM) to manage the application source code.

Managing configuration changes 39


Configuration Guide 9.0.5

40 chapter 1 Overview of ClaimCenter configuration


chapter 2

Application configuration parameters

This topic covers the ClaimCenter configuration parameters, which are static values that you use to control various
aspects of system operation. For example, you can control business calendar settings, cache management, and user
interface behavior through the use of configuration parameters, along with much more.

Working with configuration parameters


You set application configuration parameters in the file config.xml. You can find this file in the Guidewire Studio
Project tool window, under configuration→config.
This file generally contains entries in the following format:

<param name="param_name" value="param_value" />

Each entry sets the parameter named param_name to the value specified by param_value.
The config.xml file in the base configuration contains all available parameters. To set a parameter, edit the file,
locate the parameter, and change its value. ClaimCenter configuration parameters are case-insensitive. If a parameter
does not appear in the file, Guidewire ClaimCenter uses the default value, if the parameter has one.

Adding custom parameters to ClaimCenter


You cannot add new or additional configuration parameters to config.xml. If you want to add custom parameters to
your configuration of ClaimCenter, consider defining script parameters. You can access the values of script
parameters in Gosu code at runtime. For more information, see “Script parameters” on page 128.

Configuration parameter behaviors


The configuration parameters in config.xml may implement the following behaviors:

Behavior Summary More information


Required You must supply a value. “Required” on page 42

Application configuration parameters 41


Configuration Guide 9.0.5

Behavior Summary More information


Set for environment You can set a different value for different servers in the “Set for environment” on page 42
same environment.
Development The parameter is valid only on a development environment “Development environment only” on
environment only server. page 42
Dynamic You can change the parameter value on a running server. “Dynamic” on page 42
Permanent Once you start the server, you cannot change the “Permanent” on page 42
parameter value.
Semi-permanent Once you start the server, you can change the parameter “Semi-permanent” on page 43
value only in limited ways.
Nullable The parameter value is allowed to be null. “Nullable” on page 43

Required
Guidewire designates certain configuration parameters as required, which means that you must supply a value for
that parameter.
Configuration parameters that are required have Required: Yes in their parameter descriptions.

Set for environment


Guidewire designates certain configuration parameters as possible for the parameter value to vary on different
servers in the same environment.
Configuration parameters that can be set per environment have Set for Environment: Yes in their parameter
descriptions.
Do not add a configuration parameter that is not designated as Set for Environment: Yes to a local configuration file.
If you do so, ClaimCenter prints a warning message in the configuration log file when the application server starts.
For example:

WARN Illegal parameter specified in a local config file (will be ignored): XXXXXXX

Note: For information on server environments in Guidewire ClaimCenter, see the System Administration Guide.

Development environment only


Guidewire designates certain configuration parameters as permitted to be active only in a development environment.
A production server ignores any configuration parameters that are designated as such. A configuration parameter
with this behavior has Development Environment Only: Yes in its parameter description.

Dynamic
Guidewire designates certain configuration parameters as dynamic. This indicates that Guidewire permits you to
change this value on a running application server through management integration. The discussion of configuration
parameters indicates this by adding Dynamic: Yes to the parameter description.
See the Integration Guide.

Permanent
Guidewire specifies several configuration parameter values as permanent. After you set the value of a permanent
parameter and start the production application server, you cannot change the parameter’s value. An example is the
DefaultApplicationLocale configuration parameter. If you set the value of this parameter on a production server and
then start the server, you are unable to change the value thereafter.

42 chapter 2 Application configuration parameters


Configuration Guide 9.0.5

Guidewire stores these values in the database and checks the value at server start up. If an application server value
does not match a database value, ClaimCenter throws an error.

Semi-permanent
Guidewire specifies a limited number of configuration parameter values as semi-permanent. After you set the value
of a semi-permanent parameter and start the production application server, you can change the value of the
parameter only once to a specified value.

Nullable
The parameter value is allowed to be null.

View configuration parameters on a running server

About this task


You can view the configuration parameters and their values that are in effect on a running ClaimCenter server. To
change the values dynamically, you can create a management integration plugin.

Procedure
1. Open the Server Tools page of the ClaimCenter server.
2. In the sidebar, click Info Pages→Configuration.

Result
See the Integration Guide.

Access configuration parameters in Gosu


Procedure
To access a configuration parameter in Gosu code, use the following syntax:

gw.api.system.CCConfigParameters
gw.api.system.PLConfigParameters

For example:

var businessDayEnd = gw.api.system.PLConfigParameters.BusinessDayEnd.Value


var forceUpgrade = gw.api.system.PLConfigParameters.ForceUpgrade.Value

Adding custom MIME types


About this task
Perform the following steps to add ClaimCenter support for a new MIME type (Multipurpose Internet Mail
Extension).

Procedure
1. If necessary, add the MIME type to the configuration of the application server. This step is dependent on the
configuration requirements of the application server.
For example, Tomcat stores MIME type information in the web.xml configuration file in a series of <mime-
mapping> tags. Verify that the needed MIME type exists in the appropriate file. If necessary, add it.

Configuration parameter behaviors 43


Configuration Guide 9.0.5

2. Add the new MIME type to the ClaimCenter config.xml file in the <mimetypemapping> section.
• For the name attribute, specify the name of the MIME type, such as text/plain.
• For the extensions attribute, specify the file extensions used by the MIME type. If the MIME type is used
by more than one file extension, separate each extension with a “|” character. ClaimCenter uses this
information to associate MIME types and file extensions. If retrieving a file extension from a MIME type,
ClaimCenter uses the first extension in the list. If retrieving a MIME type from a file extension,
ClaimCenter uses the first <mimetype> entry associated with the extension.
• For the icon attribute, specify the image to use for documents of the MIME type. For example, Tomcat
assumes the images are stored in the tomcat/webapps/cc/resources/images directory.
3. Create a description for the MIME type. The description is stored in the displaykey files. The definition has a
prefix of Mimetype. (notice the prefix-terminating period) followed by the MIME type name attribute
specified in the type’s definition in the config.xml <mimetypemapping> section. Any non-alphanumeric
character in the name must be replaced with an underscore character. For example, the text/plain MIME
type would have a displaykey description of Mimetype.text_plain.

Approval parameters
Guidewire provides the following configuration parameters in the config.xml file related to approval activities.
For information on editing config.xml and setting configuration parameters, see “Working with configuration
parameters” on page 41.

BulkInvoiceApprovalPattern
Name of the activity pattern to use if creating bulk invoice approval activities.
Required: Yes

PaymentApprovalPattern
Name of an approval activity pattern to use if creating payment approval activities.
Required: Yes

RecoveryApprovalPattern
Name of the activity pattern to use if creating recovery approval activities.
Required: Yes

RecoveryReserveApprovalPattern
Name of the activity pattern to use if creating recovery reserve approval activities.
Required: Yes

ReserveApprovalPattern
Name of the approval activity pattern to use if creating reserve approval activities.
Required: Yes

Archive parameters
Guidewire provides the following configuration parameters in the config.xml file that relate to archiving.

44 chapter 2 Application configuration parameters


Configuration Guide 9.0.5

IMPORTANT Guidewire strongly recommends that you contact Customer Support before you implement archiving.

See also
• “Working with configuration parameters” on page 41
• “Claim archiving” on page 705
• Application Guide

ArchiveEnabled
A boolean string that specifies whether archiving is enabled or disabled. If set to true, an archive storage area must
be implemented. An archive storage area can be implemented as a database, a regular file on a storage system, or
some other desired method of storage. The ClaimCenter base configuration does not provide an archive storage area.
This parameter also controls the creation of indexes on the ArchivePartition column. If you set the value of this
parameter to true, ClaimCenter creates a non-unique index on the ArchivePartition column for Extractable
entities.
Furthermore, if the Extractable entity is Keyable, ClaimCenter creates a unique index on the ID and
ArchivePartition columns.
The value of ArchiveEnabled is semi-permanent, meaning that after you start the production server, you can change
the value of this parameter from false to true, but not the converse.

WARNING After you set ArchiveEnabled to true and start the server, you cannot change the value again. If
you reset the value to false, the server will not start.

Default: false
Required: Yes
Permanent: Semi-permanent

AssignClaimToRetriever
Specifies to whom ClaimCenter assigns a retrieved claim:
• true assigns the claim to the user who retrieved the claim.
• false assigns a retrieved claim to the original group and user who owned it.
If it is not possible to reassign the claim to the original user, ClaimCenter assigns the retrieved claim to the
supervisor of the group. If ClaimCenter cannot reassign the retrieved claim to the original group, ClaimCenter
assigns the claim to defaultowner.
Default: false

DaysClosedBeforeArchive
ClaimCenter bases archive eligibility on the entity.DateEligibleForArchive field. For an archivable entity to be
eligible for archiving, its DateEligibleForArchive property must be a non-null date and time that is not later than
the current system date and time. In general, ClaimCenter calculates the DateEligibleForArchive value using the
following formula:
DateEligibleForArchive = DaysClosedBeforeArchive (in days) + current system date
Default: 30

DaysRetrievedBeforeArchive

Archive parameters 45
Configuration Guide 9.0.5

Used by the implementation of the IArchiveSource plugin in the base configuration to set the
DateEligibleForArchive field on Claim as it retrieves a claim from the archive store. ClaimCenter calculates the
DateEligibleForArchive value using the following formula:
DateEligibleForArchive = DaysRetrievedBeforeArchive (in days) + current system date
Default: 100

DomainGraphKnownUnreachableTables
Use to define a comma-separated list of relative names of entity types that are linked to the graph through a nullable
foreign key. This can be problematic because the entity can become unreachable from the graph if the foreign key is
null. Naming the type in this configuration parameter suppresses the warning that would otherwise be generated for
the type by the domain graph validator
Default: None

PolicySystemArchivingEnabled
It is possible to include archived policies in the ClaimCenter Policy Select search and the FNOL wizard Find Policy
search. However, the policy system must retrieve any archived policies before ClaimCenter can use them.
Configuration parameter PolicySystemArchivingEnabled controls whether you can include archived policies in
searches.
This configuration parameter has the following valid settings:

PolicySystemArchivingEnabled Meaning
true The policy search result from both FNOL and policy select excludes archived policies.
false If you also check Include Archived Policies in FNOL policy search or in the policy select screen,
ClaimCenter includes archived policies in the search result. ClaimCenter also does the
following:
• Sets the Address, City, State, and postal code fields to blank for archived policies
• Displays a Status column

Default: false

RestorePattern
Code of the activity pattern that ClaimCenter uses to create retrieval activities. Upon retrieving a claim, ClaimCenter
creates two activities:
• One activity for the retriever of the claim
• One activity for the assigned user of the claim, if different from the retriever
Default: restore

SnapshotEncryptionUpgradeChunkSize
Limits the number of claim snapshots that ClaimCenter upgrades during a change to the encryption plugin or during
a change to encrypted fields. Set this parameter to 0 to disable the limit.
Default: 50000

Assignment parameters
Guidewire provides the following configuration parameters in the config.xml file that relate to assignment.

46 chapter 2 Application configuration parameters


Configuration Guide 9.0.5

For information on editing config.xml and setting configuration parameters, see “Working with configuration
parameters” on page 41.

AssignmentQueuesEnabled
Whether to display the ClaimCenter interface portions of the assignment queue mechanism. If you turn this on, you
cannot turn it off again while working with the same database.
Default: false

WeightedAssignmentEnabled
Whether to enable assignment load balancing.
Default: false

WeightedAssignmentGlobalDefaultWeight
The global default weight of all assignable entities that do not match any classifications.
Default: 10
Minimum: 0

Batch process parameters


Guidewire provides the following configuration parameters in the config.xml file that relate to batch processing.
For information on editing config.xml and setting configuration parameters, see “Working with configuration
parameters” on page 41.

BatchProcessHistoryPurgeDaysOld
Number of days to retain batch process history before ClaimCenter deletes it.
Default: 45

Business calendar parameters


Guidewire provides the following configuration parameters in the config.xml file that relate to defining a business
calendar.
For information on editing config.xml and setting configuration parameters, see “Working with configuration
parameters” on page 41.

BusinessDayDemarcation
The time at which a business day begins.
Default: 12:00 AM
Set For Environment: Yes

BusinessDayEnd
Indicates the time at which the business day ends.
Default: 5:00 PM
Set For Environment: Yes

Assignment parameters 47
Configuration Guide 9.0.5

BusinessDayStart
Indicates the time at which the business day starts.
Default: 8:00 AM
Set For Environment: Yes

BusinessWeekEnd
The day of the week considered to be the end of the business week.
Default: Friday
Set For Environment: Yes

HolidayList (obsolete)
This parameter is obsolete. Do not use it. Previously, you would use this to generate a comma-delimited list of
dates to consider as holidays. Instead, use the Administration screen within Guidewire ClaimCenter to manage the
official designation of holidays. Guidewire retains this configuration parameter to facilitate upgrade from older
versions of ClaimCenter.

IsFridayBusinessDay
Indicates whether Friday is a business day.
Default: true
Set for Environment: Yes

IsMondayBusinessDay
Indicates whether Monday is a business day.
Default: true
Set for Environment: Yes

IsSaturdayBusinessDay
Indicates whether Saturday is a business day.
Default: false
Set for Environment: Yes

IsSundayBusinessDay
Indicates whether Sunday is a business day.
Default: false
Set for Environment: Yes

IsThursdayBusinessDay
Indicates whether Thursday is a business day.
Default: true
Set for Environment: Yes

IsTuesdayBusinessDay
Indicates whether Tuesday is a business day.
48 chapter 2 Application configuration parameters
Configuration Guide 9.0.5

Default: true
Set for Environment: Yes

IsWednesdayBusinessDay
Indicates whether Wednesday is a business day.
Default: true
Set for Environment: Yes

MaxAllowedDate
The latest date allowed to be used.
Default: 2200-12-31
Set For Environment: Yes

MinAllowedDate
The earliest date allowed to be used.
Default: 1800-01-01
Set For Environment: Yes

Business rules parameters


Guidewire provides the following configuration parameters in the config.xml file that relate to the business rules.
Business rules, which you manage through the ClaimCenterAdministration tab, are distinct from Gosu rules, which
you manage through Guidewire Studio.
For information on editing config.xml and setting configuration parameters, see “Working with configuration
parameters” on page 41.
See also

• Application Guide

BizRulesCacheStaleTimeMinutes
Time (in minutes) that ClaimCenter retains rule data in the RuleVersion cache before it considers cached items to
be stale and thus eligible for reaping.
ClaimCenter initializes the RuleVersion cache once, at server start up. It then rebuilds the cache every time the
following entities change:
• RuleHead
• RuleVersion
• Rule
Default: 60
Minimum: 1
Maximum: 120
Set for Environment: Yes

Business calendar parameters 49


Configuration Guide 9.0.5

BizRulesEnabled
Determines whether ClaimCenter enables the use of activity business rules. If set to true, ClaimCenter displays the
Business Rules screens in the Administration tab to users with the appropriate privileges.
Default: true

BizRulesDeploymentEnabled
Determines whether it is necessary to explicitly deploy a business rule before ClaimCenter can evaluate the rule. If
you set the value of this parameter to true, you must also provide a value for configuration parameter
BizRulesDeploymentId.

IMPORTANT Always set this parameter to true in a production environment.

It is possible to disable the requirement for rule deployment in a test or development environment, by setting
BizrulesDeploymentEnabled to false. In a non-production environment, if you do not enable business rule
deployment, ClaimCenter evaluates all enabled and valid rules at runtime, including rules in the draft state.
ClaimCenter ignores this parameter if the value of parameter BizRulesEnabled is false.
Default: false

BizRulesDeploymentId
Unique string identifier of the server to which you intend to deploy the business rules. There is no default value for
this parameter. If the value of BizRulesDeploymentEnabled is true, then you must supply a value for this
parameter. Otherwise, the server generates a startup error and refuses to start.
ClaimCenter ignores this configuration parameter if the value of BizRulesDeploymentEnabled is false.
ClaimCenter does not permit you to import business rules from another cluster instance that has the same
BizRulesDeploymentId value as the cluster instance into which you are importing the rules.
It is possible to change the value of this parameter through a server restart. However, if you change the value of
BizRulesDeploymentId, ClaimCenter does not update already deployed rule versions.
Default: None
See also
• System Administration Guide

BizRulesImportBootstrapRules
Whether ClaimCenter imports the business rules located in folder config/import/bizrules on starting the
application server with an empty database. Set the value of this parameter to true to import the files located in the
bizrules folder.

IMPORTANT Guidewire recommends that you set the value of this configuration parameter to true in a non-
production test environment only.

Default: false
See also
• System Administration Guide

BizRulesLeafSearchNumOfHops
Maximum number of hops for a leaf search to search through in suggesting matching results. This parameter refers
to the autocomplete feature of the Rule Condition editor on the Business Rules detail screens.
In the following expression, A is the root, B is a single hop, and c is a leaf.

50 chapter 2 Application configuration parameters


Configuration Guide 9.0.5

A.B.c

The following example illustrates a two hop expression, with the root being office and PhoneNumber the leaf.

office.ConferenceRooms[0].Table.PhoneNumber

Default: 3

OnlineJavadocPrefix
Prefix to a URL for Javadoc. Override the default URL to point a different Javadoc location, for example, to a local
Javadoc instance.

IMPORTANT Do not use file protocol to define this value due to JavaScript security issues.

Default: https://docs.oracle.com/javase/8/docs/api/

Cache parameters
Guidewire provides the following configuration parameters in the config.xml file that relate to the application
cache.
For information on editing config.xml and setting configuration parameters, see “Working with configuration
parameters” on page 41.
See also
• System Administration Guide

ActivityPatternCacheMaxDuration
Upper bound on how long caches of activity pattern entities are allowed to exist without refresh, measured in
seconds.
Default: 86400

ExchangeRatesCacheRefreshIntervalSecs
The time between refreshes of the ExchangeRateSet cache, in seconds. This integer value must be 0 or greater. See
the System Administration Guide for more information.
Default: 600

GlobalCacheActiveTimeMinutes
Time period (in minutes) in which ClaimCenter considers cached items as active, meaning that Guidewire
recommends that the cache give higher priority to preserve these items. You can think of this as the period during
which ClaimCenter is using one or more items very heavily. For example, this can be the length of time that a user
stays on a page. The maximum value for this parameter is the smaller of 15 and the value of
GlobalCacheStaleTimeMinutes.
See the System Administration Guide for more information.
Default: 5
Minimum: 1
Maximum: 15
Set for Environment: Yes

Business rules parameters 51


Configuration Guide 9.0.5

GlobalCacheDetailedStats
Configuration parameter GlobalCacheDetailedStats determines whether to collect detailed statistics for the global
cache. Detailed statistics are data that ClaimCenter collects to explain why items are evicted from the cache.
ClaimCenter collects basic statistics, such as the miss ratio, regardless of the value of this parameter.
In the base configuration, Guidewire sets the value of the GlobalCacheDetailedStats parameter to false. Set the
parameter to true to help tune your cache.
At runtime, use the ClaimCenter Management Beans page to enable the collection of detailed statistics for the global
cache. If you disable the GlobalCacheDetailedStats parameter, ClaimCenter does not display the Evict Information
and Type of Cache Misses graphs.
Default: false
Dynamic: Yes
Required: Yes

GlobalCacheReapingTimeMinutes
Time (in minutes) since the last use before ClaimCenter considers cached items to be eligible for reaping. You can
think of this as the period during which ClaimCenter is most likely to reuse and entity. See the System
Administration Guide for more information.
Default: 15
Minimum: 1
Maximum: 15
Set for Environment: Yes

GlobalCacheSizeMegabytes
The amount of space to allocate to the global cache. If you specify this value, it takes precedence over
GlobalCacheSizePercent. See the System Administration Guide for more information.
Nullable: Yes
Set for Environment: Yes

GlobalCacheSizePercent
The percentage of the heap to allocate to the global cache. See the System Administration Guide for more
information.
Default: 15
Set for Environment: Yes

GlobalCacheStaleTimeMinutes
Time (in minutes) since the last write before ClaimCenter considers cached items to be stale and thus eligible for
reaping. See the System Administration Guide for more information.
Default: 60
Minimum: 1
Maximum: 120
Set for Environment: Yes
Dynamic: Yes

52 chapter 2 Application configuration parameters


Configuration Guide 9.0.5

GlobalCacheStatsRetentionPeriodDays
Time period (in days), in addition to today, for how long ClaimCenter preserves statistics for historical comparison.
See the System Administration Guide for more information.
Default: 7
Minimum: 2
Maximum: 365
Set for Environment: Yes

GlobalCacheStatsWindowMinutes
Time period (in minutes). ClaimCenter uses this parameter for the following purposes:
• To define the period of time to preserve the reason for which ClaimCenter evicts an item from the cache, after the
event occurred. If a cache miss occurs, ClaimCenter looks up the reason and reports the reason in the Cache Info
page.
• To define the period of time to display statistics on the chart on the Cache Info page.
See the System Administration Guide for more information.
Default: 30
Minimum: 2
Maximum: 120
Set for Environment: Yes

GroupCacheRefreshIntervalSecs
The time in seconds between refreshes of the group cache. This integer value must be 0 or greater. See the System
Administration Guide for more information.
Default: 600

ScriptParametersRefreshIntervalSecs
The time between refreshes of the script parameter cache, in seconds. This integer value must be 0 or greater. See
the System Administration Guide for more information.
Default: 600

TreeViewRefresh
The time in seconds that Guidewire ClaimCenter caches a tree view state.
Default: 120

ZoneCacheRefreshIntervalSecs
The time between refreshes of the zone cache, in seconds. See the System Administration Guide for more
information.
Default: 86400

Claim catastrophe parameters


Before you can use the Catastrophe Search page and its catastrophe heat map, you must enable the functionality. For
details, see the System Administration Guide.
Guidewire provides the following configuration parameters in the config.xml file that relate to catastrophe map.
Cache parameters 53
Configuration Guide 9.0.5

For information on editing config.xml and setting configuration parameters, see “Working with configuration
parameters” on page 41.

HeatMapCredential
Set this configuration parameter to the value you obtained during the licensing process for the Bing Maps Ajax
Control.
Default: None

HeatMapServiceTemplate
Set to the fully qualified path to the class that manages the Bing map configuration.
Default: gw.api.heatmap.BingMap

MaxCatastropheClaimFinderSearchResults
Maximum number of claims that ClaimCenter relates to a single catastrophe in the CatClaimFinder batch process,
(used to find catastrophe-related claims). See the System Administration Guide for a discussion of ClaimCenter
batch processes.
Default: 1000

Claim health indicator and metric parameters


Guidewire provides the following configuration parameters in the config.xml file that relate to the claim metrics.
For information on editing config.xml and setting configuration parameters, see “Working with configuration
parameters” on page 41.

ClaimHealthCalcMaxLossDateInYears
Maximum number of years to look back to find claims on which to calculate metrics and indicators. This parameter
strictly limits the number of claims found for the ClaimHealthCalcuation batch process.
Default: 2

InitialReserveAllowedPeriod
Number of days that new initial reserves contribute to the initial reserve sum of the Percent * Reserve Change
Claim Metric calculation after ClaimCenter creates the first initial reserve. An initial reserve is a reserve that
ClaimCenter creates during creation of a claim or exposure. It is also the first set of reserves that ClaimCenter
creates on the claim or exposure if there are no previous reserves for those entities.
Default: 3

MaxClaimResultsPerClaimHealthCalcBatch
Maximum number of claims for each invocation of the ClaimHealthCalculation batch process to calculate metrics
and indicators. This parameter strictly limits the number of claims that can be processed at a single time. The
ClaimHealthCalculation batch process calculates the claim metrics and indicators for found claims.
Default: 1000

Clustering parameters
Guidewire provides the following configuration parameters in the config.xml file that relate to the application
clusters.

54 chapter 2 Application configuration parameters


Configuration Guide 9.0.5

To improve performance and reliability, you can install multiple ClaimCenter servers in a configuration known as a
cluster. A cluster distributes client connections among multiple ClaimCenter servers, reducing the load on any one
server. If one server fails, the other servers transparently handle its traffic.
For information on editing config.xml and setting configuration parameters, see “Working with configuration
parameters” on page 41.
See also
• System Administration Guide

ClusteringEnabled
Whether to enable clustering on this application server.

Studio Read-only Mode


If you set the value of ClusteringEnabled to true in file config.xml on a particular application server and then
restart the associated Studio, Studio becomes effectively read-only. In this context, read-only means:
• It is not possible to modify a Studio-managed resource. This applies, for example, to files that you open in the
Gosu or Rules editor.
• If it is possible to modify a Studio-managed resource, it is not possible to save any modification you make to that
resource. This applies, for example, to files that you open in the PCF editor.
To indicate the read-only status:
• Studio displays a padlock icon on the status bar that is visible only if Studio is in read-only mode. If you click the
icon, Studio displays a modal message box indicating the reason why it is in read-only mode.
• Studio disables the Save button any time that Studio is in read-only mode.
• Studio changes the Save button tooltip in read-only mode to display the reason that save is not active in this
mode. This is the same message that Studio shows if you click the padlock icon on the status bar.
Setting the value of configuration parameter “ResourcesMutable” on page 64 to false provides the same Studio
read-only behavior.
Default: false
Set for Environment: Yes
See also
• “ResourcesMutable” on page 64

ClusterMemberPurgeDaysOld
The number of days to keep cluster member records before they can be deleted.
Default: 30
Minimum value: 1
Required: true

ConfigVerificationEnabled
Whether to check the configuration of this server against the other servers in the cluster. You must also set
configuration parameter ClusteringEnabled to true for ConfigVerificationEnabled to be meaningful.

WARNING Guidewire does not support disabling this parameter in a production environment. Do not set this
parameter to false unless specifically instructed to do so by Guidewire Support.

Default: true
Set for Environment: Yes

Clustering parameters 55
Configuration Guide 9.0.5

PDFMergeHandlerLicenseKey
Provides the BFO (Big Faceless Organization) license key needed for server-side PDF generation. If you do not
provide a license key for a server, each generated PDF from that server contains a a large DEMO watermark on its
face. The lack of a license key does not, however, prevent document creation entirely.
It is possible to set this value differently for each server node in the cluster.
Default: None

SerializationWhitelistEnabled
Whether ClaimCenter permits only those Java classes placed on a serialization whitelist to be deserialized. In some
situations, it is possible for deserialized Java objects from untrusted sources to be used to perform remote code
invocation attacks against a Guidewire application server.
For this configuration parameter:
• If disabled, ClaimCenter permits any Java class sent over a cluster channel to be deserialized, except for those
classes specifically placed on a black (forbidden) list.
• If enabled, ClaimCenter permits only those Java classes placed on a white list to be deserialized if sent over a
cluster channel. If enabled, it is not possible to place any class on the black list on the white list as well.
You define the permitted (whitelist) and forbidden (blacklist) Java classes in the following configuration files:
• serialization-whitelist.lst
• serialization-blacklist.lst
The Server Tools Serialization Info screen (under Info Pages) provides a means of monitoring the deserialization of Java
classes.
Default: false
See also
• System Administration Guide

Database parameters
Guidewire provides the following configuration parameters in the config.xml file that relate to the application
database.
For information on editing config.xml and setting configuration parameters, see “Working with configuration
parameters” on page 41.

DisableHashJoinForClaimSearch
Guidewire provides a workaround for query plan problems related to hash joins that occur if executing certain claim
searches on Oracle. This parameter controls part of the workaround. The parameter has no effect on databases other
than Oracle. See also DisableSortMergeJoinForTeamGroupActivities.
Default: true

DisableHashJoinForTeamGroupActivities
ClaimCenter works around hash join-related query plan problems while executing the team group activities page's
main query on Oracle. This parameter controls part of the work around and is true by default. This parameter has
no effect on databases other than Oracle.
Default: true

56 chapter 2 Application configuration parameters


Configuration Guide 9.0.5

DisableIndexFastFullScanForClaimSearch
ClaimCenter works around some bad execution plans by disabling index fast full scan while executing certain claim
searches on Oracle. This parameter controls the work around and is true by default. If a future version of Oracle
fixes the defect, you can safely remove this parameter. The parameter affects the Oracle database only.
Default: true

DisableIndexFastFullScanForRecoverySearch
ClaimCenter works around some bad execution plans by disabling index fast full scan while executing certain
recovery searches on Oracle. This parameter controls the work around and is true by default. If a future version of
Oracle fixes the defect, you can safely remove this parameter. The parameter affects the Oracle database only.
Default: true

DisableIndexFastFullScanForTeamGroupActivities
ClaimCenter works around index fast full scan related query plan problems while executing the Team Group Activities
page's main query on Oracle. This parameter controls the work around and is true by default. If a future version of
Oracle fixes the defect, you can safely remove this parameter. The parameter has no effect on databases other than
Oracle.
Default: true

DisableSequenceUtil
Disables the sequence utility class gw.api.system.database.SequenceUtil. Use this to ensure that any sequences
in your code use some alternative mechanism for sequenced identifiers.
Default: false

DisableSortMergeJoinForClaimSearch
Guidewire provides a work-around for sort-merge join query plan problems that occur if executing certain claim
searches on Oracle. This parameter controls part of the work-around if DisableHashJoinForClaimSearch is also
set to true. The parameter has no effect on databases other than Oracle.
Default: true

DisableSortMergeJoinForTeamGroupActivities
ClaimCenter works around sort merge join query plan problems while executing the team group activities page's main
query on Oracle. This parameter controls part of the workaround if the value of DisableHashJoinForClaimSearch
is set to true. It is true by default. The parameter has no effect on databases other than Oracle.
Default: true

DiscardQueryPlansDuringStatsUpdateBatch
Whether to instruct the database to discard existing query plans during a database statistics batch process.
Default: false

IdentifyQueryBuilderViaComments
(SQL Server only.) Whether to provide comments with contextual information in certain SQL Select statements
sent to the relational database. The comments are generated by instrumentation in higher level database objects
created by using the query builder APIs.
The SQL comments are in the following format:

Database parameters 57
Configuration Guide 9.0.5

/* applicationName:ProfilerEntryPoint */

The applicationName component of the comment is ClaimCenter.


The ProfilerEntryPoint component of the comment is the name of an entry point known to the Guidewire
profiler for that application. For example, ProfilerEntryPoint might have the value WebReq:ClaimSearch.
Default: true
See also
• Gosu Reference Guide

IdentifyORMLayerViaComments
(SQL Server only.) Whether to provide comments with contextual information in certain SQL Select statements
sent to the relational database. The comments are generated by instrumentation in lower level objects, such as beans,
typelists, and other database building blocks.
The SQL comments are in the following format:

/* applicationName:ProfilerEntryPoint */

The applicationName component of the comment is ClaimCenter.


The ProfilerEntryPoint component of the comment is the name of an entry point known to the Guidewire
profiler for that application. For example, ProfilerEntryPoint might have the value WebReq:ClaimSearch.
Default: false
See also
• Gosu Reference Guide

MigrateToLargeIDsAndDatetime2
(SQL Server only.) Use to control whether to migrate to large 64-bit IDs in the database while upgrading. Migrating
to 64-bit IDs is an expensive operation. Also updates timestamps to use the data type Datetime2.
Default: true

QueryRewriteForClaimSearch
Determines whether ClaimCenter rewrites queries using a materialized view or lets the Oracle optimizer make the
choice based on the cost calculation. The following list describes the valid values for this parameter.

Value Meaning
FORCE/STALE Oracle attempts to rewrite the query using an appropriate materialized view even if the optimizer cost
estimate is high. Oracle allows the rewrite even if the data in the materialized is not the same as in the base
tables.
FORCE/NOSTALE Oracle attempts to rewrite the query using an appropriate materialized view even if the optimizer cost
estimate is high. Oracle ignores the materialized view if the data in the view is not fresh.
COST/STALE If the Oracle cost-based optimizer evaluates the rewrite to be cheaper than other plans, it uses the
materialized view. If it is costlier to execute the rewritten path, then Oracle performs a join of the base
tables. The rewrite can happen even if the data in the view is stale.
COST/NOSTALE If the Oracle cost-based optimizer evaluates the rewrite to be cheaper than other plans, it uses the
materialized view. If it is costlier to execute the rewritten path, then Oracle performs a join of the base
tables. If the data in the view is not fresh, Oracle ignores the view and performs the join on the base tables.

58 chapter 2 Application configuration parameters


Configuration Guide 9.0.5

Note: If you provide an invalid value, the server ignores it.


Default: None
See also
• Installation Guide
• System Administration Guide

SetSemiJoinNestedLoopsForClaimSearch
(Oracle only) ClaimCenter works around semi-join query plan problems by forcing nested loop semi-join queries
while executing certain claim searches on Oracle. This parameter controls part of the work-around, and has no effect
on databases other than Oracle.
Default: true

UseOracleHintsOnMessageQueries
An Oracle database can experience improved performance if Oracle hints are used on queries for Message objects.
This parameter effects Oracle databases only.
Default: true

Data destruction parameters


Guidewire provides configuration parameters in the config.xml file that relate to destruction of data. In the base
configuration of GenericCenter, data destruction is not enabled. You must set configuration parameters to enable
data destruction.
See also
• “Data destruction configuration parameters” on page 712
• “Working with configuration parameters” on page 41.

ArchiveReferenceTrackingEnabled Parameter
When archiving is enabled, you must set this parameter to true to enable tracking of archived objects for personal
data destruction. This parameter must also be set to true before you run the ArchiveReferenceTrackingSync
batch process to build the table of objects that you have already archived.
In the base configuration, this parameter is false.

ContactDestructionRequestAgeForPurgingResults parameter
Used by the RemoveOldContactDestructionRequest work queue to determine the age of
PersonalDataDestructionRequest objects that have a status of Finished. In the base configuration, this parameter
is set to 10 days.
See also
• “RemoveOldContactDestructionRequest work queue” on page 717

PersonalDataDestructionEnabled parameter
Set this parameter to true to enable destruction of personal data. In the base configuration, this parameter is false.

Deduction parameters
Guidewire provides the following configuration parameters in the config.xml file that relate to deductions.

Database parameters 59
Configuration Guide 9.0.5

For information on editing config.xml and setting configuration parameters, see “Working with configuration
parameters” on page 41.

BackupWithholdingTypeCode
The typecode in the DeductionType typelist for backup withholding. The default is irs. You must define this
parameter for the backup withholding plugin to work. Also, this parameter must also correspond to a valid
DeductionType typecode.
Default: irs

CalculateBackupWithholdingDeduction
Whether ClaimCenter calculates backup withholding for applicable checks.
Default: true

StandardWithholdingRate
Standard backup withholding rate, as defined by the U.S. Internal Revenue Service, for use by the backup
withholding plugin. The number is a percentage. (For example, 28.0 means 28.0 percent.) The backup withholding
plugin does not work if you do not define this parameter.
Default: 28.0

Document creation and document management parameters


Guidewire provides configuration parameters in the config.xml file that relate to document creation and
management.
See also
• “Working with configuration parameters” on page 41
• Application Guide
• Guidewire Contact Management Guide

DisplayDocumentEditUploadButtons
Whether the Documents list displays Edit and Upload buttons. Set this parameter to false if the
IDocumentContentSource integration mechanism does not support it.
Default: true

DocumentContentDispositionMode
The Content-Disposition header setting to use when ClaimCenter returns document content directly to the
browser. Supported settings are inline and attachment.
Default: inline

DocumentTemplateDescriptorXSDLocation
The path to the XSD file that ClaimCenter uses to validate document template descriptor XML files. Specify this
location relative to the following directory:

modules/configuration/config/resources/doctemplates

60 chapter 2 Application configuration parameters


Configuration Guide 9.0.5

FinalDocumentsNotEditable
Indicates whether documents with Final status can be transferred by using the Asynchronous implementation of the
IDocumentContentSource plugin. A value of false indicates that documents with Final status can be transferred. A
value of true indicates that documents with Final status cannot be transferred.
Default: false

MaximumFileUploadCount
The maximum number of document content files that can be listed and uploaded at once. The number of files listed
for upload can affect the performance of the upload screen.
Default: 200

MaximumFileUploadSize
The maximum allowable size in megabytes for a document file that you can upload to the server. Attempting to
upload a file larger than this size results in failure. Because the uploaded document must be handled on the server,
this parameter protects the server from possible memory consumption problems.
Default: 25 MB

MaximumTotalUploadSize
The maximum allowable total size in megabytes per session for documents uploads that are pending commitment to
the document management system. Because multiple documents can be uploaded at once, this value also provides
control of the overall size of an upload and protects the server from possible memory consumption problems.
Default: 25 MB

Environment parameters
Guidewire provides the following configuration parameters in the config.xml file that relate to the application
environment.
For information on editing config.xml and setting configuration parameters, see “Working with configuration
parameters” on page 41.

AddressDeletionDelay
Sets the amount of time to wait (in minutes) before an AddressDeleteWorkQueue work item deletes an address
marked as potentially orphaned. During an entity bundle commit, it is possible for an address to become orphaned if
there is no longer an entity that points to the address.
ClaimCenter manages the AddressDeleteWorkQueue work queue internally. It is not possible to either schedule this
work queue or to run it from the ClaimCenter user interface.
Default: 1
See also
• System Administration Guide

AddressVerificationFailureAsError
Set to true to have address verification failures shown as errors instead of warnings. This parameter has no effect if
EnableAddressVerification is set to false.
Default: false

Document creation and document management parameters 61


Configuration Guide 9.0.5

See also
• “EnableAddressVerification” on page 62

AlwaysShowPhoneWidgetRegionCode
Whether the phone number widget in the application user interface always displays a selector for phone region
codes.
Default: false
Set for Environment: Yes

CurrentEncryptionPlugin
Set this value to the name of the plugin that you intend to use to manage encryption. Typically, a Guidewire
installation has only a single implementation of an encryption plugin interface. However, you can, for example,
decide to implement a different encryption algorithm using a different implementation of the encryption interface as
part of an upgrade process. In this case, you must retain your old encryption plugin implementation in order to
support the upgrade.
To support multiple implementations of encryption plugins, ClaimCenter provides the CurrentEncryptionPlugin
configuration parameter. Set this configuration parameter to the EncryptionID of the encryption plugin currently in
use—if you have implemented multiple versions IEncryption plugin interface.
• If you do not provide a value for this configuration parameter, then data is unencrypted.
• If you create multiple implementations of a plugin interface, then you must name each plugin implementation
individually and uniquely.

IMPORTANT ClaimCenter does not provide an encryption algorithm. You must determine the best method to
encrypt your data and implement it.

Default: None
See also
• For information on using the Plugins Registry editor, see “Using the plugins registry editor” on page 135.
• Integration Guide

DeprecatedEventGeneration
Whether to use the now-deprecated event logic that had previously been available.
Default: false

EnableAddressVerification
Set this value to true to enable address verification warnings. Address verification checks that all the fields match
each other based on the zone data.
This parameter works in concert with the AddressVerificationFailureAsError parameter to show either a
warning or an error, as follows:
• If EnableAddressVerification is true and AddressVerificationFailureAsError is false, ClaimCenter
shows a warning message if verification against zone data fails.
• If EnableAddressVerification is true and AddressVerificationFailureAsError is true, ClaimCenter
shows an error message if verification against zone data fails.
• If EnableAddressVerification is false, ClaimCenter does not verify the address based on zone data.
Default: false

62 chapter 2 Application configuration parameters


Configuration Guide 9.0.5

See also
• “AddressVerificationFailureAsError” on page 61

EnableInternalDebugTools
Make internal debug tools available to developers.
Default: false
Set for Environment: Yes

EntityValidationOrder
Order in which to execute validation if validating multiple entities. ClaimCenter validates all other validatable
entities not specified in this list after all listed entities, in no particular order.
Note: Guidewire does not guarantee that ClaimCenter validates entities of a given type (such as the exposures on a
claim) in any deterministic order with respect to one another.
Default: Policy, Claim, Exposure, Matter, TransactionSet

KeyGeneratorRangeSize
The number of key identifiers (as a block) that the server obtains from the database with each request. This integer
value must be 0 or greater.
As you create a new ClaimCenter object such as a Claim, ClaimCenter assigns it a key, or unique public identifier.
To ensure that keys are unique, the server requests an available key from the ClaimCenter database. If every server
in a cluster queried the database each time it needed a single key, performance would degrade.
Instead, use this configuration parameter to obtain a block of keys with a single request. For example, a server can
reserve a block of 100 keys, and then assign each key without needing to query the database again. The server
continues to assign the keys from a block until it uses all keys in that block.
The default value of 100 is large enough to prevent frequent database queries for more keys. It is also small enough
to not waste too many keys that the server reserves but never uses. The server discards allocated but unused keys as
it shuts down. Keys are 64-bit integers, so wasting a few keys is not an issue. The default value of 100 is reasonable
in most situations.
Default: 100

MemoryUsageMonitorIntervalMins
How often the ClaimCenter server logs memory usage information, in minutes. This is often useful for identifying
memory problems.
To disable the memory monitor, do one of the following:
• Set this parameter to 0.
• Remove this parameter from config.xml.
Default: 0

PublicIDPrefix
The prefix to use for public IDs generated by the application. Generated public IDs are of the form prefix:id.
This id is the actual entity ID. Guidewire strongly recommends that you set this parameter to different values in
production and test environments to allow for the clean import and export of data between applications.
This PublicIDPrefix must not exceed 9 characters in length. Use only letters and numbers. Do not use space
characters, colon characters, or any other characters that other applications might process or escape specially. Do not
specify a two-character value. Guidewire reserves for itself all public IDs that start with a two-character ID and then
a colon

Environment parameters 63
Configuration Guide 9.0.5

IMPORTANT Guidewire reserves two-character public ID prefixes for its own current or future use.

Required: Yes
Default: None

ResourcesMutable
Indicates whether resource are mutable (modifiable) on this server. If you connect Studio to a remote server (on
which this parameter set to true), then Studio pushes resource changes to the remote server as you save local
changes. Guidewire strongly recommends that you set this value to false on a production server to prevent changes
to the configuration resources directory.
See also “RetainDebugInfo” on page 64.

Studio Read-only Mode


If you set the value of ResourcesMutable to false in config.xml on a particular application server and then restart
the associated Studio, that Studio becomes effectively read-only. In this context, read-only means:
• It is not possible to modify a Studio-managed resource. This applies, for example, to files that you open in the
Gosu or Rules editor.
• If it is possible to modify a Studio-managed resource, it is not possible to save any modification you make to that
resource. This applies, for example, to files that you open in the PCF editor.
To indicate the read-only status:
• Studio displays a padlock icon on the status bar that is visible only if Studio is in read-only mode. If you click the
icon, Studio displays a modal message box indicating the reason why it is in read-only mode.
• Studio disables the Save button any time that Studio is in read-only mode.
• Studio changes the Save button tooltip in read-only mode to display the reason that save is not active in this
mode. This is the same message that Studio shows if you click the padlock icon on the status bar.
Setting the value of configuration parameter ClusteringEnabled to true provides the same Studio read-only
behavior.
Default: true

WARNING Guidewire recommends that you always set this configuration parameter to false in a production
environment. Setting this parameter to true has the potential to modify resources on a production server in
unexpected and possibly damaging ways.

See also
• “ClusteringEnabled” on page 55

RetainDebugInfo
Whether the production server retains debugging information. This parameter facilitates debugging from Studio
without a type system refresh.
• If set to true, ClaimCenter does not clear debug information after compilation.
• If set to false, the server does not retain sufficient debugging information to enable debugging. As a production
server does not recompile types, it is not possible to regenerate any debugging information.
Default: false

64 chapter 2 Application configuration parameters


Configuration Guide 9.0.5

See also
• “ResourcesMutable” on page 64

StrictDataTypes
Controls whether ClaimCenter uses the pre-ClaimCenter 6.0 behavior for configuring data types, through the use of
the fieldvalidators.xml file.
• Set this value to false to preserve the existing behavior. This is useful for existing installations that are
upgrading but want to preserve the existing functionality.
• Set this value to true to implement the new behavior. This is useful for new ClaimCenter installations that want
to implement the new behavior.

StrictDataTypes = true
If you set the StrictDataTypes value to true, then ClaimCenter:
• Does not permit decimal values to exceed the scale required by the data type. The setter throws a
gw.datatype.DataTypeException if the scale is greater than that allowed by the data type. You are responsible
for rounding the value, if necessary.
• Validates field validator formats in both the ClaimCenter user interface and in the field setter.
• Validates numeric range constraints in both the ClaimCenter user interface and in the field setter.

StrictDataTypes = false
If you set the StrictDataTypes value to false, then ClaimCenter:
• Auto-rounds decimal values to the appropriate scale, using the RoundHalfUp method. For example, setting the
value 5.045 on a field with a scale of 2 sets the value to 5.05.
• Validates field validator formats in the interface but not at the setter level. For example, ClaimCenter does not
permit a field with a validator format of [0-9]{3}-[0-9]{2}-[0-9]{4} to have the value 123-45-A123 in the
interface. It is possible, however, to set a field to that value in Gosu code, for example. This enables you to
bypass the validation set in the interface.
• Validates numeric range constraints in the interface, but not at the setter level. For example, Guidewire does not
allow a field with a maximum value of 100 to have the value 200 in the interface. However, you can set the field
to this value in Gosu rules, for example. This enables you to bypass the validation set in the interface.
Default: true

TwoDigitYearThreshold
The threshold year value for determining whether to resolve a two-digit year to the earlier or later century.
Default: 50

UnreachableCodeDetection
Determines whether the Gosu compiler generates errors if it detects unreachable code or missing return statements.
Default: true

UnrestrictedUserName
By default, ClaimCenter uses the su user as the user with unrestricted permissions to do anything in ClaimCenter.
To set the unrestricted user to a different user, set the value of the UnrestrictedUserName parameter to that user’s
login name.
Default: su

Environment parameters 65
Configuration Guide 9.0.5

UseOldStylePreUpdate
Determines whether to apply the pre-update rule set prior to committing a bundle.
Default: true

WarnOnImplicitCoercion
A value of true indicates that the Gosu compiler generates warnings if it determines that an implicit coercion is
occurring in a program.
Default: true

WebResourcesDir
Specifies the location of the Web resources directory under the root of the Tomcat configuration directory.
Default: resources

Financial parameters
Guidewire provides the following parameters in the config.xml file to help configure how ClaimCenter works with
monetary amounts.
For information on editing config.xml and setting configuration parameters, see “Working with configuration
parameters” on page 41.
See also
• “Configuring ClaimCenter financials” on page 735
• “ClaimCenter financial calculations” on page 743
• “Configuring multicurrency” on page 697
• Application Guide
• Globalization Guide

AllowMultipleLineItems
Whether to allow multiple line items in a transaction. See also UseDeductibleHandling.
Default: true

AllowMultiplePayments
Whether to allow a single check to reflect multiple payments.
Default: true

AllowNegativeManualChecks
Use to set the ability to create negative checks manually. The following values are valid:
• true – Allow user to create negative checks manually.
• false – Disable the ability to create negative checks manually.
The default ClaimCenter behavior is to not allow manual checks to be negative. If you need the ability to create
negative checks manually, then you must explicitly set this parameter to true.
Default: false

66 chapter 2 Application configuration parameters


Configuration Guide 9.0.5

AllowNoPriorPaymentSupplement
Whether to allow a user to create supplemental payments on a closed claim or exposure with no prior payments.
Default: false

AllowPaymentsExceedReservesLimits
If true, a user can submit payments that exceed available reserves up to the amount limited by the
paymentsexceedreserves authority limits. Otherwise, ClaimCenter does not allow partial or final payments that
exceed reserves.
Default: false

CheckAuthorityLimits
Controls whether ClaimCenter checks authority during approval processing of a TransactionSet.
Default: true

CloseClaimAfterFinalPayment
If true, ClaimCenter attempts to automatically close a claim if a final payment closes the last open exposure.
Default: true

CloseExposureAfterFinalPayment
If true, ClaimCenter attempts to automatically close the exposure of a Final payment when that payment's Check is
escalated.
Default: true

EnableMulticurrencyReserving
Whether to enable multicurrency reserving support. Note that this parameter is not intended to be used by non-Gosu
classes, or to be accessed directly; use CCConfigUtil.EnableMulticurrencyReserving instead.
You must set this parameter to true if you set MulticurrencyDisplayMode to MULTIPLE.

IMPORTANT The EnableMultiCurrencyReserving parameter setting is semi-permanent. After you set


EnableMultiCurrencyReserving to true and then start the server, you cannot change the value again.

Default: false
Set for Environment: Yes

Financials
Specifies the level of financials functionality that is available in the application. Available options are view for read-
only values or entry to enable editing the financial values directly in ClaimCenter.
ClaimCenter supports the following values:

Value Description
entry financials entry
view financials view (read-only)

Default: entry

Financial parameters 67
Configuration Guide 9.0.5

PaymentLogThreshold
ClaimCenter logs payments greater than this threshold. This integer value must be 0 or greater.
Default: 500
Dynamic: Yes

PaymentRoundingMode
Use to set the rounding mode for conversion of amounts among TransactionAmount, ClaimAmount, and
ReportingAmount columns on the TransactionLineItem entity for Payment transactions. The available choices are
a subset of those supported by java.math.RoundingMode, namely:
• UP
• DOWN
• CEILING
• FLOOR
• HALF_UP
• HALF_DOWN
• HALF_EVEN
Guidewire strongly recommends that you use one of the following:
• HALF_UP
• HALF_EVEN
You can access this value in Gosu code by using the following method:

gw.api.util.CCCurrencyUtil.getRoundingMode(Payment)

IMPORTANT This parameter setting is permanent. Once you set the parameter and then start the server, you cannot
change the value.

Default: HALF_UP
Permanent: Yes
See also
• Globalization Guide

ReserveRoundingMode
Use to set the rounding mode for conversion of amounts among TransactionAmount, ClaimAmount, and
ReportingAmount columns on the TransactionLineItem entity for Reserve transactions.
The available choices are a subset of those supported by java.math.RoundingMode, namely:
• UP
• DOWN
• CEILING
• FLOOR
• HALF_UP
• HALF_DOWN
• HALF_EVEN

68 chapter 2 Application configuration parameters


Configuration Guide 9.0.5

Guidewire strongly recommends that you use one of the following:


• HALF_UP
• HALF_EVEN
You can access this value in Gosu code by using the following method:

gw.api.util.CCCurrencyUtil.getRoundingMode(Reserve)

IMPORTANT This parameter setting is permanent. Once you set the parameter and then start the server, you cannot
change the value.

Default: HALF_UP
Permanent: Yes
See also
• Globalization Guide

SetReservesByTotalIncurred
Specifies the way in which you modify reserves in the ClaimCenter interface.
• If set to true, the user can set the Total Incurred values
• If set to false, the user can set the Available Reserves values.
Default: false

UseDeductibleHandling
Whether to use deductible handling. If this value is true, then AllowMultipleLineItems must be true as well.
Default: true
See also
• Application Guide

UseRecoveryReserves
Whether to use recovery reserve transactions in financial calculations. If you set this parameter to false, and then
later set it back to true, consider creating offsetting recovery reserves for your existing recoveries. In addition,
changing the parameter from false to true generates database consistency check errors, which you may ignore.
Default: true

Geocoding parameters
Guidewire provides the following configuration parameters in the config.xml file that relate to geocoding.
For information on editing config.xml and setting configuration parameters, see “Working with configuration
parameters” on page 41.

UseGeocodingInPrimaryApp
If true, ClaimCenter enables proximity search for users in the assignment user interface. ContactManager does not
respond to this parameter.
Default: false

Financial parameters 69
Configuration Guide 9.0.5

UseGeocodingInAddressBook
Set to true if you have ClaimCenter integrated with ContactManager and ContactManager has geocoding enabled
for vendors. This setting enables vendor search in the ClaimCenter and ContactManager user interfaces.
Default: false

ProximitySearchOrdinalMaxDistance
A distance that provides an approximate bound to improve performance of an ordinal (nearest n items) proximity
search. This distance is in miles, unless you set UseMetricDistancesByDefault to true. This parameter has no
effect on radius (within n miles or kilometers) proximity searches or walking-the-group-tree-based proximity
assignment.
Default: 300

IMPORTANT If the setting for this configuration parameter differs between ContactManager and ClaimCenter, it is
possible for the application to display distance-related messages incorrectly. Additionally, the search can return
results that are farther away than the distance specified.

ProximityRadiusSearchDefaultMaxResultCount
The maximum number of results to return if performing a radius (within n miles or kilometers) proximity search.
This parameter has no effect on ordinal (nearest n items) proximity searches. This parameter does not have to match
the value of the corresponding parameter in the ContactManager config.xml file.
Default: 1000

UseMetricDistancesByDefault
If true, ClaimCenter uses kilometers and metric distances instead of miles and United States distances for driving
distance or directions. Set this parameter identically in both ClaimCenter and ContactManager.
Default: false

Globalization parameters
Guidewire provides the following configuration parameters in the config.xml file that relate to globalization.
For information on editing config.xml and setting configuration parameters, see “Working with configuration
parameters” on page 41.

IMPORTANT If you integrate the core applications in Guidewire InsuranceSuite, you must set the values of
DefaultApplicationCurrency and MulticurrencyDisplayMode to be the same in each application.

DefaultApplicationLanguage
Default display language for the application as a whole.

IMPORTANT This parameter setting is permanent. Once you set the parameter and then start the server, you cannot
change the value.

Default: en_US
Permanent: Yes

70 chapter 2 Application configuration parameters


Configuration Guide 9.0.5

See also
• Globalization Guide

DefaultApplicationLocale
Default locale for regional formats in the application. You must set configuration parameter
DefaultApplicationLocale to a typecode contained in the LocaleType typelist.

IMPORTANT This parameter setting is permanent. Once you set the parameter and then start the server, you cannot
change the value.

Default: en_US
Permanent: Yes
See also
• Globalization Guide

DefaultApplicationCurrency
Default currency for the application. You must set configuration parameter DefaultApplicationCurrency to a
typecode contained in the Currency typelist, even if you configure ClaimCenter with a single currency. Guidewire
applications which share currency values must have the same DefaultApplicationCurrency setting in their
respective config.xml files. The default currency is sometimes known as the reporting currency.

IMPORTANT This parameter setting is permanent. Once you set the parameter and then start the server, you cannot
change the value.

Default: usd
Permanent: Yes
See also
• Globalization Guide

DefaultRoundingMode
Sets the default rounding mode for money and currency amount calculations.
The available choices are a subset of those supported by java.math.RoundingMode, namely:
• UP
• DOWN
• CEILING
• FLOOR
• HALF_UP
• HALF_DOWN
• HALF_EVEN
Guidewire strongly recommends that you use one of the following:
• HALF_UP
• HALF_EVEN
You can access this value in Gosu code by using the following method:

gw.api.util.CurrencyUtil.getRoundingMode()

Globalization parameters 71
Configuration Guide 9.0.5

IMPORTANT This parameter setting is permanent. Once you set the parameter and then start the server, you cannot
change the value.

Default: HALF_UP
Permanent: Yes
See also
• “PaymentRoundingMode” on page 68
• “ReserveRoundingMode” on page 68
• Globalization Guide

MulticurrencyDisplayMode
Determines whether ClaimCenter displays currency selectors for monetary values. The following are the allowed
values for MulticurrencyDisplayMode:
• SINGLE
• MULTIPLE
In the base configuration of ClaimCenter, the value is set to SINGLE. You can change the value to MULTIPLE once
only. After you change the value to MULTIPLE, you cannot later change it back to SINGLE. If you change the value
back to SINGLE, subsequent attempts to start the server fail.
Default: SINGLE
Permanent: Semi-permanent
See also
• Globalization Guide

DefaultCountryCode
The default ISO country code that ClaimCenter uses if the country for an address is not set explicitly. ClaimCenter
also uses the value of this parameter as the default country code for new addresses that it creates. The country code
must be a valid ISO country code that exists as a typecode in the Country typelist.
See the following page to search a list of ISO country codes:

https://www.iso.org/obp/ui

DefaultPhoneCountryCode
The default ISO country code used for phone data.
Default: None

DefaultNANPACountryCode
The default country code for region 1 phone numbers. If the area code is not in the nanpa.properties map file,
then it defaults to the value configured with this parameter.
Default: US

AlwaysShowPhoneWidgetRegionCode
Whether the phone number widget in the application user interface always displays a selector for phone region
codes.
Default: false

72 chapter 2 Application configuration parameters


Configuration Guide 9.0.5

Integration parameters
Guidewire provides the following configuration parameters in the config.xml file that relate to how multiple
Guidewire applications integrate with each other.
For information on editing config.xml and setting configuration parameters, see “Working with configuration
parameters” on page 41.

ContactAutoSyncBundleCommitSize
If you integrate ClaimCenter with ContactManager, it is necessary to synchronize contacts stored by the two
Guidewire applications. Batch process ContactAutoSync controls this synchronization.
It is common to have a large number of local instances of each contact in Guidewire ClaimCenter, one for each
claim that uses that contact. To improve the performance of synchronizing the ClaimCenter contacts that match a
single AddressBookUID, the parameter ContactAutoSyncBundleCommitSize specifies the maximum number of
contacts in a single bundle commit.
Note: Parameter ContactAutoSyncBundleCommitSize is meaningful only if ClaimCenter is integrated with
ContactManager.
Default: 15
See also
• “ContactAutoSyncWorkItemChunkSize” on page 73
• Guidewire Contact Management Guide

ContactAutoSyncWorkItemChunkSize
If you integrate ClaimCenter with ContactManager, it is necessary to synchronize the contacts stored by the two
Guidewire applications. Batch process ContactAutoSync controls this synchronization.
It is common to have a large number of local instances of each contact in Guidewire ClaimCenter, one for each
claim that uses that contact. During contact synchronization between ClaimCenter and ContactManager,
ClaimCenter processes the table for highly linked contacts. If the number of contacts linked to a single
AddressBookUID is greater than the value of ContactAutoSyncWorkItemChunkSize, ClaimCenter divides these
contacts into smaller groups of contacts. This process is known as chunking. ClaimCenter then creates a work item
to process each chunk of contacts.
Note: Parameter ContactAutoSyncWorkItemChunkSize is meaningful only if ClaimCenter is integrated with
ContactManager.
Default: 400
See also
• “ContactAutoSyncBundleCommitSize” on page 73
• Guidewire Contact Management Guide

DefaultXmlExportIEncryptionId
The unique encryption ID of an encryption plugin. If archiving is enabled, ClaimCenter uses the encryption plugin
to encrypt any encrypted fields during XML serialization.
Default: null (no encryption)

EnableMetroIntegration
Whether to enable Metropolitan Reporting Bureau integration. If true, there is a working integration that sends
messages from ClaimCenter to the Metropolitan Reporting Bureau service (requesting Metropolitan reports).
Default: false

Integration parameters 73
Configuration Guide 9.0.5

Set for Environment: Yes

InstantaneousContactAutoSync
Whether to process contact automatic synchronization in ClaimCenter at the time of receiving the notification:
• If you set InstantaneousContactAutoSync to false, ClaimCenter synchronizes contacts only while running
the ContactAutoSync batch process.
• If you set InstantaneousContactAutoSync to true, the ContactAutoSync worker activates automatically as
ClaimCenter receives autosync events and immediately updates all ClaimCenter copies of a contact stored in
ContactManager.
Default: true
See also
• Guidewire Contact Management Guide

ISOPropertiesFileName
Name of the ISO properties file in the ClaimCenter/modules/configuration/config/iso configuration
directory.
Default: ISO.properties
Set for Environment: Yes

KeepCompletedMessagesForDays
Number of days after which ClaimCenter purges old messages in the message history table.
Default: 90

LockDuringDistributedMessageRequestHandling
When processing a distributed message transaction, the parameter determines whether to lock the transaction's
message object. The parameter has no effect on non-distributed message transactions.
Default: false

LockPrimaryEntityDuringMessageHandling
When processing a message transaction, the parameter determines whether to lock the primary entity instance
associated with the message. If the message has no primary entity associated with it, the parameter has no effect.
Default: true
Regardless of the parameter's setting, the primary entity instance is locked only if the transaction's message object is
also locked. For example, a distributed message transaction that does not lock its message object will not lock the
primary entity either, even if locking of the entity is enabled by this parameter. Whether a distributed message
transaction locks its message object is determined by the LockDuringDistributedMessageRequestHandling
configuration parameter.

MetroPropertiesFileName
Name of the Metropolitan properties file in the ClaimCenter/modules/configuration/config/metro
configuration directory. ClaimCenter uses this files to set up fields in the XML messages sent to the Metropolitan
Reporting Bureau. See EnableMetroIntegration as well.
Default: Metro.properties
Set for Environment: Yes

74 chapter 2 Application configuration parameters


Configuration Guide 9.0.5

PluginStartupTimeout
OSGi plugins startup timeout (in seconds). The PluginConfig component waits for at most this time for all required
OSGi plugins to start. The PluginConfig component reports an error for each OSGi plugin that does not start after
this timeout has expired.
Default: 60

PolicySystemURL
URL to use in ClaimCenter ExitPoint PCF pages that view items in the policy system.
• If integrating Guidewire ClaimCenter with Guidewire PolicyCenter, then set this parameter to the PolicyCenter
base URL (for example, http://server/pc). In this case, the exit points add the appropriate PolicyCenter entry
point.
• If integrating with a non-Guidewire policy system, then you need to modify the ExitPoint PCF to set up the
parameters required by that system.
• If you omit this parameter or if you set it to an empty string, then ClaimCenter hides the buttons in the interface
that take you to the exit points.
Default: Empty string
See also
• Integration Guide

Miscellaneous bulk invoice activity pattern parameters


Guidewire provides the following configuration parameters in the config.xml file that relate to bulk invoicing.
For information on editing config.xml and setting configuration parameters, see “Working with configuration
parameters” on page 41.

BulkInvoiceItemValidationFailedPattern
Name of the activity pattern to use in creating an activity to alert about a failure during processing of a bulk invoice
item.
Required: Yes

BulkInvoiceUnableToStopPattern
Name of the activity pattern to use if creating an activity to alert that ClaimCenter was unable to stop a bulk invoice.
More technically, it was not possible to update the status from Pending-stop or Stopped to Issued or Cleared.
Required: Yes

BulkInvoiceUnableToVoidPattern
Name of the activity pattern to use in creating an activity to alert that ClaimCenter was unable to void a bulk
invoice. More technically, it was not possible to update the status from Pending-void or Voided to Issued or
Cleared.
Required: Yes

Miscellaneous financial activity parameters


Guidewire provides the following configuration parameters in the config.xml file that relate to financial activity
patterns.

Integration parameters 75
Configuration Guide 9.0.5

For information on editing config.xml and setting configuration parameters, see “Working with configuration
parameters” on page 41.

CheckDeniedPattern
Name of the activity pattern to use if creating an alert that a down-stream system has denied a check.
Required: Yes

CheckUnableToStopPattern
Name of the activity pattern to use if creating an alert that ClaimCenter cannot stop a check.
Required: Yes

CheckUnableToVoidPattern
Name of the activity pattern to use if creating an alert that ClaimCenter cannot void a check.
Required: Yes

ClaimOrExposureUnableToClosePattern
Name of the activity pattern to use if a claim or an exposure cannot be closed.
Required: Yes

LastPaymentReminderPattern
Name of the activity pattern to use if creating an alert to signal the approach of the last payment in a set of
recurrence checks.
Required: Yes

RecoveryDeniedPattern
Name of the activity pattern to use if creating an alert that a down-stream system has denied a recovery.
Required: Yes

Miscellaneous parameters
Guidewire provides the following configuration parameters in the config.xml file that relate to various
miscellaneous application features.
For information on editing config.xml and setting configuration parameters, see “Working with configuration
parameters” on page 41.

ClaimLossDateDemarcation
Default time for a claim’s loss date when it is not specified in the FNOL. Set this to match the default time at which
the policy administration system sets the effective date of the policy.
Default: 12:00 AM
Set for Environment: Yes

ConsistencyCheckerThreads
Number of threads to use when running the consistency checker.
Default: 1

76 chapter 2 Application configuration parameters


Configuration Guide 9.0.5

EnableClaimNumberGeneration
Whether to enable automatic claim number generation (through an external plugin). If you enable claim number
generation, then you must also provide an external Claim Number Generator plugin. If enabled, claim number
generation must succeed in order for a claim to be added through either the New Claim wizard or the integration
tools. This does not affect claims added through staging tables.
Default: true

EnableClaimSnapshot
Whether to create snapshots for imported and created claims. The claim snapshot contains a version of the claim
data before any automated processing by ClaimCenter.
Default: true

EnableStatCoding
Whether to enable statistical coding support.
Default: true

MaintainPolicyValidationLevelOnPolicyChange
If true, any time that you change or refresh the policy for a claim, ClaimCenter validates the new policy at the level
of the old policy. If false, ClaimCenter validates the new policy at the newloss level. In either case, a validation
failure causes ClaimCenter to revert the policy refresh or change.
Default: true

MaxCachedClaimSnapshots
Limits the number of claim snapshots that ClaimCenter caches in memory. This integer value must be 0 or greater,
but less than ten (10).
Default: 3
Minimum: 0
Maximum: 10

MaxStatCodesInDropdown
Maximum number of statistics codes to show in the statistics code picker drop-down.
Default: 20

ProfilerDataPurgeDaysOld
Number of days to keep profiler data before ClaimCenter deletes it.
Default: 30

VendorNotificationAPIRetryTime
Amount of time (in seconds) to wait before attempting to retry a Vendor Notification Message that failed validation.
Default: 10
Set For Environment: Yes

TransactionIdPurgeDaysOld
Number of days to keep external transaction ID records before they can be deleted.
Miscellaneous parameters 77
Configuration Guide 9.0.5

Default: 30

PDF print settings parameters


Guidewire provides the following configuration parameters in the config.xml file that relate to the generation of
PDF files from ClaimCenter.
For information on editing config.xml and setting configuration parameters, see “Working with configuration
parameters” on page 41.

DefaultContentDispositionMode
The Content-Disposition header setting to use when ClaimCenter returns file content directly to the browser. This
parameter applies to printed and exported content. It does not apply to documents. For documents, use the
DocumentContentDispositionMode parameter. Supported settings are inline and attachment.
Default: attachment

PrintFontFamilyName
Use to configure FOP settings for printing non-U.S. character sets. (FOP refers to the Apache Formatting Objects
Processor.) Set this value to the name of the font family for custom fonts as defined in your FOP user configuration
file. For more information, refer to the following:

http://xmlgraphics.apache.org/fop/

Default: san-serif

PrintFontSize
Font size of standard print text.
Default: 10pt

PrintFOPUserConfigFile
Path to FOP user configuration file, which contains settings for printing non-U.S. character sets. (FOP refers to the
Apache Formatting Objects Processor.) Enter a fully qualified path to a valid FOP user configuration file. There is
no default. However, a typical value for this parameter is the following:

C:\fopconfig\fop.xconf

For more information, refer to the following:

http://xmlgraphics.apache.org/fop/

Default: None

PrintHeaderFontSize
Font size of headers in print text.
Default: 16pt

PrintLineHeight
Total size of a line of print text.

78 chapter 2 Application configuration parameters


Configuration Guide 9.0.5

Default: 14pt

PrintListViewBlockSize
Use to set the number of elements in a list view to print as a block. This parameter splits the list into blocks of this
size, with a title page introducing each block of elements. A large block size consumes more memory during
printing, which can cause performance issues. For example, attempting to print a block of several thousand elements
can potentially cause an out-of-memory error.
Default: 20

PrintListViewFontSize
Font size of text within a list view.
Default: 10pt

PrintMarginBottom
Bottom margin size of print page.
Default: 0.5in

PrintMarginLeft
Left margin size of print page.
Default: 1in

PrintMarginRight
Right margin size of print page.
Default: 1in

PrintMarginTop
Top margin size of print page.
Default: 0.5in

PrintMaxPDFInputFileSize
During PDF printing, ClaimCenter first creates an intermediate XML file as input to a PDF generator. If the input is
very large, the PDF generator can run out of memory.

Value Purpose
Negative A negative value indicates that there is no limit on the size of the XML input file to the PDF generator.
Non-negative A non-negative value limits the size of the XML input file to the set value (in megabytes). If a user attempts to
print a PDF file that is larger in size than this value, ClaimCenter generates an error.

Default: -1

PrintPageHeight
Total print height of page.
Default: 8.5in

PDF print settings parameters 79


Configuration Guide 9.0.5

PrintPageWidth
Total print width of page.
Default: 11in

PrintPdfDefaultBaseFileExtension
Default base output file extension for PDF documents.
Default: 11in

PrintPdfMimeType
MIME type used for generated PDF output files.
Default: application/pdf

Print settings parameters


Guidewire provides the following configuration parameters in the config.xml file that relate to printing from
ClaimCenter.
For information on editing config.xml and setting configuration parameters, see “Working with configuration
parameters” on page 41.

PrintCsvDefaultBaseFileExtension
Default base output file extension for CSV documents.
Default: csv

PrintCsvMimeType
MIME type used for generated CSV output files.
Default: application/excel

PrintDefaultBaseFileName
Default base output filename for output generation.
Default: Print

Scheduler and workflow parameters


Guidewire provides the following configuration parameters in the config.xml file that relate to batch process
scheduler and workflow.
For information on editing config.xml and setting configuration parameters, see “Working with configuration
parameters” on page 41.

IdleClaimThresholdDays
ClaimCenter schedules claims that have not been touched (including edits or exception checks) for this many days
for exception detection. This integer value must be 0 or greater.
Default: 7
Dynamic: Yes

80 chapter 2 Application configuration parameters


Configuration Guide 9.0.5

SchedulerEnabled
Whether to enable the internal batch process application scheduler. See the System Administration Guide for more
information on batch processes and the scheduler.
Default: true
Dynamic: Yes

SeparateIdleClaimExceptionMonitor
If true, run exception monitoring rules for idle cases at a separate time.
Default: true

WorkflowLogDebug
Configuration parameter WorkflowLogDebug takes a Boolean value:
• If set to true, ClaimCenter outputs the ordinary verbose system workflow log messages from the Guidewire
server to the workflow log.
• If set to false, ClaimCenter does not output any of the ordinary system messages.
The setting of this parameter does not have any effect on calls to log workflow messages made by customers.
Therefore, all customer log messages are output. If customers experience too many workflow messages being
written to the xx_workflowlog table, Guidewire recommends that you set this parameter to false.
Default: true

WorkflowLogPurgeDaysOld
Number of days to retain workflow log information before PurgeWorkflowLogs batch processing deletes it.
See the System Administration Guide for details.
Default: 30

WorkflowPurgeDaysOld
Number of days to retain workflow information before PurgeWorkflows batch processing deletes it.
See the System Administration Guide for details.
Default: 60

WorkflowStatsIntervalMins
Aggregation interval in minutes for workflow timing statistics. Statistics such as the mean, standard deviation, and
similar statistics used in reporting on the execution of workflow steps all use this time interval. A value of 0 disables
statistics reporting.
Default: 60

Search parameters
Guidewire provides the following configuration parameters in the config.xml file that relate to searching.
For information on editing config.xml and setting configuration parameters, see “Working with configuration
parameters” on page 41.

Scheduler and workflow parameters 81


Configuration Guide 9.0.5

FreeTextSearchEnabled
Whether to enable the free-text search feature. Setting the FreeTextSearchEnabled parameter to true enables the
free-text plugins for indexing and search. Setting the parameter to true also enables the display of the
Search→Claims→Search by Contact screen, which uses free-text search.
Default: false
See also
• “Free-text search configuration parameters and files” on page 414

MaxActivitySearchResults
Maximum number of activities that ClaimCenter returns in a search. If the number to return is greater than this
value, ClaimCenter prompts the user to narrow the search parameters. This integer value must be 1 or greater.
Default: 300

MaxBulkInvoiceSearchResults
Maximum number of bulk invoices that ClaimCenter returns in a search. If the number to return is greater than this
value, ClaimCenter prompts the user to narrow the search parameters. This integer value must be 1 or greater.
Default: 300

MaxCheckSearchResults
Maximum number of checks that ClaimCenter returns in a search. If the number to return is greater than this value,
ClaimCenter prompts the user to narrow the search parameters. This integer value must be 1 or greater.
Default: 300

MaxClaimSearchResults
Maximum number of results that ClaimCenter returns for a claim search. This integer value must be 1 or greater. If
the number or results to return is greater than this value, ClaimCenter prompts the user to narrow the search
parameters.
Default: 300

MaxContactSearchResults
Maximum number of contacts that ClaimCenter returns in a search. If the number to return is greater than this value,
then ClaimCenter prompts the user to narrow the search parameters. This integer value must be 1 or greater.
Default: 300

MaxContactDocumentSearchResults
The maximum number of contact documents search results retrieved from ContactManager.
Default: 100

MaxDocTemplateSearchResults
Maximum number of document templates that ClaimCenter returns in a search. If the number to return is greater
than this value, then ClaimCenter prompts the user to narrow the search parameters. This integer value must be 1 or
greater.
Default: 50

82 chapter 2 Application configuration parameters


Configuration Guide 9.0.5

MaxDuplicateContactSearchResults
Maximum number of duplicate results to return from a contact search. This integer value must be 0 or greater.
Default: 25

MaxNoteSearchResults
Maximum number of notes that ClaimCenter returns in a search. If the number to return is greater than this value,
ClaimCenter prompts the user to narrow the search parameters. This integer value must be 0 or greater. A value of 0
indicates that there is no limit on the search.
Default: 25

MaxPolicySearchResults
Maximum number of policies that ClaimCenter returns in a search. If the number to return is greater than this value,
then ClaimCenter prompts the user to narrow the search parameters. This integer value must be 1 or greater.
Default: 25

MaxRecoverySearchResults
Maximum number of policies that ClaimCenter returns in a search. If the number to return is greater than this value,
then ClaimCenter prompts the user to narrow the search parameters. This integer value must be 1 or greater.
Default: 300

Security parameters
Guidewire provides the following configuration parameters in the config.xml file that relate to application security.
For information on editing config.xml and setting configuration parameters, see “Working with configuration
parameters” on page 41.

EnableDownlinePermissions
If UseACLPermissions is true, then setting this parameter to true means that supervisors inherit permissions on an
object that has been added for a supervised user or group.
Default: true

FailedAttemptsBeforeLockout
Number of failed attempts that ClaimCenter permits before locking out a user. For example, setting this value to 3
means that the third unsuccessful try locks the account from further repeated attempts. This integer value must be 1
or greater. A value of -1 disables this feature.
Default: 3
Minimum: -1

LockoutPeriod
Time in seconds that ClaimCenter locks a user account. A value of -1 indicates that a system administrator must
manually unlock a locked account.
Default: -1

Search parameters 83
Configuration Guide 9.0.5

LoginRetryDelay
Time in milliseconds before a user can retry after an unsuccessful login attempt. This integer value must be 0 or
greater.
Default: 0
Minimum: 0

MaxACLParameters
Maximum number of users and groups to directly include in search queries that check the claim access control list.
Beyond this maximum limit, ClaimCenter stores users and groups in database tables. You must then use an
additional join in the query to check the claim access control list.
Checking the claim access control list can involve a large number of groups and users. For example, if
EnableDownlinePermissions is true, someone who supervises many groups and users has access to control lists
that contain any of their supervisees. Including all these groups and users in the query can be done directly by
including them as parameters to the query. Or, you can store them in database tables and doing extra joins in the
query.
For small numbers of groups and users, direct parameters are the best choice. For large numbers, in the range of
thousands, the extra join can be better. This parameter, MaxACLParameters, determines the point at which the query
code switches from using direct parameters to using extra joins.
The MaxACLParameters can take the following values:
• A value of -1 or less – Instructs ClaimCenter to use the appropriate default for the current database. Thus,
ClaimCenter chooses the best value, as determined by Guidewire performance testing, for the current type of
database.
• A value of 0 – Instructs ClaimCenter to always use parameters, and to never use a join in a query. This works
even for very large numbers of groups and users, 3000 or more, on an Oracle database. However, it is not suitable
for the SQL Server database, which limits the total number of parameters to 2100.
• A value of +1 or greater – Instructs ClaimCenter to use that value as a threshold. If the number of groups and
users is less than the threshold, then a query uses parameters. If the number is larger the threshold, a query uses
database tables and extra joins. Guidewire strongly recommends that you do not use a positive value for the
Oracle database. This is because the Oracle database can cope with large numbers of parameters, but tends to
choose very bad query plans for the extra joins.
In summary, Guidewire recommends that most ClaimCenter installations use the default value of -1, which chooses
the best value for the current database type.

Database Notes
SQL Server For those ClaimCenter installations that use SQL Server as the database, Guidewire recommends the following:
• Do not set this value to 0.
• Do not set it to any value greater than approximately 2000 due to the risk of hitting the 2100 parameter limit.
Oracle For those ClaimCenter installations that use the Oracle database. Guidewire expressly recommends that you do
not use positive values due to the risk of bad query plans.

Default: -1

MaxPasswordLength
New passwords must be no more than this many characters long. This integer value must be 0 or greater.
Default: 16

84 chapter 2 Application configuration parameters


Configuration Guide 9.0.5

MinPasswordLength
New passwords must be at least this many characters long. For security purposes, Guidewire recommends that you
set this value to 8 or greater. This integer value must be 0 or greater. If 0, then Guidewire ClaimCenter does not
require a password. (Guidewire does not recommend this.)
Default: 8
Minimum: 0

RestrictContactPotentialMatchToPermittedItems
Whether ClaimCenter restricts the match results from a contact search screen to those that the user has permission to
view.
Default: true

RestrictSearchesToPermittedItems
Whether ClaimCenter restricts the results of a search to those that the user has permission to view.
Default: true

SessionTimeoutSecs
Use to set the browser session expiration timeout, in seconds. By default, a session expires after three hours (60 * 60
* 3 = 10800 seconds).
• The minimum value to which you can set this parameter is five minutes (60 * 5 = 300 seconds).
• The maximum value to which you can set this parameter is one week (3600 * 24 * 7 = 604800 seconds)
This value sets the session expiration timeout globally for all ClaimCenter browser sessions. See the System
Administration Guide for information on how to set the session timeout at a more granular level.
Default: 10800
Minimum: 300
Maximum: 604800

UseACLPermissions
Whether to use the ACL permission model.
• If false, the privilege that a user holds applies to every claim.
• If true, the ClaimAccess table controls claim access.
Default: true

Segmentation parameters
Guidewire provides the following configuration parameters in the config.xml file that relate to claim and exposure
segmentation.
For information on editing config.xml and setting configuration parameters, see “Working with configuration
parameters” on page 41.

ClaimSegment
Default value to set the Segment field to on a claim, if ClaimCenter cannot determine another segment.
Required: Yes

Security parameters 85
Configuration Guide 9.0.5

ClaimStrategy
The default value to set the Strategy field to on a claim, if ClaimCenter cannot determine another strategy.
Required: Yes

ExposureSegment
Default value to set the Segment field to on an exposure, if ClaimCenter cannot determine another segment.
Required: Yes

ExposureStrategy
Default value to set the Strategy field on an exposure, if ClaimCenter cannot determine another strategy.
Required: Yes

Service request parameters


Guidewire provides the following configuration parameters in the config.xml file that relate to claim and exposure
segmentation.
For information on editing config.xml and setting configuration parameters, see “Working with configuration
parameters” on page 41.

ServiceRequestAPIMaxDaysKeepActiveWithoutInvoice
Maximum number of days that a service request will be considered active by the ServiceRequestAPI when it is
work complete but has no valid invoices.
Default: 90
Set For Environment: Yes

ServiceRequestAPIMaxMessageResults
Maximum number of service request messages returned through the ServiceRequestAPI web service.
Default: 50
Set For Environment: Yes

ServiceRequestAPIMaxSearchResults
Maximum number of service requests returned by a search performed through the ServiceRequestAPI web service.
Default: 250
Set For Environment: Yes

Statistics, team, and dashboard parameters


Guidewire provides the following configuration parameters in the config.xml file that relate to ClaimCenter
statistics, the Team tab, and the Dashboard.
For information on editing config.xml and setting configuration parameters, see “Working with configuration
parameters” on page 41.

86 chapter 2 Application configuration parameters


Configuration Guide 9.0.5

AddIndexHintForLossDate
Applies only when running on an Oracle database. When true, improves the performance of a particular database
query that is executed on the Desktop Activities screen. This parameter enables a database hint on the index
Claim.claimu7u. Therefore, if you modify this index, then you may have better performance on the Desktop
Activities screen by setting this parameter to false, thereby disabling the hint.
Default: true

AgingStatsFirstDivision
Number of days to use in calculating the first claim aging bucket. This bucket includes claims between 0 and
AgingStatsFirstDivision days old. This integer value must be 0 or greater.
Default: 30

AgingStatsSecondDivision
Number of days to use in calculating the second claim aging bucket. This bucket includes claims between
AgingStatsFirstDivision + 1 and AgingStatsSecondDivision days old. This integer value must be 0 or
greater.
Default: 60

AgingStatsThirdDivision
Number of days to use in calculating the third claim aging bucket. This bucket includes claims between
AgingStatsSecondDivision + 1 and AgingStatsThirdDivision days old. The last bucket includes all claims
older than AgingStatsThirdDivision days. This integer value must be 0 or greater.
Default: 120

CalculateLitigatedClaimAgingStats
Whether to show the number of litigated claims on the Aging subtab of the Team tab.
Default: true

DashboardIncurredLimit
Total incurred amount above which ClaimCenter counts the claim as over-the-limit in executive dashboard
calculations.
Default: 1000000

DashboardShowByCoverage
Whether the Dashboard shows claim information subtotaled by coverage.
Default: true

DashboardShowByLineOrLoss
Whether the Dashboard shows claim information subtotaled by line of business or loss type.
Default: true

DashboardWindowPeriod
Number of days to use for executive dashboard calculations that depends on a specific time period.
Default: 30

Statistics, team, and dashboard parameters 87


Configuration Guide 9.0.5

GroupSummaryShowUserGlobalWorkloadStats
Whether to show individual user global workload statistics along with the standard statistics in the Team Summary
page.
Default: true

UserStatisticsWindowSize
Time window for calculating user statistics. Set this value to the number of previous days to include in the
calculation. For example, set it to 10 to calculate statistics for the last 10 days, including today. You can also set this
parameter to one of the following special values:

Value Description
0 This week, defined as the start of the current business week up to and including today.
-1 This month, defined as the start of the current month up to and including today.

Default: 0

User interface parameters


Guidewire provides the following configuration parameters in t he config.xml file that relate to the ClaimCenter
interface.
For information on editing config.xml and setting configuration parameters, see “Working with configuration
parameters” on page 41.

ActionsShortcut
The keyboard shortcut to use for the Actions button.
Default: A

AutoCompleteLimit
The maximum number of autocomplete suggestions to show.
Default: 10

HidePolicyObjectsWithNoCoveragesForLossTypes
It is possible to add a coverage at either the Policy level, or, directly on the covered item (a vehicle, for example).
This parameter applies to coverages applied at the Policy level, rather than those coverages applied to individual
items covered in the policy. It affects the individual coverage submenus in the ClaimCenter Actions→New
Exposure→Choose by Coverage submenu. To remove (hide) empty Vehicle and Property submenus for a specific loss
type, add that loss type to the list.
It is also possible to create this same application behavior by adding a typekey to a typefilter of the same name as
this configuration parameter on the LossType typelist. If you added to the typefilter to modify the behavior of the
New Exposure menu, you can implement this change during a rolling upgrade of the ClaimCenter cluster application
servers. Conversely, if you implement this behavior by modifying file config.xml, then you need to perform a full
database upgrade to implement your changes.
Default: None

88 chapter 2 Application configuration parameters


Configuration Guide 9.0.5

HighlyLinkedContactThreshold
Use to improve application performance related to viewing a contact in the ClaimCenter Address Book tab or through
the Claim Summary page. Attempting to view a contact with a large number of links can create performance issues. If
a user is viewing a highly linked contact, then ClaimCenter issues a warning if the user clicks on a card that can
result in an expensive query. The user must click another button before viewing the contact’s related claims,
activities, exposures or matters as these views put a heavy load on the database. This parameter sets the threshold
value for the number of links to a contact that generates the warning.
Note: If you set the threshold value to 0, then ClaimCenter considers no contact to be highly linked.
Default: None

IgnorePolicyTotalPropertiesValue
If true, the policy properties screens suppress the message telling the user whether all of the properties that appear
on the policy have been downloaded to the ClaimCenter policy snapshot.
• Set this value to true if the policy adapter is not capable of returning a meaningful value for
Policy.TotalProperties.
• Set this value to false otherwise.
Default: false

IgnorePolicyTotalVehiclesValue
If true, the policy vehicles screens suppress the message telling the user whether all of the vehicles that appear on
the policy have been downloaded to the ClaimCenter policy snapshot.
• Set this value to true if the policy adapter is not capable of returning a meaningful value for
Policy.TotalVehicles.
• Set this value to false otherwise.
Default: false

InputMaskPlaceholderCharacter
The character to use as a placeholder in masked input fields.
Default: . (period)

ListViewPageSizeDefault
The default number of entries that ClaimCenter displays in each page in a list view, if the page does not explicitly
specify this value. This integer value must be at least 1.
Default: 15
Minimum: 1

MaxBrowserHistoryItems (obsolete)
This parameter is obsolete. Do not use it.

MaxChooseByCoverageMenuItems
Maximum number of vehicles or properties that ClaimCenter displays in the New Exposure→Choose by Coverage
menu. If the number to return exceeds this limit, ClaimCenter prompts the user to use the Coverage Type menu
instead. This integer value must be 1 or greater.
Default: 15

User interface parameters 89


Configuration Guide 9.0.5

MaxChooseByCoverageTypeMenuItems
Maximum number of coverage types that ClaimCenter displays in the New Exposure→Choose by Coverage Type menu.
If the number to return exceeds this limit, ClaimCenter splits the coverage types into alphabetic submenus. This
integer value must be 1 or greater.
Default: 15

MaxClaimantsInClaimListViews
Maximum number of claimants to list for each claim in a list view. This integer value must be 0 or greater. If set to
0, ClaimCenter does not impose a limit.
Default: 0

MaxTeamSummaryChartUserBars
Maximum number of users to show in the chart on the Team Summary page. Set this parameter to 0 to remove the
chart entirely. Otherwise, the chart displays statistics for the top N users, and groups the others into a bar labeled All
Other Users. This integer value must be 0 or greater.
Default: 10

QuickJumpShortcut
The keyboard shortcut to use to activate the QuickJump box.
Default: / (forward slash)

RequestReopenExplanationForTypes
The set of re-openable entities for which, if reopened, ClaimCenter displays a screen for the user to enter a reason
and note. Enter as a comma-separated list.
Default: Claim,Exposure,Matter

ShowCurrentPolicyNumberInSelectPolicyDialog
Whether to populate the select policy dialog with the policy number for the current policy for a claim.
Default: false

ShowFixedExposuresInLossDetails
Works with ShowNewExposureMenuForLossTypes.
• If true, claims that do not have the New Exposure menu have a fixed list of exposures that can be shown through
tabs on the Claim Loss page.
• If false, claims that do not have the New Exposure menu have a fixed list of exposures that can be shown through
separate top-level page links in the claim file.
Default: false

ShowNewExposureChooseByCoverageMenuForLossTypes
In the base application configuration, the ClaimCenter Actions→New Exposure menu contains two submenus, one of
which is the Choose By Coverage submenu. Use this parameter to specify for which loss types you can access the
Choose By Coverage submenu. Guidewire recommends that omit WC from the list of loss types.

90 chapter 2 Application configuration parameters


Configuration Guide 9.0.5

In modifying this parameter:


• Deleting one of the default parameter values removes the Choose by Coverage submenu for that loss type.
• Adding a value to the default parameter values list adds a Choose by Coverage submenu for that loss type. Add
your new loss type typecode to the existing comma-separated list of values.
It is also possible to create this same application behavior by adding a typekey to a typefilter of the same name as
this configuration parameter on the LossType typelist. If you added to the typefilter to modify the behavior of the
New Exposure menu, you can implement this change during a rolling upgrade of the ClaimCenter cluster application
servers. Conversely, if you implement this behavior by modifying file config.xml, then you need to perform a full
database upgrade to implement your changes.

Important
If you add a new value to the list of loss types in this configuration parameter, then you must also add that value to
configuration parameter ShowNewExposureMenuForLossTypes.
This caveat applies also if you modify one of the typefilters on the LossType typelist.
Default: AUTO,PR,GL,TRAV

ShowNewExposureChooseByCoverageTypeMenuForLossTypes
In the base application configuration, the ClaimCenter Actions→New Exposure menu contains two submenus, one of
which is the Choose By Coverage Type submenu. Use this parameter to specify for which loss types you can access the
Choose By Coverage submenu.
In modifying this parameter:
• Deleting one of the default parameter values removes the Choose by Coverage Type submenu for that loss type.
• Adding a value to the default parameter values list adds a Choose by Coverage Type submenu for that loss type. Add
your new loss type typecode to the existing comma-separated list of values.
It is also possible to create this same application behavior by adding a typekey to a typefilter of the same name as
this configuration parameter on the LossType typelist. If you added to the typefilter to modify the behavior of the
New Exposure menu, you can implement this change during a rolling upgrade of the ClaimCenter cluster application
servers. Conversely, if you implement this behavior by modifying file config.xml, then you need to perform a full
database upgrade to implement your changes.

Important
If you add a new value to the list of loss types in this configuration parameter, then you must also add that value to
configuration parameter ShowNewExposureMenuForLossTypes.
This caveat applies also if you modify one of the typefilters on the LossType typelist.
Default: AUTO,PR,GL,TRAV

ShowNewExposureMenuForLossTypes
Use to specify the ClaimCenter Actions→New Exposure menu for a specific loss type. Essentially, this parameter
determines for which loss types it is possible to create a new exposure.
In modifying this parameter:
• Deleting one of the default parameter values removes the New Exposure menu for that loss type. Removing the New
Exposure menu for a loss type also hides the Exposures step in the New Claim wizard for that loss type.
• Adding a value to the default parameter values list adds a Choose by Coverage Type submenu for that loss type. Add
your new loss type typecode to the existing comma-separated list of values.
It is also possible to create this same application behavior by adding a typekey to a typefilter of the same name as
this configuration parameter on the LossType typelist. If you added to the typefilter to modify the behavior of the
New Exposure menu, you can implement this change during a rolling upgrade of the ClaimCenter cluster application

User interface parameters 91


Configuration Guide 9.0.5

servers. Conversely, if you implement this behavior by modifying file config.xml, then you need to perform a full
database upgrade to implement your changes.

Important
If you add a new value to the list of loss types in ShowNewExposureMenuForLossTypes, you must also add that
value to one, or both, of the following configuration parameters:
• ShowNewExposureChooseByCoverageMenuForLossTypes
• ShowNewExposureChooseByCoverageTypeMenuForLossTypes
This requirement also applies if you modify one of the typefilters on the LossType typelist.
Default: AUTO,PR,GL,TRAV

UISkin
Name of the ClaimCenter interface skin to use.
Default: theme-9

WebUIAJAXTimeout
Number of seconds that the ClaimCenter web client waits after issuing a call to the ClaimCenter server. If the server
does not respond within this time, the web client assumes that the server is offline, terminates all connections, and
displays an error. You may want to increase this value if you are performing data-intense operations that take a long
time to process.
Default: 600

Work queue parameters


Guidewire provides the following configuration parameters in the config.xml file that relate to the work queue.
For information on editing config.xml and setting configuration parameters, see “Working with configuration
parameters” on page 41.
For information on work queues in general, see the System Administration Guide.

InstrumentedWorkerInfoPurgeDaysOld
Number of days to retain instrumentation information for a worker instance before ClaimCenter deletes it.
Default: 45

WorkItemCreationBatchSize
The maximum number of work items for a work queue writer to create for each transaction.
Default: 100

WorkItemPriorityMultiplierSecs
Used to calculate the AvailableSince field for new work items. For new work items without a priority,
ClaimCenter sets AvailableSince to the current time. Later, ClaimCenter checks out work items from the work
queue in ascending order by AvailableSince, so work items without a priority are checked out in the order they
were created.
You can assign a priority to new work items by implementing the Work Item Priority plugin
(IWorkItemPriorityPlugin). For new work items with a priority, ClaimCenter sets AvailableSince according to
the following formula:

92 chapter 2 Application configuration parameters


Configuration Guide 9.0.5

workItem.AvailableSince = CurrentTime – (workItem.Priority * WorkItemPriorityMultiplierSecs)

Work items with higher priorities have earlier AvailableSince values than work items with lower priorities.
Therefore, work items with higher priorities are checked out before ones with lower priorities because their
AvailableSince values are earlier.
Priority influences the calculation of AvailableSince only at the time work items are created. If a worker throws an
exception while processing a work item, ClaimCenter reverts the status of the work item from checkedout to
available. At the same time, ClaimCenter resets AvailableSince according to the following formula:

workItem.AvailableSince = CurrentTime + RetryInterval

Work items are retried in the order they encounter exceptions, irrespective of priority.

IMPORTANT Prioritization affects only work items of type WorkflowWorkItem or its derivatives.

Default: 600

WorkItemRetryLimit
The maximum number of times that ClaimCenter retries an orphaned or failed work item.
Guidewire logs a ConcurrentDataChangeException generated by workers at different levels depending on context.
If the ConcurrentDataChangeException occurs on processing the work items, ClaimCenter logs the error only if
the number of attempts exceeds the configured value of the WorkItemRetryLimit. Otherwise, ClaimCenter logs the
debug message instead.
The value for WorkItemRetryLimit applies to all work queues unless overridden in work-queue.xmlby
retryLimit for specific work queues. For more information on tuning work queue performance by adjusting the
number of retries, see the System Administration Guide.
Default: 3

WorkQueueHistoryMaxDownload
The maximum number of ProcessHistory entries to consider when producing the Work Queue History download.
The valid range is from 1 to 525600. (The maximum of 525,600 is 60*24*365, which is one writer running every
minute for a year.)
Default: 10000

WorkQueueThreadPoolMaxSize
Maximum number of threads in the work queue thread pool. This must be greater than or equal to
“WorkQueueThreadPoolMinSize” on page 93. All threads that are not core threads are additional on-demand
threads. ClaimCenter terminates any idle on-demand threads after the period of time defined by configuration
parameter WorkQueueThreadsKeepAliveTime.
Default: 50
Set For Environment: Yes

WorkQueueThreadPoolMinSize
Minimum number of core threads in the work queue thread pool.
Default: 0
Set For Environment: Yes

Work queue parameters 93


Configuration Guide 9.0.5

WorkQueueThreadsKeepAliveTime
Keep alive timeout (in seconds) for additional on-demand threads in the work queue thread pool. An additional on-
demand thread is terminated if it is idle for more than the time specified by this parameter.
Default: 60
Set For Environment: Yes

94 chapter 2 Application configuration parameters


part 2

The Guidewire development


environment
Configuration Guide 9.0.5
chapter 3

Getting started

This topic describes Guidewire Studio, which is the ClaimCenter administration tool for creating and managing
ClaimCenter resources. (Studio resources include Gosu rules, classes, enhancements, script parameters, and the
ClaimCenter data model files.) Using Guidewire Studio, you can do the following:
• Create and edit individual rules, and manage these rules and their order of consideration within a rule set
• Create and manage PCF pages, workflows, entity names, and display keys
• Create and manage Gosu classes
• Access rule sets, Gosu classes, and other resources stored in a SCM (Software Configuration Management)
system

What Is Guidewire Studio?


Guidewire Studio is the IDE (integrated development environment) for creating and managing ClaimCenter
application resources. These resources include Gosu rules, classes, enhancements and plugins, and all configuration
files used by ClaimCenter to build and render the application.
Guidewire Studio is based upon IntelliJ IDEA Community Edition, a powerful and popular IDE.
Using Guidewire Studio, you can:
• Create and edit individual rules, and manage these rules and their order of consideration within a rule set
• Create and manage PCF pages, workflows, entity names, and display keys
• Create and manage Gosu classes and entity enhancements
• Create and manage the ClaimCenter data entities, business objects, and data types
• Manage plugins and message destinations
• Configure database connections

Getting started 97
Configuration Guide 9.0.5

IMPORTANT Do not create installation directories that have spaces in the name. This can prevent Guidewire
Studio from functioning properly.

The Studio development environment


Guidewire Studio is a stand-alone development application that runs independently of Guidewire ClaimCenter. You
use Studio to build and test application customization in a development or test mode before deploying your changes
to a production server. Any changes that you make to application files through Studio do not automatically
propagate into production. You must specifically build a .war or .ear file and deploy it to a server for the changes
to take effect. (Studio and the production application server—by design—do not share the same configuration file
system.)
Guidewire recommends that you not run Studio on a machine with an encrypted hard drive. If you run Guidewire
Studio on a machine with hard drive encryption, Studio can take 15 or more seconds to refresh. This slow refresh
can happen when you switch focus from the Studio window to something else, such as the browser, and back again.
To assist with this development and testing process, Guidewire bundles the following with the ClaimCenter
application:
• A QuickStart development server
• A QuickStart database
• A QuickStart server used for testing that you cannot control
• A QuickStart database used for testing that is separate from the QuickStart development database
The following diagram illustrates the connections between Guidewire Studio, the bundled QuickStart applications,
the local file system, and the ClaimCenter application server. You use the QuickStart test server and test database for
testing only as ClaimCenter controls them internally. You can use either the bundled QuickStart development server
bundled with Guidewire ClaimCenter or use an external server such as Tomcat. In general, dotted lines indicate
actions on your part that you perform manually. For example, you must manually create a .war or .ear file and
manually move it to the production server. The system does not do this for you.

98 chapter 3 Getting started


Configuration Guide 9.0.5

Local (Development) Environment Production


Application Server

Guidewire
Studio
Debug
Development Debug
QuickStart
Server
Test
Server
ClaimCenter
QuickStart Database Application
and
Check Out/Submit

Configuration
Files
Database
Local
Configuration WAR / EAR
Files

SCM
System

ClaimCenter Database

Working with the QuickStart development server


It is possible to use any of the supported application servers in a development environment, rather than the
embedded QuickStart server. To do so, you need to point ClaimCenter to the configuration resources edited by
Guidewire Studio. This requires additional configuration, described for each application server type in the
Installation Guide.
For information on starting and testing the QuickStart server from within Studio, see “Testing ClaimCenter with
Guidewire Studio” on page 511.

Connecting the development server to a database


ClaimCenter running on the QuickStart development server can connect to the same kinds of databases as any of the
other Guidewire-supported application servers. However, for performance reasons, Guidewire recommends that you
use the bundled QuickStart database. Guidewire optimizes this database for fast development use. It can run in either
of the following modes:

Mode Description
file mode The database persists data to the hard drive (the local file system), which means that the data can live from
one server start to another. This is the Guidewire-recommended default configuration.
memory mode The database does not persist data to the hard drive and it effectively drops the database each time you
restart the server. Guidewire does not recommend this configuration.

You set configuration parameters for the QuickStart database associated with the development server in database-
config.xml. For example:

Working with the QuickStart development server 99


Configuration Guide 9.0.5

<!-- H2 (meant for development/quickstart use only!) -->


<database
name="ClaimCenterDatabase"
dbtype="h2">
<dbcp-connection-pool
jdbc-url="jdbc:h2:file:/tmp/guidewire/cc"/>
<upgrade
defer-create-nonessential-indexes="false"/>
</database>

Set the database mode

About this task


In the base configuration, the QuickStart database runs in file mode. You set the database mode using the jdbc-url
attribute. In file mode, the jdbc-urlattribute value specifies an actual file location. For example:

jdbc-url="jdbc:h2:file:/tmp/guidewire/cc"

The default file location in the base configuration is /tmp/guidewire/cc.

Drop the QuickStart database

About this task


Occasionally, you may want (or need) to drop the QuickStart database. For example, Guidewire recommends that
you drop the QuickStart database if you make changes to the ClaimCenter data model.
Drop the database from the command line
• At the command prompt, run gwb dropDb.
Drop the database manually
• Delete the files from the directory specified by the jdbcURL parameter (by default, <root>/tmp/guidewire/cc).
The server must be stopped when you delete the directory.

Deploying your configuration changes


About this task
To deploy your configuration changes to an actual production server, you must build a .war or .ear file and deploy
it on the application server. By design, you cannot directly deploy configuration files from Studio to the application
server.
As the bundled QuickStart development server and Studio share the same configuration directory, you do not need
to deploy your configuration changes to the QuickStart development server.
Hot-deploy PCF files
Editing and saving PCF files in the Page Configuration (PCF) editor does not automatically reload them in the
QuickStart server, even if there is a connection between it and Studio. You do not actually need to be connected to
the server from Studio to reload PCF files.
You can also reload display keys this way, as well.

Procedure
1. Navigate to the ClaimCenter web interface on the deployment server, and log in.
2. Reload the PCF configuration using either the Internal Tools page or the Alt+Shift+L shortcut.

Result
Hot-deploy Gosu files

100 chapter 3 Getting started


Configuration Guide 9.0.5

Editing and saving Gosu files in Studio does not automatically reload them in the QuickStart server, even if there is
a connection between it and Studio. To reload the Gosu files, do one of the following:
• To recompile all files, click Build→Compile.
• To compile only files that were changed since the last compile, click Build→Make Project.

ClaimCenter configuration files


WARNING Do not attempt to modify any files other than those in the ClaimCenter/modules/configuration
directory. Any attempt to modify files outside of this directory can cause damage to the ClaimCenter
application and prevent it from starting thereafter.

Installing Guidewire ClaimCenter creates the following directory structure:

Directory Description
.gradle Configuration and settings for Gradle, the project build tool.
.idea Configuration and settings for IntelliJ IDEA, the foundation for Guidewire Studio.
admin Administrative tools. See the System Administration Guide for descriptions.
bin Deprecated. The gwcc batch file and shell script used to launch commands for building and deploying. These
commands are deprecated, and are provided only for backwards compatibility with previous releases. For the
updated commands, see the Installation Guide.
build The output of build commands such as exploded .war and .ear files and the data and security dictionaries. This
directory is not present when you first install ClaimCenter. The directory is created when you run one of the
build commands.
dist Guidewire application .ear, .war, and .jar files are built in this directory. The directory is created when you run
one of the build commands to generate .war or .ear files.
doc HTML and PDFs of ClaimCenter documentation.
gradle Support files for Gradle, the project build tool.
java-api The Java API libraries created by running the gwb genJavaApi command. See the Integration Guide.
javadoc Reference documentation for the Java API libraries.
licenses License information for third-party tools used by ClaimCenter.
logs Application log files.
modules Subdirectories including configuration resources for each application component.
repository Necessary ClaimCenter files.

solr Installation and support files for the Solr free text search platform. See “Free-text search configuration” on page
411.
studio Application files for Guidewire Studio.
ThemeApp Files defining the user interface styling for ClaimCenter.
webapps Necessary files for use by the application server.

Edited Resource Files Reside in the Configuration Module Only


The configuration module is the only place for configured resources. As ClaimCenter starts, a checksum process
verifies that no files have been changed in any directory except for those in the configuration directory. If this
process detects an invalid checksum, ClaimCenter does not start. In this case, overwrite any changes to all modules
except for the configuration directory and try again.

ClaimCenter configuration files 101


Configuration Guide 9.0.5

Guidewire recommends that you use Studio to edit configuration files to minimize the risk of accidentally editing a
file outside the configuration module.

Key directories
The installation process creates a configuration environment for ClaimCenter. In this environment, you can find all
of the files needed to configure ClaimCenter in two directories:
• The main directory of the configuration environment. In the default ClaimCenter installation, the location of this
directory is ClaimCenter/modules/configuration.
• ClaimCenter/modules/configuration/config contains the application server configuration files.
The installation process also installs a set of system administration tools in ClaimCenter/admin/bin.
ClaimCenter runs within a J2EE server container. To deploy ClaimCenter, you build an application file suitable for
your server and place the file in the server’s deployment directory. The type of application file and the deployment
directory location is specific to the application server type. For example, for ClaimCenter (deployed as the cc.war
application) running on a Tomcat J2EE server on Windows, the deployment directory might be C:\Tomcat\webapps
\cc.

Studio and IntelliJ IDEA configuration


Guidewire Studio is based upon IntelliJ IDEA Community Edition. You can configure many aspects of Studio using
the same configuration that you would use for the standalone IntelliJ IDEA application. Some configuration changes
require special procedures. This topic describes the following:
• “Using Studio with IntelliJ IDEA Ultimate Edition” on page 102
• “Setting IntelliJ IDEA properties in Studio” on page 102

Using Studio with IntelliJ IDEA Ultimate Edition


About this task
Guidewire Studio is bundled with the Community Edition of IntelliJ IDEA, a free version of this popular IDE. If
desired, you can configure Studio to work with the Ultimate Edition of IntelliJ IDEA instead. To use the Ultimate
Edition, you must obtain your own license for it from IntelliJ. For information about the supported versions of
IntelliJ IDEA Ultimate, visit the Guidewire Community and search for knowledge article 1005, “Supported
Software Components”.

Procedure
1. In your ClaimCenter installation directory, create a text file named studio.ultimate that contains the full
path of your IntelliJ IDEA Ultimate Edition installation directory. For example:
C:\Program Files (x86)\JetBrains\IntelliJ IDEA 15.0.6
2. Run Guidewire Studio.
3. When prompted for your IntelliJ IDEA Ultimate Edition license, provide it.

Setting IntelliJ IDEA properties in Studio


About this task
In the standalone IntelliJ IDEA application, you can set various properties by editing the idea.properties file. In
Guidewire Studio, you cannot edit idea.properties directly. Instead, do the following:

Procedure
1. Edit the file ClaimCenter/modules/script/gw-build.gradle.

102 chapter 3 Getting started


Configuration Guide 9.0.5

2. Locate the studio section:

studio {
...
}

3. Within this section, set any properties that are valid in the idea.properties file by adding a statement in the
following format:

ideaProperties["property_name"] = "property_value"

For example, to disable the IntelliJ IDEA cycle buffer, set the following:

ideaProperties["idea.cycle.buffer.size"] = "disabled"

Note: Do not modify other sections of the gw-build.gradle file.


4. Restart Studio.

Studio and the DCEVM


The ClaimCenter application server and Guidewire Studio require a JVM (Java Virtual Machine). The version of the
JVM depends on the servlet container and operating system on which the application server runs.
Guidewire strongly recommends the use of the DCEVM for development in the QuickStart environment. Guidewire
does not support the DCEVM for other application servers or in a production environment.
The Dynamic Code Evolution Virtual Machine (DCEVM) is a modified version of the Java HotSpot Virtual
Machine (VM). The DCEVM supports any redefinition of loaded classes at runtime. You can add and remove fields
and methods and make changes to the super types of a class using the DCEVM. The DCEVM is an improvement to
the HotSpot VM, which only supports updates to method bodies.

DCEVM Limitations
If you reload Gosu classes using hotswap on the DCEVM, it is possible to add new static fields (again, only on the
DCEVM). However, Gosu does not execute any initializers for those static variables. For example, if you add the
following static field to a class:

public static final var NAME = "test"

Gosu adds the NAME field to the class dynamically. However, the value of the field is null until you restart the server
(or Studio, if you are running the code from the Studio Gosu Scratchpad). If you need to initialize a newly added
static field, you must write a static method that sets the variable and then executes that code.
For example, suppose that you added the following static method to class MyClass:

public static var x : int = 10

To initialize this field, write code to set the static variable to the value that you expect and then execute that code:

MyClass.x = 10

This does not work if the field is final.

Studio and the DCEVM 103


Configuration Guide 9.0.5

Note: Adding an instance variable rather than a static variable with an initializer also results in null values on
existing instances of the object. However, any newly-constructed instances of the object will have the field
initialized.
See also
• For details on how to select the proper JVM for your installation, see the Installation Guide.

Start Guidewire Studio


Procedure
1. Open a command window.
2. Navigate to the application directory.
3. At the command prompt, type:

gwb studio

Result
The first time that you start Guidewire Studio, it may take some extra time to load and index configuration data.
Subsequent starts, however, generally load much more quickly.

Stop Guidewire Studio


Procedure
Click File→Exit. You can also stop Studio by closing its window (by clicking the x in the upper right-hand corner of
the window).

Updating Guidewire Studio


Guidewire Studio can be updated to a newer release independently of your application, and without requiring a full
reinstallation. Studio can detect when Guidewire posts a Studio update, and then download and apply the update. If
desired, you can manually download and apply updates instead.

Enable or disable automatic update checks


About this task
Studio can automatically check an update site to determine if an update is available. If enabled, the automatic check
occurs at the following times:
• each time Studio is run
• if Studio is left running, every 24 hours after it was first run
If an update is available, Studio notifies you and prompts you to download and apply it.

Procedure
1. Click File→Settings.
2. In the Settings dialog, in the navigation list, click Guidewire Studio.
3. In the Update section, select or clear the Check Automatically check box.

104 chapter 3 Getting started


Configuration Guide 9.0.5

Manually check for Studio updates


About this task
If an update is available, Studio notifies you and prompts you to download and apply it.
• Click Help→Check for Studio Update.

Setting the Studio update site


To determine whether an update is available, Studio contacts an update site. If an update is available, Studio
downloads the update.
The update site can be one of the following:
• a secure site managed by Guidewire
• an internal site managed by you

Use the Guidewire update site for Studio updates

About this task


Guidewire provides a secure site that Studio can contact to download updates.
Note: The Guidewire update site is a secure server that only Studio can access. You cannot access this server
yourself, such as by using a web browser.

Procedure
1. Click File→Settings.
2. In the Settings dialog, in the navigation list, click Guidewire Studio.
3. In the Update section, set the Update Site URL text box to the following:
https://studio-release.guidewire.com/releases/

Use an internal site for Studio updates

About this task


Instead of having Guidewire Studio download updates from the update server managed by Guidewire, you can set
up your own internal update site. You may want to use an internal update site if you have multiple Studio
installations that do not have Internet access to the Guidewire update server. You can also use an internal update site
to closely manage when your Studio installations are updated.
Your update site can be a web server, FTP server, network file share, or any location accessible using standard URL
protocols such as http, ftp, file, and so on.

Procedure
1. Download the Studio update files. See “Download update files from the Guidewire Community” on page 106.
2. Place the Studio update files in the shared location in your update site. You must include both the latest
studio-*.zip file, and also the metadata.txt file
3. In Studio, click File→Settings.
4. In the Settings dialog, in the navigation list, click Guidewire Studio.
5. In the Update section, set the Update Site URL text box to the URL of your update site.
6. Repeat from step 3 for each instance of Studio that updates from your update site.

Updating Guidewire Studio 105


Configuration Guide 9.0.5

Updating Studio manually


Instead of having Guidewire Studio download updates from an update server, you can manually update Studio when
desired. You may want to manually update Studio if you have multiple Studio installations that do not have access to
an update server. You can also manually update Studio to closely manage when your Studio installations are
updated.
You can obtain the Studio update files from either the Guidewire Community or a Studio installation that has already
been updated. Once you have the files, you can install them in the Studio instance that you want to update.
See also
• “Download update files from the Guidewire Community” on page 106
• “Copy update files from an updated Studio installation” on page 106
• “Manually install the Studio update files” on page 106

Download update files from the Guidewire Community


You can download the Studio update files from the Guidewire Community.
1. Browse to the Guidewire Community, on the same page where your Guidewire application download is
available.
2. Click the link to the Studio Update page.
3. Download the following files:
• The studio-*.zip file with the highest release number.
• If you are setting up an internal site for Studio updates, also download the file metadata.txt.
See also
• “Manually install the Studio update files” on page 106.

Copy update files from an updated Studio installation

About this task


You can copy the Guidewire Studio update files from a Studio installation that has already been updated.

Procedure
1. In the updated Studio installation, go to the directory ClaimCenter/studio.
2. Copy the studio-*.zip file with the highest release number.

Next steps
See also
• “Manually install the Studio update files” on page 106.

Manually install the Studio update files

About this task


Once you have obtained the Guidewire Studio update files, you can install them manually into a Studio instance that
you want to update.

Procedure
1. In the Studio installation to update, go to the directory ClaimCenter/studio/plugins.

106 chapter 3 Getting started


Configuration Guide 9.0.5

2. Delete the following directories:


• gosucheckstyle
• ij-gosu
• ij-studio
• inspections
3. Extract the studio-*.zip Studio update file into the ClaimCenter/studio/plugins directory.

Next steps
See also
• “Updating Studio manually” on page 106.

Updating Studio manually 107


Configuration Guide 9.0.5

108 chapter 3 Getting started


chapter 4

Working in Guidewire Studio

This topic discusses a number of common tasks related to working in Guidewire Studio.

Entering valid code


Guidewire Studio provides several different ways of obtaining information about ClaimCenter objects and APIs to
assist you in writing valid rules and Gosu code. These include:

Dot completion Opens a context-sensitive pop-up window that contains all the subobjects and methods that are valid for this
object, in this context. Dot completion works with both Gosu or Java packages.
SmartHelp Displays a list of valid fields and subobjects for the current object.

Keyboard commands provide code completion, code navigation, and code editing shortcuts. See “Using Studio
keyboard shortcuts” on page 110 for information on keyboard shortcuts.

Using dot completion


You can use Studio to complete your code by placing the cursor (or caret) at the end of a valid ClaimCenter object or
subobject and typing a dot (.). This action causes Studio to open a pop-up window that contains all the subobjects,
methods, and properties that are valid for this object, in this context.
As you type, Studio filters this list to include only those choices that match what you have typed thus far. Use the
down arrow to highlight the item you want and press Enter, the space bar, or Tab to select it. After you select an
item, Studio inserts it in the correct location in the code.

Gosu and Java package name completion


Dot completion also works with Gosu or Java packages. You can enter a package name and press dot to get a list of
packages and types within the package name before the dot. Studio can complete all packages and namespaces
within the Studio type system including PCF types. Studio filters the list as you type to include only those choices
that match what you have typed thus far.

Working in Guidewire Studio 109


Configuration Guide 9.0.5

Accessing reference information


ClaimCenter provides reference information that you can review. This includes:

Gosu API Reference Provides a searchable reference on the Gosu APIs, methods and properties. See the Gosu Reference
Guide.
PCF Reference Guide Provides a description of the PCF widgets and their attributes that you can use within the PCF editor.
This documentation is also known as the PCF Format Reference.
Gosu Reference Guide Provides information on the Gosu language.

Accessing the Gosu API Reference


Guidewire provides API reference information that you can use to obtain additional information about the Gosu
APIs and their methods and parameters. There are two ways to access this information:
• Access the Gosu API reference as described in the Gosu Reference Guide. Use the Search functionality to find
information on an API, or expand the API list and select a field, parameter or method to view.
• Click a method name in a line of code and press CTRL+Q. A pop-up window opens and displays information about
that method, including information about its parameters.
The Gosu API reference window contains a search pane, a contents tree, and a display area.
• The contents tree displays a tree view of the type system, organized by package.
• The search pane contains a text field for search terms, a button to clear the text field, a search button, and a re-
index button. It also includes an indication of the time of the last indexing operation.
If the reference has never been indexed, then index it before proceeding.

Accessing the PCF Reference Guide


Guidewire provides a PCF reference (official name, Guidewire ClaimCenter PCF Format Reference) that you can
use to obtain information about PCF widgets and their attributes. To access the reference guide, in your file system,
open the file ClaimCenter/modules/pcf.html.

Accessing the Gosu Reference Guide


You can view the in the Guidewire ClaimCenter documentation set.

Using Studio keyboard shortcuts


Guidewire Studio provides a number of keyboard commands that provide important code completion, navigation,
and editing capabilities. For a full list of keyboard shortcuts, see the IntelliJ IDEA documentation at the following
link:

https://www.jetbrains.com/idea/help/keyboard-shortcuts-by-category.html

The following are some of the more useful keyboard shortcuts:

Keystroke Name Description


Ctrl+Space Code completion Helps you complete the names of classes, methods, fields, and keywords.
Ctrl+/ Comment/uncomment Comment or uncomment a line or block of code.
Ctrl+Shift+/

Alt+Enter Intention actions Offers suggestions to correct the error nearest the caret.

110 chapter 4 Working in Guidewire Studio


Configuration Guide 9.0.5

Keystroke Name Description


Ctrl+N Find class or file by name Finds and opens the class or file in its editor.
Ctrl+Shift+N

Ctrl+Q Context help Shows documentation for the symbol at the caret.
Ctrl+Shift+G Show type information Shows the type of the symbol at the caret.

Saving your work


ClaimCenter automatically saves any modifications made in Studio under the following conditions:
• If you move between different tabs (views) within Studio
• If the Studio main window loses focus (for example, by moving to another application)
However, you also have the option of performing manual “saves” using the File menu.

Command Description

File→Save All Writes any unsaved changes to your local fie or SCM system. You can also use the standard keyboard
shortcut Ctrl+S save your changes.

Toolbar Save icon Works the same way that Save All and Ctrl+S do.

If you have no unsaved changes pending, these commands are unavailable.

Verifying configuration resources


Guidewire Studio automatically verifies each configuration resource as you edit it. All errors are highlighted in the
editor.
To explicitly verify a resource, right-click it, and then click Verify.
In addition, you can verify configuration resources using the command line tool verifyResources. For example:

gwb verifyResources

Any resource errors are reported on the command line.

Inspecting configuration resources


Guidewire has implemented several scripts that enable Gosu developers to inspect Gosu code and to identify style-
related issues. The Gosu code to be inspected can include configuration resources. With the inspection scripts,
developers can examine Gosu code and obtain reports on it in the Guidewire Studio development environment.
The inspection scripts that Guidewire has implemented report on issues regarding code style as well as declaration
redundancy. The code style reports include the following:
• Anonymous classes that block expressions can replace
• Getter and setter method prototypes that class property definitions can replace
• Calls to property getter and setter methods that class property syntax can replace
• Block expressions with code block bodies that block expressions with expression-style bodies can replace
• Calls to the Object.equals method that the equality operator, ==, can replace

Saving your work 111


Configuration Guide 9.0.5

The declaration redundancy reports include the following:


• Local variable declarations that Gosu code can omit due to the Gosu type inference capability. For example, this
report would include the variable declaration, var a : String = "Hello". The report would do so because the
developer can simplify this declaration by using the declaration, var a = "Hello".

Compiling configuration resources


There are several ways to compile configuration resources during development:
• Make – On the Build menu, click Make Project. Compiles all resources that have been modified since the last
compilation. All dependent resources are also compiled. When you run or debug the server within Studio, Studio
first runs a make to ensure that all resources are compiled.
• Rebuild – On the Build menu, click Rebuild Project. Recompiles all resources, including resources that have
already been compiled. This is required after first installing Studio, and may be necessary when the classpath
entries have changed. For example, when SDKs or libraries are added, removed, or altered.
• Compile – On the Build menu, click Compile ‘resource_name’. Recompiles only the selected resource and its
dependencies.
• gwb compile – At a command prompt, run this command. To run the QuickStart development server from the
command line, you must first run this command to compile it from the command line.

Enabling or disabling Gosu compilation


If you know that your Gosu code will generate many compilation errors, then you may want to disable compilation
while you fix them. For example, if a ClaimCenter upgrade involves API changes, then you can disable compilation
while you make the required changes to your code.
There are several ways to compile Gosu source code files, such as by building the project. When compilation is
disabled, explicitly compiling Gosu source files within Studio does not produce .class files. Instead, only the .gs
files are copied to the output directory. In addition, when compilation is disabled, Studio always reports an explicit
compilation as completing successfully, even when the code contains errors. To detect errors in your code when
compilation is disabled, explicitly verify that resource.
When you deploy your application, the .gs files are copied to the server, and the server compiles them as needed.
Therefore, when Gosu compilation is disabled, you may see server compilation errors that were not reported when
compiling in Studio.
Gosu compilation in Guidewire Studio is enabled by default.
1. In Guidewire Studio, click File→Settings.
2. In the Settings dialog, in the navigation list, expand Build, Execution, Deployment, then expand Compiler, and then
click Gosu Compiler.
3. Do the following:
• To disable Gosu compilation for tests, set Exclude Tests.
• To disable Gosu compilation for other files, set Disable Local Gosu Compilation. Then set the option to disable it
for All Gosu code, or Only Gosu code in PCF files.
See also
• “Compiling configuration resources” on page 112
• “Verifying configuration resources” on page 111
• “Setting options for Gosu command prompt compilation” on page 112

Setting options for Gosu command prompt compilation


The gwb compile command provides multiple options that modify the behavior of the Gosu compiler. These
configuration options apply only to the gwb compile command. The compilation tools that Guidewire Studio
112 chapter 4 Working in Guidewire Studio
Configuration Guide 9.0.5

provides do not use these options. For example, if you make changes to your Gosu code that might cause many
compilation errors or warnings, you can set options to terminate the compilation after reaching a threshold.
To set Gosu command-prompt compilation options, you edit the build.gradle file in the ClaimCenter
configuration folder. You add the configuration options and values at the top of the file, similar to the following
lines:

// Add custom project specific configuration here if needed


tasks.compileGosu.gosuOptions.failOnError = false

The following table lists and describes the available configuration options for Gosu compilation.

Configuration option Default value Description


tasks.compileGosu.gosuOptions.checkedArithmeti false Supports enabling checked arithmetic, which
c generates Gosu exceptions for nu.meric overflow
errors
tasks.compileGosu.gosuOptions.failOnError true Supports terminating a compilation task if the
number of errors exceeds the value that maxErrs
specifies.
tasks.compileGosu.gosuOptions.maxErrs 100 Specifies the permitted number of compilation
errors after which the compilation task fails if failO
nError is set to true. The compilation task checks
this value after compiling each file and terminates if
the number of errors is greater than this value. If a
file generates multiple compilation errors, the
reported number of errors can be more than one
greater than this option value.
tasks.compileGosu.gosuOptions.maxWarns Integer.max Specifies the permitted number of compilation
Int warnings after which the compilation task fails if war
nings is set to true. The compilation task checks
this value after compiling each file and terminates if
the number of warnings is greater than this value. If
a file generates multiple compilation warnings, the
reported number of warnings can be more than one
greater than this option value.
tasks.compileGosu.gosuOptions.verbose false Specifies whether to print a message to the log for
every file that the task compiles.
tasks.compileGosu.options.warnings false Supports terminating a compilation task if the
number of warnings exceeds the value that maxWarn
s specifies.

Examples
Each example stands alone. Remove the line or lines that you added for one example before you try the next
example.
• Add the following line to the top of the build.gradle file.

tasks.compileGosu.gosuOptions.checkedArithmetic = true

At the command prompt run the gwb compile command. When you run a compiled class that causes a numeric
overflow, the class throws an arithmetic exception and terminates.
• Add the following line to the top of the build.gradle file.

tasks.compileGosu.gosuOptions.failOnError = false

Compiling configuration resources 113


Configuration Guide 9.0.5

At the command prompt run the gwb compile command. Even if there are multiple compilation errors, the task
ignores the maxErrs option and compiles all available Gosu classes. Output similar to the following lines
appears.

Error threshold of 10 exceeded; aborting compilation.


gosuc completed with 12 errors. Warnings were disabled.

:modules:configuration:compileGosu completed with errors, but ignoring as 'gosuO


ptions.failOnError = false' was specified.

• Add the following lines to the top of the build.gradle file.

tasks.compileGosu.gosuOptions.failOnError = true
tasks.compileGosu.gosuOptions.maxErrs = 10

At the command prompt run the gwb compile command. If the number of compilation errors after completing
compilation of any Gosu file is greater than maxErrs, the compilation task terminates. Output similar to the
following lines appears.

Error threshold of 10 exceeded; aborting compilation.


gosuc completed with 12 errors. Warnings were disabled.

:modules:configuration:compileGosu FAILED

FAILURE: Build failed with an exception.

* What went wrong:


Execution failed for task ':modules:configuration:compileGosu'.
> Compilation failed with exit code 1; see the compiler error output for details.

• Add the following line to the top of the build.gradle file.

tasks.compileGosu.options.warnings = true
tasks.compileGosu.gosuOptions.maxWarns = 100

At the command prompt run the gwb compile command. If the number of compilation warnings after
completing compilation of any Gosu file is greater than maxWarns, the compilation task terminates. Output
similar to the following lines appears.

Warning threshold of 100 exceeded; aborting compilation.


gosuc completed with 129 warnings and 0 errors.

:modules:configuration:compileGosu FAILED

FAILURE: Build failed with an exception.

* What went wrong:


Execution failed for task ':modules:configuration:compileGosu'.
> Compilation failed with exit code 1; see the compiler error output for details.

• Add the following line to the top of the build.gradle file.

tasks.compileGosu.gosuOptions.verbose = true

At the command prompt run the gwb compile command. Output similar to the following lines appears.

gosuc: about to compile file: C:\Guidewire\PolicyCenter\modules\configuration\gsrc\gw\policy


\PolicyPeriodSearchCriteria.gs
gosuc: about to compile file: C:\Guidewire\PolicyCenter\modules\configuration\gsrc\gw\policy
\PolicyPeriodSideBySideEnhancement.gsx

114 chapter 4 Working in Guidewire Studio


Configuration Guide 9.0.5

See also
• Gosu Reference Guide

Suppressing compiler warnings


Gosu provides limited support for the Java annotation, @SuppressWarnings. As its namesake indicates, the
@SuppressWarnings annotation informs a compiler to suppress warnings.
You can use the @SuppressWarnings annotation in several kinds of declarations. Such declarations exclude
declarations of local variables. Instead, the @SuppressWarnings annotation can apply to declarations of the
following categories:
• Type
• Function
• Property
• Constructor
• Field
• Parameter
The @SuppressWarnings annotation requires one parameter. This parameter is a String value that indicates the
warnings you wish to suppress.
For example, suppose you pass in the argument "all" into the @SuppressWarnings annotation. The annotation
invocation in this case would be @SuppressWarnings("all"). The effect of the annotation would be to suppress all
warnings.
For another example, suppose instead that you pass in the argument "deprecation" into the @SuppressWarnings
annotation. Suppose further that you invoke the annotation on the line prior to a Gosu class declaration. The
invocation in this case would be @SuppressWarnings("deprecation"). The effect of this annotation is to suppress
all deprecation warnings for the Gosu class you have declared.

Editing the XML definition of Studio resources


About this task
The editors in Guidewire Studio provide a visual editing environment for many resources. In addition to using the
visual editors, you can also edit the underlying XML code that defines the resource. Guidewire recommends that
you edit the XML code only within Studio, and that you do not edit it in an external editor.

Procedure
1. Open the resource in the Studio editor.
2. At the bottom of the editor pane, click the Text tab. The XML definition is shown in the editor pane.
3. Modify the XML as desired.
4. To switch back to the visual editor, click the tab next to the Text tab that shows the type of the resource that
you are editing.

Next steps
Make sure that the XML remains valid, and that you do not introduce any syntax errors. If the XML contains errors,
the representation of the resource in the visual editor may not be accurate.

Compiling configuration resources 115


Configuration Guide 9.0.5

116 chapter 4 Working in Guidewire Studio


chapter 5

Working with Guidewire Studio

This topic describes Guidewire Studio and the Studio development environment.

Improving Studio performance


• “Set the maximum amount of memory available to Guidewire Studio” on page 117
• “Set the amount of memory for project builds in Guidewire Studio” on page 118

Set the maximum amount of memory available to Guidewire Studio


About this task
If Guidewire Studio is running slowly, you can increase the amount of memory available to it. Additional memory
allocated might improve Studio performance.

Procedure
1. Edit the file ClaimCenter/modules/script/gw-build.gradle.
2. Locate the studio section:

studio {
...
}

3. Within this section, set the following properties:

ideaProperties["tasks.studio.maxHeapSize"] = "memory_value"

Set memory_value to the number of megabytes desired, followed by the letter m. For example, to assign Studio
6GB, set this property to 6000m. The default value is 4000m.
Note: To set the memory for IntelliJ IDEA with OSGi Editor, set the property
tasks.pluginStudio.maxHeapSize.

Working with Guidewire Studio 117


Configuration Guide 9.0.5

4. Restart Studio.

Next steps
See also
• “Setting IntelliJ IDEA properties in Studio” on page 102

Set the amount of memory for project builds in Guidewire Studio


About this task
You can set the amount of memory available to Guidewire Studio during project builds and compilation. This may
reduce the time required for these actions.

Procedure
1. In Studio, click File→Settings.
2. In the Settings dialog, navigate to Build, Execution, Deployment→Compiler.
3. In the Build process heap size text box, type the number of megabytes.
For example, to assign Studio 12GB for project builds, set this property to 12000.

Resetting Guidewire Studio


Some changes that you make to Guidewire Studio or configuration files may result in Studio having obsolete file
references. For example, if you relocate the Guidewire Studio installation directory, or reinstall a source control
system, then Studio may produce compilation errors due to incorrect file references.
To correct obsolete file references, you can do the following:
• “Rebuild the Studio project files” on page 118
• “Rebuild the Studio file index cache” on page 118

Rebuild the Studio project files


Procedure
1. At a command prompt, change to the ClaimCenter directory.
2. Run the following command:
gwb cleanIdea

Rebuild the Studio file index cache


Procedure
1. Run Guidewire Studio.
2. On the File menu, click Invalidate Caches / Restart.
3. In the Invalidate Caches confirmation dialog, click Invalidate and Restart.

118 chapter 5 Working with Guidewire Studio


Configuration Guide 9.0.5

Setting font display options


About this task
You can set values for:
• Text font and size
• Character format properties
• Foreground and background colors of various language elements
Note: You can set anti-aliasing of fonts in the editor Appearance settings page at File→Settings→Editor→Appearance.
Additionally, you can set font size zooming with the Ctrl+Mouse wheel in the main Editor settings page at
File→Settings→Editor.

Procedure
1. Navigate to File→Settings→Editor→Colors & Fonts.
2. Use the Colors & Fonts menu selections to set Studio display of text in the editors.
For example, if you click Gosu, you can set the font type and size of Gosu code in the editor.
3. You can also set how Studio displays specific Gosu code items, such as keywords or operators.
Studio displays a code sample at the bottom of the dialog that reflects your settings.

Setting font display options 119


Configuration Guide 9.0.5

120 chapter 5 Working with Guidewire Studio


chapter 6

ClaimCenter Studio and Gosu

This topic discusses how to work with Gosu code in ClaimCenter Studio.

Gosu building blocks


Guidewire provides a number of building blocks to assist you in implementing, configuring, and testing your
business logic in ClaimCenter. These include the following:
• Gosu classes and enhancements
• Gosu base library methods
• Gosu rules
• Gosu tests
• Gosu script parameters
For information on each of these, see the following:
• For general information on Gosu classes, see the Gosu Reference Guide.
• For information on the ClaimCenter base configuration classes see, “ClaimCenter base configuration classes” on
page 123.
• For information on the @export annotation and how it affects a class in Studio, see “Class visibility in Studio” on
page 125.
• For general information on Gosu enhancements, see the Gosu Reference Guide.
• For information on using Gosu business rules within Guidewire ClaimCenter, see the Rules Guide.
• For information on script parameters and how to use them in Gosu code, see “Script parameters” on page 128.

Gosu case sensitivity


Guidewire code is case sensitive. Access existing types exactly as they are declared, including correct capitalization.
For example, if a type is declared as MyClass, you cannot refer to it as myClass or myclass. Use the Gosu editor’s
code completion feature to enter the names of types and properties correctly.

ClaimCenter Studio and Gosu 121


Configuration Guide 9.0.5

To assist you, Studio highlights issues with case sensitivity.


The following table lists conventions for capitalization of various Gosu language elements:

Language element Standard capitalization Example


Gosu keywords Always specify Gosu keywords correctly, typically lowercase. if
Type names, including class names Uppercase first character DateUtil
Claim

Local variable names Lowercase first character myClaim

Property names Uppercase first character CarColor

Method names Lowercase first character printReport

Package names Lowercase all letters in packages and subpackages com.mycompany.*

Working with Gosu in ClaimCenter Studio


It is possible to create the following by selecting New from the Classes right-click menu:

Classes→New More information

Class • “Gosu classes” on page 123


• Gosu Reference Guide
Interface • Gosu Reference Guide
Enhancement • “Gosu enhancements” on page 126
• Gosu Reference Guide
Template • Gosu Reference Guide
Package • “Gosu packages” on page 122
GX Model • Gosu Reference Guide

Gosu packages
Guidewire ClaimCenter stores Gosu classes, enhancements, and templates in hierarchical structure known as
packages. To access a package, expand the Classes node in the Studio Resources tree.
Note: You can delete only an empty package.

Create a new package


About this task
It is possible to nest package names to create a dot-separated package name by selecting a package and repeating
these steps.

Procedure
1. Select Classes in the Resources tree.
2. Right-click, select New, then Package from the menu.
3. Enter the name for this package.
4. Click OK to save your work and exit this dialog.

122 chapter 6 ClaimCenter Studio and Gosu


Configuration Guide 9.0.5

Gosu classes
Gosu classes correspond to Java classes. Gosu classes reside in a file-based package structure. You can extend
classes in the base configuration of ClaimCenter to add properties and methods, and you can write your own Gosu
classes. You define classes in Gosu, and you access the properties and call the methods of Gosu classes from Gosu
code within methods.
You create and reference Gosu classes by name, just as in Java. For example, you define a class named MyClass in a
package named MyPackage. You define a method on your class named getName. After you define your class, you
can instantiate an instance of the class and call the method on that instance, as the following Gosu sample code
demonstrates.

var myClassInstance = new MyPackage.MyClass()


var name = myClassInstance.getName()

Studio stores enhancement files in the gsrc folder in the resources tree. Gosu class files end in .gs.
See also
• “ClaimCenter base configuration classes” on page 123
• “Class visibility in Studio” on page 125
• “Preloading Gosu classes” on page 126
• Gosu Reference Guide

Create a new Gosu class


1. First create a package for your new class, if you have not already done so.
2. Select the package in the configuration tree.
3. Right-click, select New, then Gosu Class from the menu.
4. Enter the name for this class. (You can also set the resource context for this class at this time.)
5. Click OK to save your work and exit this dialog.

ClaimCenter base configuration classes


The gsrc resource folder contains Guidewire classes and enhancements—divided into packages—that provide
additional business functionality. In the base configuration, Studio contains the following packages in the gsrc
folder:
• com
• gw
• libraries
• util
• wsi
• xsd
If you create new classes and enhancements, Guidewire recommends that you create your own subpackages in the
gsrc folder, rather than adding to the existing Guidewire folders.

The com package


In the base configuration, the com package contains a single Gosu class:

com.guidewire.pl.quickjump.BaseCommand

For a discussion of the QuickJump functionality, see “Implementing QuickJump commands” on page 143.
Gosu classes 123
Configuration Guide 9.0.5

The gw package
In the base ClaimCenter configuration, the gw.* Gosu class libraries contain a number of Gosu classes, divided into
subpackages by functional area. To access these libraries, you merely need to type gw. (gw dot) in a Studio editor.
The following subpackages under the gw package play an important role in Studio:
• gw.api.*
• gw.plugin

gw.api.*
There are actually two gw.api packages that you can access:
• One consists of a set of built-in library functions that you can access and use, but not modify.
• The other set of library functions is visible in the Studio gsrc folder in the configuration tree. You can not only
access these classes but also modify them to suit your business needs.
You access both the same way, by entering gw.api in the Gosu editor. You can then choose a package or class that
falls into one category or the other. For example, if you enter gw.api. in the Gosu editor, the Studio Complete Code
feature provides you with the following list:
• activity
• address
• admin
• ...
In this case, the activity and admin packages contain read-only classes. The address package is visible in Studio,
in the gsrc folder.

gw.plugin
If you create a new Gosu plugin, place your plugin class in the gw.plugin package.
See also
• For information on how to use Studio to work with plugins, see “Using the plugins registry editor” on page 135.
• For information on various types of plugins and how to implement plugins, see the Integration Guide.

The libraries package


The libraries package contains a number of pre-built functions. To access these functions, enter the full package path
(for example):

libraries.Activityassignment.getUserRoleGroupTypeBasedonActivityPattern( activitypattern )

Or, place a uses statement at the top of your Gosu file, which allows you to enter the library name only (for
example):

uses libraries.Activityassignment
...
Activityassignment.getUserRoleGroupTypeBasedonActivityPattern( activitypattern )

The util package


The util package contains a number of pre-built classes that provide additional functionality for ClaimCenter
Financials.

124 chapter 6 ClaimCenter Studio and Gosu


Configuration Guide 9.0.5

See also
• “ClaimCenter financial calculations” on page 743
• “Configuring ClaimCenter financials” on page 735
• “Configuring ClaimCenter financial screens” on page 767

The wsi package


ClaimCenter provides a fully WS-I standard-compliant web services layer for both server (publishing) and client
(consuming) web service APIs. The wsi package provides means of working with WS-I compliant web services.
See also
• “Using the web service editor” on page 141
• Integration Guide

The xsd package


As its name suggests, ClaimCenter stores XSDs in this folder. ClaimCenter uses these XSDs for a variety of
functions, for example:
• accord.xsd – Used by ClaimCenter FNOL Mapper that maps FNOL data in the form of XML to the
ClaimCenter Claim (and other) entity.
• iso.xsd – Used by ClaimCenter to generate types for ISO integration.

Class visibility in Studio


For a Guidewire-provided Gosu class to be directly visible Studio, Guidewire must mark that class with the @export
annotation. Thus, it is possible to view a class file in the application file structure, but to not be able to view or
access the file in the Studio Gosu editor. This is because the class file is missing the @export annotation.
If you need to access the class, simply create a new class and have it extend or subclass the class that you need. For
example, in PolicyCenter, the application source code defines a CCPCSearchCriteria class. This class is visible in
the application file structure as a read-only file in the following location:

PolicyCenter/modules/configuration/gsrc/gw/webservice/pc/pc700/ccintegration/ccentitie

To access the class functionality, first create a new class in the following Studio Classes package:

gw.webservice.pc.ccintegration.v2.ccentities

You then have this class extend CCPCSearchCriteria, for example:

package gw.webservice.pc.ccintegration.v2.ccentities

uses java.util.Date
uses gw.api.web.product.ProducerCodePickerUtil
uses gw.api.web.producer.ProducerUtil

class MyClass extends CCPCSearchCriteria {


var _accountNumber : String as AccountNumber
var _asOfDate : Date as AsOfDate
var _nonRenewalCode : String as NonRenewalCode
var _policyNumber : String as PolicyNumber
var _policyStatus : String as PolicyStatus
var _producerCodeString : String as ProducerCodeString
var _producerString : String as ProducerString
var _product : String as Product
var _productCode : String as ProductCode
var _state : String as State
var _firstName : String as FirstName
var _lastName : String as LastName
var _companyName : String as CompanyName
var _taxID : String as TaxID

ClaimCenter base configuration classes 125


Configuration Guide 9.0.5

construct() { }

override function extractInternalCriteria() : PolicySearchCriteria {


var criteria = new PolicySearchCriteria()
criteria.SearchObjectType = SearchObjectType.TC_POLICY
...
}
}

Preloading Gosu classes


ClaimCenter provides a preload mechanism to support preloading of Gosu classes, as well as other primary classes.
The intent is to make the system more responsive the first time requests are made for that class. This is meant to
improve application performance by preloading some of the necessary application types.
To support this, Guidewire provides a preload.txt file in Other Resources to which you can add the following:

Static method invocations Static method invocations dictate some kind of action and have the following syntax:
type#method
The referenced method must be a static, no-argument method. However, the method can be on
either a Java or Gosu type.
In the base configuration, Guidewire includes some actions on the gw.api.startup.PreloadActi
ons class. For example, to cause all Gosu types to be loaded from disk, use the following:
gw.api.startup.PreloadActions#headerCompileAllGosuClasses
You can add additional lines that call static methods.
Type names Type names can be either Gosu or Java types. You must use the fully-qualified name of the type.
For any Java or Gosu type that you list in this file:
• Java – ClaimCenter loads the associated Java class file.
• Gosu – ClaimCenter parses and compiles the type to Java byte code, as well as any Gosu blocks
and inner classes within that type.

Guidewire provides the logging category Server.Preload, which provides DEBUG level logging of all actions and
preloaded types.

Populate the list of types

Before you begin


Guidewire recommends that you first perform whatever actions you need to within ClaimCenter interface.

Procedure
1. Navigate to the Loaded Gosu Classes page (Server Tools→Info Pages).
2. Copy and paste the list that you see there into the preload.txt file.

Result
The next time that you start the application server, ClaimCenter compiles those types on startup.

Gosu enhancements
Gosu enhancements provide additional methods (functionality) on a Guidewire entity. For example, suppose that
you create an enhancement to the Activity entity. Within this enhancement, you add methods that support new
functionality. Then, if you type Activity. (Activity dot) within any Gosu code, Studio automatically uses code
completion on the Activity entity. It also automatically displays any methods that you have defined in your
Activity enhancement, along with the native Activity entity methods.

126 chapter 6 ClaimCenter Studio and Gosu


Configuration Guide 9.0.5

Studio stores enhancement files in the gsrc folder in the resources tree.
• Gosu class files end in .gs.
• Gosu enhancement files end in .gsx.
The Gosu language defines the following terms:
• Classes – Gosu classes encapsulate data and code for a specific purpose. You can subclass and extend existing
classes. You can store and access data and methods on an instance of the class or on the class itself. Gosu classes
can also implement Gosu interfaces.
• Enhancements – Gosu enhancements are a Gosu language feature that allows you to augment classes and other
types with additional concrete methods and properties. For example, use enhancements to define additional
utility methods on a Java class or interface that you cannot directly modify. Also, you can use an enhancement to
extend Gosu classes, Guidewire entities, or Java classes with additional behaviors.

Create a new enhancement


Before you begin
If you have not already done so, first create a package for your new class.

Procedure
1. In Guidewire Studio, in the Project tool window, navigate to configuration→gsrc, and then to the package for
your new class.
2. Right-click the package, and then click New→Gosu Enhancement.
3. Type the name for the enhancement.
Guidewire strongly recommends that you end each enhancement name with the word Enhancement.
For example, if you create an enhancement for an Activity entity, name your enhancement
ActivityEnhancement.
4. Enter the entity type to enhance.
For example, if enhancing an Activity entity, enter Activity.

Next steps
See also
• Gosu Reference Guide

XML and GX models


Business data entities, Gosu class data, and other types can be exported as XML by using a GX model. The model is
built by selecting the desired properties from the data type. While selecting the properties to map, ClaimCenter
automatically creates an XSD schema to describe the model’s XML structure. At run time, an object’s data can be
converted to XML by creating an instance of the GX model.

Define a GX model
1. Navigate to the Classes package in which you want to create the GX model.
2. Right-click the package name, and then click New→GX Model.

Gosu enhancements 127


Configuration Guide 9.0.5

See also
• Gosu Reference Guide

Script parameters
Script parameters are Studio-defined resources that you can use as global variables in Gosu code. System
administrators change the values of script parameters on the Administration tab. Changes to values take effect
immediately in Gosu code.

Script parameters overview


ClaimCenter uses the ScriptParameters.xml configuration file as the system of record for script parameter
definitions and their initial values. You can create script parameters only in Studio, by navigating to
configuration→config→resources→ScriptParameters.xml. At the time of creation, Studio adds new script parameters to
the ScriptParameters.xml configuration file. After creation, you manage the values of script parameters through
the ClaimCenter user interface, not through Studio.
On server startup, ClaimCenter compares the list of script parameters that currently reside in the database to those in
the ScriptParameters file. During the comparison, ClaimCenter does one of the following:
• New script parameters – ClaimCenter adds to the database new script parameters in the XML file that are not in
the database. ClaimCenter propagates the initial values as set in the XML file to the database.
• Existing script parameters – ClaimCenter ignores existing script parameters in the XML file that already are in
the database. ClaimCenter does not propagate changed values for existing parameters from the XML file to the
database.
After a script parameter resides in the database, you manage it solely from the Script Parameters administration screen
in the ClaimCenter administrative interface. You access the Script Parameters screen by first logging on with an
administrative account, then navigating to Administration→Utilities→Script Parameters.

IMPORTANT After you create a script parameter in Studio, ClaimCenter ignores subsequent changes that you make
to the parameter value. You must make all subsequent changes to parameter values in the Script Parameters
administration screen of the ClaimCenter user interface.

Script parameters as global variables


There are several reasons to create global variables:
• You want a variable that is global in scope across the application that you can change or reset through the
application interface.
• You want a variable to hold a value that you can use in any Gosu expression, and you want to change that value
without editing the expression.
These two reasons for use of script parameters, while seemingly related, are entirely independent of each other.
• Use script parameters to create variables that you can change or reset through the ClaimCenter interface.
• Use Gosu class variables to create variables for use in Gosu expressions.
For information on Gosu class variables, see the Gosu Reference Guide.

Script parameter examples


Suppose, for example, that you have exception rules that trigger when a claim has been idle for over 180 days. If
you included the value “180” in all of the rules, you would have to modify the rules if you decided to change the
value to 120. Instead, define a script parameter, set its value to 180, and then use this parameter in the rules. To
change the claim exception behavior, you need change only the parameter and the Studio rules automatically use the
new value.

128 chapter 6 ClaimCenter Studio and Gosu


Configuration Guide 9.0.5

More complex examples include:


• Setting a default age for claimants – This is useful for cases in which the computation of the reserve requires
an age and none is available at the time the exposure is set up.
• Setting the threshold number of days for various claim actions – This includes inactive claims in which the
number of inactive days before taking action varies by the coverage. After the date threshold passes, the Rule
engine can generate an activity.
• Setting the date for certain global reserve actions to occur – Suppose that an actuary modifies the values in
the reserve tables due to loss history, or to correct errors, or in response to legislation. In this case, it is possible
that you want to update the reserve amounts of all open exposures. To accomplish this, you can implement
several exception rules that only fire if the appropriate script parameter date is less than or equal to the current
date.

Note: Script parameters are read-only within Gosu. You cannot set the value of a script parameter in a Gosu
statement or expression.

Working with script parameters


In working with script parameters:
• You create script parameters, set their initial values, and create property getter methods in Guidewire Studio.
• You administer script parameters and modify their values in the ClaimCenter interface, on the Administration tab.
The application server references only the initial values for script parameters that you set in Guidewire Studio.
Thereafter, the application server references the values that you set through the ClaimCenter interface and ignores
subsequent changes to values that you set as set in Studio.
A script parameter definition is provided in a <ScriptParameterPack> element within the <script-parameters>
element in the scriptparameters.xml configuration file. The following lines show the basic attributes and
subelements for a script parameter definition:

<script-parameters>
<ScriptParameterPack ParamName="ParameterName" ParamType="datatype">
<ParamValue>value</ParamValue>
</ScriptParameterPack>
</script-parameters>

To see the data types available for script parameters, examine the ScriptParameter entity definition. This entity
contains properties for each valid type. For example, ScriptParameter uses BitValue for bit, DatetimeValue for
datetime, IntegerValue for decimal, and VarcharValue for varchar script parameter values.
To make a new script parameter value available in Gosu, you must provide a getter method in the script parameters
enhancement file.

IMPORTANT After you create a script parameter in Studio, ClaimCenter ignores subsequent changes that you make
to the parameter value. You must make all subsequent changes to parameter values in the Script Parameters
administration screen of the ClaimCenter user interface.

Create a script parameter

Procedure
1. In Guidewire Studio, in the Project tool window, navigate to configuration→config→resources, and then open the
file ScriptParameters.xml.
2. Edit the XML and define your new parameter using the existing format as a guide.
3. Navigate to configuration→gsrc→gw→scriptparameter, and then double-click ScriptParametersEnhancement.
4. Add a static property getter method that returns a value of the correct data type for the new parameter.

Script parameters 129


Configuration Guide 9.0.5

For example, for a script parameter of type varchar, use code similar to the following:

public static property get MyNewScriptParameter(): String {


return ScriptParameters.getParameterValue("MyNewScriptParameter") as String;
}

Delete a script parameter

About this task


You can delete a script parameter if you no longer reference it in any Gosu expression.

Procedure
1. In Guidewire Studio, in the Project tool window, navigate to configuration→config→resources, and then open the
file ScriptParameters.xml.
2. Edit the XML and remove the element defining the parameter to delete.

Referencing a script parameter in Gosu


You can access a script parameter in Gosu through the globally accessible ScriptParameters object. Within Gosu,
you access a parameter by using ScriptParameters.paramname.
For example, the following Gosu code determines if more than 180 days have elapsed from the filing of the claim:

gw.api.util.DateUtil.daysSince( Claim.ReportedDate ) > 180

You can, instead, create a script parameter named maxDate and rewrite the line as follows:

gw.api.util.DateUtil.daysSince(Claim.ReportedDate) > ScriptParameters.maxDate

Note: Guidewire recommends that you use Gosu class variables instead of script parameters to reference values in
Gosu expressions. The exception would be if you needed the ability to reset the value from the ClaimCenter
interface.

130 chapter 6 ClaimCenter Studio and Gosu


part 3

Guidewire Studio editors


Configuration Guide 9.0.5
chapter 7

Using the Studio editors

This topic discusses the various editors available to you in Guidewire Studio.

Editing in Guidewire Studio


Guidewire Studio displays ClaimCenter resources in the left-most Studio pane. After you select a resource, Studio
automatically loads the editor associated with that resource into the Studio work space. Studio contains the
following editors:

Editor Use to... More information


Display Keys Graphically create and define display keys. “Using the display keys editor” on page 159
Entity Names Represent an entity name as a text string suitable for “Using the entity names editor” on page 149
viewing in the ClaimCenter interface.
Gosu Create and manage Gosu code used in classes, tests, “Working in the Gosu editor” on page 134
enhancements, and interfaces.
LOB (Lines of Define the six special typelists that define the - “Configuring lines of business” on page 561
Business) ClaimCenter Lines of Business (LOBs).
Messaging Work with messaging plugins. “Using the messaging editor” on page 155
Page Configuration Graphically define and edit page configuration (PCF) “Using the PCF editor” on page 349
(PCF) files, used to render the ClaimCenter Web interface.
Plugins Graphically define, edit and manage Java and Gosu “Using the plugins registry editor” on page
plugins. 135
Typelist Define typelists for use in the application. “Working with typelists” on page 303
Workflows Graphically define and edit application workflows. “Using the workflow editor” on page 451

Using the Studio editors 133


Configuration Guide 9.0.5

Working in the Gosu editor


You use the Gosu editor to manage all code written in Gosu. If you open any of the following from the Resources
pane, Studio automatically opens the file in the Gosu editor:
• Classes
• Enhancements
• Interfaces
• GUnit tests
See also
• Gosu Reference Guide

134 chapter 7 Using the Studio editors


chapter 8

Using the plugins registry editor

A ClaimCenter plugin is a mini-program that you can invoke to perform some task or calculate a result.

What are plugins?


ClaimCenter plugins are mini-programs (Gosu or Java classes) that ClaimCenter invokes to perform an action or
calculate a result.
• An example of a plugin that calculates a result is a claim number generation plugin, which ClaimCenter invokes
to generate a new claim number as necessary.
• An example of a plugin that performs an action would be a message transport plugin, the purpose of which is to
send a message to an external system.

Plugin implementation classes


A Guidewire plugin class implements a specific plugin interface. Guidewire provides a set of plugin interfaces in the
base configuration. You can create a new class that implements the plugin interface for your business needs. You can
choose to implement a plugin as either a Gosu class, Java class, or OSGi bundle. Alternatively, if the ClaimCenter
base configuration already provides a implementation of the plugin interface, then you can register it.
See also
• Integration Guide

What is the plugins registry?


Within Studio, expand the configuration→config →Plugins→registry node to view the contents of the Plugins Registry.
Each item in the Plugins Registry is a .gwp file that represents a plugin implementation in the base configuration. To
configure a particular plugin, double-click its name in the registry to enter the Plugins Registry editor.

Using the plugins registry editor 135


Configuration Guide 9.0.5

Each Plugins Registry item (each.gwp file) includes fields for the following information:
• Plugin name – A unique name for this plugin implementation. Plugin names can include alphanumeric
characters only. Space or blank characters are not allowed. If the plugin interface supports only a single
implementation, make this the name of the interface without the package.
• Implementation class – The plugin implementation class as a fully-qualified class name.
• Plugin interface – The interface that the class implements. If the plugin interface field is left blank, ClaimCenter
uses the plugin name as the interface name.
The Plugins Registry fields work slightly differently depending on whether the interface supports multiple
implementations. Most plugin interfaces supports only a single plugin implementation. Other plugin interfaces, such
as messaging plugins and startable plugins, support multiple plugin implementations.
See also
• For the maximum number of supported implementations for each plugin interface, see the table the Integration
Guide.

Startable plugins
To register code that runs at server start up, you register startable plugin implementations. Startable plugins
implement the IStartablePlugin interface. Typically, startable plugins are implemented as daemons, such as
listeners to JMS queues. Unlike standard Guidewire plugins, you can stop and start startable plugins from the
administrative interface. Alternatively, you can use ClaimCenter multi-threaded inbound integration APIs, which use
startable plugins.
See also
• Integration Guide

Working with plugins


Create a plugins registry item
Procedure
1. In the Project tool window, navigate to configuration→config →Plugins→registry.
2. Right-click registry, and then click New→Plugin.
3. In the Name text box, type the plugin name. If the interface supports only a single implementation, use the
same name as the plugin interface. For the maximum number of supported implementations for each interface,
see the table the Integration Guide.

4. In the Interface box, type the name of the plugin interface, or click Browse to search for valid interfaces.
For all startable plugins, enter IStartablePlugin.

Add an implementation to a plugins registry item


Procedure
1. In the Project tool window, navigate to configuration→config →Plugins→registry. In the list of plugin items in the
Plugins Registry, double-click the plugin name to open it in the Plugins Registry editor.
2. Click Add Plugin , and then click the type of plugin to add: Gosu, Java, or OSGi.
Note: Do not change the value of the Name field in this editor. To rename the plugin implementation, right-
click it in the Project window hierarchy, and then click Refactor→Rename.
Gosu Implementations
If you select Add Gosu Plugin, you see the following:
136 chapter 8 Using the plugins registry editor
Configuration Guide 9.0.5

Gosu Type the name of the Gosu class that implements this plugin interface. In the base configuration, Guidewire
Class places all Gosu plugin implementation classes in the following package under configuration→gsrc:
gw.plugin.package.impl
You must enter the fully-qualified path to the Gosu implementation class. For example, use gw.plugin.email.i
mpl.EmailMessageTransportPlugin for the Gosu EmailMessageTransport plugin.
See the Integration Guide for more information.

Java Implementations
If you select Add Java Plugin, you see the following:

Java Class Type the fully qualified path to the Java class that implements this plugin. This is the dot separated package
path to the class. Place all custom (non-Guidewire) Java plugin classes in the following directory:
ClaimCenter/modules/configuration/plugins/

Plugin (Optional) Type the name of the base plugin directory for the Java class. This is a folder (directory) in the mod
Directory ules/configuration/plugins directory. If you do not specify a value, Studio assumes that the class exists
in the modules/configuration/plugins/shared directory.
See the Integration Guide.

OSGi Implementations
If you select Add OSGi Plugin, you see the following:

Service PID Type the fully-qualified Java class name for your OSGi implementation class.
See the Integration Guide.

3. After creating the plugin, you can add parameters to it. To do so, click Add Parameter , and then enter the
parameter name and value.
If you have already set the environment or server property at the global level, then those values override any
that you set in this location. For any property that you set in this location to have an effect, that property must
be set to the Default (null) at the global level for this plugin. For more information on setting environment
or server properties, see “Set environment and server context for plugin implementations” on page 138.

Enable and disable a plugin implementation


You can choose to make a plugin implementation inactive using the Disabled checkbox. You can, for example, enable
the plugin implementation for testing and disable it for production. It is important to understand, however, that you
can still access a disabled plugin implementation and call it from code. Enabling or disabling a plugin
implementation is only meaningful for plugins that care about the distinction. For example, you must enable a plugin
for use in messaging in order for the plugin to work and for messages to reach their destination. If it is a concern,
then the plugin user must determine whether a plugin implementation is enabled.
If you change the status of the plugin (from enabled to disabled, or the reverse), then you must restart the application
server for it to pick up this change.

Add an implementation to a plugins registry item 137


Configuration Guide 9.0.5

Set environment and server context for plugin implementations


Within the Plugins Registry editor, you can set the plugin deployment environment (the Environment property) and
the server ID (the Server property).
• Use Environment to set the deployment environment in which this plugin is active. For example, you may have
multiple deployment environments (a test environment and a development environment) and you want this
plugin to be active in only one of these environments.
• Use Server to set a specific server ID. For example, if running ClaimCenter in a clustered environment, you may
want this plugin to be active only on a certain machine within the cluster.
These are global properties for this plugin. You can set either of these two properties on individual plugin properties.
But, if set in this location, these override the individual settings.
See also
• Integration Guide
• System Administration Guide

Customizing plugin functionality


If you want to modify the behavior of a plugin, then do one of the following:
• Modify the underlying class that implements the plugin functionality.
• Change the plugin definition to point to an entirely different Java or Gosu plugin class.
For information on plugins in general, see the Integration Guide.
For information on creating and deploying a specific plugin type, see the following topics:

Plugin type Description More information


Gosu A Gosu class Integration Guide
Java A Java class that does not use the OSGi standard. Integration Guide
Integration Guide
OSGi A Java class inside an OSGi bundle. Integration Guide

Working with plugin versions


If your installation includes more than one Guidewire application, be aware that some plugins exist primarily to
connect to other Guidewire applications. If you want to use the base configuration plugin implementation to connect
to other Guidewire applications, you must ensure that you use the correct version of the plugin implementation. The
name of the classes are equivalent but vary in their package, which includes the application version number.
For the package name, Guidewire includes the application two-digit abbreviation followed by the application
version number with no periods. For ClaimCenter 8.0.0, for example, the package includes cc800.
For example, in the Guidewire PolicyCenter application, the plugin implementation that connects PolicyCenter 8.0.0
to BillingCenter 8.0.0 is at the fully qualified path:

gw.plugin.billing.bc800.BCBillingSystemPlugin

For integrations with other Guidewire InsuranceSuite applications, choose the plugin implementation class that
matches the version of your applications. Choose the implementation with the proper version number of the other
application (not the current application) in its package name.
Guidewire uses the following abbreviation conventions for naming its applications:

138 chapter 8 Using the plugins registry editor


Configuration Guide 9.0.5

Application Abbreviation
ClaimCenter cc

PolicyCenter pc

ContactManager ab
BillingCenter bc

Working with plugin versions 139


Configuration Guide 9.0.5

140 chapter 8 Using the plugins registry editor


chapter 9

Working with web services

ClaimCenter supports WS-I web services. WS-I web services use the SOAP protocol. This topic discusses how to
define and configure web services with Guidewire Studio.

Using the web service editor


ClaimCenter provides a fully WS-I compliant web services layer for both server publishing and client consuming
web service APIs.
Studio stores WS-I web service resources in a web service collection. A web service collection encapsulates the set
of resources necessary to connect to a web service on an external server. Typical resources include one or more web
service endpoints and the WSDL and XSD files that they reference. Web service collections are created and
managed in the Studio Web Service editor.
Collection files have a .wsc file extension. The location of the web service collection in the package hierarchy
defines the package for the types that Gosu creates from the associated WSDL.
The Web Service editor consists of several areas.

Editor area Description


Toolbar The toolbar is located directly above the Resources pane. The toolbar icons provide the following actions.
• Add New Resource – Create new URL resource to the web service WSDL file.
• Edit Resource - Edit the URL resource to the web service WSDL file.
• Remove Resource – Remove the URL from the list of web service resources.
• Move Up - Move the selected URL resource up one level in the list of resources.
• Move Down - Move the selected URL resource down one level in the list of resources.
• Fetch – Retrieve WSDL and XSD files for a web service resource. The retrieved files are shown in the editor's
Fetched Resources tab.
• Setup Environment - Show the Studio Settings window. In the window's Sidebar, select Guidewire Studio to show
the Web Services Environment setting.

Working with web services 141


Configuration Guide 9.0.5

Editor area Description


Resources Contains the list of defined URL resources for the web service. Each URL points to a web service WSDL file. The
pane WSDL file can exist in any of the following locations.
• The local file system
• A local server
• A remote server
Settings tab Create and manage configuration entries for the web service. The following types of configuration entries are
supported.
• Configuration Provider – Specifies a class that implements the IWsiWebserviceConfigurationProvider
interface.
• Override URL – Specifies an override proxy URL for the web service.
See the Integration Guide.
Fetched Shows the WSDL and XSD files for the web services.
Resources tab

See also
• Integration Guide

Defining a web service collection


To consume an external web service, the associated WSDL and schema files for the web service must be loaded into
the local namespace. This operation is performed by defining a web service collection in ClaimCenter Studio. In the
base configuration, Guidewire provides a number of default web service collections in the following hierarchy.
configuration→gsrc→wsi.
Guidewire recommends that new web service collections be created within this directory structure.

Create a web service collection

Procedure
1. In Studio, navigate in the configuration→gsrc→wsi hierarchy to a package in which to store the collection file.
2. Right-click and choose New→Webservice Collection. Studio prompts for a name for the web service collection.
Enter a name for the web service collection and click OK to show the Web Service editor.
3. On the editor toolbar, click the Add New Resource icon.
4. In the Add Resource window, enter the URL of the WSDL for the external web service. This is also called the
web service endpoint URL. After a valid URL is entered, click OK.
5. Studio recognizes that the list of resource URLs has been modified and offers to fetch updated resources.
Click Yes. Studio retrieves the WSDL and XSD files for the web service. The file contents can be viewed in
the Fetched Resources tab. Updated resources can be fetched at any time by clicking the toolbar's Fetch icon.
6. The created collection URL is shown in the editor’s Resources pane.

142 chapter 9 Working with web services


chapter 10

Implementing QuickJump commands

This topic discusses how you can configure, or create new, QuickJump commands.

What Is QuickJump?
The QuickJump box is a text-entry box for entering navigation commands using keyboard shortcuts. Guidewire places
the box at the upper-right corner of each ClaimCenter screen. You set which commands are valid through the
QuickJump configuration editor. At least one command must exist (be defined) in order for the QuickJump box to appear
in ClaimCenter. (Therefore, to remove the QuickJump box from the ClaimCenter interface, remove all commands
from the QuickJump configuration editor.)
You set the keyboard shortcut that activates the QuickJump box in config.xml. The default key is “/” (a forward
slash). Therefore, the default action to access the box is Alt+/.
There are three basic types of navigation commands:

Type Use for


QuickJumpCommandRef Commands that navigate to a page that accepts one or more static (with respect to the
command being defined) user-entered parameters. See “Implementing
QuickJumpCommandRef commands” on page 144 for details.
StaticNavigationCommandRef Commands that navigate to a page without accepting user-entered parameters. See
“Implementing StaticNavigationCommandRef commands” on page 146.
ContextualNavigationCommandRef Commands that navigate to a page that takes a single parameter, with the parameter
determined based on the user's current location. See “Implementing
ContextualNavigationCommandRef commands” on page 146.

Adding a QuickJump navigation command


If you add a command, first set the command type, then define the command by setting certain parameters. The
editor contains a table with each row defining a single command and each column representing a specific command
parameter. You use certain columns with specific command types only. ClaimCenter enables only those row cells
that are appropriate for the command, meaning that you can only enter text in those specific fields.
Implementing QuickJump commands 143
Configuration Guide 9.0.5

Column Only use with Description


Command Name • QuickJumpCommandRef Display key specifying the command string the user types to
• StaticNavigationCommandRef invoke the command. Note that the command string must
not contain a space.
• ContextualNavigationCommandRef
Command Class • QuickJumpCommandRef Class that specifies how to implement the command. This
class must be a subclass of QuickJumpCommand. Guidewire
intentionally makes the base QuickJumpCommand class
package local. To implement, override one of the subclasses
described in “Implementing QuickJumpCommandRef
commands” on page 144.
You only need to subclass QuickJumpCommand if you plan to
implement the QuickJumpCommandRef command type. For
the other two command types, you use the existing base
class appropriate for the command—either StaticNavigati
onCommand or ContextualNavigationCommand—and enter
the other required information in the appropriate columns.
Command Target • StaticNavigationCommandRef Target page ID.
• ContextualNavigationCommandRef
Command Arguments • StaticNavigationCommandRef Comma-separated list of parameters used in the case in
which the target page accepts one or more string parameters.
(This is not common.)
Context Symbol • ContextualNavigationCommandRef Name of a variable on the user's current page.
Context Type • ContextualNavigationCommandRef Type of context symbol (variable).

Implementing QuickJumpCommandRef commands


To implement the QuickJumpCommandRef navigation command type, subclass QuickJumpCommand or one of its
existing subclasses. See the following sections for details:

Subclass Section
StaticNavigationCommand “Implementing QuickJumpCommandRef commands” on page 144
ParameterizedNavigationCommand “Implementing QuickJumpCommandRef commands” on page 144

ContextualNavigationCommand “Implementing QuickJumpCommandRef commands” on page 144


EntityViewCommand “Implementing QuickJumpCommandRef commands” on page 144

All QuickJumpCommand subclasses must define a constructor that takes a single parameter—the command name—as
a String.

Navigation commands with one or more static parameters


To perform simple navigation to a page that accepts one or more parameters (which are always the same for a given
command), subclass StaticNavigationCommand. The class constructor must call the super constructor, which takes
the following arguments:
• The command name (which you pass into your subclass's constructor)
• The target location's ID
Your subclass implementation must override the getLocationArgumentTypes and getLocationArguments
methods to provide the required parameters for the target location.
It is possible to create a no-parameter implementation by subclassing StaticNavigationCommand. However,
Guidewire recommends that you use the StaticNavigationCommandRef command type instead as it reduces the

144 chapter 10 Implementing QuickJump commands


Configuration Guide 9.0.5

number of extraneous classes needed. See “Implementing StaticNavigationCommandRef commands” on page 146
for details.

Navigation commands with an explicit parameter (including search)


To create a command that performs simple navigation to a page that accepts a single user parameter, subclass
ParameterizedNavigationCommand. The constructor takes the same two arguments as
StaticNavigationCommand. Your subclass must override the getParameterSuggestions method, which provides
the list of auto-complete suggestions for the parameter. It must also override the getParameter method, which
creates or fetches the actual parameter object given the user's final input.
Subclasses of ParameterizedNavigationCommand must also implement getCommandDisplaySuffix.
ClaimCenter displays the command in the QuickJump box as part of the auto-complete list (before the user has
entered the entire command). Therefore, ClaimCenter displays the command name followed by the command
display suffix. This is typically some indication of what the parameter is, for example bean name or policy number.

Navigation commands with an inferred parameter


To implement a command that navigates to a page that accepts a single parameter, with the parameter based on the
user's current location, subclass ContextualNavigationCommand. The constructor takes the same two arguments as
StaticNavigationCommand, plus two additional arguments:
• The name of a PCF variable. If this variable exists on the user's current location, Studio makes the command
available and uses the value of the variable as the parameter to the target location.
• The type of the variable.
Guidewire recommends, however, that you use the ContextualNavigationCommandRef command type instead of
subclassing ContextualNavigationCommand. See “Implementing ContextualNavigationCommandRef commands”
on page 146 for details.

Navigation to an entity-viewing page


For commands that navigate to a page that simply displays information about some entity, subclass
EntityViewCommand. The constructor takes the following arguments:
• The name of the command (which you pass into your subclass's constructor)
• The type of the entity
• A property on the entity to use in matching the user's input (and providing auto-complete suggestions)
• The permission key that determines whether the user has permission to know the entity exists (This is typically a
“view” permission.)
• The target location's ID
Subclasses must override handleEntityNotFound to specify behavior on incomplete or incorrect user input. A
typical implementation simply throws a UserDisplayableException. Subclasses must also implement
getCommandDisplaySuffix, which behaves in the fashion described previously in “Implementing
QuickJumpCommandRef commands” on page 144.
By default, parameter suggestions and parameter matching use a query that finds all entities of the appropriate type
in which the specified property starts with the user's input. If this query is too inefficient, the subclass can override
getQueryProcessor (for auto-complete) and findEntity (for parameter matching). If you do not want some users
to see the command, then the subclass must also override the isPermitted method.
By default, the auto-complete list displays each suggested parameter completion as the name of the command
followed by the value of the matched parameter. Subclasses can override getFullDisplay to change this behavior.
However, the suggested name must not stray too far from the default, as it does not change what appears in the
QuickJump box after a user selects the suggestion. Entity view commands automatically chain to any appropriate
contextual navigation command (for example, “Claim <claim #> Financials”).

Adding a QuickJump navigation command 145


Configuration Guide 9.0.5

Implementing StaticNavigationCommandRef commands


StaticNavigationCommandRef specifies a command that navigates to a page without accepting user-entered
parameters. It is the simplest to implement. You specify the Command Name and Command Target in exactly the
same manner as for a static navigation command. You must also specify the Command Target, and any necessary
Command Arguments. These parameters have the following meanings:
• Command Target specifies the ID of the target page.
• Command Arguments specify one or more parameters to use in the case in which the target page accepts one or
more string parameters. If there is more than one parameter, enter a comma-separated list.

Implementing ContextualNavigationCommandRef commands


ContextualNavigationCommandRef specifies a command that navigates to a page that takes a single parameter.
(The user's current location determines the parameter.) You specify the Command Name and Command Target in
exactly the same manner as for a static navigation command. You must also specify the Context Symbol and the
Context Type. These parameters have the following meanings:
• Context Symbol specifies that name of a variable on the user’s current page.
• Context Type specifies that variable’s type.
ClaimCenter passes the value of this variable to the target location as the only parameter. If no such variable exists
on the current page, then the command is not available to the user and the command does not appear in the
QuickJump box’s auto-complete suggestions.
If the Context Type is an entity, then any EntityViewCommands matching the entity type can automatically be
“chained” by the user into the ContextualNavigationCommand. For instance, suppose that there is an
EntityViewCommand called Claim that takes a claim number and navigates to a Claim. Also, suppose that there is a
ContextualNavigationCommand called Contacts whose context type is Claim. In this case, the user can type Claim
35-402398 Contacts to invoke the Contacts command on the specified Claim.
See also
• “Implementing QuickJumpCommandRef commands” on page 144

Checking permissions on QuickJump navigation commands


Keep the following security issues in mind as you create navigation commands for the QuickJump box.

Subclassing StaticNavigationCommand
Commands that implement this subclass check the canVisit permission by default to determine whether a user has
the necessary permission to see that QuickJump option in the QuickJump box. The permission hole in this case arises
if permissions were in place for all approaches to the destination but not on the destination itself.
For example, suppose that you create a new QuickJump navigation for NewNotePopup. Then suppose that previously
you had placed a permission check on all New Note buttons. In that case ClaimCenter would have checked the
Note.create permissions. However, enabling QuickJump navigation to NewNotePopup bypasses those previous
permissions checks. The best practice is to check permissions on the canVisit tag of the actual destination page, in
this case, on NewNotePopup.

Subclassing ContextualNavigationCommand
As with StaticNavigationCommand subclasses, add permission checks to the destination page's canVisit tag.

Subclassing ParameterizedNavigationCommand
Classes subclassing ParameterizedNavigationCommand have the (previously described) method called
isPermitted, which is possible for you to override. This method—isPermitted—controls whether the user can
see the navigation command in the QuickJump box. After a user invokes a command, ClaimCenter performs standard

146 chapter 10 Implementing QuickJump commands


Configuration Guide 9.0.5

permission checks (for example, checking the canVisit expression on the target page), and presents an error
message to unauthorized users.
It is possible for the canVisit expression on the destination page to return a different value depending on the actual
parameters passed into it. As a consequence, ClaimCenter cannot determine automatically whether to display the
command to the user in the QuickJump box before the user enters a value for the parameter. If it is possible to
manually determine whether to display the command to the user, check for permission using the overridden
isPermitted method. (This might be, for example, from the destination's canVisit attribute.)

Checking permissions on QuickJump navigation commands 147


Configuration Guide 9.0.5

148 chapter 10 Implementing QuickJump commands


chapter 11

Using the entity names editor

This topic describes entity names and entity name types. and how to work with the entity names in the Studio Entity
Names editor.

Entity names editor


It is possible to define an entity name as a text string, which you can then use in the ClaimCenter interface to
represent that entity. Thus, you often see the term display name associated with this feature as well, especially in
code and in Gosu documentation.
ClaimCenter uses the DisplayName property on an entity to represent the entity name as a text string. You can define
this entity name string as a simple text string, or you can use a complicated Gosu expression to generate the name.
ClaimCenter uses these entity name definitions in generating database queries that return the limited information
needed to construct the display name string. This ensures that ClaimCenter does not load the entire entity and its
subentities into memory simply to retrieve the few field values necessary to generate the display name.
The use of the Entity Name feature helps to avoid loading entities into memory unless you are actually going to view
or edit its details. The use of display names improves overall application performance.
The Entity Names editor consists of two parts:
• A table in which you manage variables for use in the Gosu code that defines the entity name
• A Gosu editor that contains the Gosu code that defines the entity name

WARNING Do not reference in an entity name definition either a virtual property or an otherwise non-
queryable column, including an amount virtual property. Failing to follow this guidance will compromise
performance and lead to exceptions.

Variable table
You must declare any field that you reference in the entity definition (in the code definition pane) as a variable in the
variable table at the top of the page. This tells the Entity Name feature which fields to load from the database, and
puts each value in a variable for you to use.

Using the entity names editor 149


Configuration Guide 9.0.5

For example, the Contact entity name defines the following variables:

Notice that this defines LastName as Person.LastName and Name as Company.Name, for example.
Use the variable table to manage variables that you can embed in the Gosu entity name definitions. You can add and
remove variables using the function buttons next to the table. The columns in the table have the following meanings:

Column name Description


Name The name of the variable.
Entity Path Entity.property that the variable represents.

Sort Path The values that ClaimCenter uses in a sort.


Sort Order The order in which ClaimCenter sorts the Sort Path values.
Use Entity Name? Whether to use this value as the entity display name.

The Entity Path column


Use only actual columns in the database as members of the Entity Path value. You must declare an actual database
column in metadata, in an actual definition file. If you do not define a column in metadata, then ClaimCenter labels
that entity column (field) as virtual in the ClaimCenter Data Dictionary.
Thus:
• You cannot use ClaimContactRole fields in the Entity Path, such as Exposure.Incident.Injured. This is
because the Injured contact role on Incident does not have a denormalized column.
• You can, however, use special denormalized fields for certain claim contacts, such as
Exposure.ClaimantDenorm or Claim.InsuredDenorm. The description of the column indicate which
ClaimContactRole value it denormalizes.

The Use Entity Name? column


The last column in the variable table is Use Entity Name? If the column check box is set, then it has a value of true. If
the check box is not set, then it has a value of false.
• A value of true is meaningful only if the value of Entity Path is an entity type. A value of true instructs the Entity
Name utility to calculate the Entity Name for that entity, instead of loading the entity into memory. The variable
for that subentity is of type String and you can use the variable in the Gosu code that constructs the current
Entity Name.
Note: If the value of Entity Path is an entity, then you must set the value of Use Entity Type? to true. Otherwise, a
variable entry that ends in an entity value uploads that entire entity, which defeats the purpose of using Entity
Names.
• A value of false indicates that ClaimCenter does not use the Entity Path value as an entity display name.
• An empty column is the same as a value of false. This is the default.
Set the Use Entity Name? value to true if you want to include the entire Entity Name for a particular subentity. For
example, suppose that you are editing the Exposure entity name and that you create a variable called claimant with
150 chapter 11 Using the entity names editor
Configuration Guide 9.0.5

an Entity Path of Exposure.ClaimantDenorm. Suppose also that you set the value of Use Entity Name to true. In this
case, the entity name for the Claimant, as defined by the Contact entity name definition, would be included in a
String variable called claimant. ClaimCenter would then use this value in constructing the entity name for the
Exposure entity.
Note: If you set the Use Entity Name? field to true and then attempt to use a virtual field as an Entity Path value,
Studio resource verification generates an error.

Evaluating null values


If the value of Use Entity Name? is true, then ClaimCenter always evaluates the entity name definition, even if the
foreign key is null. By convention, in this case, the entity name definition usually returns the empty string "". In
other words, the entity name string can never be null even if the foreign key is null. You can use the HasContent
enhancement property on String to test whether the display name string is empty.
Thus, as you write entity name definitions, Guidewire recommends that you return the empty string if all the
variables in your entity name definition are null or empty. Guidewire uses the empty string (instead of returning
null) to prevent Null Pointer Exceptions. For example, suppose that you construct an entity name such as "X-Y-Z",
in which you add a hyphen between variables X,Y, and Z from the database. In this case, be sure you return the empty
string "" if X,Y, and Z are all null or empty and not " - - ".

The Sort columns


The two columns Sort Path and Sort Order do not, strictly speaking, involve variable replacement in the entity name
Gosu code. Rather, you use them to define how to sort beans of the same entity.

Sort Path Defines the values that ClaimCenter uses in a sort


Sort Order Defines the order in which ClaimCenter sorts the Sort Path values

Therefore, if ClaimCenter is in the process of determining how to order two contacts, it first compares the values in
the (Sort Path) LastNameDenorm fields (Sort Order = 1). If these values are equal, Studio then compares the values in
the FirstNameDenorm fields (Sort Order = 2), repeating this process for as long as there are fields to compare.
These columns specify the default sort order. Other aspects of Guidewire ClaimCenter can override this sort order,
for example, the sort order property of a list view cell widget.

Gosu text editor


You enter the actual Gosu code used to construct the entity name in the code definition pane underneath the variable
table. Studio then replaces the variable with mapped property.
The following Gosu definition code for the Contact entity name shows these mappings.

if (SubType != null && Person.Type.isAssignableFrom(Type.forName("entity." + SubType))) {


var person = new PersonNameFieldsImpl(){
:LastName = LastName,
:FirstName = FirstName,
:Suffix = Suffix,
:Prefix = Prefix,
:MiddleName = MiddleName,
:Name = Name
}
return new NameFormatter().format(person, " ", NameOwnerFieldId.DISPLAY_NAME_FIELDS)
} else {
var contact = new ContactNameFieldsImpl(){
:Name = Name
}
return new NameFormatter().format(contact, " ")
}

To use the Contact entity name definition, you can embed the following in a PCF page, for example.

The Use Entity Name? column 151


Configuration Guide 9.0.5

<Cell id="Name" value="contact.DisplayName" ... />

Do not use virtual entity methods to define display names. Doing so may result in slow performance. Also, if the
entity for which the display name is being generated is retired, calls to virtual methods may behave unpredictably.

Including data from subentities


Many times, you want to include information from subentities of the current entity in its Entity Name. For example,
this happens often with Contacts related to the current entity. Guidewire recommends that you do one of the
following to include data from a subentity. (The two options are mutually exclusive. You must do one or the other.)

Option 1: Use the DisplayName for a subentity


To use the DisplayName value for a subentity, you must set the value of Use Entity Name to true on the variable
definition. For example, for Contacts, you must set the value to true through an explicit Denorm column, such as
Exposure.ClaimantDenorm.
To illustrate:

Name Entity Path Use Entity Name?


claimantDisplayName Exposure.ClaimantDenorm true

incidentDisplayName Exposure.Incident true

Option 2: Reference fields on the subentity


It is possible that you do not want to use the Entity Name as defined for the subentity's type. If so, then you need to
set up variables in the table to obtain the fields from the subentity that you need. To illustrate:

Name Entity Path Use Entity Name?


claimantFirstName Exposure.ClaimantDenorm.FirstName false

claimantLastName Exposure.ClaimantDenorm.LastName false

severity Exposure.Incident.Severity false

incidentDesc Exposure.Incident.Description false

You can then use these variables in Gosu code (in the text editor) to include the Claimant and Incident information
in the entity name for Exposure.

Guidewire recommendations
Do not end an Entity Path value with an entity foreign key, without setting the Use Entity Name value to true.
Otherwise, ClaimCenter loads the entire entity being referenced into memory. In actuality, you probably only need a
couple fields from the entity to construct your entity name. Instead, you one of the approaches described in one of
the previous steps.

Denormalized columns
Within the ClaimCenter data model, it is possible for a column to end in Denorm for (at least) two different reasons:
• The column contains a direct foreign key to a particular Contact (for example, as in Claim.InsuredDenorm.)
• The original column is of type String and the column attribute supportsLinguisticSearch is set to true. In
this case, the denormalized column contains a normalized version of the string for searching, sorting, and
indexing. Thus, the Contact entity definition uses LastNameDenorm and FirstNameDenorm as the sort columns

152 chapter 11 Using the entity names editor


Configuration Guide 9.0.5

in the definition for the Contact entity name. It then uses LastName and FirstName in the variables' entity paths
for eventual inclusion in the entity name string.

Entity name types


An entity name definition is called the entity name type. Thus, most—but not all—entity names have a single type.
However, it is possible for certain entities in the base application to have multiple, alternate names (types) and thus,
multiple entity name definitions. Again, these can be either simple text strings, or more complicated Gosu
expressions.
Studio displays each entity name type as a separate tab or code definition area at the bottom of the screen. You
cannot add or delete an entity name type to the base application. You can, however, change the Gosu definition of an
entity name type. Guidewire recommends, however, that you not modify an entity name type definition without a
great deal of thought.
Most entity names have only the single type named Default. You can access the Default entity name from Gosu code
by using the following code:

entity.DisplayName

Only internal application code (internal code that Guidewire uses to build the application) can access any of non-
default entity name types. For example, some of the entity names contain an additional type or definition of
ContactRoleMessage. ClaimCenter uses the ContactRoleMessage type to define the format of the entity name to
use in role validation error messages. In some cases, this definition is merely the same as the default definition.
Note: It is not possible for you to either add or delete an entity name type from the base application configuration.
You can, however, modify the definition—the Gosu code—for all defined types. You can directly access only the
default type from Gosu code.

Entity name types 153


Configuration Guide 9.0.5

154 chapter 11 Using the entity names editor


chapter 12

Using the messaging editor

This topic covers how you use the messaging editor in Guidewire Studio.

Messaging editor
You use the Messaging editor to set up and define one or more message environments, each of which includes one or
more message destinations. A message destination is an abstraction that represents an external system. Typically, a
destination represents a distinct remote system. However, you can also use destinations to represent different remote
APIs or different types of messages that must be sent from ClaimCenter business rules.
You use the Messaging editor to set up and define message destinations, including the destination ID, name, and the
transport plugin to use with this destination. In a similar fashion to the Plugins editor, you can also set the
deployment environment in which this message destination is active.
Each destination can specify a list of events that are of interest to it, along with some basic configuration
information.
See also
• Integration Guide

Open the messaging editor


Procedure
1. In the Studio Project pane, go to configuration→config→Messaging.
2. Open the messaging-config.xml file.

Using the messaging editor 155


Configuration Guide 9.0.5

Add or remove a messaging configuration


You can define multiple messaging configurations to suit different purposes. For example, you can set up different
messaging configurations for the following:
• A development environment
• A test environment
• A production environment
Guidewire provides a single default messaging configuration in the ClaimCenter base configuration. You see it listed
as Default in the Messaging Config drop-down list.

Create a new messaging configuration

Procedure
1. Next to the Messaging Config drop-down list, click Add Messaging .
2. In the New Messaging dialog box, type the name for the new message configuration.
3. Add message destinations as required.

Remove a messaging configuration

About this task


If there is more than one messaging configuration, than you can remove one. There must be at least one messaging
configuration.
Note: Be careful not to inadvertently click the Remove Messaging button, as ClaimCenter deletes the message
configuration without any additional warning. You cannot undo this action.

Procedure
1. In the Messaging Config drop-down list, click the messaging configuration to remove.
2. Click Remove Messaging .
ClaimCenter deletes the messaging environment without asking for confirmation.

Add a message destination


Procedure
1. Open the Messaging editor.
2. Select a message environment
3. Click Add Destination .
4. Fill in the required fields. Notice that Studio requires that you enter a plugin name in the Transport Plugin field.

IMPORTANT If you register a messaging plugin, you must register it in two places. First, register it in the
plugin registry in the plugin editor; see “Using the plugins registry editor” on page 135. Remember the
plugin name that you use. You need it to configure the messaging destination in the Messaging editor in
Studio for each destination. Use those plugin names in the messaging editor.

5. After you click Add Destination in the Messaging editor, fill in the following fields.

ID The destination ID (as an integer value). The valid range for custom destination IDs is 0 through 63, inclusive.
Guidewire reserves all other destination IDs for built-in destinations such as the email transport destination.
Studio marks these internal values with a gray background, indicating that they are not editable. Studio also
marks valid entries with a white background and invalid entries with a red background.

156 chapter 12 Using the messaging editor


Configuration Guide 9.0.5

Name Required.The name to use for this messaging destination.


Transport Required.The name of the MessageTransport plugin implementation that knows how to send messages for
Plugin this messaging destination. A destination must define a message transport plugin that sends a Message
object over a physical or abstract transport. For example, the plugin might do one of the following.
• Submit the message to a message queue.
• Call a remote web service API and get an immediate response that the system handled the message.
• Implement a proprietary protocol that is specific to a remote system.
Each messaging destination must specify its own unique implementation of a MessageTransport plugin. A
particular MessageTransport plugin cannot be assigned to multiple destinations.

Next steps
If the Disabled checkbox is selected, the messaging destination is disabled.
See also
• Integration Guide

Associating event names with a message destination


To define one or more specific events for which you want this message destination to listen, click Add Event under
Events. Each event triggers the Event Fired rule set for that destination. Use the special event name wildcard string
"(\w)*" to listen for all events.
To get notifications using Event Fired rules when specific types of data changes occur, you must specify one or more
messaging destinations to listen for that event. If no messaging destination listens for an event, ClaimCenter does
not call the Event Fired rules for that combination of event and destination.
If more than one destination listens for that event, the Event Fired rules run multiple times, varying only in the
destination ID. To get the destination ID in your Event Fired rules, check the property messageContext.destID.

Messaging editor 157


Configuration Guide 9.0.5

158 chapter 12 Using the messaging editor


chapter 13

Using the display keys editor

This topic discusses how to work with the display key editor that is available to you in Guidewire Studio.

Overview of display keys


A display key represents a single user-viewable text string. Guidewire strongly recommends that any string literal
that can potentially be seen by a user be defined as a display key rather than as a hard-coded String literal.
ClaimCenter stores display keys in a display key properties file. In Guidewire Studio, this file is located under
configuration→config→Localizations. The file is named display_languageCode.properties, where languageCode is
the language code for the strings defined in the file. For example, the display key properties file for United States
English is display_en_US.properties.
If you do localize one or more display keys, then ClaimCenter uses additional display_languageCode.properties
files, one for each language that you install. For more information, see the Globalization Guide.
ClaimCenter represents display keys within a hierarchical name space. Within the display key properties file, this
translates into a dot (.) separating the levels of the hierarchy.
By opening the display key properties file in Studio, you can do the following:

Task Actions
View a display key Navigate to the display key that you want to view by scrolling through the display key properties
file. To search for a particular key or value, press Ctrl+F and then type your search term in the
search bar.
Modify the text of an Navigate to the display key that you want to modify, and then modify the string in the editor as
existing display key you want.
Create a new display key In the display key editor, type the desired name and value for your new display key.
Delete an existing display Highlight the display key that you want to delete, and then press Delete.
key

Using the display keys editor 159


Configuration Guide 9.0.5

Display key requirements


A display key name cannot contain spaces, and it must be defined on a single line.
A display key value can contain any string that the Java.util.Properties.load method accepts. Escape the
characters { (curly brace) and \ (backslash) with a backslash (for example, \{ and \\). You can also use codes such
as \n for a newline, or \u for Unicode characters (for example, \u00A0 for a non-breaking space).

Creating display keys in a Gosu editor


About this task
You can create a display key directly from within a Gosu editor by first typing a string literal and then converting it
to a display key.

Procedure
1. Place the cursor within the string, and then press Alt+Enter.
2. Click Convert string literal to display key. Studio opens the Create Display Key dialog.
3. In the Name text box, type the name of the display key. Studio fills in this text box with the string value, but
you can change it.
4. In the Values box, under the desired locale name, verify or change the string value.
5. Click OK. Studio creates the new display key in the display key properties file. Studio also inserts a reference
to that display key in place of the string literal in the Gosu code.
For example, suppose that you enter the following in the Rules editor:

var errorString = "Failed to send"

If you place the cursor within that string, then press Alt+Enter, and then click Convert string literal to display key,
Studio opens the Create Display Key dialog.
If you name the new display key SendFailed, then Studio creates the following new display key in the display key
properties file:

SendFailed=Failed to send

Studio also replaces the string literal in your Gosu code, and changes it to the following:

var errorString = DisplayKey.get("SendFailed")

Retrieving the value of a display key


Some display keys contain a placeholder argument or parameter, designated by {}. ClaimCenter replaces each of
these parameters with actual values at run time. For example, in the display key properties file, you see the
following:

Java.Activities.Error.CannotPerformAction = You do not have permission to perform actions on the


following activities\: {0}.

Thus, at run time, ClaimCenter replaces {0} with the appropriate value, in this case, the name of an activity.
Occasionally, there are display keys that contain multiple arguments. For example:

160 chapter 13 Using the display keys editor


Configuration Guide 9.0.5

Java.Admin.User.InvalidGroupAdd = The group {0} cannot be added for the user {1}
as they do not belong to the same organization.

Method DisplayKey.get
Use the DisplayKey.get method to return the value of the display key. Use the following syntax:

DisplayKey.get(display_key_name)

For example:

DisplayKey.get("Java.Admin.User.DuplicateRoleError")

returns:

User has duplicate roles

This also works with display keys that require a parameter or parameters. To retrieve the parameter value, use the
following syntax.

DisplayKey.get(display_key_name, arg1)

For example, the display key properties file defines the following display key with placeholder {0}:

Java.UserDetail.Delete.IsSupervisorError = Cannot delete user because they are supervisor of the


following groups\: {0}.

Suppose that you have the following display key Gosu code:

DisplayKey.get("Java.UserDetail.Delete.IsSupervisorError", GroupName)

If the variable GroupName is defined as WesternRegion, this display key returns the following:

Cannot delete user because they are supervisor of the following groups: WesternRegion

The same syntax works with multiple arguments, as well:

DisplayKey.get(display_key_name, arg1, arg2, ...)

Note: Make sure to include the following line in any Gosu code that calls the DisplayKey.get method:

uses gw.api.locale.DisplayKey

Retrieving the value of a display key 161


Configuration Guide 9.0.5

162 chapter 13 Using the display keys editor


part 4

Data model configuration


Configuration Guide 9.0.5
chapter 14

Working with the Data Dictionary

Guidewire provides the Data Dictionary to help you understand the ClaimCenter data model. The Data Dictionary
is a detailed set of linked documentation in HTML format. These linked HTML pages contain information on all the
data entities and typelists that make up the current data model.

Related concepts
“What is the Data Dictionary?” on page 165
“What can you view in the Data Dictionary?” on page 166
“Using the Data Dictionary” on page 167

What is the Data Dictionary?


The ClaimCenter Data Dictionary documents all the entities and typelists in your ClaimCenter installation. Provided
that you regenerate it following any customizations to the data model, the dictionary documents both the base
ClaimCenter data model and your extensions to it. Using the Data Dictionary, you can view information about each
entity, such as fields and attributes on it.
You must manually generate the Data Dictionary after you install Guidewire ClaimCenter. Guidewire strongly
recommends that you perform this task as part of the installation process. Also, as you extend the data model, it is
important that you regenerate the Data Dictionary as needed in order to view your extensions to the data model.
To generate the ClaimCenter Data Dictionary, run the following command from the ClaimCenter directory:

gwb genDataDictionary

ClaimCenter stores the current version of the Data Dictionary in the following directory:

ClaimCenter/build/dictionary/data/

To view the Data Dictionary, open the following file:

ClaimCenter/build/dictionary/data/index.html

Working with the Data Dictionary 165


Configuration Guide 9.0.5

As an option, you can generate the Data Dictionary in XML format with associated XSD files. Use the generated
XML and XSD files to import the Data Dictionary into third-party database design tools.
See also
• “Regenerating the data and security dictionaries” on page 37

Related concepts
“Regenerating the data and security dictionaries” on page 37

What can you view in the Data Dictionary?


Note: If you use a third-party tool to edit ClaimCenter configuration files, Guidewire recommends that you work
with one that fully supports UTF-8 file encoding. If the editing tool does not handle UTF-8 characters correctly, it
can create errors that you then see in the Guidewire Data Dictionary. This is not an issue with the Data Dictionary.
It occurs only if the third-party tool cannot handle UTF-8 values correctly.
After you open the Data Dictionary (at ClaimCenter/build/dictionary/data/index.html), Guidewire presents
you with multiple choices. You can choose to view either Data Entities, Data Entities (Database View), Data Entities
(Migration View), or Typelists.
The standard, database, and migration views of data entities are similar but not identical. You use each for a different
purpose. In general:
• Use the standard view to view a full set of entities associated with the ClaimCenter application and the columns,
typekeys, arrays and foreign keys associated with each entity. See “Using the Data Dictionary” on page 167.
• Use the database view to view all persistent, non-virtual entities associated with the ClaimCenter application and
the persistent columns, typekeys, arrays and foreign keys associated with each persistent entity. See “Using the
Data Dictionary” on page 167.
• Use the migration view to assist you in converting data from a legacy application. This view provides a subset of
the information in the standard view of the application entities that is more useful for those working on the
conversion of legacy data.
• Use the typelists view to view all typelists associated with the ClaimCenter application and the typecodes
associated with each typelist. See “Using the Data Dictionary” on page 167.

The migration view of the Data Dictionary


The standard Data Dictionary view separates out entity subtypes from the main entity supertype. In brief, a
supertype relates to a subtype in a parent-child relationship. For example, if a Contact data entity is the supertype,
then Person and Company are examples of its subtypes. Thus, an entity subtype inherits the characteristics of its
supertype and adds individual variations particular to it.
This separation into supertype and subtype is not particularly useful for data conversion (the process of importing
data into ClaimCenter from an external legacy application). Therefore, the migration view of the Data Dictionary
differs from the standard view in the following respects:
• The migration view displays subtype fields interspersed with supertype fields. For example:
◦ fieldA
◦ fieldB (only for subtype XYX)
◦ fieldC (only for subtype DFG)
◦ fieldD
• The migration view does not show virtual fields or virtual arrays.
• The migration view does not show non-loadable columns. For example, it does not show createUserID or
createTime.
• The migration view omits any non-persistent entities.

166 chapter 14 Working with the Data Dictionary


Configuration Guide 9.0.5

• The migration view omits entities that are persistent but non-loadable. For example, Group is not loadable.
Therefore, the migration view does not display it.

Related concepts
“Using the Data Dictionary” on page 167

Using the Data Dictionary


You use the Data Dictionary to do the following:
• To determine what a field means that you see in a data view definition.
• To see what fields are available to add to a view, or to use in rules, or to export in an integration template, and
more.
• To view the list of options for an associated typekey field.
You navigate the dictionary like a web site, with links leading you to associated pages. You can use the Back and
Forward controls of your browser to take you to previously visited pages. Within the Data Dictionary, you have the
option to navigate to three Data Entities views or the Typelists view.
If you click on one of the Data Entities views, ClaimCenter displays a left-side pane listing entities in ClaimCenter.
Then, on the right-side, ClaimCenter displays a pane that shows the details of the selected item in the left-side pane.
If you click on the Typelists view, ClaimCenter displays a left-side pane listing all of the typelists in ClaimCenter.
Then, on the right-side, ClaimCenter displays a pane that shows the typecodes for the selected typelist in the left-
side pane.
Within the details of an object, you can follow links to related objects or view the allowed values for a typelist.

Related concepts
“Property colors” on page 167
“Object attributes” on page 168
“Entity subtypes” on page 169
“Data field types” on page 169
“Virtual properties on data entities” on page 170
“What is a typelist?” on page 304
“What can you view in the Data Dictionary?” on page 166

Property colors
An examination of the Data Dictionary shows properties in green, blue, and red. These colors have the following
meanings:

Color Meaning
Green The object property is part of the Guidewire base configuration. The object definition file exists in Studio in the
following locations:
• config→configuration→Metadata
• config→configuration→Extensions
Blue The object property is defined in an extension file, either by Guidewire or as a user customization. The object
definition file exists in Studio in the following location:
• config→configuration→Extensions
It is possible for Guidewire to define a base object in the Metadata folder, and then to extend the object using an
extension entity in the extensions folder.

Using the Data Dictionary 167


Configuration Guide 9.0.5

Color Meaning
Red Occasionally, it is possible to see a message in red in the Data Dictionary that states:
This entity is overwritten by the application during staging.
This message indicates that Guidewire ClaimCenter auto-populates a table or column's staging table equivalent. Do
not attempt to populate the table yourself as the loader import process overwrites the staging table during import.
See also the description of the overwrittenInStagingTable attribute in “Entity data objects” on page 185.

Object attributes
An object in the ClaimCenter data model can have a number of special attributes assigned to it. These attributes
describe the object (or entity) further. You use the Data Dictionary to see what these are. For example, the
Transaction entity has the attributes Abstract, Editable, Extendable, Keyed, Loadable, Sourceable, Supertype, and
Versionable.
The following list describes the possible attributes:

Attribute Description
Abstract The entity is a supertype. However, all instances of it must be one of its subtypes. That is, you cannot instantiate
the supertype entity itself. An abstract entity is appropriate if the supertype serves only to collect logic or
common fields, but does not make sense to exist on its own.
Editable The related database table contains rows that you can edit. An Editable table manages additional fields that
track the immediate status of an entity in the table. For example, it tracks who created it and the time, and who
last edited it and the time.
Extendable It is possible to extend the entity with additional custom fields added to it.
Final It is not possible to subtype this entity. You can, however, extend it by adding fields to it.
Keyed The entity has a related database table that has a primary key. Each row in a Keyed table has an integer primary
key named ID. ClaimCenter manages these IDs internally, and the application ensures that no two rows in a keyed
table have the same ID. You can also associate an external unique identifier with each row in a table.
Loadable It is possible to load the entity through the use of staging tables.
Sourceable The entity links to an external source. Each row in a table for a Sourceable entity has additional fields to identify
the external application and store the ID of the Sourceable entity in the external application.
Supertype The entity has a single table that represents multiple types of entities, called subtypes. Each subtype shares
application logic and a majority of its fields. Each subtype can also define fields that are particular to it.
Temporary The entity is a temporary entity created as part of an upgrade or staging table loading. ClaimCenter deletes the
entity after the operation is complete.
Versionable The entity has a version number that increases every time the entity changes. The ClaimCenter cache uses the
version number to determine if updates have been made to an entity.

To view the definition of a particular attribute, click the small question mark (?) by the attribute name in the attribute
list in the Guidewire Data Dictionary.

Property attributes
A property in the ClaimCenter data model can have a number of special attributes assigned to it. These attributes
describe the property further. You use the Data Dictionary to see what these are. For example, the Transaction
entity has a property named Claim. The attributes of this property are export as id, exportable, loadable, non-null, and
writable.
The following list describes the possible attributes:

168 chapter 14 Working with the Data Dictionary


Configuration Guide 9.0.5

Attribute Description
database column: [name] The corresponding database column for the property has a name of [name]. This attribute is
present if [name] is a name other than the name of the property.
default: [value] This attribute is often present for a property that is associated with a column or a typekey. When
the attribute is present, [value] represents the default value for the property.
exportable Obsolete. The property is available to the SOAP APIs.
export as id Obsolete. The property causes the system to create an appropriate identifier for the referenced
entity. For example, the exported identifier will be ClaimIdentifier if the property points to the
claim table.
loadable The property is loadable by way of the staging tables.
localized The property contains a <localization> subelement. This subelement causes a localization
table to be created during the next database upgrade. A localization table stores localized values
for a column for every language other than the default application language. See .
non-null The property cannot contain null values.
overwritten on load The property contains an overwrittenInStagingTable attribute with a value of true.
ClaimCenter uses the property and a corresponding staging table during the load of staging table
data to operational tables. When the overwrittenInStagingTable attribute has a value of true,
the loader import process overwrites the staging table corresponding the property. See “Staging
tables” on page 180 and for more information.
triggers validation The property contains a triggersValidation attribute with a value of true. When this scenario
exists and an array, a foreign key, or a one-to-one entity on the property changes, ClaimCenter
initiates validation on the property. See “<array>” on page 200, “<foreignkey>” on page 211,
and “<onetoone>” on page 216 for more information about the effects of the triggersValidat
ion attribute when arrays, foreign keys, and one-to-one entities change.

unique index The property participates in one or more unique indexes.


virtual property ClaimCenter creates no physical database column for the property.
writable The user can write the property with Gosu or the IDataObjectAPI interface.

To view the definition of a particular attribute, click the small question mark (?) by the attribute name in the attribute
list in the Guidewire Data Dictionary.

Entity subtypes
If you look at Contact in the Guidewire Data Dictionary, for example, you see that data dictionary lists a number of
subtypes. For certain ClaimCenter objects, you can think of the object in several different ways:
• As a generic object. That is, all contacts are similar in many ways.
• As a specific version or subtype of that object. For example, you would want to capture and display different
information about companies than about people.
ClaimCenter creates Contact object subtypes by having a base set of shared fields common to all contacts and then
extra fields that exist only for the subtype.
ClaimCenter also looks at the subtype as it decides which fields to show in the ClaimCenter interface. You can
check which subtype a contact is by looking at its subtype field (for example, in a Gosu rule or class).

Data field types


You can use the Data Dictionary to view the type of each object field. The following list describes some of the
possible field types on an object:

Using the Data Dictionary 169


Configuration Guide 9.0.5

Type Description
array Represents a one-to-many relationship, for example, contact to addresses. There is no actual column in the
database table that maps to the array. ClaimCenter stores this information in the metadata.
column As the name specifies, it indicates a column in the database. Inside a column field, you can add tag subtypes to
point out additional information about the field.
foreign key References a keyable entity. For example, Policy has a foreign key (AccountID) to the related account on the
policy, found in the Account entity.
typekey Represents a discrete value picked from a particular list, called a typelist.
virtual Indicates a derived property. ClaimCenter does not store virtual properties in the ClaimCenter physical
property database.

Virtual properties on data entities


The Data Dictionary lists certain entity properties as virtual. ClaimCenter does not store virtual properties in the
ClaimCenter physical database. Instead, it derives a virtual property through a method, a concatenation of other
fields, or from a pointer (foreign key) to a field that resides elsewhere.
For example, if you view the Account entity in the Data Dictionary (for PolicyCenter), you see the following next
to the AccountContactRoleStubypes field:

Derived property returning gw.api.database.IQueryResult (virtual property)

Examples
The following examples illustrate some of the various ways that Guidewire applications determine a virtual
property. The following examples use Guidewire ClaimCenter for illustration.

Virtual property based on a foreign key


Claim.BenefitsDecisionReason is a virtual property that pulls its value from the cc_claimtext table, which
stores ClaimText.ClaimTextType = BenefitsDecisionReason. It returns a mediumtext value. The other fields in
cc_claimtext and cc_exposuretext work in a similar fashion.

Virtual property based on an associated role


Claim.claimant is a virtual property that retrieves the Contact associated with the Claim with the
ClaimContactRole of claimant. It returns a Person value.

Virtual property based on a typelist


Contact.PrimaryPhoneValue is a virtual property that calculates its return value based on the value from
Contact.PrimaryPhone. It retrieves the telephone number stored in the field represented by that typekey. This can
be one of the following:
• Contact.HomePhone
• Contact.WorkPhone
• Person.CellPhone
It returns a phone value.

170 chapter 14 Working with the Data Dictionary


chapter 15

The ClaimCenter data model

The in ClaimCenter data model comprises the persistent data objects, called entities, that ClaimCenter manages in
the application database.

Related concepts
“What is the data model?” on page 171
“Overview of data entities” on page 173
“Base ClaimCenter data objects” on page 181

Related references
“Data object subelements” on page 199

What is the data model?


At its simplest, the Guidewire data model is a set of XML-formatted metadata definitions of entities and typelists.

Entities An entity defines a set of fields for information. You can add the following kinds of fields to an entity:
• Column
• Type key
• Array
• Foreign key
• Edge foreign key
Typelists A typelist defines a set code/value pairs, called typecodes, that you can specify as the allowable values for the type
key fields of entities. Several levels of restriction control what you can modify in typelists:
• Internal typelists – You cannot modify internal typelists because the application depends upon them for internal
application logic.
• Extendable typelists – You can modify this kind of typelist according to its schema definition.
• Custom typelists – You can also create custom typelists for use on new fields on existing entities or for use with
new entities.

The ClaimCenter data model 171


Configuration Guide 9.0.5

Guidewire ClaimCenter loads the metadata of the data model on start-up. The loaded metadata instantiates the data
model as a collection of tables in the application database. Also, the loaded metadata injects Java and Gosu classes
in the application server to provide a programmatic interface to the entities and typelists in the database.

The data model in Guidewire application architecture


Guidewire applications employ a metadata approach to data objects. ClaimCenter uses metadata about application
domain objects to drive both database persistence objects and the Gosu and Java interfaces to these objects.
This architecture provides enormous power to extend Guidewire application capabilities. Typically, you alter
enterprise-level software applications through customization, wherein you change the behavior of the software by
editing the code itself. In contrast, a Guidewire application uses XML files that provide default behavior,
permissions and objects in the base configuration. You change the behavior of the application by modifying the base
XML files and by creating Gosu business rules, classes, enhancements, and other objects.

The base data model


The ClaimCenter data model specifies the entities, fields, and other definitions that comprise a default installation of
ClaimCenter.
For example, the ClaimCenter data model defines a Claim entity and several fields on it, such as ClaimNumber,
LossDate, and Description.
You can change the ClaimCenter data model to accommodate your business needs. Make your changes to the data
model by modifying existing XML files and adding new ones. ClaimCenter stores your files that change the data
model in the following application directory:
ClaimCenter/modules/configuration/config/extensions
Always access and edit the data model files through the configuration→config→Extensions folder in Studio. Do not
edit the XML files directly from the file system yourself.
Changes that you make to the data model are called data model extensions. For example, you can extend the data
model by adding new fields to the User entity, or you can declare entirely new entities. The complete data model of
your ClaimCenter installation comprises the ClaimCenter model and any data model extensions that you make.

WARNING Do not attempt to modify any files other than those in the ClaimCenter/modules/configuration
directory. Any attempt to modify files outside of this directory can prevent the ClaimCenter application from
starting.

Working with dot notation


Many places within ClaimCenter require knowledge of fields within the application data model, especially while
you configure ClaimCenter. For example, code in a business rule, class or enhancement may need to check the
owner of an assignable object. Or, code may need to check the date and time of object creation. ClaimCenter
provides an easy and consistent method of referring to fields within the data model, using relative references based
on a root object.
A root object is the starting point for any field reference. If you run Gosu rules on a claim for example, the claim is
the root object, and you can access anything that relates to this claim. On the other hand, if you run an assignment
rule for an activity, the activity is the root object. In this case, you have access to fields that relate to the activity,
including the claim associated with the activity.
Guidewire applications use dot notation for relative references. For example, assume that your code has Claim as
the root object. For a simple reference to a field on the claim such as LossDate, use:

claim.LossDate

172 chapter 15 The ClaimCenter data model


Configuration Guide 9.0.5

However, suppose that you want to reference a field on an entity that relates to the claim, such as the policy
expiration date. You must first describe the path from the claim to the policy, then describe the path from the policy
to the expiration date of the policy:

claim.Policy.ExpirationDate

Overview of data entities


Data entities are the high-level business objects used by ClaimCenter, such as a Claim, Exposure, or Policy. An
entity serves as the root object for data views, rules, Gosu classes, and most other data-related areas of ClaimCenter.
Guidewire defines a set of data objects in the base ClaimCenter configuration from which it derives all other objects
and entities. For many of the Guidewire base entities, you can also create entity extensions that enhance the base
entities and provide additions required to support your particular business needs. In some cases, you can even define
entirely new entities.
If you plan to archive data entities in your ClaimCenter installation, you must define your data entities in such a way
as to facilitate the archiving process. An incorrect data entity definition can cause the archive operation to fail. See .

Related concepts
“The ClaimCenter archive domain graph” on page 325

Data entity metadata files


You define data entities through XML elements in the entity metadata definition files. The root element of an entity
definition specifies the kind of entity and any attributes that apply. Subelements of the entity element define entity
components, such as columns, or fields, and foreign keys.

WARNING Do not modify any of the base data entity definition files (those in the ClaimCenter/modules/
configuration/config/metadata directory) by editing them directly. You can view these files in read-only
mode in Studio in the configuration →config→Metadata folder.

To better understand the syntax of entity metadata, it is sometimes helpful to look at the ClaimCenter data model
and its metadata definition files. ClaimCenter uses separate metadata definition files for entity declarations and
extensions to them.
The base metadata files are available in Studio in the following location: configuration→config→Metadata
The extension metadata files are available in Studio in the following location: configuration→config→Extensions
The file extensions of metadata definition files distinguish their type, purpose, and contents.

File type Purpose Contains More information


.dti Data Type Info A single data type definition. “Data types” on page
281
.eti Entity Type Information A single Guidewire or custom entity declaration. The “Base ClaimCenter data
name of the file corresponds to the name of the entity objects” on page 181
being declared.
.eix Entity Internal eXtension A single Guidewire entity extension. The name of the file Internal defintion; see .e
corresponds to the name of the Guidewire entity being tx
extended.
.etx Entity Type eXtension A single Guidewire or custom entity extension. The name “Extension data objects”
of the file corresponds to the name of the entity being on page 190
extended. “View entity extension
data objects” on page
198

Overview of data entities 173


Configuration Guide 9.0.5

File type Purpose Contains More information


.tti Typelist Type Info A single Guidewire or custom typelist declaration. The “Working with typelists”
name of the file corresponds to the name of the typelist on page 303
being declared.
.tix Typelist Internal eXtension A single Guidewire typelist extension. The name of the “Working with typelists”
file corresponds to the name of the Guidewire typelist on page 303
being extended.
.ttx Typelist Type eXtension A single Guidewire or custom typelist extension. The “Working with typelists”
name of the file corresponds to the name of the typelist on page 303
being extended.

The type of a metadata definition file determines what you can store and whether you can modify its contents.

File type Location Files are modifiable


.dti configuration→config→datatypes No
.eti configuration→config→Extensions→Entity Yes
configuration→config→Metadata→Entity No
.eix configuration→config→Metadata→Entity No
.etx configuration→config→Extensions→Entity Yes
.tti configuration→config→Extensions→Typelist Yes

configuration→config→Metadata→Typelist No
.tix configuration→config→Metadata→Typelist No
.ttx configuration→config→Extensions→Typelist Yes

The Metadata folder


The Studio Metadata folder contains the metadata definition files for entities that comprise the ClaimCenter data
model.
A Metadata folder contains the following metadata definition file types:
• Declaration files – Versions of metadata definition files with extensions *.eti and *.tti.
• Internal extension files – Versions of metadata definition files with extensions *.eix or *.tix.
For an example, the ClaimCenter data model includes the following metadata definition files that collectively define
the Address entity type.

File version Metadata location File purpose


Address.eti configuration→config→Metadata→Entity Entity definition

Address.eix configuration→config→Metadata→Entity Extension to the entity definition

At runtime, ClaimCenter merges the .eti and .eix versions of the Address definition file to create a complete
Address entity type.

The Extensions folder


The configuration→config→Extensions folder contains your data model definitions that extend the ClaimCenter data
model. ClaimCenter considers the base definitions in configuration→config→Metadata first, and then applies the

174 chapter 15 The ClaimCenter data model


Configuration Guide 9.0.5

definitions in the Extensions folder to them. This lets you create an entity extension that overrides any Guidewire
entity extensions.

Example of Activity metadata and extension files


The ClaimCenter data model includes the following metadata definition files that collectively define the
ClaimCenter Activity entity.

File Location Purpose


Activity.eti configuration→config→Metadata→Entity Entity definition, not modifiable.

Activity.eix configuration→config→Metadata→Entity Entity extension, not modifiable.

To extend the ClaimCenter Activity entity, create the following extension file through Guidewire Studio.

File Location Purpose


Activity.etx configuration→config→Extensions→Entity Custom entity extension.

WARNING Use only Guidewire Studio to create data model definition files. Use of Studio assures that the files
reside in the correct location.

The extensions properties file


In general, if you change the data model, ClaimCenter automatically upgrades the database the next time that you
start the application server. It detects changes to files in that directory by recording a checksum each time the
application server starts. If the recorded checksum and the current checksum differ, ClaimCenter upgrades the
database.
Sometimes you want to force ClaimCenter to upgrade the database without making changes to your custom data
model extensions. The configuration→config→Extensions folder in Studio contains an extensions.properties file
that contains the numeric property version. The value of the version property represents the current version of the
data model definition for your instance of ClaimCenter. It controls whether ClaimCenter performs a database
upgrade on server startup.
Whenever ClaimCenter upgrades the database, ClaimCenter stores the value of the version property in the
database. The next time the application server starts up, ClaimCenter compares the value of the property in the
database to the value in the extensions.properties file. If the value in the database is lower than the value in the
file, ClaimCenter performs a database upgrade. If the value in the database is higher, the upgrade fails.

WARNING In a production environment, Guidewire requires that you increment the version number whenever
you make changes to the data model before you restart the application server. Otherwise, unpredictable results
can occur. Use of the extensions.properties file in a development environment is optional.

Working with entity definitions


In working with entity definitions, you typically want to perform the following operations:
• Search for an existing entity definition
• Create a new entity definition
• Extend an existing entity definition
This section describes procedures for each operation.

Data entity metadata files 175


Configuration Guide 9.0.5

Note: Guidewire strongly recommends that you verify your entity definitions at the time that you create them. To
do so, right-click the entity in the Project window, and then click Validate. The verification process highlights any
issues with a data model definition, enabling you to correct any issues.

Search for an existing entity definition


Procedure
1. In Guidewire Studio, press Ctrl+N.
2. In the Enter class name dialog, start typing the name of the entity that you want to find.
Studio displays a list of matching entries that begin with the character string that you type.
3. In the list, click the name of the entity definition that you want to view.
Pay attention to the class type. For example, if you type Activity, Studio displays a list that includes all
components whose name contains that text. Look for the one that ends with .eti.

Result
Studio opens the file in the appropriate editor.

Create a new entity definition


Procedure
1. In Guidewire Studio, in the Project tool window, navigate to configuration→config→Extensions→Entity.
2. Right-click Entity, and then click New→Entity.
3. In the Entity text box, type the name of the new entity definition that you want to create. Set the other
properties for the entity.
4. Click OK.

Result
Studio displays the name of your new file in the Extensions→entity folder in Studio, and it stores the new file in the
file system at the following location.

configuration/config/extensions/entity

Then Studio opens your new file in the appropriate editor.

Extend an existing entity definition


About this task
You can extend only entity definition files that have the .eti extension.

Procedure
1. In Guidewire Studio, in the Project tool window, navigate to configuration→config→Metadata, and then expand
Entity.
2. Right-click the entity that you want to extend, and then click New→Entity Extension.
The file that you want to extend must have the .eti extension.
3. In the Entity Extension dialog, Studio displays the name and location of the extension file it will create. Click
OK.

176 chapter 15 The ClaimCenter data model


Configuration Guide 9.0.5

Result
Studio displays the name of your new file in the Extensions→Entity folder and stores the new file at the following
location:

configuration/config/extensions/entity

Studio then opens your new file in the appropriate editor.

ClaimCenter data entities


ClaimCenter uses XML metadata files to define all data entities in the data model. The datamodel.xsd file defines
the elements and attributes that you can include in the XML metadata files. You can view a read-only version of this
file in the configuration→xsd→metadata folder in Studio.

WARNING Do not attempt to modify datamodel.xsd. You can invalidate your ClaimCenter installation and
prevent it from starting thereafter.

File datamodel.xsd defines the following:


• The set of allowable or valid data entities
• The attributes associated with each data entity
• The allowable subelements on each data entity
All ClaimCenter entity definition files must correspond to the definitions in datamodel.xsd.
Using XML files, Guidewire defines a data entity as a root element in an XML file that bears the name of the entity.
For example, Guidewire declares the Activity entity type with the following Activity.eti file:

<?xml version="1.0"?>
<entity xmlns="http://guidewire.com/datamodel"
desc="An activity is a instance of work assigned to a user and belonging to a claim."
entity="Activity"
exportable="true"
extendable="true"
platform="true"
table="activity"
type="retireable">
...
</entity>

At application server start up, ClaimCenter loads the XML definitions of the data entities into the application
database.

Data entities and the application database


ClaimCenter defines each data entity as a root XML element in the file that bears its name. For example,
ClaimCenter defines the Activity data entity in Activity.eti:

<entity xmlns="http://guidewire.com/datamodel"
entity="Activity"
...
type="retireable">
...
</entity>

Overview of data entities 177


Configuration Guide 9.0.5

Notice that for the base configuration Activty object, ClaimCenter sets the type attribute to retireable. The type
attribute that determines how ClaimCenter manages the data entity in the ClaimCenter database. For example:
• If a data entity has a type value of versionable, ClaimCenter stores instances of the entity in the database with
a specific ID and version number.
• If a data entity has a type value of retireable, ClaimCenter stores instances of the entity in the database
forever. However, you can retire, or hide, specific instances so that ClaimCenter does not display them in the
interface.

IMPORTANT For each data entity in the ClaimCenter data model and for each entity type that you declare,
ClaimCenter automatically generates a field named ID that is of data type key. An ID field is the internally
managed primary key for the object. Do not attempt to create entity fields of type key. The key type is for
Guidewire internal use only. Guidewire also reserves the exclusive use of the following additional data types:
foreignkey, typekey, and typelistkey.

The following table lists the possible values for the entity type attribute. Use only those type attributes marked for
general use to create or extend an data entity. Do not attempt to create or extend an entity with a type attribute
marked for internal-use.

Type attribute Usage Description


editable General An editable entity is a versionable entity. ClaimCenter automatically stores the version
use number of an editable entity. In addition to the standard versionable attributes of version and ID,
an editable entity has the following additional attributes:
• CreateUser and CreateTime
• UpdateUser and UpdateTime
joinarray Internal A joinarray entity works in a similar manner to a versionable entity. Guidewire recommends
use only that you do not use this entity type. Use versionable instead.
keyable Internal A keyable entity that has an ID, but it is not editable. It is possible to delete entities of this type
use only from the database. Guidewire recommends that you do not use this entity type; use versionabl
e instead.

nonkeyable Internal Do not use.


use only
retireable General The retireable entity is an extension of the editable entity, and is the most common type of
use entity. Most, but not all, base entities are of this type.
After ClaimCenter adds an instance of a retireable data entity to the database, ClaimCenter
never deletes the instance. Instead, ClaimCenter retires the instance. For example, if you select a
retireable instance in a list view and then click Delete, ClaimCenter preserves the instance in the
database. However, ClaimCenter inserts an integer in the Retired column for the row that
represents the instance. Any non-zero value in the Retired column indicates that ClaimCenter
considers the instance retired.
ClaimCenter automatically creates the following fields for retireable entities:
• ID and PublicID
• CreateUser and CreateTime
• UpdateUser and UpdateTime
• Retired
• BeanVersion
These are the same fields as those ClaimCenter creates for editable entities, with the addition of
Retired property.
IMPORTANT Although it is extremely common for a base entity to be retireable, it is not required.
You cannot assume this to be the case. Always check the Data Dictionary to determine the
retireability of an entity.

178 chapter 15 The ClaimCenter data model


Configuration Guide 9.0.5

Type attribute Usage Description


versionable General An entity that has a version and ID. Entities of this type can detect concurrent updates. In general
use practice, Guidewire recommends that you use this entity type instead of keyable. Versionable
extends keyable.
It is possible to delete entities of this type from the database.

ClaimCenter database tables


For every entity type in the data model, ClaimCenter creates a table in the application database. For example,
ClaimCenter creates a Claim table to store information about the Claim object.
In the application database, you can you identify an entity or extension table by the following prefix:

cc_ Entity table – one for each entity in the base configuration
ccx_ Extension table – one for each custom extension added to the extensions folder in Studio

Note: It is possible to create non-persistent entities. These are entities or objects that you cannot save to the
database. Guidewire discourages the use of non-persistent entities in favor of Plain Old Gosu Objects (POGOs),
instead. See “Non-persistent entity data objects” on page 191 for more information.
Besides entity tables, ClaimCenter creates the following types of tables in the database:

Table type More information


shadow tables “Shadow tables” on page 179
staging tables “Staging tables” on page 180
temporary tables “Temporary (temp) tables” on page 180

Shadow tables
A shadow table stores a copy of data from a main table for testing purposes. Every entity table potentially has a
corresponding shadow table. Shadow tables in the database have one of the following prefixes:

cct_ Entity shadow table


cctt_ Typelist shadow table

Shadow tables provide a way to quickly save and restore test data. All GUnit tests, including those that you write
yourself, use shadow tables automatically. You cannot prevent GUnit tests from using shadow tables. GUnit tests use
shadow tables according to the following process:
1. GUnit copies data from the main application tables to the shadow tables to create a backup of your test data.
2. GUnit runs your tests.
3. GUnit copies data backed up data in shadow tables to the main tables to restore a fresh copy of your test data
for subsequent tests.
To start a test server, set its server.running.tests system property to true either explicitly or programmatically.
In addition, set the server environment to one that uses your test database. Upon server startup, if shadow tables do
not already exist, ClaimCenter drops the database, recreates it, and then creates the shadow tables. ClaimCenter
creates shadow tables only in an empty database.

Overview of data entities 179


Configuration Guide 9.0.5

Staging tables
ClaimCenter generates a staging table for any entity that is marked with an attribute of loadable="true". The
loadable attribute is true by default in the base configuration. A staging table largely parallels the main entity table
except that:
• ClaimCenter replaces foreign keys by PublicID objects of type String.
• ClaimCenter replaces typecode fields by typekey objects of type String.
After you load data into these staging tables, you run the command line tool table_import to bulk load the staging
table data into the main application database tables. See the System Administration Guide for information on use this
command.

IMPORTANT Some data types, for example, Entity, contain an overwrittenInStagingTable attribute. If this
attribute is set to true, then do not attempt to populate the associated staging table yourself because the loader
import process overwrites this table.

In the application database, you can you identify a staging table by the following prefix ccst_.

Temporary (temp) tables


ClaimCenter generates a temporary table for any entity that is marked with an attribute of temporary="true". Do
not confuse a temporary table with a shadow table, they are not synonymous. ClaimCenter uses temporary tables as
work tables during installation or upgrade only. ClaimCenter does not use them if the server is running in standard
operation.
Unfortunately, it is easy to forget to clear up these tables if they are no longer needed. Therefore, it is quite possible
for an application to have several of these temporary tables remaining even though the upgrade triggers that used
them are long gone.
In the application database, temporary tables look like any other entity table except that temporary tables are almost
always empty.

Data objects and scriptability


Scriptability is the ability of code to set (write) or get (read) a scriptable item such as a property (column) on an
entity. To do so, you set the following attributes:
• getterScriptability
• setterScriptabiliy
The following table lists the different types of scriptability:

Type Description
all Exposed in Gosu, wherever Gosu is valid, for example, in rules and PCF files
doesNotExist Not exposed in Gosu

hidden Not exposed in Gosu

If you do not specify a scriptability annotation, then ClaimCenter defaults to a scriptability of all.

180 chapter 15 The ClaimCenter data model


Configuration Guide 9.0.5

IMPORTANT There are subtle differences in how ClaimCenter treats entities and fields marked as doesNotExist
and hidden. However, these differences relate to internal ClaimCenter code. For your purpose, these two
annotations behave in an identical manner, meaning any entity or field that uses one of these annotations does not
show in Gosu code. In general, there is no need for you to use either one of these annotations.

Scriptability behavior on entities


If you set setterScriptability at the entity level but you also set the value to hidden or doesNotExist, then
ClaimCenter does not generate constructors for the entity. In essence, you cannot create a new instance of the entity
in Gosu. Within the ClaimCenter data model, you can set the following scriptability annotation on <entity> objects:

Object Set (write) Get (read)


<entity> Yes No*
* <entity> does not contain a getterScriptability attribute.

Scriptability behavior on fields (columns)


If you set setterScriptability at the field level, then the value that you set controls the writability of the
associated property in Gosu. Within the ClaimCenter data model, you can set the following scriptability annotation
on fields on <entity> objects:

Field Set (write) Get (read)


<array> Yes Yes
<column> Yes Yes
<edgeForeignKey> Yes Yes
<foreignkey> Yes Yes
<onetoone> Yes Yes
<typekey> Yes Yes

Base ClaimCenter data objects


All ClaimCenter objects exist as one of the base data objects or as a subtype of a base object. The following table
lists the data objects that Guidewire defines in the base ClaimCenter configuration.

Data object Extension Folder More information


<delegate> .eti metadata, extensions “Delegate data objects” on page 182

<entity> .eti metadata, extensions “Entity data objects” on page 185

<extension> .etx extensions “Extension data objects” on page 190


<nonPersistentEntity> .eti metadata, extensions “Non-persistent entity data objects” on page 191

<subtype> .eti metadata, extensions “Subtype data objects” on page 193

<viewEntity> .eti metadata “View entity data objects” on page 195


<viewEntityExtension> .etx extensions “View entity extension data objects” on page 198

Data objects and scriptability 181


Configuration Guide 9.0.5

IMPORTANT There are additional data objects that Guidewire uses for internal purposes. Do not attempt to create
or extend a data entity that is not listed in the previous table.

Related concepts
“Delegate data objects” on page 182

Related references
“Entity data objects” on page 185
“Extension data objects” on page 190
“Non-persistent entity data objects” on page 191
“Subtype data objects” on page 193
“View entity data objects” on page 195
“View entity extension data objects” on page 198

Delegate data objects


A delegate data object is a reusable entity that contains an interface and a default implementation of that interface. A
delegate may also add its own columns to the tables of data objects that implement the delegate. This type of
delegation enables a data object to implement an interface while delegating the implementation to the delegate.
You often use a delegate so objects can share code. The delegate implements the shared code rather than each class
implementing copies of common code. Thus, a delegate is an entity associated with an implemented interface that
multiple parent entities can reuse.
Guidewire defines delegate data object in data model metadata files as the <delegate> XML root element. You can
extend existing delegates that are marked as extendable, and you can create your own delegates.
ClaimCenter stores all database columns on the delegate entity on the parent entity.

Implementing delegate objects


To implement most delegate objects, you add the following to an entity definition or extension.

<implementsEntity name="SomeDelegate"/>

For example, in the base configuration, the Group entity implements the Validatable delegate by using the
following:

<entity entity="Group" ... >


<implementsEntity name="Validatable"/>
...
</entity>

It is possible for an entity to implement multiple delegates, just as a Gosu or Java class can implement multiple
interfaces.
See also
• “<implementsEntity>” on page 213
• “Creating a new delegate object” on page 243.
• For a discussion of working with delegates in Gosu classes, see the Gosu Reference Guide.

182 chapter 15 The ClaimCenter data model


Configuration Guide 9.0.5

Delegate objects that you cannot implement directly


There are some delegates that you cannot implement directly through the use of the <implementsEntity> element.
They are:
• Versionable
• KeyableBean
• Editable
• Retireable
These are special delegates that ClaimCenter implicitly adds to an entity if you set the type attribute on the entity to
one of these values. Therefore, do not use the <implementsEntity> element to specify one of these delegates.
Instead, use the type attribute on the entity declaration. The basic syntax looks similar to the following:

<entity name="SomeEntity" ... type="SomeDelegate">

For example, in the base configuration, the Group entity also implements the Retireable delegate by setting the
entity type attribute to retireable.

<entity entity="Group" ... type="retireable">


<implementsEntity name="Validatable"/>
...
</entity>

Also, it is not possible to explicitly implement the EventAware delegate. ClaimCenter automatically adds this
delegate to any entity that contains an <events> element.

Archiving delegates in the base configuration must not be changed


To support the archive process, certain Guidewire entities in the base configuration implement one or more of the
following delegates:
• RootInfo
• Extractable
• OverlapTable

WARNING Do not change or remove the archiving delegates on Guidewire entities in the base configuration.
Otherwise, the server may not start due to errors in the archiving domain graph.

Attributes of <delegate>
The <delegate> element contains the following attributes.

<delegate> attribute Description Default


extendable Internal. false

name Required. None


platform Internal. Do not use. The only real effect is to change the location in which the table false
appears in a data distribution report.
requiresType Specifies that the delegate must be implemented by an entity of a general type, such nonkeyable
as retireable or versionable.
Possible values for the requiresType attribute are the values of the type attribute on
the <entity> element. Some of the general types extend others. For example, editab
le extends versionable, and versionable extends keyable. An entity can
implement the delegate if the implementor is the specified type or one that extends

Delegate data objects 183


Configuration Guide 9.0.5

<delegate> attribute Description Default


it. For example, if the requiresType attribute is keyable, then an implementing
entity could have type keyable, versionable, or editable.
setterScriptability See “Data objects and scriptability” on page 180 for information. None

Subelements of <delegate>
The <delegate> element contains the following subelements.

<delegate> subelement Description

column See “<column>” on page 202.


datetimeordering Internal.
dbcheckbuilder Internal.
foreignkey See “<foreignkey>” on page 211.
fulldescription See “<fulldescription>” on page 213.
implementsEntity See “<implementsEntity>” on page 213.
implementsInterface See “<implementsInterface>” on page 214.
index See “<index>” on page 215.
monetaryamount Handles monetary amounts. The <monetaryamount> subelement is a compound data type that
stores its values in two separate database columns: a <money> column type, and a typekey to the Cu
rrency typelist.

typekey See “<typekey>” on page 219.

Recommendations for using delegates


Guidewire recommends that you use delegates in three scenarios.

Implementing a common interface


Guidewire recommends that you use a delegate if you want both of the following:
• If you want to have multiple entities implement the same interface
• If you want most of the implementations of the interface to be common
ClaimCenter defines a number of delegates in the base configuration. For example:
• Assignable
• Editable
• Validatable
• ...
To determine the list of base configuration delegate entities, search the configuration→config→Metadata→Entity folder
for files that contain the following text:

<delegate

Subtyping without single-table inheritance


Guidewire recommends that you create a delegate entity rather than define a supertype entity if you do not want to
store subtype data in a single table. ClaimCenter stores information on all subtypes of a supertype entity in a single
table. This can create a table that is extremely large and extremely wide. This is true especially if you have an entity

184 chapter 15 The ClaimCenter data model


Configuration Guide 9.0.5

hierarchy with a number of different subtypes that each have their own columns. Using a delegate avoids this single-
table inheritance while preserving the ability to define the fields and behavior common to all the subtypes in one
place.
Guidewire recommends that you consider carefully before making a decision on how to model your entity hierarchy.

Using entity polymorphism


Guidewire recommends that you create a delegate entity if you want to use polymorphism on class methods. For
core ClaimCenter classes defined in Java, you cannot override these class methods on its Gosu subtypes. You can,
however, push all methods and behaviors that can possibly be polymorphic into an interface, rather than the Java
superclass. You can then require that all implementers of the delegate implement that interface (the
<implementsEntity>) through the use of the delegate requires attribute. This delegate usage permits the use of
polymorphism and enables delegate implementations to share common implementations on a common superclass.

Entity data objects


An entity data object is the standard persistent data object that defines many—if not most—of the ClaimCenter
entities. Guidewire defines this object in the data model metadata files as the <entity> XML root element.

Attributes of <entity>
The <entity> element contains the following attributes.

<entity> attribute Description Default


abstract If true, you cannot an create instance of the entity type at runtime. Instead, you false
must declare a subtype entity with abstract=false, which you can instantiate. Any
of the generated code is abstract.
admin Determines whether you can reference the entity from staging tables: false
• Entity X has admin="true". Suppose that you have another, loadable table Y that
has a foreign key to X. Then at the time you load the staging table for Y, you can
load public IDs that specify entities of type X that are already in the main tables.
• Entity X has admin="false". Any Y that you load into a staging table must
specify an X that is being loaded into the staging table for X at the same time.
This is important because it allows the staging table loader to do less checking at
load time. For example:
• If admin="false", then the staging table loader merely has to check that all
public IDs in ccst_y specify valid entries in ccst_x.
• If admin="true", then the staging table loader has to check that all public IDs in
ccst_y specify a valid entry in ccst_x. It must also check that all public IDs in cc
st_y specify a valid entry in cc_x, the main table.

cacheable Internal. If set to false, then Guidewire prohibits entities of this type and all its true
subtypes from existing in the global cache.
consistentChildren Internal. If set to true, then ClaimCenter generates a consistency check and a loader false
validation that tries to ensure that links between child entities of this entity are
consistent. Guidewire enforces the constraint only while loading data from staging
tables. You can detect violations of the constraint on data committed to entity
tables after the fact by running a consistency check.
IMPORTANT Guidewire does not enforce consistentChildren constraints at
bundle commit.
desc A description of the purpose and use of the entity. None
displayName Optional. Creates a more human-readable form of the entity name. You can access None
this name using the following:
entity.DisplayName

Base ClaimCenter data objects 185


Configuration Guide 9.0.5

<entity> attribute Description Default


If you do not specify a value for the DisplayName attribute, then the entity.Displa
yName method returns the value of the entity attribute, instead. If you subtype an
entity that has a specified display name, then the entity.DisplayName method
returns the name of the subtype key.
edgeTable For the purposes of archiving, whether the entity has the semantics of an edge false
table.
entity Required. The name of the entity. You use this name to access the entity in data None
views, rules, and other areas within ClaimCenter.
exportable Unused.
extendable Internal. If true, it is possible to extend this entity. true

final If true, you cannot subtype the entity. If false, you can define subtypes using this true
entity as the supertype.
IMPORTANT If you define this incorrectly, ClaimCenter generates an error message
upon resource verification and the application server refuses to start. ClaimCenter
generates this verification error:
• If you attempt to subtype an entity that is marked as final that exists in the met
adata folder in Studio.
• If you attempt to subtype an entity that is marked as final that exists in the ext
ensions folder in Studio.

generateInternallyIfAbsent Internal. Do not use. false

ignoreForEvents The ignoreForEvents attribute indicates whether other entities pass over the false
instant entity when determining the origin of an event. If the value of ignoreForEve
nts is true, ClaimCenter ignores the entity in this context.
If the <events> element is not present in an entity, that entity does not generate
events. Moreover, that entity does not generate events when you create, modify, or
delete it. Thus, it makes no sense for ClaimCenter to examine either that entity or
entities that reference it when the product searches for the source of an event.
Nonetheless, even if an entity generates no events, whenever you modify it,
ClaimCenter still examines that entity and all entity instances that reference it. The
scope of this examination encompasses the non-event-generating entity as well as
arrays, foreign keys, and edge foreign keys that reference it. If ClaimCenter finds an
entity instance that both generates events and references the modified, non-event-
generating entity, the product generates a Changed event for that entity instance.
This examination and event generation process results in unnecessary and long
chain queries.
Guidewire offers two solutions to the resultant performance challenge. You can
avoid the examination and event generation altogether if you set the ignoreForEve
nts attribute to true on the non-event-generating entity. In this case, ClaimCenter
ignores the non-event-generating entity as well as references to it when an event
occurs.
As an alternative, you can avoid the examination and event generation in some
cases while allowing the process in others. To effect this selective avoidance, set the
ignoreForEvents attribute to true not on the non-event-generating entity. Rather,
set it to true only on event-generating entity instances both that reference the
entity and that you want ClaimCenter to ignore. Such referencing entity instances
might be arrays, foreign keys, or edge foreign keys.
In this case, when you modify the non-event-generating entity, ClaimCenter does
not ignore the entity altogether. When you modify the entity, event-generating
entity instances that reference the entity and on which the ignoreForEvents
attribute is false still generate events. Instead, ClaimCenter ignores only the
referencing entity instance on which you set the ignoreForEvents attribute to tr
ue.

186 chapter 15 The ClaimCenter data model


Configuration Guide 9.0.5

<entity> attribute Description Default


Thus, if you want no events triggered at all when you modify a non-event-
generating entity, set the ignoreForEvents attribute on that entity to true. If you
want some events avoided and some triggered, take this step only on event-
generating entities that reference the non-event-generating entity and that you
want to ignore. Set the ignoreForEvents attribute to true as appropriate to ensure
optimal performance.
instrumentationTable Internal. false

loadable If true, you can load the entity through staging tables. true

lockable Internal. If set to true, ClaimCenter adds a lock column (lockingcolumn) to the false
table for this entity. ClaimCenter uses this to acquire an update lock on a row. The
most common use is on objects in which it is important to implement safe ordering
of messages. In that case, the entity that imposes the safe ordering needs to be
lockable.
IMPORTANT Guidewire strongly recommends that you do not use this locking
mechanism.
overwrittenInStagingTable Internal. If true and the entity is loadable, the loader process auto-populates the false
staging table during import.
IMPORTANT If set to true, do not attempt to populate the table yourself, because
the loader import process overwrites this table.
platform Internal. Do not use. The only real effect is to change the location in which the table false
appears in a data distribution report.
priority The priority of the corresponding subtype key. This value is meaningful only for -1
entities participating in a subtype hierarchy, which can be either the <subtype>
entities or the root <entity>.
readOnly Optional. The typical use of read-only entities is for tables of reference data that you None
import as administrative data and then never touch again.
You can add a read-only entity only to a bundle that has the allowReadOnlyBeanCha
nges() flag set on its commit options. That means that inserting, modifying or
deleting a read-only entity requires one of these special bundles.
You cannot set bundle commit options from Gosu. Therefore, you cannot modify
these entities from Gosu, unless some Gosu-accessible interface gives you a special
bundle. The administrative XML import tools use such a special bundle. However,
Guidewire uses these tools internally only in the PolicyCenter product model.
setterScriptability See “Data objects and scriptability” on page 180. None
subpackage Subpackage to which the class corresponding to this entity belongs. None
table Required. The name of the database table in which ClaimCenter stores the data for None
this entity. ClaimCenter automatically prefixes table names with cc_ for base
entities and ccx_ for extension entities.
Guidewire recommends the following table naming conventions:
• Do not begin the table name with any product-specific extension.
• Use only unaccented, lowercase Roman letters and the underscore character.
• Prefix the table name with test_ if you use the table solely for testing.
• Because ClaimCenter automatically prefixes extension table names with ccx_, if
you run into limits on the length of the table name, you can consider removing
the _Ext suffix from the table name.
Guidewire enforces the following restrictions on the maximum allowable length of
the table name:
• loadable="true" — maximum of 25 characters
• loadable="false" — maximum of 26 characters

Base ClaimCenter data objects 187


Configuration Guide 9.0.5

<entity> attribute Description Default


temporary Internal. If true, then this table is a temporary table that ClaimCenter uses only false
during installation or upgrade.
ClaimCenter deletes all temporary tables after it completes the installation or the
upgrade.
type Required. See “Overview of data entities” on page 173 for a discussion of data entity None
types.
typelistTableName If you create a non-final entity, then ClaimCenter automatically creates a typelist to None
keep track of the subtypes of that entity. That typelist has an associated database
table. If you do not specify a value for this attribute, then ClaimCenter uses the
name of the entity as the table name for the subtype typelist.
However, ClaimCenter places a restriction of 25 characters on the length of the
database table name. You use this attribute to specify the database table name for
the typelist if an entity name is too long to become a valid typelist table name.
It is not valid to use this attribute with entity types marked as final.
validateOnCommit Internal. Do not use. If true, ClaimCenter validates this entity during a commit of a true
bundle that contains this entity.

IMPORTANT Do not modify internal entity attributes. This instruction applies even in the case of custom entities.

Subelements of <entity>
The <entity> element contains the following subelements.

<entity> subelement Description


array See “<array>” on page 200.
checkconstraint Internal.
column See “<column>” on page 202.
customconsistencycheck Internal.
datetimeordering Internal.
dbcheckbuilder Internal.
edgeForeignKey See “<edgeForeignKey>” on page 207.
events Indicates that the entity raises events and that the entity is aware of events. See “<events>” on
page 210.
foreignkey See “<foreignkey>” on page 211.
fulldescription See “<fulldescription>” on page 213.
implementsEntity See “<implementsEntity>” on page 213.
implementsInterface See “<implementsInterface>” on page 214.
index See “<index>” on page 215.
jointableconsistencycheck Internal.

monetaryamount Handles monetary amounts. The <monetaryamount> subelement is a compound data type that
stores its values in two separate database columns: a <money> column type, and a typekey to
the Currency typelist.
onetoone See “<onetoone>” on page 216.
remove-index See “<remove-index>” on page 218.

188 chapter 15 The ClaimCenter data model


Configuration Guide 9.0.5

<entity> subelement Description


searchColumn See “Entity data objects” on page 185
searchTypekey Defines a search denormalization typekey in the database. The denormalization copies the
value of a column on another table into a typekey field on the denormalizing table. You must
link the tables through a foreign key. The purpose of this denormalization is to avoid costly
joins in performance critical searches.
tableAugmenter Internal.
typekey See “<typekey>” on page 219.
validatetypekeyinset Internal.
validatetypekeynotinset Internal.

IMPORTANT Do not modify internal entity subelements even in the case of custom entities.

The <searchColumn> subelement


The <searchColumn> subelement on <entity> defines a search denormalization column in the database. The
denormalization copies the value of a column on another table into a column on the denormalizing table. You must
link the tables through a foreign key. The purpose of this denormalization is to avoid costly joins in performance-
critical searches.
The use of search denormalization columns adds overhead to updates, as does any denormalization. Guidewire
recommends that you only use these columns if there is an identifiable performance problem with a search that is
directly related to the join between the two tables
Note: It is possible to have a <searchColumn> sublement on the <extension> and <subtype> elements as well.
The <searchColumn> element contains the following attributes.

<searchColum Description Default


n> attribute

columnName Name to use for the database column corresponding to this property. If you do not None
specify a value, then ClaimCenter uses the name value instead.
The columnName attribute must be no more than 30 characters in length. It allows only
unaccented Roman letters, numbers, and the underscore character. The first character of
the columnName attribute must be a letter. Although the underscore character is
allowable here, Guidewire discourages its use.
deprecated If true, then ClaimCenter marks the item as deprecated in the Data Dictionary and places false
a Deprecated annotation on it in the Guidewire Studio API Reference.
If you deprecate an item, use the description to explain why.
For more information, see “Data object subelements” on page 199.
desc Description of the intended purpose of this column. None
name Required. Name of the column on the table and the field on the entity. The name value None
maps to the accessor and mutator methods of a field on the entity, not the actual private
member field. For example, name maps to setName and getName, not the private _name
member field.
Column names must contain letters only. A column name cannot contain an underscore.
sourceColumn Required. Name of the column on the source entity, whose value this column copies. The None
sourceColumn must not name a localized column.

sourceForeignKey Required. Name of a foreign key field on this entity, which refers to the source entity for None
this search denormalization column. The sourceForeignKey must not be importable
against existing objects.

Base ClaimCenter data objects 189


Configuration Guide 9.0.5

<searchColum Description Default


n> attribute

sourceSubtype Optional name of the particular subtype on which the source column is defined. If not None
specified, then ClaimCenter assumes that the source column to exist on the entity
referred to by the source object. However, you must specify this value if the sourceColum
n is on a subtype of the entity referred to by sourceForeignKey.

For example, suppose that you set the following attribute definitions:
• searchColumn – MyDenormColumn
• sourceForeignKey – Source
• sourceColumn – SourceField
This declaration says:
Copy the value of SourceField on the object pointed to by the foreign key named Source into the field named
MyDenormColumn. ClaimCenter automatically populates the column as part of bundle commit, staging table load,
and database upgrade.
If you need to denormalize a field on a subtype of the entity referred to by the foreign key, then you can specify the
optional sourceSubtype attribute.
As with linguistic denormalization columns, you cannot access the value of these search denormalization columns in
memory. The value is only available in the database. Thus, you can only access the value through a database query.
It is possible to make a query against a search denormalization column that is a denormalization of a linguistic
denormalization column. In that case, the query generator knows not to wrap the column values in the linguistic
denormalization function. This preserves the optimization that linguistic denormalization columns provide.
It is important to understand that search denormalization columns specify one column only — the column that you
specify with the sourceColumn attribute. So, if you want to denormalize both a column and its linguistic
denormalization, then you need two separate search denormalization columns. However, in this case, you typically
would just want to denormalize the linguistic denormalization column. You would only want to denormalize the
source column if you wanted to support case-sensitive searches on it.
Search denormalization columns can only specify <column> or <typekey> fields.

Extension data objects


An extension data object is the standard data object that you use to extend an already existing data object or entity.
Guidewire defines this object in the data model metadata files as the <extension> XML root element.
See also
• For information on how to extend the base data objects, see “Modifying the base data model” on page 233.

Attributes of <extension>
The <extension> element contains the following attributes.

<extension> attribute Description Default


entityName Required. This value must match the file name of the entity that it extends. None
ClaimCenter generates an error at resource verification if the value set that you set for
the entityName attribute for an extension does not match the file name.

Subelements of <extension>
The <extension> element contains the following subelements.

190 chapter 15 The ClaimCenter data model


Configuration Guide 9.0.5

<extension> subelement Description


array See “<array>” on page 200.
array-override Use to override, or flip, the value of the triggersValidation attribute of an <array> element
definition on a base data object. See “Working with attribute and element overrides” on page
239 for details.
column See “<column>” on page 202.
column-override Use to override certain very specific attributes of a base data object. See “Working with attribute
and element overrides” on page 239 for details.
description A description of the purpose and use of the entity.
edgeForeignKey See “<edgeForeignKey>” on page 207.
edgeForeignKey-override Use to override certain very specific attributes of a base data object.

events See “<events>” on page 210.


foreignkey See “<foreignkey>” on page 211.
foreignkey-override Use to override, or flip, the value of the triggersValidation attribute of a <foreignkey>
element definition on a base data object. See “Working with attribute and element overrides” on
page 239 for details.
implementsEntity See “<implementsEntity>” on page 213.
implementsInterface See “<implementsInterface>” on page 214.
index See “<index>” on page 215.
internalonlyfields Internal.
monetaryamount Handles monetary amounts. The <monetaryamount> subelement is a compound data type that
stores its values in two separate database columns: a <money> column type, and a typekey to the
Currency typelist.

onetoone See “<onetoone>” on page 216.


onetoone-override Use to override, or flip, the value of the triggersValidation attribute of an <ontoone> element
definition on a base data object. See “Working with attribute and element overrides” on page
239 for details.
remove-index See “<remove-index>” on page 218.
searchColumn See “Entity data objects” on page 185
searchTypekey Defines a search denormalization typekey in the database. The denormalization copies the value
of a column on another table into a typekey field on the denormalizing table. You must link the
tables through a foreign key. The purpose of this denormalization is to avoid costly joins in
performance critical searches.
typekey See “<typekey>” on page 219.
typekey-override Use to override certain specific attributes, or fields, of a <typekey> element definition on a base
data object. See “Working with attribute and element overrides” on page 239 for details.

Non-persistent entity data objects


A non-persistent entity data object defines a temporary entity that ClaimCenter creates and uses only during the time
that the ClaimCenter server is running. When the server shuts down, ClaimCenter discards the entity data. It is not
possible to commit a non-persistent entity object to the database.
Guidewire defines this object in the data model metadata files as the <nonPersistentEntity> XML root element.

Base ClaimCenter data objects 191


Configuration Guide 9.0.5

Note: You cannot extend a persistent entity with a non-persistent entity.

Guidewire recommendations for non-persistent entities


As a general rule, Guidewire recommends that you do not create new non-persistent entities. In addition, do not
extend existing non-persistent entities unless instructed to do so. For example, the base configuration contains non-
persistent entities that you can extend to specify new search criteria.
A major issue with non-persistent entities is that they do not interact well with data bundles. Passing a non-persistent
entity to a PCF page, for example, is generally a bad idea because it generally does not work in the manner that you
expect.
A non-persistent entity has to live in a bundle and can only live in one bundle. Therefore, passing it to one context
removes it from the other context. Even worse, it is possible that in passing the non-persistent entity from one
context to another, the entity loses any nested arrays or links associated with it. Thus, it is possible to lose parts of
the entity graph as the non-persistent entity moves around. Entity serialization is also less efficient and less
controllable than using a custom class that contains only the data that it really needs.
In situations where you want the behavior of a non-persistent entity, use a Gosu class instead. For example:
• If you want the behavior of a non-persistent entity in web services, create a Gosu class and then expose the class
as a web service. Do not rely on non-persistent entities and entity serialization.
• If you want a field that behaves, for example, as a nonnegativeinteger column, specify a data type through the
use of annotations. Then add the wanted data type behavior to properties on Gosu classes. For information on
how to associates data types with object properties using the annotation syntax, see “Defining a data type for a
property” on page 283.

Attributes of <nonPersistentEntity>
The <nonPersistentEntity> element contains the following attributes.

<nonPersistentEntit Description Default


y> attribute

abstract If true, you cannot an create instance of the entity type at runtime. Instead, you false
must declare a subtype entity with abstract=false, which you can instantiate. Any
of the generated code is abstract.
desc A description of the purpose and use of the entity. None
displayName Optional. Creates a more human-readable form of the entity name. You can access None
this name using the following:
entity.DisplayName
If you do not specify a value for the DisplayName attribute, then the entity.Displ
ayName method returns the value of the entity attribute, instead. If you subtype an
entity that has a specified display name, then the entity.DisplayName method
returns the name of the subtype key.
entity Required. The name of the entity. You use this name to access the entity in data None
views, rules, and other areas within ClaimCenter.
exportable Unused.
extendable If true, it is possible to extend this entity. true

final If true, you cannot subtype the entity. If false, you can define subtypes using this true
entity as the supertype.
platform Internal. Do not use. The only real effect is to change the location in which the table false
appears in a data distribution report.
priority The priority of the corresponding subtype key. This value is meaningful only for -1
entities participating in a subtype hierarchy, which can be either the <subtype>
entities or the root <entity>.

192 chapter 15 The ClaimCenter data model


Configuration Guide 9.0.5

<nonPersistentEntit Description Default


y> attribute

typelistTableName If you create a non-final entity, then ClaimCenter automatically creates a typelist to None
keep track of the subtypes of that entity. That typelist has an associated database
table. If you do not specify a value for this attribute, then ClaimCenter uses the
name of the entity as the table name for the subtype typelist.
However, ClaimCenter places a restriction of 25 characters on the length of the
database table name. You use this attribute to specify the database table name for
the typelist if an entity name is too long to become a valid typelist table name.
It is not valid to use this attribute with entity types marked as final.

Subelements of <nonPersistentEntity>
The <nonPersistentEntity> element contains the following subelements.

<nonPersistentEntity> subelement Description


array See “<array>” on page 200.
column See “<column>” on page 202.
edgeForeignKey See “<edgeForeignKey>” on page 207.
foreignkey See “<foreignkey>” on page 211.
fulldescription See “<fulldescription>” on page 213.
implementsEntity See “<implementsEntity>” on page 213.
implementsInterface See “<implementsInterface>” on page 214.
monetaryamount Handles monetary amounts. The <monetaryamount> subelement is a compound data
type that stores its values in two separate database columns: a <money> column type,
and a typekey to the Currency typelist.
onetoone See “<onetoone>” on page 216.
typekey See “<typekey>” on page 219.

Subtype data objects


A subtype defines an entity that is a subtype of another entity. The subtype entity has all of the fields and elements
of its supertype and it can also have additional ones. Guidewire defines this object in the data model metadata files
as the <subtype> XML root element.
ClaimCenter does not associate a separate database table with a subtype. Instead, ClaimCenter stores all subtypes of
a supertype in the table of the supertype and resolves the entity to the correct subtype based on the value of the
Subtype field. To accommodate this, ClaimCenter stores all fields of a subtype in the database as nullable columns
—even the ones defined as non-nullable. However, if you define a field as non-nullable, then the ClaimCenter
metadata service enforces this for all data operations.
You can only define a subtype for any entity that has its final attribute set to false. ClaimCenter automatically
creates a Subtype field for non-final entities.

Attributes of <subtype>
The <subtype> element contains the following attributes:

Base ClaimCenter data objects 193


Configuration Guide 9.0.5

<subtype> attribute Description Default


abstract If true, you cannot an create instance of the entity type at runtime. Instead, you must false
declare a subtype entity with abstract=false, which you can instantiate. Any of the
generated code is abstract.
desc A description of the purpose and use of the subtype. None
displayName Optional. Occasionally in the ClaimCenter interface, you want to display the subtype None
name of subtyped entity instances. Use the displayName attribute to specify a String to
display as the subtype name. You can access this name using the following:
entity.DisplayName
If you do not specify a value for the displayName attribute, then ClaimCenter displays
the name of the entity. The entity name is often not user-friendly. For a description of
the displayName attribute, see “Entity data objects” on page 185.
entity Required.
final If true, you cannot subtype the entity. If false, you can define subtypes using this entity false
as the supertype.
platform Internal. Do not use. The only real effect is to change the location in which the table false
appears in a data distribution report.
priority The priority of the corresponding subtype key. This value is meaningful only for entities -1
participating in a subtype hierarchy, which can be either the <subtype> entities or the
root <entity>.
readOnly Optional. The typical use of read-only entities is for tables of reference data that you None
import as administrative data and then never touch again.
You can add a read-only entity only to a bundle that has the allowReadOnlyBeanChange
s() flag set on its commit options. That means that inserting, modifying or deleting a
read-only entity requires one of these special bundles.
You cannot set bundle commit options from Gosu. Therefore, you cannot modify these
entities from Gosu, unless some Gosu-accessible interface gives you a special bundle.
The administrative XML import tools use such a special bundle. However, Guidewire uses
these tools internally only in the PolicyCenter product model.
setterScriptability See “Data objects and scriptability” on page 180 for information. None
supertype Required.

Subelements of <subtype>
The <subtype> element contains the following subelements.

<subtype> subelement Description


array See “<array>” on page 200.
checkconstraint Internal.
column See “<column>” on page 202.
customconsistencycheck Internal.
datetimeordering Internal.
dbcheckbuilder Internal.
edgeForeignKey See “<edgeForeignKey>” on page 207.
events See “<events>” on page 210.
foreignkey See “<foreignkey>” on page 211.
fulldescription See “<fulldescription>” on page 213.

194 chapter 15 The ClaimCenter data model


Configuration Guide 9.0.5

<subtype> subelement Description


implementsEntity See “<implementsEntity>” on page 213.
implementsInterface See “<implementsInterface>” on page 214.
index See “<index>” on page 215.
jointableconsistencycheck Internal.

monetaryamount Handles monetary amounts. The <monetaryamount> subelement is a compound data type that
stores its values in two separate database columns: a <money> column type, and a typekey to
the Currency typelist.
onetoone See “<onetoone>” on page 216.
searchColumn See “Entity data objects” on page 185
searchTypekey Defines a search denormalization typekey in the database. The denormalization copies the
value of a column on another table into a typekey field on the denormalizing table. You must
link the tables through a foreign key. The purpose of this denormalization is to avoid costly
joins in performance critical searches.
tableAugmenter Internal.
typekey See “<typekey>” on page 219.
validatetypekeyinset Internal.
validatetypekeynotinset Internal.

Subtypes and typelists


After you define a new subtype, ClaimCenter automatically adds that entity type to the associated entity typelist.
This is true, even if ClaimCenter marks that typelist as final.
For example, suppose that you define an Inspector entity as a subtype of Person.

<?xml version="1.0"?>
<subtype xmlns="http://guidewire.com/datamodel" desc="Professional inspector" displayName="Inspector"
entity="InspectorExt"
supertype="Person">
<column name="InspectorLicenseExt" type="varchar" desc="Inspector's business license number">
<columnParam name="size" value="30"/>
</column>
</subtype>

Notice that while InspectorExt is subtype of Person, Person, itself, is a subtype of Contact. ClaimCenter
automatically adds the new InspectorExt type to the Contact typelist. This is true, even though ClaimCenter
marks the Contact typelist as final.
To see this change:
• In the ClaimCenter Data Dictionary, you must restart the application server.
• In the Contact typelist in Studio, you must restart Studio.
See also
• “Defining a subtype” on page 248

View entity data objects


A view entity is a logical view of entity data. You can use a view entity to enhance performance during the viewing
of tabular data. A view entity provides a logical view of data for an entity of interest to a list view. A view entity can
include paths from the root or primary entity to other related entities.

Subtype data objects 195


Configuration Guide 9.0.5

For example, from the ActivityView, you can specify a column with a Claim.ClaimNumber value. The Activity
entity is the primary entity of the ActivityView. The Activity entity has a corresponding view entity called
ActivityView.
Unlike a standard entity, a view entity does not have an underlying database table. ClaimCenter does not persist
view entities to the database. Instead of storing data, a view entity restricts the amount of data that a database query
returns. A view entity does not represent or create a materialized view, which is a database table that caches the
results of a database query.
Queries against a view entity type are actually run against the normal entity table in the database, as specified by the
primaryEntity attribute of the view entity definition. The query against a view entity automatically adds any joins
necessary to retrieve view entity columns if they include a bean path. However, access to view entity columns is not
possible when constructing the query.
A view entity improves the performance of ClaimCenter on frequently used pages that list entities. Like other
entities, you can subtype a view entity.
For example, the My Activities page uses a view entity, the ActivityDesktopView, which is a subtype of the
ActivityView.
Because ClaimCenter can export view entity types, it generates SOAP interfaces for them.
Note: If you create or extend a view entity that references a column that is of type="currencyamount", then you
must handle the view entity extension in a particular manner. See “Extending an existing view entity with a
currency column” on page 252 for details.
Guidewire defines this object in the data model metadata files as the <viewEntity> XML root element.

Attributes of <viewEntity>
The <viewEntity> element contains the following attributes:

<viewEntity> attribute Description Default


abstract If true, you cannot an create instance of the entity type at runtime. Instead, you must false
declare a subtype entity with abstract=false, which you can instantiate. Any of the
generated code is abstract.
desc A description of the purpose and use of the entity. None
displayName Optional. Creates a more human-readable form of the entity name. You can access this None
name using the following:
viewEntity.DisplayName
If you do not specify a value for the DisplayName attribute, then the entity.DisplayN
ame method returns the value of the entity attribute, instead. If you subtype an entity
that has a specified display name, then the entity.DisplayName method returns the
name of the subtype key.
entity Required. Name of this viewEntity object. None
exportable Unused.
extendable If true, it is possible to extend this entity. true

final If true, the entity definition is final and you cannot define any subtypes for it. If false, true
then you can define a subtype using this entity as the supertype.
platform Internal. Do not use. The only real effect is to change the location in which the table false
appears in a data distribution report.
primaryEntity Required. The primary entity type for this viewEntity object. The primary entity must None
be keyable. See “Data entities and the application database” on page 177 for
information on keyable entities.
priority For supertypes and subtypes, the priority of the corresponding subtype key. -1

showRetiredBeans Whether to show retired beans in the view. None

196 chapter 15 The ClaimCenter data model


Configuration Guide 9.0.5

<viewEntity> attribute Description Default


supertypeEntity Optional. The name of supertype of this entity. None
typelistTableName If you create a non-final entity, then ClaimCenter automatically creates a typelist to None
keep track of the subtypes of that entity. That typelist has an associated database
table. If you do not specify a value for this attribute, then ClaimCenter uses the name
of the entity as the table name for the subtype typelist.
However, ClaimCenter places a restriction of 25 characters on the length of the
database table name. You use this attribute to specify an alternate database table
name for the typelist if an entity name is too long to become a valid typelist table
name.
It is not valid to use this attribute with entity types marked as final.

Subelements of <viewEntity>
The <viewEntity> elements contain the following subelements:

<viewEntity> subelement Description


computedcolumn Specifies a column with row values that Guidewire computes while querying the database. For
example, the values of a computed column might be the sum of the values from two database
columns (col1 + col2).
computedtypekey Specifies a typekey that has some type of transformation applied to it during querying from the
database.
fulldescription See the discussion following the table.
implementsInterface See “<implementsInterface>” on page 214.
viewEntityColumn Represents a column in a viewEntity table
viewEntityLink Uses to access another entity through a foreign key. Typically, you use this value within the
ClaimCenter interface to create a link to that entity.
viewEntityName Represents an entity name column in a viewEntity table. An entity name is a string column
that contains the name of an entity that is suitable for viewing in the ClaimCenter interface.

viewEntityTypekey Represents a typekey column in a viewEntity table.

The Data Dictionary uses the fulldescription subelement. The following example illustrates how to use this
element:

<fulldescription>
<![CDATA[<p>Aggregates the information needed to display one activity row (base entity for all other
activity views).</p>]]>
</fulldescription>

The other subelements all require both a name and path attribute. The following code illustrates this:

<viewEntityName name="RelActAssignedUserName" path="RelatedActivity.AssignedUser"/>

Specify the path value relative to the primaryEntity on which you base the view.
The computedcolumn takes a required expression attribute and an additional, optional function attribute. The
following is an example of a computedcolumn:

<computedcolumn name="Amount" expression="${1}" paths="LineItems.Amount" function="SUM"/>

Base ClaimCenter data objects 197


Configuration Guide 9.0.5

The expression for this column can take multiple column values ${column_num} passed from the ClaimCenter
interface. For example, a valid expression is: ${1} - ${2} with ${1} the first column and ${2} the second column.
The function value must be an SQL function that you can apply to this expression. The following are legal values:
• SUM
• AVG
• COUNT
• MIN
• MAX
Note: If the SQL function aggregates data, ClaimCenter applies an SQL group automatically.

View entity extension data objects


You use the view entity extension entity to extend the definition of a “View entity data objects” on page 195 entity.
Guidewire defines this object in the data model metadata files as the <viewEntityExtension> XML root element.

Attributes of <viewEntityExtension>
The <viewEntityExtension> element contains the following attributes:

<viewEntityExtensio Description Default


n> attribute

entityName Required. This value must match the file name of the viewEntityExtension None
that it extends.
ClaimCenter generates an error at resource verification if the value set that
you set for the entityName attribute for a viewEntityExtension does not
match the file name.

Subelements of <viewEntityExtension>
The <viewEntityExtension> element contains the following subelements:

<viewEntityExtension> subelement Description


computedcolumn Specifies a column with row values that Guidewire computes while querying the
database. For example, the values of a computed column might be the sum of the
values from two database columns (col1 + col2).
computedtypekey Specifies a typekey that has some type of transformation applied to it during
querying from the database.
description A description of the purpose and use of the entity.
viewEntityColumn Represents a column in a viewEntity table. The viewEntityColumn element contains
a path attribute that you use to define the entity path for the column:
• The path attribute definition cannot traverse arrays.
• The path attribute is always relative to the primary entity on which you base the
view.
Note: If you reference a column of type currencyamount, you must also define the cu
rrencyProperty specified in the original column definition on the viewEntity entity.
See “Extending an existing view entity” on page 252 for an example of this.
viewEntityLink Uses to access another entity through a foreign key. Typically, you use this value
within the ClaimCenter interface to create a link to that entity.
viewEntityName Represents an entity name column in a viewEntity table. An entity name is a string
column that contains the name of an entity that is suitable for viewing in the
ClaimCenter interface.

198 chapter 15 The ClaimCenter data model


Configuration Guide 9.0.5

<viewEntityExtension> subelement Description


viewEntityTypekey Represents a typekey column in a viewEntity table.

Important caution
Guidewire strongly recommends that you not create a view entity extension—viewEntityExtension—that causes
traversals into revisioned (effdated) data. Doing so has the possibility of returning duplicate rows if any
revisioning in the traversal path splits an entity.
Instead, try one of the following:
• Denormalize the desired data onto a non-effdated entity.
• Add domain methods to the implementation of the View entity.

Data object subelements


This topic describes the subelements that you can use in metadata definition files. These subelements are:
• <array>
• <column>
• <edgeForeignKey>
• <events>
• <foreignkey>
• <fulldescription>
• <implementsEntity>
• <implementsInterface>
• <index>
• <onetoone>
• <remove-index>
• <tag>
• <typekey>

Subelements for internal use only


Do not use the following entity subelements. Guidewire uses these subelements for internal purposes only.
• <aspect>
• <checkconstraint>
• <customconsistencycheck>
• <datetimeordering>
• <dbcheckbuilder>
• <jointableconsistencycheck>
• <tableAugmenter>
• <validatetypekeyinset>
• <validatetypekeynotinset>

Data object subelements 199


Configuration Guide 9.0.5

The deprecated attribute


The deprecated attribute applies to the following subelements:
• <array>
• <column>
• <componentref>
• <edgeForeignKey>
• <foreignkey>
• <onetoone>
• <searchColumn>
• <typekey>
The deprecated="true" attribute does not alter the database in any way. Instead, the deprecated attribute marks a
data field as deprecated in the Data Dictionary and places a Deprecated annotation on the field in the Guidewire
Studio API Reference. The deprecated attribute supports organizations that want to remove a field in a two-phase
process.
In the first phase, you add the deprecated attribute to the field subelement. Studio indicates the field is deprecated
whenever Gosu code references the field. During this first phase, developers work to remove the deprecated field
from their code. The second phase occurs after developers remove all occurrences of the deprecated field.
In the second phase, you drop the field from the entity definition. In some cases, Guidewire will drop the column
from the database automatically to synchronize the physical database with your revised data model. In most cases
however, the DBA must alter the database with SQL statements run against the database to synchronize the database
with your revised data model.
Guidewire generally recommends against using the deprecated attribute and the two-phase removal process. If you
deprecate a field, Studio signals to the development team that the field is no longer used. The DBA does not receive
this information. Over time, with a number of deprecated fields, the DBA manages an ever larger amount of unused
information in the physical database. To avoid managing unused data, Guidewire strongly recommends that you
keep your physical database and the data model of your application synchronized by dropping unused fields instead
of deprecating them.

<array>
An array defines a set of additional entities of the same type to associate with the main entity. For example, a Claim
entity includes an array of Document entities.

Attributes of <array>
The <array> element contains the following attributes:

<array> attribute Description Default


arrayentity Required. The name of the entity that makes up the array. None
arrayfield Optional. Name of the field in the array table that is the foreign key back to this table. None
However, you do not need to define a value if the array entity has exactly one foreign key
back to this entity.
Note that even if you define only one foreign key explicitly, additional foreign keys may be
created implicitly. For example, CreateUserID is automatically added to an editable entity.
In that case, arrayfield would be required because there is more than one foreign key.
cascadeDelete If true, then if you delete the array container, then ClaimCenter deletes (or retires) the false
array elements also.
deprecated If true, then ClaimCenter marks the item as deprecated in the Data Dictionary and places a false
Deprecated annotation on it in the Guidewire Studio API Reference.
If you deprecate an item, use the description to explain why.

200 chapter 15 The ClaimCenter data model


Configuration Guide 9.0.5

<array> attribute Description Default


See The deprecated attribute for more information.
desc A description of the purpose and use of the array. None
exportable Unused.
getterScriptability See “Data objects and scriptability” on page 180 for information. all

ignoreForEvents Determines whether ClaimCenter generates an event if a user modifies the <array> false
element in any way. Such modifications include adding an entity to, changing an entity in,
and removing an entity from the <array> element. If the ignoreForEvents attribute is set
to true, ClaimCenter will not generate an event.
For more information, see
ignoreForEvents
.
name Required. The name of the property corresponding to this array None
owner If true, then this entity owns the objects in the array. This has the following behavior: false
• If true (an owned array), then the method isFieldChanged returns true if a child
element of the array has changed. If false (a non-owned array), then the method isFie
ldChanged returns false if a child element of the array has changed. In either case, isF
ieldChanged returns true if any child elements are added to or removed from the array,
regardless of the value of the owner attribute.
• If true, then if you delete the owning object, then ClaimCenter deletes (or retires) the
array items, as well. In this case, ClaimCenter deletes the array items notwithstanding a
value of false for the cascadeDelete attribute.
• If true, then if you update the contents of the array, then ClaimCenter considers the
owner as updated as well. This behavior can result in side effects. For example,
notwithstanding a value of false for the triggersValidation attribute, the behavior
can trigger validation.
• If true, then child array elements are copied along with the parent when the parent
copied, such as with the copy method.
• If true, the effects of the owner attribute override the effects of false values for the ca
scadeDelete and triggersValidation attributes.

requiredmatch One of the following values None


• all – There must be at least one matching row in the array for every row from this
table. For example, there must be at least one check payee for every check.
• none – There is no requirement for matching rows.
• nonretired – There must be at least one matching row for every non-retired row from
this table.
setterScriptability See “Data objects and scriptability” on page 180 for information. all

triggersValidation Whether changes to the entity pointed to by this array trigger validation. Changes to the false
array that trigger validation include:
• The addition of an object to the array
• The removal of an object from the array
• The modification of an object in the array
See the discussion on this attribute that follows this table.

If set to true, the triggersValidation attribute can trigger additional ClaimCenter processing. Exactly what
happens depends on several different factors:
• If the parent entity for the array is validatable, then any modification to the array triggers the execution of the
Preupdate and Validation rules on the parent entity. Validation occurs whenever ClaimCenter attempts to commit

Data object subelements 201


Configuration Guide 9.0.5

a bundle that contains the parent entity. For an entity to be validatable, it must implement the Validatable
delegate.
• If the parent entity has preupdate rules, but no validation rules, then ClaimCenter executes the preupdate rules on
the commit bundle. This is the case only if configuration parameter UseOldStylePreUpdate is set to true,
which is the default. If UseOldStylePreUpdate is set to false, ClaimCenter invokes the IPreUpdateHandler
plugin on the commit bundle instead. Then, ClaimCenter executes the logic defined in the plugin on the commit
bundle.
• If the parent entity has validation rules, but no preupdate rules, then ClaimCenter executes the validation rules on
the commit bundle.
• If the parent entity has neither preupdate nor validation rules then the following occurs:
1. In the case of UseOldStylePreUpdate=true, ClaimCenter does nothing.
2. In the case of UseOldStylePreUpdate=false, ClaimCenter calls the IPreUpdateHandler plugin on the
commit bundle.
• In any case, any ClaimCenter processing of the commit bundle excludes the Closed and Reopened
validation rules.

Subelements of <array>
The <array> element contains the following subelements:

<array> subelement Description


array-association This subelement contains the following attributes:
• hasContains (default = false)
• hasGetter (default = true)
• hasSetter (default = false)
• valueField (default = ID)
It also contains the following subelements of its own, each of which can exist, at most, one time:
• constant-map
• subtype-map
• typelist-map
See “Typelist mapping associative arrays” on page 227 for more information.
fulldescription See “<fulldescription>” on page 213.
link-association This subelement contains the following attributes:
• hasGetter (default = true)
• hasSetter (default = false)
• valueField (default = ID)
It also contains the following subelements of its own, each of which can exist, at most, one time:
• constant-map
• subtype-map
• typelist-map
See “Subtype mapping associative arrays” on page 225 for more information.
tag See “<tag>” on page 218.

<column>
The <column> element defines a single-value field in the entity.

202 chapter 15 The ClaimCenter data model


Configuration Guide 9.0.5

Note: For a discussion of <column-override>, see “Working with attribute and element overrides” on page 239
for details.

Attributes of <column>
The <column> element contains the following attributes:

<column> attribute Description Default


allowInitialValueForUpgrade Internal use. false

autoincrement The name of a database sequence used as the source of values for the column. None
This attribute is applicable only for integer columns, and only for implementations
where ClaimCenter relies on the database for the sequence. Do not use the same
sequence in more than one autoincrement column. There can be at most one aut
oincrement column per table.

columnName Optional. If specified, ClaimCenter uses this value as the column name of the None
corresponding database column. If you do not specify a columnName value, then
ClaimCenter uses the value of the name attribute for the database column name.
The columnName attribute must be no more than 30 characters in length. It allows
only unaccented Roman letters, numbers, and the underscore character. The first
character of the columnName attribute must be a letter. Although the underscore
character is allowable here, Guidewire discourages its use.
IMPORTANT All column names on a table must be unique within that table.
Otherwise, Studio displays an error if you verify the resource and the application
server fails to start.
createhistogram Whether to create a histogram on the column during an update to the database false
statistics.
Note: It is possible to override this attribute on an existing column in an extension (
*.etx) file using the <column-override> element. You can use the override to
turn off an existing histogram or to create one that did not previously exist.
This change does not take effect during an upgrade. The change occurs only if you
regenerate statistics for the affected table by using the Guidewire maintenance_to
ols command.
See also
• “Working with attribute and element overrides” on page 239
• System Administration Guide
default Default value given to the field during new entity creation. None
deprecated If true, then ClaimCenter marks the item as deprecated in the Data Dictionary and false
places a Deprecated annotation on it in the Guidewire Studio API Reference.
If you deprecate an item, use the description to explain why.
For more information, see “Data object subelements” on page 199.
desc A description of the purpose and use of the field. None
exportable Unused.
getterScriptability See “Data objects and scriptability” on page 180 for information. all

ignoreforevents If you change (or add, or remove) an entity X that does not generate events, then false
ClaimCenter searches for all event-generating entity instances that specify X. If
ClaimCenter finds any of these event-generating entity instances, it generates Chan
ged events for those entity instances.
To determine what entities reference a non-event-generating entity, ClaimCenter
examines the foreign keys and arrays that point to the entity. However, if you set i
gnoreForEvents to true on an entity that references the non-event-generating

Data object subelements 203


Configuration Guide 9.0.5

<column> attribute Description Default


entity, then ClaimCenter ignores that link as it determines what entities specify
another entity.
• At the entity level, the ignoreForEvents attribute means changes to (or
addition or removal of) this entity do not cause Changed events to fire for any
other entity.
• At the column level, the ignoreForEvents attribute means changes to this
column do not cause the application to generate events.
loadable If true, you can load the field through staging tables. A staging table can contain a true
column mapping to the field.
loadedByCallback Internal. If true, then the loading code does not use a default value or report a false
warning if the column is nullable without a default.
name Required. The name of the column on the table and the field, or property, on the None
entity. ClaimCenter uses this value as the column name unless you specify a colum
nName attribute. Use this name to access the column in data views, rules, and other
areas within ClaimCenter.
IMPORTANT All column names on a table must be unique within that table.
Otherwise, Studio displays an error if you verify the resource and the application
server fails to start.
nullok Whether the column can contain null values. true
In general, this attribute is always true, as many tables include columns that do
not require a value at different points in the process.
overwrittenInStagingTable Internal. If true and the entity is loadable, the loader process auto-populates the false
staging table during import.
IMPORTANT If set to true, do not attempt to populate the table yourself as the
loader import process overwrites this table.
required Whether the column is required to be non-null upon initial construction of false
instances of the entity. See the Gosu Reference Guide.
scalable Whether this value scales as the effective and expired dates change. This attribute false
applies only to number-type values. For example, you cannot scale a varchar. Also,
it only applies to effective dated types.
setterScriptability See “Data objects and scriptability” on page 180 for information. all

soapnullok Unused.
supportsLinguisticSearch Applies only to columns of varchar-based data types. false
• If true, case insensitive searches can be performed on the denormalized
version of the column.
• If false, searches are binary and cannot be performed on a denormalized
version of the column.
You cannot use this attribute with an encrypted column.
The setting of this attribute does not affect locale or language used in searches.
See also
• “Including data from subentities” on page 152
• Globalization Guide
type Required. Data type of the column, or field. In the base configuration, Guidewire None
defines a number of data types and stores their metadata definition files (*.dti) in
under configuration→config→datatypes.
Each metadata definition file name is the name of a specific data type. You use one
of these data types as the type attribute on the <column> element. Thus, the list of
valid values for the type attribute is the same as the set of .dti files in the
application datatypes folders.

204 chapter 15 The ClaimCenter data model


Configuration Guide 9.0.5

<column> attribute Description Default


Each metadata definition also defines the value type for that data type. The value
type determines how ClaimCenter treats that value in memory.
The name of the data type is not necessarily the same as the name of its value
type. For example, for the bit data type, the name of the data type is bit and the
corresponding value type is java.lang.Boolean. Similarly, the data type varchar
has a value type of java.lang.String.
The datetime data type is a special case. ClaimCenter persists this data type in the
application database using the database data type TIMESTAMP. This corresponds to
the value type java.util.Date. In other words:
• ClaimCenter represents a column whose type is datetime in memory as
instances of java.util.Date.
• ClaimCenter stores this type of value in the database as TIMESTAMP.
See also
• “Data types” on page 281
• “Customizing base configuration data types” on page 285
• “Define a new data type” on page 289

Subelements of <column>
The <column> element contains the following subelements:

<column> subelement Description Default


columnParam See <columnParam> subelement. None
fulldescription See “<fulldescription>” on page 213. None
localization See “<localization> subelement” on page 207. None
tag See “<tag>” on page 218. None

<columnParam> subelement
You use the <columnParam> element to set parameters that a column type requires. The type attribute of a column
determines which parameters you can set or modify by using the <columnParam> subelement. You can determine the
list of parameters that a column type supports by looking up the type definition in its .dti file.
For example, if you have a mediumtext column, you can determine the valid parameters for that column by
examining file mediumtext.dti. This file indicates that you can modify the following attributes of a mediumtext
column:
• encryption
• logicalSize
• trimwhitespace
• validator
Because you cannot modify the base configuration data type declaration files, you cannot see these files in
Guidewire Studio. To view these files, navigate to the directory modules/configuration/config/datatypes.
The following example, from Account.eti in PolicyCenter, illustrates how to use this subelement to define certain
column parameters.

<?xml version="1.0"?>
<entity xmlns="http://guidewire.com/datamodel"
desc="An account is ..."
entity="Account"
...
table="account"
type="retireable">

<column> 205
Configuration Guide 9.0.5

...
<column desc="Business and Operations Description."
name="BusOpsDesc"
type="varchar">
<columnParam name="size" value="240"/>
</column>
...
</extension>

Parameters that you can define by using <columnParam>


The following list describes the parameters that you can define by using <columnParam>, depending on which
parameters are listed as valid in the .dti file of the data type.

Parameter Description
countryProperty Name of a property on the owning entity that returns the country to use for localizing the data
format for this column.
currencyProperty Name of a property on the owning entity that returns the currency for this column.
encryption Whether ClaimCenter stores this column in encrypted format. This only applies to text-based
columns.
Guidewire allows indexes on encrypted columns, or fields. However, because Guidewire stores
encrypted fields as encrypted in the database, you must encrypt the input string and search for
an exact match to it.
exchangeRateProperty Name of a property on the owning entity that returns the exchange rate to use during currency
conversions.
extensionProperty The name of a property on the owning entity whose value contains the phone extension.
logicalSize The size of this field in the ClaimCenter interface. You can use this value for String columns
that do not have a maximum size in the database, such as CLOB objects. If you specify a value
for the size parameter, then the logicalSize value must be less than or equal to the value of
that parameter.
phonecountrycodeProperty The name of a property on the owning entity whose value contains the country with which to
validate and format values.
precision The precision of the field. Precision is the total number of digits in the number. The precision
parameter applies only if the data type of the field allows a precision attribute.
scale The scale of the field. Scale is the number of digits to the right of the decimal point. The scale
parameter applies only if the data type of the field allows a scale attribute.
secondaryAmountProperty Name of a property on the owning entity that returns the secondary amount related to this
currency amount column.
size Integer size value for columns of type TEXT and VARCHAR. This parameter specifies the
maximum number of characters, not bytes, that the column can hold.
WARNING The database upgrade utility automatically detects definitions that lengthen or
shorten a column. For shortened columns, the utility assumes that you wrote a version check or
otherwise verified that the change does not truncate existing column data. For both Oracle and
SQL Server, if shortening a column causes the truncation of data, the ALTER TABLE statement in
the database fails and the upgrade utility fails.
trimwhitespace Applies to text-based data types. If true, then ClaimCenter automatically removes leading and
trailing white space from the data value.
validator The name of a ValidatorDef in fieldvalidators.xml. See “<ValidatorDef>” on page 297.

206 chapter 15 The ClaimCenter data model


Configuration Guide 9.0.5

See also
• See “Overriding data type attributes” on page 240 for an example of using a nested <columnParam> subelement
within a <column-override> element to set the encryption attribute on a column.

<localization> subelement
For a discussion of the column <localization> element with examples on how to use it, see the Globalization
Guide.

Attributes of <localization>
The <localization> element contains the following attributes:

<localization> attribute Description Default


extractable Whether the localized data entity is marked as Extractable for archiving. false

nullok Required. Whether null values are allowed. None


overlapTable Whether the localized data entity is marked as OverlapTable for archiving. false
tableName The table name of the localized data table. None
unique Required. Whether values must be unique. false

<edgeForeignKey>
You use the <edgeForeignKey> element to define a reference to another entity, in a manner similar to the
“<foreignkey>” on page 211 element. However, you use an edge foreign key in place of a standard foreign key to
break a cycle of foreign keys in the data model. Guidewire defines this element in the data model metadata files as
the <edgeForeignKey> XML subelement.

The data model and circular references


A chain of foreign keys can form a cycle, also known as a circular reference, in the data model. As an example of a
circular reference, entity type A has a foreign key to entity type B, and B has a foreign key to A. Circular references
can occur with more extensive chains of foreign keys, such as A refers to B, which refers to C, which refers to A.
The ClaimCenter data model does not permit circular foreign keys reference, because ClaimCenter cannot determine
a safe order for committing the entity instances in a circular reference to the database.
For example, entity types A and B have foreign key references to each other. The foreign keys create a circular
reference. Suppose that a bundle contains a new instance of A and a new instance of B. The circular reference would
cause a foreign key constraint to fail upon committing the bundle. If ClaimCenter commits A before B is committed
and in the database, a constraint failure occurs on the foreign key from A to B. The converse order of committing B
before A causes a similar failure.
An edge foreign key in place of a standard foreign key resolves circular references so ClaimCenter can determine a
safe order for committing the entity instances within a cycle. An edge foreign key from A to B introduces a new,
hidden associative entity with a foreign key to A and a foreign key to B. The edge foreign key associates A and B
without establishing foreign keys in the database directly between them. With an edge foreign key, ClaimCenter can
safely first commit new object A, then new object B, and finally the edge foreign key instance.

Edge foreign keys in entity database tables


Unlike a standard foreign key, an edge foreign key does not correspond to an actual column in the database table of
an entity type. Nor does an edge foreign key implement a database foreign key constraint. However, the
ClaimCenter Data Dictionary labels edge foreign keys as standard foreign keys. In Gosu code, you access edge
foreign keys in the same manner that you access standard foreign keys.

<column> 207
Configuration Guide 9.0.5

Edge foreign keys and associative database tables


An edge foreign key creates an associative table in the database. An associative table is essentially a table of foreign
keys relationships. An associative table associates other database tables with each other but holds no other essential
business data itself.
In ClaimCenter, the associative table that implements an edge foreign key has two columns:
• OwnerID
• ForeignEntityID
If entity instance A has an edge foreign key to entity type B, ClaimCenter creates a row in the edge foreign key
table. The value in the row for OwnerID points to A and the value for ForeignEntityID points to B.
Every time you traverse, or dereference, the edge foreign key, ClaimCenter loads the join array.
• If the array is of size 0, then the value of the edgeForeignKey is null.
• If the array is of size 1, the ClaimCenter follows the ForeignEntityID on the row.

Edge foreign keys in Gosu


In Gosu code, edge foreign keys work in a manner similar to standard foreign keys. Just like a standard foreign key,
you can query an edge foreign key and get and set its attributes.

Edge foreign keys and performance


An edge foreign key has more performance issues than a standard foreign key, because ClaimCenter must manage a
separate table for the relationship. Queries must join an extra table. Nullability constraints in the database do not
work with edge foreign keys, so you must enforce nullability constraints with extra Gosu code the you develop.

Edge foreign keys and archiving


If you add an edge foreign key to an entity that is part of the archive domain graph, set the extractable attribute on
the edge foreign key to true. The value true causes ClaimCenter to add the Extractable delegate to the
associative table generated for the edge foreign key. If the extractable attribute of an edge foreign key on an entity
that is part of the archive domain graph is not set to true, the server will not start. In addition, the entity type that
the edge foreign key relates to must implement the Extractable delegate.
See also
• “The ClaimCenter archive domain graph” on page 325

When to use edge foreign keys


Use an edge foreign key only to avoid circular foreign key references in the data model. Circular foreign key
references can prevent ClaimCenter from determining a safe order for committing the entity instances in a circular
reference to the database.
Use an edge foreign key instead of standard foreign key in the following situations:
• An entity type has self-referencing foreign keys, including foreign keys between subtypes.
• A Group entity must specify its parent group.
• Entity type A has a foreign key to B, and entity type B has a foreign key to A.
• Cycles that involve more that two entity types.
• The primary member of an array requires a foreign key to its owner.
Note: <edgeForeignKey> is a valid subelement for all entity types, including entity extension types.

Attributes of <edgeForeignKey>
The <edgeForeignKey> element contains the following attributes.

208 chapter 15 The ClaimCenter data model


Configuration Guide 9.0.5

<edgeForeignKey> attribute Description Default


createhistogram Whether to create a histogram on the column during an update to the false
database statistics.
Note: It is possible to override this attribute on an existing column in an
extension (*.etx) file using the <column-override> element. You can use the
override to turn off an existing histogram or to create one that did not
previously exist.
This change does not take effect during an upgrade. The change occurs only if
you regenerate statistics for the affected table by using the Guidewire mainte
nance_tools command.
See also
• “Working with attribute and element overrides” on page 239
• System Administration Guide
deprecated If true, then ClaimCenter marks the item as deprecated in the Data Dictionary false
and places a Deprecated annotation on it in the Guidewire Studio API
Reference.
If you deprecate an item, use the description to explain why.
For more information, see “Data object subelements” on page 199.
desc A description of the purpose and use of the edge foreign key. None
edgeTableEntityName The name of the edge table entity. If you do not specify one, then None
ClaimCenter creates one automatically using the edgeTableName with the first
letter capitalized.
edgeTableName Required. The name of the edge, or join array, table to create. None
exportable Unused.
exportasid Unused.
extractable Whether the edge entity is marked Extractable for archiving. false

fkentity Required. The entity to which this foreign key points. None
getterScriptability See “Data objects and scriptability” on page 180 for information. all

ignoreforevents If you change (or add, or remove) an entity X that does not generate events, false
then ClaimCenter searches for all event-generating entity instances that
specify X. If ClaimCenter finds any of these event-generating entity instances,
it generates Changed events for those entity instances.
To determine what entities reference a non-event-generating entity,
ClaimCenter examines the foreign keys and arrays that point to the entity.
However, if you set ignoreForEvents to true on an entity that references the
non-event-generating entity, then ClaimCenter ignores that link as it
determines what entities specify another entity.
• At the entity level, the ignoreForEvents attribute means changes to (or
addition or removal of) this entity do not cause Changed events to fire for
any other entity.
• At the column level, the ignoreForEvents attribute means changes to this
column do not cause the application to generate events.
importableagainstexistingobject If true and the entity is importable, or loadable, then the value in the staging true
table can be a reference to an existing object. This reference is the publicID
of a row in the source table for the referenced object.
loadable If true, then ClaimCenter creates a staging table for the edge table. false

loadedByCallback Internal. If true, then the loading code does not use a default value or report a false
warning if the column is nullable without a default.
name Required. Specifies the name of the property on the entity. None

<edgeForeignKey> 209
Configuration Guide 9.0.5

<edgeForeignKey> attribute Description Default


nullok Whether the column can contain null values. This value is meaningless for ed true
geForeignKey objects.

overlapTable Whether the edge entity is marked OverlapTable for archiving. false

overwrittenInStagingTable Internal. If true and the edge table is loadable, the loader process auto- false
populates the staging table during import.
IMPORTANT If set to true, do not attempt to populate the table yourself, as
the loader import process overwrites this table.
setterScriptability See “Data objects and scriptability” on page 180 for information. all

soapnullok Unused.

Subelements of <edgeForeignKey>
<edgeForeignKey> subelement Attributes Description
fulldescription None See “<fulldescription>” on page 213.
tag None See “<tag>” on page 218.

<events>
If the <events> element appears within an entity, it indicates that the entity raises events. Usually, the code indicates
the standard events (add, change, and remove) by default. If the <events> element does not appear in an entity, that
entity does not raise any events. You cannot modify the set of the events associated with a base entity through
extension. However, you can add additional events to a base entity through extension, even if that entity already
contains a set of predefined events.
Note: This element is not valid for a nonPersistentEntity.
Guidewire defines this element in the data model metadata files as the <events> XML subelement. There can be at
most one <events> element in an entity. However, you can specify additional events through the use of <event>
subelements. For example:

<events>
<event>
...
</events>

Note: ClaimCenter automatically adds the EventAware delegate to any entity that contains the <events> element.
This addition makes such an entity aware of events that it raises and that other entities raise.

Attributes of <events>
There are no attributes on the <events> element.

Subelements of <events>
The <events> element contains the following subelements.

<events> subelement Description

event Defines an additional event to fire for the entity. Use multiple <event> elements to specify multiple
events. This subelement contains the following attributes:
• description (required = true)
• name (required = true)
The attributes are self-explanatory. The <event> element requires each one.

210 chapter 15 The ClaimCenter data model


Configuration Guide 9.0.5

<foreignkey>
The <foreignkey> element defines a foreign key reference to another entity.

Attributes of <foreignkey>
The <foreignkey> element contains the following attributes.

<foreignkey> attribute Description Default


archivingOwner By default, a foreign key implies a relationship that the link target owns the target
source of the foreign key. Use the archivingOwner attribute to change the
direction of this ownership relationship.
This attribute can be set to one of the following:
• none – There is no ownership relationship between the source and the
target of the link.
• source – The source of the foreign key owns the link.
• target – The target of the foreign key owns the link.
columnName Optional. If specified, ClaimCenter uses this value as the column name of the None
corresponding database column. If you do not specify a columnName value,
then ClaimCenter uses the value of the name attribute for the database
column name.
The columnName attribute must be no more than 30 characters in length. It
allows only unaccented Roman letters, numbers, and the underscore
character. The first character of the columnName attribute must be a letter.
Although the underscore character is allowable here, Guidewire discourages
its use.
Note: As a common and recommended practice, use the suffix ID for the
column name. For example, for a foreign key with name Claim, set the column
Name to ClaimID.
Guidewire does not require that you use an ID suffix on names of foreign key
columns. However, Guidewire strongly recommends that you adopt this
practice to help you analyze the database and identify foreign keys.
IMPORTANT All column names on a table must be unique in that table.
Otherwise, Studio displays an error if you verify the resource, and the
application server fails to start.
createConstraint If true, the database creates a foreign key constraint for this foreign key. true

createbackingindex If true, the database automatically creates a backing index on the foreign key. true
If set to false, the database does not create a backing index.
createhistogram Whether to create a histogram on the column during an update to the false
database statistics.
Note: It is possible to override this attribute on an existing column in an
extension (*.etx) file using the <column-override> element. You can use the
override to turn off an existing histogram or to create one that did not
previously exist.
This change does not take effect during an upgrade. The change occurs only if
you regenerate statistics for the affected table by using the Guidewire mainte
nance_tools command.
See also
• “Working with attribute and element overrides” on page 239
• System Administration Guide
deprecated If true, then ClaimCenter marks the item as deprecated in the Data Dictionary false
and places a Deprecated annotation on it in the Guidewire Studio API
Reference.
If you deprecate an item, use the description to explain why.

Data object subelements 211


Configuration Guide 9.0.5

<foreignkey> attribute Description Default


For more information, see “Data object subelements” on page 199.
desc A description of the purpose and use of the field. None
existingreferencesallowed If the following attributes are set to false, which is not the default: true
• loadable
• importableagainstexistingobject
then, the value in the staging table can only be a reference to an existing
object.
exportable Unused.
exportasid Unused.
fkentity Required. The entity to which this foreign key refers. None
getterScriptability See “Data objects and scriptability” on page 180 for information. all

ignoreforevents If you change (or add, or remove) an entity X that does not generate events, false
then ClaimCenter searches for all event-generating entity instances that
specify X. If ClaimCenter finds any of these event-generating entity instances,
it generates Changed events for those entity instances.
To determine what entities reference a non-event-generating entity,
ClaimCenter examines the foreign keys and arrays that point to the entity.
However, if you set ignoreForEvents to true on an entity that references the
non-event-generating entity, then ClaimCenter ignores that link as it
determines what entities specify another entity.
• At the entity level, the ignoreForEvents attribute means changes to (or
addition or removal of) this entity do not cause Changed events to fire for
any other entity.
• At the column level, the ignoreForEvents attribute means changes to this
column do not cause the application to generate events.
importableagainstexistingobject If true and the entity is importable (loadable), then the value in the staging true
table can be a reference to an existing object. (This is the publicID of a row in
the source table for the referenced object.)
includeIdInIndex If true, then include the ID as the last column in the backing index for the false
foreign key.
This is useful if the access pattern in one or more important queries is to join
to this table through the foreign key. You can then use the ID to probe into a
referencing table. The only columns that you need to access from the table
are this foreign key, and the retired and ID columns.
In that case, adding the ID column to the index creates a covering index and
eliminates the need to access the table.
loadable If true, you can load the field through staging tables. A staging table can true
contain a column for the public ID of the referenced entity.
loadedByCallback Internal. If true, then the loading code does not use a default value or report a false
warning if the column is nullable without a default.
name Required. Specifies the name of the property on the entity. None
nullok Whether the field can contain null values. true

overwrittenInStagingTable Internal. If true (and the table is loadable), it indicates that the loader process false
auto-populates the staging table during import.
IMPORTANT If set to true, do not attempt to populate the table yourself
because the loader import process overwrites this table.
required Whether the foreign key is required to be non-null upon initial construction of false
instances of the entity. See the Gosu Reference Guide.

212 chapter 15 The ClaimCenter data model


Configuration Guide 9.0.5

<foreignkey> attribute Description Default


setterScriptability See “Data objects and scriptability” on page 180 for information. all

soapnullok Unused.
triggersValidation Whether changes to the entity referred to by this foreign key trigger false
validation.

Subelements of <foreignkey>
The <foreignkey> element contains the following subelements.

<foreignkey> subelement Attributes Description


fulldescription None See “<fulldescription>” on page 213.
tag None See “<tag>” on page 218.

<fulldescription>
ClaimCenter uses the fulldescription subelement to populate the Data Dictionary. For example:

<fulldescription>
<![CDATA[<p>Aggregates the information needed to display one activity row
(base entity for all other activity views).</p>]]>
</fulldescription>

<implementsEntity>
The <implementsEntity> subelement specifies that an entity implements the specified delegate. Guidewire calls
an entity an implementor of a delegate if the entity specifies the delegate in a <implementsEntity> subelement.

IMPORTANT Do not change the delegate that a Guidewire base entity implements by creating an extension entity
that includes an “<implementsEntity>” on page 213 subelement. ClaimCenter generates an error if you do.

If a delegate definition includes the optional requires attribute, then the implementor must provide an adapter
attribute on its <implementsEntity> subelement. The adapter attribute specifies the name of a Java or Gosu type
that implements the interface that the delegate definition specifies in its own requires attribute.
For example, the PolicyCenter base configuration defines a Cost delegate as follows:

<?xml version="1.0"?>
<delegate ... name="Cost" requires="gw.api.domain.financials.CostAdapter">
...
</delegate>

The base configuration defines a BACost entity that includes an <implementsEntity> subelement, which specifies
delegate with name="Cost". Therefore, the BACost entity is an implementor of the Cost delegate.

<?xml version="1.0"?>
<entity ... entity="BACost" ... >
...
<implementsEntity name="Cost" adapter="gw.lob.ba.financials.BACostAdapter" />
...
</entity>

The Cost delegate requires an implementation of the CostAdapter interface. So in its adapter attribute, the BACost
entity specifies a BACostAdapter class, which implements the CostAdapter interface that the Cost adapter specifies
in its requires attribute. The following diagram illustrates the relationship between the Cost delegate and the
BACostAdapter adapter class:

Data object subelements 213


Configuration Guide 9.0.5

Delegate / Adapter Relationship Example

Cost CostAdapter
Delegate Interface

BACost BACostAdapter
Delegate Entity Interface
Implementor / Implementor
Indirect Interface
Implementor

Follow these rules for defining entities that implement delegates:


• If you specify a value for the requires attribute in a delegate, then implementers of the delegate must specify an
adapter attribute in their definitions. The adapter attribute must specify the name of a Java or Gosu type that
implements the interface specified by the requires attribute in delegate definition.
• If you do not specify a value for the requires attribute in a delegate, then implementers of the delegate must not
specify an adapter attribute their definitions.

The Extractable Delegate


Entities that are part of the archive domain graph must implement the Extractable delegate. For example, if you
create a custom subtype of Contact, then the custom subtype must implement the Extractable delegate.
If you add an edge foreign key to an entity that is part of the archive domain graph, set the extractable attribute on
the edge foreign key to true. The value true causes ClaimCenter to add the Extractable delegate to the
associative table generated for the edge foreign key.

Attributes of <implementsEntity>
The <implementsEntity> element contains the following attributes.

<implementsEntity> subelement Description


name Required. The name of the delegate that this entity must implement.

Subelements of <implementsEntity>
There are no subelements on the <implementsEntity> subelement.

<implementsInterface>
The <implementsInterface> subelement specifies that an entity implements the specified interface. This element
defines two attributes: an interface (iface) attribute and an implementation (impl) attribute.
For example, the PolicyCenter base configuration defines the BACost entity with the following
<implementsInterface> subelement:

<entity ... entity="BACost" ...>


...
<implementsInterface
iface="gw.lob.ba.financials.BACostMethods"

214 chapter 15 The ClaimCenter data model


Configuration Guide 9.0.5

impl="gw.lob.ba.financials.BACostMethodsImpl"/>
</entity>

The BACostMethods interface has getter methods that any class that implements this interface must provide. The
getter methods are coverage, state, and vehicle. By including the <implementsInterface> subelement, the BACost
entity lets you use getter methods on instances of the BACost entity in Gosu code.

var cost : BACost


var cov = cost.Coverage
var state = cost.State
var vehicle = cost.Vehicle

Attributes of <implementsInterface>
The <implementsInterface> element contains the following attributes.

<implementsInterface> attribute Description

iface Required. The name of the interface that this data object must implement.
impl The name of the class or subclass that implements the specified interface, if any. Valid
only when declared on abstract entities or delegates.

Subelements on <implementsInterface>
There are no subelements on the <implementsInterface> subelement.

<index>
The <index> element defines an index on the database table used to store the data for an entity. Guidewire defines
this element in the data model metadata files as the <index> XML subelement. This element contains a required
subelement, which is <indexcol>.
The <index> element instructs ClaimCenter to create an index on the physical database table. This index is in
addition to those indexes that ClaimCenter creates automatically.
An index improves the performance of a query search within the database. It consists of one or more fields that you
can use together in a single search. You can define multiple <index> elements within an entity, with each one
defining a separate index. If a field is already part of one index, you do not need to define a separate index
containing only that field.
For example, ClaimCenter frequently searches non-retired claims for one with a particular claim number. Therefore,
the Claim entity defines an index containing both the Retired and ClaimNumber fields. However, another common
search uses just ClaimNumber. Since that field is already part of another index, a separate index containing only
ClaimNumber is unnecessary.
A column used in an index cannot have a length of more than 1000 characters.

IMPORTANT In general, the use of a database index has the possibility of reducing update performance. Guidewire
recommends that you add a database index with caution. In particular, do not attempt to add an index on a column
of type CLOB or BLOB. If you do so, ClaimCenter generates an error message upon resource verification.

Attributes of <index>
The <index> element contains the following attributes.

<index> attribute Description Default


desc A description of the purpose and use of the index. None
expectedtobecovering If true, it indicates that the index covers all the necessary columns for a table that is to be false
used for at least one operation, for example, search by name.

Data object subelements 215


Configuration Guide 9.0.5

<index> attribute Description Default


Thus, if true, it indicates that there is to be no table lookup. In this case, use the desc
attribute to indicate which operation that is.
name Required. The name of the index. The first character of the name must be a letter. The None
maximum length for an index name is 18 characters.
IMPORTANT For <subtype> definitions, all index names must be unique between the
subtype and supertype. In other words, do not duplicate an index name between the
subtype definition in the extensions folder and its supertype in the metadata folder.
Otherwise, ClaimCenter generates an error on resource verification.
trackUsage If true, track the usage of this index. true

unique Whether the values of the index are unique for each row. false

verifyInLoader If true, then ClaimCenter runs an integrity check for unique indexes before loading data true
from the staging tables.

Subelements of <index>
The <index> element contains the following subelements.

<index> subelement Description Default


forceindex Use to force ClaimCenter to create an index if running against a particular database. None
This subelement is useful because the index generation algorithm can throw away some
declared indexes as being redundant. In some cases, ClaimCenter can require one or more
of those indexes to work around an optimization problem.
This subelement contains the following attributes:
• oracle – If true, force the creation of an index if running against an Oracle database.
• sqlserver – If true, force the creation of an index if running against a Microsoft SQL
Server database.
indexcol Required. Defines a field that is part of the index. You can specify multiple <indexcol> None
elements to define composite indexes. This subelement contains the following attributes:
• keyposition – Required. The position of the field within the index. The first position is
1.
• name – Required. The column name of the field. This name can be a column, foreignke
y, or typekey defined in the entity.
• sortascending – If true, the default, then the sort direction is ascending. If false, then
the sort direction is descending.
The column cannot have a length of more than 1000 characters.

<onetoone>
The <onetoone> element defines a single-valued association to another entity that has a one-to-one cardinality.
Guidewire defines this element in the data model metadata files as the <onetoone> XML subelement. A one-to-one
element functions in a similar manner to a foreign key in that it makes a reference to another entity. However, its
purpose is to provide a reverse pointer to an entity or object that is pointing at the <onetoone> entity, through the
use of a foreign key.
For example, entity A has a foreign key to entity B. You can associate an instance of B with at most one instance of
A. Perhaps, there is a unique index on the foreign key column. This then defines a one-to-one relationship between
A and B. You can then declare the <onetoone> element on B, to provide simple access to the associated A. In
essence, using a one-to-one element creates an array-of-one, with, at most, one element. Zero elements are also
possible.

216 chapter 15 The ClaimCenter data model


Configuration Guide 9.0.5

Note: ClaimCenter labels one-to-one elements in the Guidewire Data Dictionary as foreign keys. You access these
elements in Gosu code in the same manner as you access foreign keys.

Attributes of <onetoone>
The <onetoone> element contains the following attributes.

<onetoone> attribute Description Default


cascadeDelete If true, then ClaimCenter deletes the entity to which the <onetoone> element points if false
you delete this entity.
deprecated If true, then ClaimCenter marks the item as deprecated in the Data Dictionary and places false
a Deprecated annotation on it in the Guidewire Studio API Reference.
If you deprecate an item, use the description to explain why.
For more information, see “Data object subelements” on page 199.
desc A description of the purpose and use of the field. None
exportable Unused.
fkentity Required. The entity to which this foreign key points. None
getterScriptability See “Data objects and scriptability” on page 180 for information. all

ignoreForEvents If the ignoreForEvents attribute is false, ClaimCenter regards the <onetoone> element false
as being present when generating events. In this case, the product does not generate
events for the entity to which the fkentity attribute points.
If the ignoreForEvents attribute is true, ClaimCenter ignores the presence of the <oneto
one> element when generating events. This behavior results in ClaimCenter generating
events for the entity to which the fkentity attribute points.

IMPORTANT Do not confuse the definition of the ignoreForEvents attribute for the <
onetoone> element with the definition of the attribute of the same namesake in <entit
y> and <array> elements. Although they share the same name, the two ignoreForEven
ts attributes are near opposites in effect.

linkField Optional. Specifies the foreign key field that points back to this object. None
name Required. Specifies the name property on the entity. None
nullok Whether the field can contain null values. true

owner If true, this entity owns the linked object (the object to which the <onetoone> element false
points):
• If you delete the owning object, then ClaimCenter deletes the linked object as well.
• If you update the object pointed to by the <onetoone> element, then ClaimCenter
considers the owning object updated as well.
setterScriptability See “Data objects and scriptability” on page 180 for information. all

triggersValidation Whether changes to the entity pointed to by this entity trigger validation. false

Subelements of <onetoone>
The <onetoone> element contains the following subelements.

<onetoone> subelement Description Default


fulldescription See “<fulldescription>” on page 213. None
tag See “<tag>” on page 218. None

Data object subelements 217


Configuration Guide 9.0.5

<remove-index>
The <remove-index> element defines the name of a database index that you want to remove from the data model. It
is valid for use with the following data model elements:
• <entity>
• <extension>
You can use this element to safely remove a non-primary key index if it is one of the following:
• non-unique
• unique and contains an ID column
Guidewire performs metadata validation to ensure that the <remove-index> element removes only those indexes
that fall into one of these categories.
Note: Adding, removing, or changing indexes results in changes to server performance. Before making
modifications to indexes, consult with your database administrator or Guidewire representative. Include
performance testing in your modification plan.

The Index is Non-unique


You can safely remove a non-primary key index with the unique attribute set to false. In general, these are indexes
that Guidewire provides for performance enhancement. It is safe to remove these kinds of indexes.

The Index is Unique and Contains an ID Column


You can safely remove a non-primary key index with the unique attribute set to true if that index also includes ID
as a key column. An ID column is already unique by itself, and so a multicolumn index that includes the ID column
does not enforce a uniqueness condition. Thus, it is safe to remove these kinds of indexes.
For example, the WorkItem entity contains the following index definition:

<index desc="Covering index to speed up checking-out of work items and they involve search on status"
name="WorkItemIndex2" unique="true">
<indexcol keyposition="1" name="status"/>
<indexcol keyposition="2" name="Priority" sortascending="false"/>
<indexcol keyposition="3" name="CreationTime"/>
<indexcol keyposition="4" name="ID"/>
</index>

Although the unique attribute is set to true, you can safely remove this index because the index definition contains
an ID column; in this example, keyposition="4".

Attributes of <remove-index>
The <remove-index> element contains the following attributes.

<remove-index> attribute Description Default


name Name of the index to remove. The index name is defined by the <index> element. None

Modifying an Index
In many cases, you want to modify an existing database index. In that case, use the <remove-index> element to
remove the index, and then add a new index with the same name that contains the desired characteristics.

<tag>
The <tag> element defines a data model annotation. This allows you to define your own metadata to add to the data
model.

218 chapter 15 The ClaimCenter data model


Configuration Guide 9.0.5

The file ClaimCenter/modules/configuration/config/metadata/tags.lst specifies the list of valid tags that


you can use. To add a new tag, edit this file, and then add the tag name on a new line.
At most one of each tag can exist on a field at one time. Extensions can add, but not override, tags on existing fields.
To retrieve this data at run time, use the DatamodelTags property on IEntityPropertyInfo, the metadata object for
entity properties. For example:

// On the entity info metadata, get the metadata for the properties on this entity.
// This type is an iterator of objects of type IEntityPropertyInfo.
var props = User.Type.EntityProperties

// Get the property info object by its name.


var theProp = props.toList().firstWhere( \ propertyInfo -> propertyInfo.ColumnName == "Language")

// Get the data model tags, which has the type java.util.Map
var myTags = theProp.DatamodelTags

// Get a specific tag


var theTag = myTags["NameOfTag"]

Attributes of <tag>
The <tag> element contains the following attributes.

<tag> attribute Description Default


name Required. The name of the tag. None
value The value of the tag. None

Use of the <tag> Subelement in Archiving


One of the common uses for the <tag> subelement is adding the element to a foreign key to assist in resolving
certain archive domain graph issues. See for details.

<typekey>
The <typekey> element defines a field for which a typelist defines the values. Guidewire defines this element in the
data model metadata files as the <typekey> XML subelement.
Note: For information on typelists, typekeys, and keyfilters, see “Working with typelists” on page 303.

Attributes of <typekey>
The <typekey> element contains the following attributes.

<typekey> attribute Description Default


columnName Optional. If specified, ClaimCenter uses this value as the column name of the None
corresponding database column. If you do not specify a columnName value, then
ClaimCenter uses the value of the name attribute for the database column name.
The columnName attribute must be no more than 30 characters in length. It allows
only unaccented Roman letters, numbers, and the underscore character. The first
character of the columnName attribute must be a letter. Although the underscore
character is allowable here, Guidewire discourages its use.
IMPORTANT All column names on a table must be unique within that table.
Otherwise, Studio displays an error if you verify the resource and the application
server fails to start.
createhistogram Whether to create a histogram on the column during an update to the database false
statistics.

Data object subelements 219


Configuration Guide 9.0.5

<typekey> attribute Description Default


Note: It is possible to override this attribute on an existing column in an extension (*.
etx) file using the <column-override> element. You can use the override to turn off
an existing histogram or to create one that did not previously exist.
This change does not take effect during an upgrade. The change occurs only if you
regenerate statistics for the affected table by using the Guidewire maintenance_tool
s command.
See also
• “Working with attribute and element overrides” on page 239
• System Administration Guide
default The default value given to the field during new entity creation. None
deprecated If true, then ClaimCenter marks the typekey as deprecated in the Data Dictionary false
and places a Deprecated annotation on it in the Guidewire Studio API Reference.
If you deprecate a typekey, use the description attribute (desc) to explain why.
For more information, see “Data object subelements” on page 199.
desc A description of the purpose and use of the field. None
exportable Unused.
getterScriptability See “Data objects and scriptability” on page 180 for information. None
loadable If true, then you can load the field through staging tables. A staging table can contain true
a column, as a String, for the code of the typekey.
loadedByCallback Internal. If true, then the loading code does not use a default value or report a false
warning if the column is nullable without a default.
name Required. Specifies the name of the property on the entity None
nullok Whether the field can contain null values. true

overwrittenInStagingTable Internal. If true and the typekey is loadable, the loader process auto-populates the false
typekey in the staging table during import.
IMPORTANT If set to true, do not attempt to populate the typekey yourself because
the loader import process overwrites this typekey.
required Whether the typekey is required to be non-null upon initial construction of instances false
of the entity. See the Gosu Reference Guide.
setterScriptability See “Data objects and scriptability” on page 180 for information. None
soapnullok Unused.
typefilter The name of a filter associated with the typelist. See “Static filters” on page 314 for None
additional information.
typelist Required. The name of the typelist from which this field gets its value. None
See also
• “Working with typelists” on page 303.

Subelements of <typekey>
The <typekey> element contains the following subelements.

<typekey> subelement Description Default


keyfilters Defines one or more <keyfilter> elements. There can be at most one <keyfilters> None
element in an entity. See “Dynamic filters” on page 319 for additional information.
fulldescription See “<fulldescription>” on page 213. None

220 chapter 15 The ClaimCenter data model


Configuration Guide 9.0.5

<typekey> subelement Description Default


tag See “<tag>” on page 218. None

Subelements of <keyfilters>
The <keyfilters> element contains the following subelements.

<keyfilters> subelement Description Default


<keyfilter> Specifies a keyfilter to use to filter the typelist. This element requires the <name> None
attribute. This attribute defines a relative path, navigable through Gosu dot notation,
to a physical data field. Each element in the path must be a data model field.
Note: You can include multiple <keyfilter> elements to specify multiple keyfilters.

Data object subelements 221


Configuration Guide 9.0.5

222 chapter 15 The ClaimCenter data model


chapter 16

Working with associative arrays

This topic describes the different types of associative arrays that Guidewire provides as part of the base data model
configuration.

Related concepts
“Overview of associative arrays” on page 223
“Subtype mapping associative arrays” on page 225
“Typelist mapping associative arrays” on page 227

Overview of associative arrays


An associative array provides a mapping between a set of keys and values that the keys represent. A common
example of such a mapping is a telephone book. A telephone book maps names of people in a jurisdiction to
telephone numbers. Another common example is a dictionary. A dictionary maps terms to their definitions.
To expand on this concept, a telephone book contains a set of names. Each name in the set is a key, and each
associated telephone number is a value. Using array-like notation, you can write:

telephonebook[peter] = 555-123-1234
telephonebook[shelly] = 555-234-2345
...

Note: When you modify an array such that it is an associative array, the array continues to exhibit its original
properties as an indexed array. You can use an associative array just as you would an indexed array. For example,
you can use an associative array in for loops.
ClaimCenter uses associate arrays to expose array values as a type-safe map within Gosu code. The following
example uses a typekey from a State typelist as a mapping index for an associative array of state capitals:

State typekey index Maps to...


Capital[State.TC_AL] Montgomery

Capital[State.TC_AK] Juneau

Working with associative arrays 223


Configuration Guide 9.0.5

State typekey index Maps to...


Capital[State.TC_AZ] Phoenix

Capital[State.TC_AR] Little Rock

Two tasks are required to work with an associative array in Gosu:


• Exposing the key set to the type system
• Calculating the value from the key

Associative array mapping types


An associative array must have a key that maps to a value. The mapping type describes what ClaimCenter uses as
the key and what value that key returns.

Mapping type Key Value More information


Subtype mapping Entity subtype Implicit subtype field on an entity “Subtype mapping associative arrays” on page 225
Typelist mapping Typelist Typekey field on the entity “Typelist mapping associative arrays” on page 227

To implement an associative array, add one of the following elements to an <array> element in the data type
definition file. The number of results that each returns—the cardinality of the result set—depends on the element
type.

<link-association> Returns at most one element. The return type is an object of the type of the array.
<array-association> Returns an array of results that match the value. The number of results can be zero, one, or more.

Each <array> element in a data type definition file can have zero or one of each of these elements.
As an example, in the ClaimCenter Claim definition file (configuration→config→Metadata→Entity→Claim.eti), you see
the following XML (simplified for clarity):

<entity xmlns="http://guidewire.com/datamodel"
entity="Claim"
table="claim"
type="retireable">
...
<array arrayentity="ClaimMetric"
desc="Metrics related to this claim."
exportable="false"
ignoreforevents="true"
name="ClaimMetrics"
triggersValidation="false">
<link-association>
<subtype-map/>
</link-association>
<array-association>
<typelist-map field="ClaimMetricCategory"/>
</array-association>
</array>
...
</entity>

224 chapter 16 Working with associative arrays


Configuration Guide 9.0.5

See also
• “Subtype mapping associative arrays” on page 225.
• “Typelist mapping associative arrays” on page 227.

Scriptability and associative arrays


It is possible to set the following attributes on each <link-association> and <array-association> element:
• hasGetter
• hasSetter
For example:

<link-association hasGetter="true" hasSetter="true">


<typelist-map field="TAccountType"/>
</link-association>

For these attributes:


• If hasGetter is true, you can read the property.
• If hasSetter is true, you can update the property.
Note: If you do not specify either of these attributes, ClaimCenter defaults to hasGetter="true".
See also
• “Data objects and scriptability” on page 180.

Setting array member values


There are several restrictions on setting associative array member values, including:
• You can use a query builder expression to retrieve a specific entity instance. However, the result of the query is
read-only. You must add the retrieved entity to a bundle to be able to manipulate its fields. To work with bundles,
use one of the following:

var bundle = gw.transaction.Transaction.getCurrent()


gw.transaction.Transaction.runWithNewBundle(\ bundle -> ) //Use this version in the Gosu tester

• You can set array values only on fields that are database-backed fields, not on fields that are derived properties.
To determine which fields are derived, consult the ClaimCenter Data Dictionary.
See also
• Gosu Reference Guide

Subtype mapping associative arrays


Use subtype mapping to access array elements based on their subtype. This type of associative array divides the
elements of the array into multiple partitions. Each of these partitions contains array elements of only a particular
object subtype.
To determine the complete list of subtypes on an object, consult the ClaimCenter Data Dictionary. The dictionary
organizes the subtypes into a table at the top of the dictionary page with active links to sections that describe each
subtype in greater detail.

Working with array values using subtype mapping


To retrieve an array value through subtype mapping, use the following syntax:

base-entity.subtype-map.property

Overview of associative arrays 225


Configuration Guide 9.0.5

Each field has the following meanings:

Field Description
base-entity The base object on which the associative array exists, for example, the Claim entity for the ClaimMetrics array.

subtype-map The array entity subtype, for example, AllEscalatedActivitiesClaimMetric (a subtype of ClaimMetric).

property A field or property on the array object. For example, the AllEscalatedActivitiesClaimMetric object
contains the following properties (among others):
• ClaimMetricCategory
• DispalyTargetValue
• DisplayValue

Note: To see a list of subtypes for any given object, consult the ClaimCenter Data Dictionary. To determine the
list of fields (properties) on an object, again consult the Data Dictionary.

Example 1
The following example code uses the sample data in the Guidewire ClaimCenter base configuration. It first retrieves
a specific claim object using a query builder and then uses that object as the base entity from which to retrieve array
member properties.

uses gw.transaction.Transaction
uses gw.api.database.Query

var clm = gw.api.database.Query.make(Claim).compare("ClaimNumber", Equals,


"235-53-365870").select().getAtMostOneRow()

print("AllEscalatedActivitiesClaimMetric\tClaim Metric Category = "


+ clm.AllEscalatedActivitiesClaimMetric.ClaimMetricCategory.DisplayName)
print("AllEscalatedActivitiesClaimMetric\tDisplay Value = "
+ clm.AllEscalatedActivitiesClaimMetric.DisplayValue)
print("AllEscalatedActivitiesClaimMetric\tReach Yellow Time = "
+ clm.AllEscalatedActivitiesClaimMetric.ReachYellowTime)

The output of running this code in the Gosu Scratchpad looks similar to the following:

AllEscalatedActivitiesClaimMetric Claim Metric Category = Claim Activity


AllEscalatedActivitiesClaimMetric Display Value = 0
AllEscalatedActivitiesClaimMetric Reach Yellow Time = null

Example 2
The following sample code:
• Retrieves a read-only claim object.
• Adds the claim object to transaction bundle to make it writable.
• Sets a specific property on the AllEscalatedActivitiesClaimMetric object (a subtype of the ClaimMetric
object) associated with the claim.
In the definition of the claim object, ClaimCenter associates an array of ClaimMetric objects—the ClaimMetrics
array—with the Claim object. The metadata definition file also defines the ClaimMetrics array as being of type
<link-association> using subtypes. Thus, you can access array member properties by first accessing the array
member of the proper subtype.

uses gw.api.database.Query
uses gw.transaction.Transaction

var todaysDate = java.util.Date.CurrentDate


var clm = gw.api.database.Query.make(Claim).compare(Claim#ClaimNumber, Equals,
"235-53-365870").select().AtMostOneRow

226 chapter 16 Working with associative arrays


Configuration Guide 9.0.5

//Query result is read-only, need to get current bundle and add object to bundle
Transaction.runWithNewBundle(\bundle -> {
if (clm != null) {
clm = bundle.add(clm)
}
}, "su")

print("AllEscalatedActivitiesClaimMetric\tReach Yellow Time = "


+ clm.AllEscalatedActivitiesClaimMetric.ReachYellowTime)
clm.AllEscalatedActivitiesClaimMetric.ReachYellowTime = todaysDate

print("\nAfter modifying the ReachYellowTime value...\n")


print("AllEscalatedActivitiesClaimMetric\tReach Yellow Time = "
+ clm.AllEscalatedActivitiesClaimMetric.ReachYellowTime)

The output of running this code in the Gosu Scratchpad looks similar to the following:

AllEscalatedActivitiesClaimMetric Reach Yellow Time = null

After modifying the ReachYellowTime value...

AllEscalatedActivitiesClaimMetric Reach Yellow Time = 2018-03-08

See also
• Gosu Reference Guide

Typelist mapping associative arrays


You use a typelist map to partition array objects based on a typelist field (typecode) in the <array> element. In the
ClaimCenter base configuration, the ClaimMetrics array on Claim contains an example of a typelist mapping.

<entity xmlns="http://guidewire.com/datamodel"
entity="Claim"
table="claim"
type="retireable">
...
<array arrayentity="ClaimMetric"
desc="Metrics related to this claim."
exportable="false"
ignoreforevents="true"
name="ClaimMetrics">
...
<array-association>
<typelist-map field="ClaimMetricCategory"/>
</array-association>
</array>
...
</entity>

The <typelist-map> element requires that you set a value for the field attribute. This attribute specifies the
typelist to use to partition the array.

IMPORTANT It is an error to specify a typelist mapping on a field that is not a typekey.

Associative arrays of type <array-associaton> are different from those created using <link-association> in that
they can return more than a single element. In this case, the code creates an array of ClaimMetric objects named
ClaimMetrics. Each ClaimMetric object as well as all subtype objects of the ClaimMetric object contain a
property called ClaimMetricCategory. The array definition code utilizes that fact and uses the
ClaimMetricCategory typelist as a partitioning agent.
The ClaimMetricCategory typelist contains three typecodes, which are:
• ClaimActivityMetrics
• ClaimFinancialMetrics
• OverallClaimMetrics
Typelist mapping associative arrays 227
Configuration Guide 9.0.5

Each typecode specifies a category. This category contains multiple ClaimMetric object subtypes. For example, the
OverallClaimMetrics category contains two ClaimMetric subtypes:
• DaysInitialContactWithInsuredClaimMetric
• DaysOpenClaimMetric
In another example from the ClaimCenter base configuration, you see the following defined for ReserveLine.

<entity entity="ReserveLine"
xmlns="http://guidewire.com/datamodel"
...
table="reserveline"
type="retireable">
...
<array arrayentity="TAccount"
arrayfield="ReserveLine"
name="TAccounts"
...
setterScriptability="hidden">
<link-association hasGetter="true" hasSetter="true">
<typelist-map field="TAccountType"/>
</link-association>
</array>
...
</entity>

In this case, the array definition code creates a <link-association> array of TAcccount objects and partitions the
array by the TAccountType typelist typecodes.

Working with array values using typelist mapping


To retrieve an array value through typelist mapping, use the following syntax:

entity.typecode.property

Each field has the following meaning:

Field Description
entity The object on which the associative array exists, for example, the ReserveLine entity on which the Taccounts
array exists
typecode The typelist typecode that delimits this array partition, for example, OverallClaimMetrics (a typecode from the C
laimMetricCategory typelist).

property A field or property on the array object. For example, the ClaimMetric object contains the following properties
(among others):
• ReachRedTime
• ReachYellowTime
• Skipped

Example 1
The following example code uses sample data in the Guidewire ClaimCenter base configuration. It iterates over the
members of the ClaimMetrics array that fall into the OverallClaimMetrics category.

uses gw.api.database.Query
uses gw.transaction.Transaction

var clm = Query.make(Claim).compare(Claim#ClaimNumber, Equals, "235-53-365870").select().AtMostOneRow


for (time in clm.OverallClaimMetrics) {
print(time.Subtype.DisplayName + ": ReachYellowTime = " + time.ReachYellowTime)
}

228 chapter 16 Working with associative arrays


Configuration Guide 9.0.5

The output of running this code in the Gosu Scratchpad looks similar to the following:

Days Open: ReachYellowTime = 2018-08-24


Initial Contact with Insured (Days): ReachYellowTime = 2018-02-12

Example 2
The following example code also uses the sample data in the Guidewire ClaimCenter base configuration. It first
retrieves a specific Claim object and then retrieves a specific ReserveLine object associated with that claim.

uses gw.api.database.Query
uses gw.transaction.Transaction

var clm = gw.api.database.Query.make(Claim).compare(Claim#ClaimNumber, Equals,


"235-53-365870").select().AtMostOneRow
var thisReserveLine = clm.ReserveLines.first()

print(thisReserveLine)
print(thisReserveLine.cashout.CreateTime)

The output of running this code in the Gosu Scratchpad looks similar to the following:

(1) 1st Party Vehicle - Ray Newton; Claim Cost/Auto body


Thu Feb 22 15:35:02 PST 2018

Setting array member values


The following example code also uses the sample data in the Guidewire ClaimCenter base configuration. It uses a
query builder expression to retrieve a specific claim entity. As the result of the query is read-only, you must first
retrieve the current bundle, then add the claim to the bundle to make its fields writable. The retrieved claim is the
base entity on which the ClaimMetrics array exists.
The following sample code:
• retrieves a read-only claim object
• adds the claim object to transaction bundle to make it writable
• sets specific properties on the ClaimMetric object associated with the claims that are in the
OverallClaimMetrics category
In the definition of the claim object, ClaimCenter associates an array of ClaimMetric objects—the ClaimMetrics
array—with the Claim object. The metadata definition file also defines the ClaimMetrics array as being of type
<array-association> using the ClaimMetricCategory typelist. Thus, you can access array member properties by
first accessing the array member of the proper category.

uses gw.transaction.Transaction
uses gw.api.database.Query

var todaysDate = java.util.Date.CurrentDate


var thisClaim = Query.make(Claim).compare(Claim#ClaimNumber, Equals, "235-53-365871").select().AtMostOneRow
//Query result is read-only, need to get current bundle and add entity to bundle

Transaction.runWithNewBundle(\bundle -> {
if (thisClaim != null) {
thisClaim = bundle.add(thisClaim)
}
}, "su")

//Print out the current values for the ClaimMetric.ReachYellowTime field on each subtype
for (color in thisClaim.OverallClaimMetrics) {
print("Subtype - " + color.Subtype.DisplayName + ": ReachYellowColor = " + color.ReachYellowTime)
}

print("\nAfter modifying the values...\n")

//Modify the ClaimMetric.ReachYellowColor value and print out the new values
for (color in thisClaim.OverallClaimMetrics) {

Typelist mapping associative arrays 229


Configuration Guide 9.0.5

color.ReachYellowTime = todaysDate
print("Subtype - " + color.Subtype.DisplayName + ": ReachYellowColor = " + color.ReachYellowTime)
}

The output of running this code in the Gosu Scratchpad looks similar to the following:

Subtype - Days Open: ReachYellowColor = 2017-11-08


Subtype - Initial Contact with Insured (Days): ReachYellowColor = 2017-10-30

After modifying the values...

Subtype - Initial Contact with Insured (Days): ReachYellowColor = 2018-03-08


Subtype - Days Open: ReachYellowColor = 2018-03-08

See also
• Gosu Reference Guide

Example: Mapping an entity to entities of a different type


When creating a database entity that refers to multiple entities of a different type, a best practice is to use an
associative array with typelist mapping.

About this task


A database entity often requires references to multiple entities of a different type.
One way to implement such references is to use <onetoone> links. In this case, you must have a separate
<foreignkey> element that corresponds to each such link. These separate <foreignkey> elements must be on each
entity to which the original database entity refers. The separate elements must also point back to the original
database entity. In addition, on each <onetoone> link, you must specify its linkField attribute to associate the link
with its corresponding <foreignkey> element.
However, this method has a downfall. A <onetoone> link generally requires a unique relationship to the
<foreignkey> element that backs the link. The relationship must have a unique index on the <foreignkey>
element. Such a relationship and its unique index cannot be present if the <foreignkey> element is nullable. In this
case, nothing enforces the constraint that the <onetoone> link implies.
A preferable option or best practice would be to use an <array> element and a <link-association> subelement. This
configuration produces virtual properties for the original database entity. You can use these virtual properties to
access the entity instances to which the original database entity refers.
To illustrate how to do so, consider an example of an automation that checks three kinds of results related to an
insurance claim—coverability, handleability, and payability. Take the following steps to map a database entity,
Ext_Automation, to three entities of type Ext_AutomationCheckResult—CoverabilityResult,
HandleabilityResult, and PayabilityResult:

Procedure
1. Create an entity, Ext_Automation.
2. Create another entity, Ext_AutomationCheckResult.
3. Add to Ext_Automation an array of the Ext_AutomationCheckResult entity.
4. Create one <foreignkey> element for the Ext_AutomationCheckResult entity that points back to the
Ext_Automation entity.
5. Create a typelist named Ext_AutomationResultType.
6. Add three type codes to the Ext_AutomationResultType typelist: CoverabilityResult,
HandleabilityResult, PayabilityResult.
7. Add a <typekey> element to the Ext_AutomationCheckResult entity.
8. With this <typekey> element, refer to the Ext_AutomationResultType typelist.

230 chapter 16 Working with associative arrays


Configuration Guide 9.0.5

9. Under the array of Ext_AutomationCheckResult in the Ext_Automation entity definition, declare a <link-
association> subelement.
10. Under the <link-association> subelement, declare a <typelist-map> that refers to your <typekey> field
from step 7.
11. Add an <index> subelement to the Ext_AutomationCheckResult entity.
12. To ensure unique index entries, set the unique attribute on the <index> subelement to true.
13. Add as index columns the Ext_Automation foreign key and the typekey corresponding to the
Ext_AutomationResultType typelist.

Result
You now have three new virtual properties on the Ext_Automation database entity with which to access the three
Ext_AutomationCheckResult types—CoverabilityResult, HandleabilityResult, and PayabilityResult.

Constant mapping associative arrays


You use a constant map to allow the data model itself to specify key-value pairs. To indicate this mapping type, add
the <constant-map> subelement to an <array-association> element or a <link-association> element. Then,
enter key-value pairs in the definition file.
The structure of the constant-map association allows you to specify multiple properties under a constant. Notice that
you specify array-association constants and link-association constants in two separate groups.
See also
• “Subtype mapping associative arrays” on page 225
• “Typelist mapping associative arrays” on page 227

Working with array values using constant mapping


To retrieve a member of the Role array, use the following syntax:

base-entity.defined-property

Each field has the following meanings:

Field Description
base-entity The base object on which the associative array exists, for example, the Account entity for the Contacts
array.
defined-property The property that you defined for the constant map array.

The following tables list the attributes and subelements associated with the <constant-map> element.

<constant-map> attributes Description Default


customAccessor Internal. Do not use