- Home
- Guidewire
- Guidewire Certified Associate
- InsuranceSuite-Developer
- InsuranceSuite-Developer - Associate Certification - InsuranceSuite Developer - Mammoth Proctored Exam
Guidewire InsuranceSuite-Developer Associate Certification - InsuranceSuite Developer - Mammoth Proctored Exam Exam Practice Test
Total 150 questions
Associate Certification - InsuranceSuite Developer - Mammoth Proctored Exam Questions and Answers
The results of a Guidewire Profiler analysis on a web page showed a large unaccounted-for time. The developer cannot identify which block of code is taking up so much time by examining the profiler output. Which approach can help to account for the large time spent and improve reading of the profiler output?
Options:
Identify the PCF file name in the profiler output.
Print out the timestamp before and after the code blocks.
Surround the blocks of code with profiler tags.
Create a function to calculate processing time in the class.
Answer:
CExplanation:
The Guidewire Profiler is a sophisticated tool used to capture the execution time of various system operations, such as database queries, PCF rendering, and rule execution. However, when complex Gosu logic or large loops are executed, the profiler may show a " gap " in the timeline—often referred to as unaccounted-for time. This occurs because the default instrumentation of the profiler only hooks into specific system events; it does not automatically track every individual line of custom Gosu code.
To gain visibility into these " dark " areas, the developer should use Custom Profiler Tags. By wrapping specific segments of logic or expensive method calls with these tags, the developer manually instructs the profiler to track that specific block ' s entry and exit times. When the profile is later analyzed in the Guidewire Management Console, the previously unaccounted-for time will now be categorized under the label provided in the tag.
This method is vastly superior to manual timestamp printing (Option B) because it integrates directly into the graphical representation of the Profiler, allowing the developer to see how the code block interacts with database " bundles " and other concurrent processes. It provides a holistic view of the execution stack, making it the standard best practice for performance tuning and bottleneck identification in both InsuranceSuite Developer Fundamentals and System Health modules.
The business wants to create a new popup in BillingCenter that displays a single customer invoicing inquiry. The popup will have the inquiry date, inquiry contact, and the description of the inquiry. Which configurations follow best practices to make this page editable? (Choose Two)
Options:
Add a Boolean variable named editable_Ext to the Variables tab and set its initial value to true.
Set the Page ' s startInEditMode property to true if it should initially be editable.
Set the Detail View panel ' s readOnly property to false.
Be sure that the ListView container widget has its editable property set to true.
Ensure that Input widgets are used for fields requiring data entry, and that their editable property is set to true.
Add an InputSet widget within the detail view and set its canEdit property to true.
Answer:
B, EExplanation:
In Guidewire PCF configuration, making a page or popup editable requires a combination of page-level properties and widget-level settings. According to the PCF Architecture and Dynamic UI lessons, the startInEditMode property (Option B) is a critical page-level setting. When a popup is intended to collect data immediately upon opening—such as a new inquiry—setting startInEditMode to true ensures the user doesn ' t have to manually click an " Edit " button to begin typing. This property governs the initial state of the UI container.
At the widget level, individual fields must be capable of receiving input. In Guidewire, Input widgets (such as TextInput, DateInput, or RangeInput) are used to display and modify data. For these widgets to allow user interaction, their editable property must be set to true (Option E). While the parent container (like a Detail View) often has an editable property that can be bound to a variable or expression, the individual widgets must also be configured to allow data entry to fulfill the business requirement of an " editable " inquiry page.
Options like adding a custom boolean variable (Option A) are unnecessary because Guidewire provides built-in state management. readOnly (Option C) is generally an expression-based property used to lock fields under specific conditions, rather than a primary way to enable editing. InputSet (Option F) does not have a canEdit property that controls the entire set in that specific manner; instead, editability is typically inherited or controlled via the editable property on the container or the inputs themselves. Following these best practices ensures that the BillingCenter UI remains consistent with Guidewire ' s declarative UI model.
Which logging statement follows best practice?
Options:
logger.error(DisplayKey.get( " Web.ContactManager.Error.GeneralException " , e.Message))
logger.info(logPrefix + " [Address#AddressLine1 = " + address.AddressLine1 + " ] [Address#City " + address.City + " ] [Address#State " + address.State + " ] " )
if(logger.InfoEnabled) { logger.debug( " Adding " + contact.PublicID + " to ContactManager " ) }
if(logger.DebugEnabled) { logger.debug(logPrefix + someReallyExpensiveOperation()) }
Answer:
DExplanation:
In Guidewire InsuranceSuite, logging is a critical tool for production support, but it must be implemented with strict attention to performance and data privacy. Option D represents the gold standard for performance-conscious logging in Gosu. When a developer needs to log a message that involves a " really expensive operation " (such as a complex string concatenation, a database lookup, or a heavy calculation), they should always wrap the logging call in an if statement that checks if that specific log level is enabled. Without this check, the Gosu engine would execute someReallyExpensiveOperation() to construct the string argument even if the logging level is set to " Info " and the " Debug " message is ultimately discarded. This can lead to significant, unnecessary CPU overhead in production environments.
Furthermore, other options violate key architectural principles. Option B is a significant security risk as it logs Personally Identifiable Information (PII) like address lines and cities; Guidewire Cloud standards strictly forbid logging PII to ensure compliance with privacy regulations like GDPR and CCPA. Option C contains a logical mismatch where the developer checks for InfoEnabled but attempts to log at a debug level. Option A is suboptimal because it passes e.Message as a string rather than passing the exception object itself, which prevents the logger from capturing the full stack trace. By following the pattern in Option D, developers ensure the application remains performant while providing necessary diagnostic data only when explicitly requested through configuration.
According to best practices, which two requirements should be implemented using a Pre-Update Rule? (Select two)
Options:
Update the address details on all currently unissued checks associated with a Contact when that Contact ' s address is changed.
Initiate an asynchronous background workflow process after a Claim has been committed to the database.
Create a transactional audit entry that captures both the prior value and the new value immediately before committing a change to a specific field.
Automatically determine the optimal adjuster to handle a newly reported loss.
Answer:
A, CExplanation:
Pre-Update Rules occupy a specific place in the Guidewire Rules Engine lifecycle. They execute after a user clicks " Update " but before the data is actually committed to the database. This makes them the ideal location for logic that needs to perform " cross-entity " synchronization or final data adjustments within the same transaction (the " Bundle " ).
Option A is a classic Pre-Update use case. If a developer needs to ensure that a change to one entity (a Contact) propagates to related entities (unissued Checks) in a single atomic transaction, the Pre-Update rule is the correct place. Because the system is already in the process of saving, any changes made to the checks in this rule will be included in the same database commit, ensuring data consistency.
Option C is another best practice. Since the Pre-Update rule runs while the system still has access to the " original " values of the fields in the database (via the bean ' s ChangedFields or OriginalValue properties), it is the last opportunity to generate an audit log or " History " entry that compares the old data with the new data before the old data is overwritten.
In contrast, Option B should be handled in a Post-Setup or Event Fired rule to ensure the workflow only starts if the database commit actually succeeds. Option D (Assignment) should be handled by the Assignment Engine, which has its own dedicated rule sets. Using Pre-Update rules for these tasks would violate the architectural separation of concerns and could lead to performance issues or data corruption.
The Cost entity contains the fields TotalPremium and Tax. The application needs to calculate the total cost as a sum of those two fields dynamically and wants to create a reusable solution. Which configuration is appropriate and efficient to achieve this task?
Options:
Add a getter in CostEnhancement: property get TotalCost_Ext() : BigDecimal { return this.TotalPremium + this.Tax }
Create an entity enhancement and add: property set TotalCost_Ext(totalCost : BigDecimal){ totalCost = this.TotalPremium + this.Tax }
Create an entity extension and add a new field to store the total cost.
Calculate the total cost in the value property in the PCF file.
Answer:
AExplanation:
In Guidewire development, the best practice for adding derived or calculated logic to an entity is using a Gosu Enhancement. An enhancement allows you to add methods and properties to a base entity without modifying the underlying physical database schema or the original .eti file.
According to the InsuranceSuite Developer Fundamentals course, a read-only property (getter) is the most appropriate way to handle a dynamic calculation like " Total Cost. " By defining a property get, the value is calculated on-the-fly whenever it is accessed. This ensures the data is always accurate and reflects the current state of TotalPremium and Tax without the risk of data desynchronization.
Option C is inefficient because adding a physical column to the database for a value that can be easily derived increases database size and requires complex logic to keep the " stored " total in sync with the source fields. Option D is an anti-pattern; while calculating in a PCF works, it is not reusable—if you needed the total in a different page or a business rule, you would have to duplicate the logic. Option B is logically incorrect as a property set is used to assign values, not to return a calculated result.
In the screenshot below
A developer has added a tab labeled Delinquencies to the tab bar of BillingCenter. This tab will contain several pages. The first page in the tab will display a summary of the currently-selected delinquency, the second page will show the associated policy, and the third page will show the associated account.
What PCF container will be used to configure this requirement?
Options:
A location ref
A location group
A location ref iterator
A location
Answer:
BExplanation:
In the Guidewire Page Configuration Framework (PCF), locations are organized into a hierarchical structure to manage navigation and user context. When a requirement involves grouping multiple related pages under a single entry point—such as a Tab in the Tab Bar or a sidebar menu—the correct container to use is a Location Group.
1. The Role of a Location Group
A Location Group is a " non-leaf " node in the PCF navigation tree. It does not display content itself; instead, it contains other locations (Pages, Popups, or even other Location Groups). In the context of the " Delinquencies " tab, the Location Group serves as the parent container that defines:
The Tab entry in the top-level navigation.
The list of child pages (Summary, Policy, Account).
The navigation menu (usually appearing on the left side of the screen) that allows users to switch between these three pages.
2. Why Other Options are Incorrect
Option A (Location Ref): This is a widget inside a container (like a Location Group or a Section) that simply points to another location. It is a " pointer, " not the organizational container itself.
Option C (Location Ref Iterator): This is used to dynamically generate a set of links or locations based on an array of data (e.g., a tab for each Open Claim). It is not the standard way to define a static three-page tab structure.
Option D (Location): This is a generic term that encompasses Pages, Popups, and Worksheets. A single " Location " (specifically a Page) can only display one set of data. It cannot manage the multiple-page navigation required by the " Delinquencies " tab.
According to the InsuranceSuite Developer Fundamentals guide, using a Location Group ensures that the user ' s context (like the selected Delinquency ID) is maintained as they click through the different sub-pages within that group. This provides a seamless UX where the application " remembers " which record is being inspected even as the view changes.
Which GUnit base class is used for tests that involve Gosu queries in PolicyCenter?
Options:
PCUnitTestClassBase
SuiteDBTestClassBase
PCServerTestClassBase
GUnitTestClassBase
Answer:
CExplanation:
When developing automated tests in Guidewire PolicyCenter, choosing the correct GUnit Base Class is essential for determining the scope and capabilities of the test.
For tests that involve Gosu Queries, the test must have access to the application’s persistence layer and the database environment. PCServerTestClassBase is the standard base class used for these " Integration Tests. " When a test class extends PCServerTestClassBase, the GUnit runner initializes a full server environment, including the database schema and the Bundle management system. This allows the test to create data, commit it to a temporary transaction, and then execute Gosu queries against the database to verify the results.
In contrast, PCUnitTestClassBase (Option A) is intended for " Pure Unit Tests. " These tests are faster because they do not start the server or connect to the database. They are used for testing isolated logic or utility methods that do not rely on entity persistence. If a developer attempts to execute a query within a class extending PCUnitTestClassBase, the test will likely fail with a " No active bundle " or " Database not available " error. GUnitTestClassBase (Option D) is a generic base class and often lacks the PolicyCenter-specific configurations provided by the PC prefixed classes. Therefore, for any scenario requiring database interaction—which is fundamental to verifying Gosu queries—PCServerTestClassBase is the required architectural choice.
Succeed Insurance needs to extend the contact functionality to support tracking agency information. The new agency entity should have all of the fields of ABCompany, but include fields that are specific to the agency. Following best practices, which of the following options would implement this requirement?
Options:
A new foreign key should be added to ABCompany that points to a new Agency_Ext entity. The new fields should be added to the new Agency entity.
A new Agency_Ext entity should be added so that ABCompany becomes a subtype of Agency_Ext. The new fields should be added to the new Agency entity.
A new array should be added to ABCompany that points to a new Agency_Ext entity. The new fields should be added to the new Agency_Ext entity, including a foreign key pointing back to ABCompany.
Add a new Agency subtype of ABCompany. The new fields should be added to the new Agency_Ext subtype.
Answer:
DExplanation:
The Guidewire data model is designed to support Subtyping, which is a powerful mechanism for creating specialized versions of existing entities. This is specifically used within the Contact and Company hierarchies. When a requirement states that a new entity must have all the fields of an existing entity (ABCompany) plus additional specific fields, a subtype is the correct architectural choice.
By creating an Agency subtype of ABCompany, the new entity automatically inherits all the metadata, fields, and relationships defined on the parent ABCompany and its ancestor, ABContact. The developer then adds the agency-specific fields (such as " Agency License Number " ) directly to the subtype. This " is-a " relationship is much more efficient than using a Foreign Key (Option A) or an Array (Option C), which are intended for " has-a " relationships.
Subtyping ensures that the Agency records can still be treated as ABCompany or ABContact objects in Gosu logic and UI components (like search pages), while still allowing for specialized behavior and data storage. Following naming conventions, these custom subtypes often include the _Ext suffix to distinguish them from out-of-the-box subtypes. This approach minimizes data redundancy and leverages the built-in polymorphic capabilities of the InsuranceSuite Data Model, ensuring that the system remains scalable and easy to maintain during future upgrades.
What is a benefit of archiving?
Options:
Reorganizes and compresses the contents of the database to conserve space
Improves application performance by reducing the size of the database
Reindexes the contents of the database to increase data retrieval speed
Reduces database size by permanently removing data marked for purge
Answer:
BExplanation:
Archiving is a vital data management strategy within the Guidewire InsuranceSuite, particularly for long-running production environments where the volume of historical data can grow exponentially. The primary objective of archiving is to move " closed " or " inactive " business objects—such as claims that have been settled for several years or expired policies—out of the active, operational database and into a separate, secondary storage area.
According to the Guidewire documentation, the most significant benefit of this process is the improvement of application performance (Option B). As the operational database grows, the time required for the database engine to perform index scans, joins, and general queries increases. By periodically moving inactive data to the archive, the size of the " live " database tables remains manageable. This leads to faster search results, quicker page load times, and more efficient database maintenance tasks like backups and consistency checks.
It is important to distinguish archiving from other database operations. Purging (Option D) involves the permanent deletion of data, whereas archiving preserves the data for future retrieval or regulatory compliance. Reindexing (Option C) and compression (Option A) are physical database maintenance tasks that optimize how data is stored on disk but do not address the fundamental issue of data volume in the same way that moving entire business graphs to an archive does. Archiving ensures that the core application remains lean and responsive for day-to-day transactions while still fulfilling the legal and business requirements for data retention.
An analyst is examining the process for promoting a verified build from the development environment to production. Which statements accurately describe key steps in the flow of code changes between physical star systems in GWCP, according to the training? (Choose 2)
Options:
Production database backups are not required when promoting builds.
A build must be deployed to every planet in the dev star system before promotion is allowed.
Builds are promoted sequentially from dev to pre-production and then to production physical star systems.
Code is directly committed from dev to production repositories.
The Build Promotion app in Guidewire Home is used to manage the promotion process.
Answer:
C, EExplanation:
The Guidewire Cloud Platform (GWCP) enforces a rigorous and standardized path for code promotion to ensure maximum stability in production environments. This process follows the Astronomy Metaphor where code moves between logical partitions.
Statement C is a fundamental truth of the cloud delivery model: Sequential Promotion. Code cannot " skip " environments. A build must first be verified in the Development Star System (on a Dev planet). Once verified, that same immutable build (Docker image) is promoted to the Pre-Production Star System for User Acceptance Testing (UAT) and Performance testing. Only after passing the " Quality Gates " in Pre-Prod can the build be promoted to the Production Star System. This sequence ensures that the exact same code being deployed to production has been thoroughly vetted in lower environments.
Statement E identifies the tool used for this management: the Build Promotion app located in Guidewire Home. This application provides a centralized interface for authorized users to select a verified build from a lower " Orbit " and promote it to a higher one. This tool abstracts the underlying complexity of the CI/CD pipeline and ensures that the promotion follows all security and compliance protocols.
Option D is incorrect because code is never " committed " directly to production; rather, a pre-compiled build image is promoted. Option B is incorrect as not every dev planet needs a deployment—only the specific verified " golden " build needs to move forward. Adhering to this sequential, tool-managed process is a key requirement of the Guidewire Cloud Standards.
A business analyst has a new requirement for an additional filter on Desktop Activities. Which two options can be used to filter a query-backed ListView? (Select two)
Options:
Use a Gosu standard bean filter in the filter property of a ToolbarFilterOption
Use a Gosu standard query filter in the filter property of a ToolbarFilterOption of a ToolbarFilter widget
Add a ToolbarFilterOption to the ToolbarFilter widget
Create an array of filtered values to populate the ListView
Create a Gosu method to loop through the ListView rows adding the rows that match the criteria
Answer:
B, CExplanation:
In Guidewire PCF development, filtering a query-backed ListView (one that uses a QueryProcessor) must be done efficiently to avoid loading thousands of records into memory. According to the InsuranceSuite Developer Fundamentals course, the standard tool for this is the ToolbarFilter widget.
A ToolbarFilter acts as a container for one or more ToolbarFilterOption widgets (Option C). Each option represents a choice in the dropdown menu for the user. To ensure performance, specifically for query-backed lists, the developer should use a Gosu standard query filter (Option B) in the filter property. Unlike a " bean filter, " which filters objects already in memory, a query filter allows the Guidewire platform to modify the underlying SQL statement. This ensures that only the records matching the selected filter are ever retrieved from the database, significantly reducing the application server ' s load.
Options D and E are " anti-patterns. " Manual looping or creating custom arrays bypasses the optimized Query API, leading to " OutOfMemory " errors or severe performance degradation when dealing with large volumes of data, such as an insurer ' s entire set of desktop activities.
In ClaimCenter, the Desktop- > Claims page contains a ListView that is backed by a View Entity ClaimDesktopView.eti. The company would like to add a column to the Claim Validation Level in this List View. Following best practice, which of the following steps are required to fulfill this requirement?
Options:
Add a computedTypekey in ClaimDesktopView.etx with name: ValidationLevel_Ext and path: Claim.ValidationLevel.
Add a typekey in ClaimDesktopView.etx with name: ValidationLevel_Ext and path: Claim.ValidationLevel.
Add a viewEntityTypekey in ClaimDesktopView.etx with name: ValidationLevel and path: Claim.ValidationLevel.
Add a computedColumn in ClaimDesktopView.etx with name: ValidationLevel and path: Claim.ValidationLevel.
Answer:
CExplanation:
View Entities (.eti files ending in View) are specialized data model objects used to provide high-performance, read-only data for ListViews. They function similarly to a SQL View, joining multiple tables to retrieve only the specific fields needed for a display grid.
When extending a base view entity like ClaimDesktopView, standard data model tags like column or typekey (Option B) are not used. Instead, Guidewire provides a specific set of " View Entity " tags. Because ValidationLevel is a typelist on the Claim entity, the correct tag to use in the .etx file is viewEntityTypekey (Option C). This tag tells the platform that the field is derived from a typelist and ensures that the UI renders it with the correct localized display names and icons.
The path attribute is equally critical; it defines the " traversal " from the view entity to the source data. Since ClaimDesktopView typically has a link to the Claim entity, the path Claim.ValidationLevel correctly instructs the system to pull the value from the related Claim record. While best practices for standard entities usually mandate the _Ext suffix, view entities often mirror the base field name for clarity unless a collision occurs. However, the use of the viewEntityTypekey tag is the fundamental architectural requirement for this task, as computedTypekey and computedColumn (Options A and D) are intended for logic-heavy Gosu expressions rather than simple database-backed path traversals.
Which rule is written in the correct form for a rule which sets the claim segment and leaves the ruleset?
A)
B)
C)
D)
Options:
Option A
Option B
Option C
Option D
Answer:
AExplanation:
In the Guidewire Gosu Rules engine, managing the logic flow within a ruleset is a fundamental skill for any developer. A ruleset is essentially a collection of " If-Then " statements that the application evaluates sequentially. When a business requirement dictates that an action should be taken—such as categorizing a claim by setting its Segment property—and then no further rules in that specific set should be processed, the developer must use the actions utility object.
The correct method to terminate the current ruleset execution is actions.exit(). As shown in Option A, the logic must be ordered procedurally: first, the state of the entity is modified (claim.Segment = TC_AUTO_LOW), and then the exit() command is called to stop the engine from evaluating subsequent rules. Using the typecode constant (TC_AUTO_LOW) is the best practice for assignment, as it provides compile-time checking, whereas using a hardcoded string (Option B) is error-prone and discouraged in Guidewire development.
Furthermore, the placement of the exit command is critical. In Option C, the actions.exit() is placed before the assignment; this results in the rule terminating immediately, and the claim segment is never actually updated. Option D is incorrect because actions.stop() is not the standard method for exiting a ruleset in the Gosu rule architecture. By following the pattern in Option A, developers ensure that once a " mutually exclusive " business condition is met and handled, the system efficiently moves to the next ruleset or stage in the claim lifecycle, preventing redundant processing or accidental overwrites of the segment value by lower-priority rules.
An insurer wants to add a new typecode for an alternate address to a base
typelist EmployeeAddress that has not been extended.
Options:
Following best practices, which step must a developer take to performthis task?
Create an EmployeeAddress_Ext.tti file and add a new typecodealternate
Open the EmployeeAddress.tti and add a new typecode alternate
Create an EmployeeAddress.ttx file and add a new typecodealternate_Ext
Create an EmployeeAddress.tix file and add a new typecodealternate_Ext
Answer:
DExplanation:
In the Guidewire InsuranceSuite framework, maintaining the integrity of the base configuration is paramount for ensuring a smooth upgrade path. This is achieved through a strict " extension-only " philosophy for out-of-the-box (OOTB) components. When a developer needs to modify a base typelist—like EmployeeAddress—they must understand the distinction between .tti (Typelist Interface) files and .ttx (Typelist Extension) files.
A .tti file defines the original structure and initial typecodes of a typelist. These files are considered " base " and should never be edited directly (making Option C incorrect). If a developer were to modify the base .tti, those changes would be overwritten during the next platform update. To safely add a new typecode to an existing base typelist, Guidewire requires the creation of a .ttx file with the exact same name as the base typelist (e.g., EmployeeAddress.ttx). This extension file tells the Guidewire metadata engine to merge the new entries with the existing ones at runtime.
Furthermore, Guidewire best practices for metadata extensions require specific naming conventions to prevent future " namespace collisions. " While the .ttx file itself adopts the base name, the new typecode added within that file should be suffixed with _Ext (e.g., alternate_Ext). This ensures that if Guidewire later releases a product update that adds an " alternate " code to the base EmployeeAddress typelist, the customer ' s custom code remains unique and does not conflict with the new base code.
Option B is incorrect because you do not create a new .tti with an _Ext suffix for an existing list. Option E is incorrect because .tix is not a valid Guidewire metadata file extension; the correct extension is .ttx. Therefore, Option D is the only choice that follows the correct file creation and naming convention protocols required by the Guidewire development lifecycle.
A customer needs the ability to categorize claims based on business needs. Which actions below follow best practices? (Choose two)
Options:
Define ClaimCategory_Ext as an extension of an existing claim Typelist.
Add a ClaimCategory_Ext Typekey to the Claim entity
Create a .ttx file for ClaimCategory_Ext in the Extensions\Typelist folder
Add a ' foreignkey ' to the ClaimCategory_Ext typelist that references the Claim entity
Name the Typelist ClaimCategory without an _Ext suffix.
Create a .tti file for ClaimCategory_Ext in the Extensions\Typelist folder
Answer:
B, FExplanation:
When extending the Guidewire Data Model to meet specific business requirements, such as categorizing a Claim, developers must follow strict metadata standards. The process of adding a new categorization tool involves two primary steps: defining the list of possible values (the Typelist) and then linking that list to the business entity (the Claim).
According to Guidewire best practices, when you create a new Typelist that is not part of the base configuration, you must define it using a .tti (Typelist Interface) file. This file acts as the primary definition for the new list. Per Guidewire naming conventions, custom extensions and new metadata objects should be suffixed with _Ext to clearly distinguish them from " Out of the Box " (OOTB) components. This ensures that during future upgrades, the Guidewire upgrade tools can easily identify and preserve customer-specific configurations. Therefore, creating a .tti file named ClaimCategory_Ext.tti (Option F) is the correct procedure for initializing a new list of categories.
Once the Typelist is defined, it must be associated with the Claim entity so that each claim record can hold a specific category value. This is done by adding a new field to the Claim entity. In Guidewire, a field that references a Typelist is known as a typekey. By adding a typekey field named ClaimCategory_Ext to the Claim entity (Option B) and pointing it to the newly created Typelist, the developer enables the database to store the category selection.
Options A and C are incorrect because .ttx files are used for extending existing base typelists, not for creating entirely new ones. Option E violates the naming convention, and Option D describes a foreign key relationship which is technically different from the standard typekey implementation used for simple categorization via Typelists.
A query is known to return 500,000 rows. Which two are recommended to process all 500,000 rows efficiently? (Select two)
Options:
Use Google Iterables
Use setPageSize()
Use a batch process for large result sets
Sort the result by entity name
Chunk the results into page sets
Answer:
B, EExplanation:
Processing extremely large datasets—such as a result set containing 500,000 rows—presents a significant risk to application stability and performance. If a developer attempts to load all these records into the application server ' s memory simultaneously, it will likely trigger an OutOfMemoryError, as each entity instance consumes heap space. To mitigate this, Guidewire ' s Query API provides mechanisms for " lazy loading " and memory management.
The primary recommendation for handling massive result sets is to use setPageSize() (Option B). When setPageSize is configured on a query object, the system does not fetch all 500,000 rows at once. Instead, it retrieves data in smaller, manageable " chunks " or pages from the database. For example, if the page size is set to 100, the application only holds 100 entity instances in memory at any given time while iterating. As the iterator moves to the 101st record, the next page is transparently fetched. This process of chunking results into page sets (Option E) ensures that the memory footprint remains constant regardless of the total size of the result set.
While a batch process (Option C) is often used for long-running tasks, the question specifically asks how to process the query efficiently. Simply moving the code to a batch process without using setPageSize() would still result in a memory failure within that batch thread. Therefore, pagination is the underlying technical requirement for efficiency. Sorting (Option D) and external libraries like Google Iterables (Option A) do not address the fundamental memory consumption issues associated with large-scale database retrieval in the Guidewire platform.
Which of the following are true about Guidewire Inspections?
Options:
Inspections must be triggered manually using the Analyze toolbar option.
There are no inspections provided with the out of the box version of the product.
Developers can create custom inspections profile in Studio to include any customer specific standards that are to be enforced.
Inspections are run at the command line by running the gwb inspect.
Inspections run automatically in the Gosu editor as a background task.
Answer:
EExplanation:
Guidewire Inspections are a form of static code analysis integrated directly into Guidewire Studio (which is built on the IntelliJ IDEA platform). These inspections are designed to help developers identify code smells, performance bottlenecks, and violations of Gosu Coding Standards in real-time.
The most important operational fact about inspections (Option E) is that they run automatically as a background task within the Gosu editor. As a developer types code, the IDE continuously analyzes the syntax and logic. If a violation is found—such as an unused variable, a potentially null reference, or an inefficient query—the editor provides immediate visual feedback through highlights (like yellow warnings or red errors) and " gutter " icons. This allows for " Shift-Left " quality management, where issues are corrected the moment they are created, rather than during a later build or code review phase.
While Option C is technically true (profiles can be customized), Option E is the primary characteristic of the tool’s behavior as described in the System Health and Quality training. Option B is false because Guidewire provides hundreds of out-of-the-box inspections specifically tailored for InsuranceSuite (e.g., checking for PII in logs or inefficient bundle usage). Option D is incorrect as the primary mode of interaction is the IDE, not a command-line tool. By leveraging these automatic background inspections, developers maintain a high level of code quality and adhere to the SurePath methodology throughout the development lifecycle.
A developer has designed a detail view with an email address input. What is the best practice for ensuring that only a properly formatted email address can be entered?
Options:
Create an email address class with a validation method
Use database validation for the email address
Use field-level validation for the email address
Create a validation rule for email addresses
Answer:
CExplanation:
For standard formatting requirements like phone numbers, ZIP codes, or email addresses, Guidewire recommends Field-Level Validation (Option C). This is implemented using the validationExpression property on the PCF widget or, more ideally, by associating a Validator in the Data Model (.eti/.etx).
Field-level validation provides the best user experience because it triggers immediately when the user navigates away from the field (client-side or AJAX refresh), providing instant feedback. Using a Validation Rule (D) is a " heavier " server-side operation that only triggers when the user tries to save the entire page. By using a Regex-based validator at the field level, the application maintains data integrity with minimal performance overhead.
The following Gosu statement is the Action part of a validation rule:
It produces the following compilation error:
Gosu compiler: Wrong number of arguments to function rejectFieldQava.lang.String, typekey.ValidationLevel, java.lang.string, typekey.ValidationLevel, java.lang.string). Expected 5, got 3
What needs to be added to or deleted from the statement to clear the error?
Options:
The two nulls must be replaced with a typekey and a string
A left parenthesis must be delete
The word " State ' must be replaced with a DisplayKey
A right parenthesis must be added.
Answer:
AExplanation:
In Guidewire Validation Rules, the rejectField method is a critical tool for identifying specific fields that fail business logic checks. This method allows the application to highlight the exact UI widget in red and provide a specific error message to the user.
As indicated by the compiler error, the rejectField method on a Guidewire entity (like Contact or Claim) has a very specific signature that requires five parameters:
Field Name (String): The name of the property being validated (e.g., " State " ).
Validation Level (ValidationLevel): The severity of the failure (e.g., TC_LOADSAVE).
Error Message (String): The text displayed to the user.
Error Group (ValidationLevel): An optional group for categorizing the error.
Error ID (String): An optional unique identifier for the specific error.
When the compiler reports " Expected 5, got 3 " , it means the developer only provided the first three arguments. To resolve this error according to Guidewire best practices, the developer must complete the signature. While null is often passed for the final two arguments if they are not needed, the compiler requires them to be present so it can identify which version of the overloaded rejectField method is being called.
The reason Option A is the recognized answer in this context is that simply adding null, null is often insufficient if the types aren ' t explicitly recognized or if the code had " placeholder " nulls that didn ' t match the expected typekey/string types. By ensuring the 4th argument is a ValidationLevel typekey and the 5th is a String, the developer satisfies the Gosu compiler ' s strict type-checking requirements. This ensures the validation logic is correctly registered within the current bundle transaction and will properly interrupt the commit process if the condition is met.
What are two types of Guidewire Profiler? (Select two)
Options:
Exit-point
Entry-point
Database Performance
Worksheet
Answer:
B, DExplanation:
The Guidewire Profiler is a powerful diagnostic tool used to analyze the performance of Gosu code, database queries, and rule execution within the application. It helps developers identify bottlenecks by providing a detailed breakdown of where time is being spent during a specific operation.
According to the " System Health & Quality " training, the Profiler is categorized based on how the profiling data is captured and viewed. The two primary types are Entry-point and Worksheet.
Entry-point Profiler (Option B): This is used to profile a specific " entry point " into the application, such as a Web Service call, a Batch Process, or a specific PCF Page load. When a developer enables an entry-point profiler, the system records every operation (Gosu execution, SQL query, etc.) that occurs from the moment the entry point is triggered until it completes. This is essential for diagnosing high-latency API calls or slow-running background tasks.
Worksheet Profiler (Option D): This type is accessible directly within the application UI via the " Worksheet " (the slide-up panel at the bottom). It allows a developer or tester to profile their own current session. By clicking " Enable Profiler " in the worksheet, the developer can perform a specific action (like clicking a button or saving a claim) and immediately view the performance trace once the action finishes.
Options A (Exit-point) and C (Database Performance) are not standard names for the Profiler types in Guidewire. While the Profiler measures database performance, it is not a " type " of Profiler itself. Understanding the difference between these types allows developers to choose the right diagnostic tool depending on whether they are troubleshooting a user-interface issue (Worksheet) or a systemic back-end performance problem (Entry-point).
A developer is creating a new entity for auditors that contains a field for the license. Which configuration of the file name and the field name fulfills the requirement and follows best practices?
Options:
Auditor_Ext.eti, License_Ext
Auditor.etx, License_Ext
Auditor.eti, License_Ext
Auditor_Ext.eti, License
Auditor_Ext.etx, License
Answer:
DExplanation:
The Guidewire Data Model Architecture follows strict naming and file-type conventions to ensure the system is maintainable and cloud-ready. When creating a brand-new entity (as opposed to extending an existing one), developers must use an Entity Internal (.eti) file located in the extensions directory.
According to the Guidewire Cloud Standards, custom entities should be named with the _Ext suffix (e.g., Auditor_Ext.eti). This clearly identifies the entity as a customer-specific addition to the data model, distinguishing it from out-of-the-box (OOTB) entities. This is the first half of a valid configuration.
The second half involves naming the fields (columns) within that new entity. There is a common point of confusion here: while fields added to base application entities (like Claim or User) must have the _Ext suffix to prevent naming collisions during upgrades, fields added to a custom-created entity (like Auditor_Ext) do not require the _Ext suffix. This is because the entity itself is already in a custom " namespace " created by the _Ext suffix on the filename. Adding _Ext to every field inside a custom entity is redundant and makes the code less readable. Therefore, License is the correct name for the field.
Options B and E are incorrect because .etx files are for extending existing entities, not for defining new ones. Option C is less ideal because it lacks the standard _Ext suffix on the entity filename, which is a requirement for modern InsuranceSuite development to ensure clear separation of concerns.
A developer has completed a configuration change in an InsuranceSuite application on their local environment. According to the development lifecycle described in the training, which initial steps are required to move this change towards testing and deployment? Select Two
Options:
Deploy the application directly to a pre-production planet.
Schedule automated builds in TeamCity
Push the code changes to the remote source code repository in Bitbucket.
Trigger a TeamCity build via Guidewire Home if it has not already begun automatically.
Create a new physical star system in Guidewire Home.
Configure pre-merge quality gates in Bitbucket.
Answer:
C, DExplanation:
The Guidewire Cloud Platform (GWCP) development lifecycle is built around a modern CI/CD (Continuous Integration/Continuous Delivery) pipeline. This process moves code from a developer ' s local workstation through various " Planets " (environments) using integrated tools like Bitbucket, TeamCity, and Guidewire Home.
The first step in moving a local change toward production is committing and pushing the code to Bitbucket (Option C). Bitbucket serves as the centralized Git-based source code repository. This action triggers the " Build " phase of the lifecycle. Once the code is in Bitbucket, the next step involves the CI server, TeamCity. TeamCity is responsible for compiling the Gosu code, running automated GUnit tests, and performing static code analysis (Quality Gates). While TeamCity is often configured to trigger automatically upon a push, a developer may need to manually trigger or monitor the build via Guidewire Home (Option D) if they need immediate feedback or if the automation is set to a specific schedule.
Options such as " Deploying directly to pre-production " (Option A) are impossible in the GWCP model, as code must first pass through the " Dev " planet and satisfy quality gates before being promoted. " Scheduling automated builds " (Option B) is an administrative task, not an initial step for a developer ' s specific change. Finally, " creating a star system " (Option E) refers to the infrastructure setup usually handled by Guidewire Cloud operations, not a part of the standard code-change lifecycle. Following the C and D sequence ensures that the code is properly versioned, tested, and validated before it ever reaches a runtime environment.
An insurance carrier requires that a claim be flagged as potential fraud when the Loss Date on a claim is changed, and a review activity and history entry be created. Which configuration will accomplish this?
Options:
Create a Validation Rule to determine if the Policy is in force on the new Loss Date and only take action if the new Loss Date is outside the Policy effective dates.
Create a Pre-update Rule that flags the claim and creates a history entry; a ClaimException Rule will create an escalation activity for the supervisor.
Create a Pre-update Rule that checks for a change to the Loss Date field and flags the claim and creates the review activity and history entry.
Create a Post-setup Rule that checks for a change to the Loss Date field and flags the claim, which creates a supervisor activity and history entry.
Answer:
CExplanation:
In the Guidewire Rules Engine, detecting changes to specific fields during a transaction is a primary use case for Pre-update Rules. A Pre-update rule executes after the user clicks " Update " but before the data is committed to the database.
According to Gosu Rules best practices, the developer should use the isFieldChanged() method (e.g., claim.isFieldChanged(Claim#LossDate)) within a Pre-update rule. If the field has changed, the rule can then perform multiple actions within the same database bundle. In this scenario, the rule can simultaneously set the FraudIndicator flag, create a new Activity object for review, and add a History entry. Since these actions happen in the Pre-update stage, they are all bundled into a single atomic database transaction. If the save succeeds, all three updates are committed; if it fails, none are.
Option A is incorrect because Validation Rules are intended to block the save operation if data is invalid, not to perform secondary business logic like creating activities. Option B is inefficient because it splits the logic across two different rulesets, which is harder to maintain and may lead to timing issues. Option D is incorrect because Post-setup Rules are generally used for initial object defaults when a new entity is created, not for tracking changes to existing fields. By using a single Pre-update rule (Option C), the developer follows the architectural standard for " change-triggered " logic, ensuring the system remains performant and the code remains encapsulated.
The Panel Ref in the screenshot below displays a List View with a toolbar. Add and Remove buttons have been added to the toolbar, but they appear in red, indicating an error. The Row Iterator has toAdd and toRemove buttons correctly defined.
What needs to be configured to fix the error?
Options:
Set the toCrealeAndAdd property of the row iterator
Sel the addVisible and removeVisible properties of the Add and Remove buttons
Set the iterator property of the Add and Remove buttons
Set the Visible property of the row iterator
Answer:
CExplanation:
In the Guidewire Page Configuration Framework (PCF), there is a strict functional relationship between toolbar buttons and the data they manipulate. When dealing with List Views (LVs), the " Add " and " Remove " buttons are specialized widgets known as Iterator Buttons.
According to the InsuranceSuite Developer Fundamentals curriculum, placing an Iterator Button in a toolbar is only the first step. For the button to be valid, it must be linked to a specific Row Iterator located within the List View. This is accomplished by setting the iterator property on the Add or Remove button to the ID of the target Row Iterator.
The red error in Guidewire Studio signifies a metadata validation failure. Even if the Row Iterator has the correct toAdd and toRemove logic defined (the " how " of the operation), the buttons themselves do not yet know " where " that logic resides. By setting the iterator property, you create a direct reference that tells the button which array of objects it is responsible for managing.
Why other options are incorrect:
Option A: toCreateAndAdd is an optional property of the Row Iterator used for overriding the default object creation logic; it does not resolve the connection error between the button and the iterator.
Option B: addVisible and removeVisible are boolean expressions used to hide buttons based on user permissions or object state; they do not fix structural metadata errors.
Option D: The Visible property on an iterator affects whether the list is rendered, not whether the toolbar buttons are correctly linked.
Linking the button to the iterator ID is a fundamental best practice that ensures the UI remains synchronized with the underlying data bundle.
ABPersonVendor is an entity in the base application. An insurer needs to add a new person vendor type for auditors. Which configuration fulfills the requirement and follows the best practices?
Options:
Add a new column Auditor_Ext in the entity extension ABPersonVendor.etx
Add a new entity ABAuditor_Ext.eti as a subtype of ABPersonVendor
Create ABAuditor_Ext.eti with a foreign key pointing to ABPersonVendor
Create ABAuditor.etx as an extension of ABPersonVendor
Answer:
BExplanation:
In the Guidewire Data Model, representing specialized versions of existing objects is handled through Entity Inheritance (Subtyping). In this scenario, an " Auditor " is a specific type of " Person Vendor. " While they likely share the core attributes of a person vendor (name, tax ID, address), they may have specific requirements or behaviors unique to their role.
According to Guidewire best practices, when you need to create a specialized category of a base entity that requires its own distinct identity or specific additional fields, you should create a Subtype. Option B is the correct implementation: creating ABAuditor_Ext.eti and defining its supertype as ABPersonVendor. This allows the Auditor to inherit all fields, arrays, and foreign keys from the parent vendor entity while allowing the developer to add auditor-specific logic. The use of the .eti extension is correct for defining the new subtype entity, and the _Ext suffix follows the mandatory naming convention for custom extensions.
Option A (adding a column) is less flexible because it doesn ' t allow for the object-oriented benefits of subtyping, such as specific type-checking in Gosu. Option C (foreign key) creates a " Has-A " relationship rather than an " Is-A " relationship, which complicates the data model and UI logic. Option D is incorrect because an .etx file is used to add fields to an existing entity, not to define a new specialized entity type. Subtyping ensures that the " Auditor " can be used anywhere a " Person Vendor " is expected, providing clean, polymorphic behavior across the InsuranceSuite applications.
An insurer wants to prevent US phone numbers from containing the string " 555 " in the prefix (digits 4-6). In addition to a test for country, which validation expression will accomplish this?
Options:
((phoneOwner.PhoneFields.NationalSubscriberNumber[4..6] as String) == ' 555 ' ) ? DisplayKey.get( " BadPhoneNumber " ) : true
((phoneOwner.PhoneFields.NationalSubscriberNumber as String).contains( ' 555 ' )) ? DisplayKey.get( " BadPhoneNumber " ) : null
((phoneOwner.PhoneFields.NationalSubscriberNumber[3..5] as String).equals( ' 555 ' )) ? DisplayKey.get( " BadPhoneNumber " ) : null
(phoneOwner.PhoneFields.NationalSubscriberNumber[3..5].equals( ' 555 ' )) ? DisplayKey.get( " BadPhoneNumber " ) : true
Answer:
CExplanation:
In Guidewire PCF Configuration, a Validation Expression is used on input widgets to enforce data quality. These expressions must evaluate to a specific return type: if the data is valid, the expression must return null. If the data is invalid, it must return a String (usually via a DisplayKey) containing the error message that will be displayed to the end-user.
To address the specific requirement of checking digits 4 through 6, developers use Gosu Slicing on the phone number string. Since Gosu (and most programming languages) uses 0-based indexing, the 4th digit is at index 3, the 5th at index 4, and the 6th at index 5. Therefore, the slice range is [3..5].
Option C is the correct implementation. It slices the NationalSubscriberNumber from index 3 to 5, converts it to a String, and checks if it equals ' 555 ' . If it matches (meaning the number is invalid), it returns the BadPhoneNumber DisplayKey. If it does not match, it returns null, signifying the data is valid.
Option A and D are incorrect because they return true on success, which is a common mistake; the UI engine interprets any non-null return value as an error message. Option B is incorrect because it uses .contains(), which would flag ' 555 ' appearing anywhere in the number, not just in the specific prefix positions requested by the business analyst. Mastering these expressions ensures that users receive immediate, accurate feedback while maintaining the integrity of the InsuranceSuite Data Model.
An insurer wants to add a new typecode for a loan account to a base typelist, BankAccountType, that has not been extended. Which step must a developer take to perform this task following best practices?
Options:
Create a BankAccountType.ttx file and add a new typecode LoanAccount_Ext.
Create a BankAccountType.ttx file and add a new typecode LoanAccount.
Open the BankAccountType.tti and add a new typecode LoanAccount.
Create a BankAccountType_Ext.tti file and add a new typecode LoanAccount.
Answer:
AExplanation:
The Guidewire Data Model uses a strict separation between base application code and customer extensions. Base typelists are defined in .tti (Typelist Internal) files, which are strictly off-limits for modification by developers (ruling out Option C).
To extend a base typelist, the developer must use a Typelist Extension file, which always uses the .ttx suffix. The name of the .ttx file must match the name of the base typelist exactly (e.g., BankAccountType.ttx). Adding _Ext to the filename (Option D) is incorrect, as the system would not recognize it as an extension of the base list.
Regarding the code itself, Guidewire best practices for InsuranceSuite Developer projects recommend adding a customer-specific suffix, such as _Ext, to any new typecodes added to a base typelist. This ensures that if a future Guidewire update introduces a " LoanAccount " code to the base product, the customer ' s custom code (LoanAccount_Ext) will not collide with it. Collisions can cause significant issues during upgrades, including database constraint violations and broken logic. By following the pattern in Option A, the developer ensures that the configuration is upgrade-safe, follows the SurePath methodology, and correctly integrates with the application ' s Open Type System.
Automated inspections help enforce quality by identifying anomalous code and adherence to defined metrics. Which types of issues or rules are typically enforced by Guidewire Studio Inspections? Select Two
Options:
Detection of unaccounted-for time (Own Time) during server round trips, indicating inefficient processing loops.
Enforcement of naming standards for method and variable declarations across the entire Gosu configuration.
Measurement of the Cyclomatic Complexity metric to ensure methods do not exceed 40 statements.
Verification of data integrity to ensure that required columns on subtypes are correctly populated (a platform-level Database Consistency Check).
Identification of potential programming bugs, such as empty if or else statements or unused loop variables.
Detection of memory leaks caused by large, long-running bundles that were not paged correctly during batch modification.
Answer:
B, EExplanation:
Guidewire Studio Inspections are a form of static code analysis performed within the integrated development environment (IDE). These inspections analyze the Gosu source code and PCF files without actually executing the application. According to the " System Health & Quality " lesson, the primary goal of these inspections is to ensure code maintainability, readability, and the prevention of common logical errors.
One of the most critical roles of Studio Inspections is the enforcement of naming standards (Option B). Guidewire has strict conventions for how classes, methods, and variables should be named (e.g., camelCase for variables, PascalCase for classes, and the use of the _Ext suffix for customer extensions). Inspections flag any deviations from these standards, ensuring that custom code blends seamlessly with the base product code. This is vital for long-term maintenance and multi-developer collaboration.
Additionally, inspections are designed for the identification of potential programming bugs (Option E). This includes detecting " code smells " such as empty if, else, or catch blocks, which often indicate incomplete logic or forgotten error handling. It also identifies unused variables, unreachable code, or potentially dangerous null pointer scenarios. By catching these issues at design-time, developers can resolve them before the code is even committed to the repository.
Other options refer to different tools: Option A describes the Guidewire Profiler (used at runtime), Option D describes Database Consistency Checks (DBCC), and Option F refers to memory monitoring and bundle management best practices that are generally outside the scope of basic static inspections. Studio Inspections focus specifically on the " health " of the source code itself.
Given the following Gosu method definition:
function calculateDiscount( amount : Decimal ) : amount {
if ( amount > 1000 ) {
return amount * 0.10
}
else {
return amount * 0.05
}
}
Identify the two errors in this Gosu method definition.
Options:
The variable name amount is not descriptive.
The comparison amount > 1000 is missing parentheses.
The return type amount is incorrect.
The method name calculateDiscount does not follow camel case.
The variable amount is not initialized.
The return type should be Decimal.
Answer:
C, FExplanation:
This question examines the syntax and structure of Gosu Methods within the Gosu Rules and Logging curriculum. In Gosu, a function must be declared with a clear signature: function name(parameter : Type) : ReturnType.
The most significant error in the provided code is located at the end of the method signature: : amount. In Gosu, the identifier following the colon in a function signature must be a Type (such as String, Integer, Decimal, or a specific entity type). Here, the code incorrectly uses amount—which is the name of the input parameter—as the return type identifier. This is a fundamental violation of the Gosu Type System (Option C).
Consequently, because the method is performing arithmetic on a Decimal parameter and returning a percentage of that value, the appropriate ReturnType must be specified as a numeric type. In Guidewire development, for financial or precision-based calculations, the best practice is to use Decimal. Therefore, the second error is that the return type should be explicitly declared as Decimal to allow the compiler to validate the return statements inside the if/else blocks (Option F).
Regarding the other options: Option B is incorrect because the code clearly includes parentheses around the comparison ( amount > 1000 ). Option D is incorrect because calculateDiscount is a perfect example of lowerCamelCase, which is the required naming convention for methods. Option E is false because parameters are initialized by the calling code when the method is invoked. Mastering these signature requirements is vital for writing error-free logic in the Guidewire Studio environment.
A developer is creating an entity for home inspections that contains a field for the inspection date. Which configuration of the file name and the field name fulfills the requirement and follows best practices?
Options:
HomeInspection.etx, InspectionDate.Ext
HomeInspection_Ext.eti, InspectionDate.Ext
HomeInspection_Ext.etx, InspectionDate
HomeInspection.eti, InspectionDate.Ext
HomeInspection.Ext.eti, InspectionDate
Answer:
BExplanation:
Guidewire ' s Metadata Naming Conventions are strictly enforced to ensure that customer code remains distinct from Guidewire ' s base product code, which is essential for seamless platform upgrades.
When creating a brand-new entity, the developer must use the .eti (Entity Interface) extension. Following Cloud Delivery Standards, the entity name itself must include the _Ext suffix. Therefore, HomeInspection_Ext.eti is the correct file structure. Regarding the fields within that custom entity, Guidewire best practices recommend applying the _Ext suffix to custom columns as well (Option B), even if the entity itself is custom. This provides a consistent visual indicator in Gosu code that the developer is interacting with an extension rather than a base product element.
Option A and C use the .etx extension, which is reserved for extending existing base entities (e.g., adding a field to Claim). Option D is incorrect because it lacks the mandatory suffix on the entity name. Option E uses an invalid file naming format. Following the convention in Option B ensures the data model is compliant with Guidewire ' s automated quality gates.
The Guidewire Cloud Platform (GWCP) uses an astronomy metaphor to describe its logical partitions. Which statements accurately describe how different levels within this metaphor provide isolation? (Choose 2)
Options:
Tenants provide isolation between different AWS regions.
Each Star is kept completely separate from the other Stars within a Tenant.
A Star isolates data between different Tenants.
A Star is a logical star system that represents a business unit or shared service.
Galaxies isolate individual planets from each other.
Planets provide isolation between different Orbits.
Answer:
B, DExplanation:
The Guidewire Cloud Platform (GWCP) uses an astronomy-based taxonomy to organize its cloud-native architecture. This metaphor defines the boundaries for security, data sovereignty, and administrative isolation.
A Tenant is the highest level of isolation for a specific customer within a region. However, a single tenant can be subdivided to represent different business units or functional areas. This is where the Star comes in. According to Guidewire ' s Cloud Architecture standards, a Star represents a distinct business unit or shared service (Option D). Each Star is architecturally kept completely separate from other Stars within the same Tenant (Option B). This means that different business units can have their own independent configurations and data while still existing under the same corporate " Tenant " umbrella.
To further understand the hierarchy:
Galaxies represent the physical AWS regions (e.g., US-East, EU-Central). They do not isolate planets; they define geographical location.
Planets are the actual environments (e.g., a specific Dev environment or a Prod environment) where applications run.
Orbits represent the " lifecycle stage " or promotion path (e.g., the Dev Orbit contains multiple development planets).
By providing isolation at the Star level, Guidewire allows insurers to manage complex organizational structures without data leakage between business units, ensuring that a " Claims " business unit can operate independently from a " Policy " unit if they are configured as separate Stars. This logical partitioning is essential for scaling large, multi-faceted insurance operations on the Cloud.
==========
Which statement is correct and recommended for writing GUnit tests?
Options:
Use the init() method to set up objects shared by all tests in a test class
Handle any exceptions thrown by test methods in the finally() method
Clear all instance variables of completed test in the tearDown() method
Use fluent assertions over conventional assert statements
Answer:
AExplanation:
GUnit is the Guidewire-specific testing framework based on JUnit, used to verify that Gosu classes and business rules function correctly. Efficient test writing requires a clear understanding of the test lifecycle, specifically how to manage resources and test data.
According to the Guidewire " System Health & Quality " training, the init() method (or equivalent @BeforeClass setup logic in newer versions) is the recommended location for initializing resources that are expensive to create or are shared across all test methods within a specific class (Option A). By setting up shared objects—such as mock configuration data or static helper instances—in the init() phase, the developer ensures that the test suite runs faster and avoids redundant processing for every individual test case.
While Option C (clearing variables in tearDown()) is a valid memory management practice in some long-running Java environments, the primary focus of Guidewire GUnit training regarding the test lifecycle emphasizes the setup phase to ensure a consistent " known state " before tests execute. Option B is incorrect because GUnit is designed to catch and report exceptions as test failures; wrapping them in a manual finally block would obscure the failure and bypass the framework ' s reporting capabilities. Option D mentions fluent assertions; while modern and readable, conventional assertTrue, assertEquals, and assertNotNull remain the standard recommended assertion types in the core Guidewire Developer training curriculum.
As a developer for Succeed Insurance, you have been given a requirement to add the following options to a ContactManager typelist BusinessType that was provided with the product:
Auto Repair Shop
Home Inspector
Collection Agency
Following best practices, which of the following options correctly adds these options to the existing typelist?
Options:
Adding the following options to the existing BusinessType.ttx file:Code: auto_repair_shop, Code: home_inspector, Code: collection_agency
Adding the following options to the BusinessType.tti file:Code: auto_repair_shop_Ext, Code: home_inspector_Ext, Code: collection_agency_Ext
Adding the following options to a new BusinessType_Ext.tti file:Code: auto_repair_shop, Code: home_inspector, Code: collection_agency
Adding the following options to a new BusinessType_Ext.ttx file:Code: auto_repair_shop, Code: home_inspector, Code: collection_agency
Answer:
AExplanation:
In Guidewire InsuranceSuite, typelists are defined using two types of metadata files: .tti (Typelist Internal) and .ttx (Typelist Extension). The .tti files contain the base out-of-the-box (OOTB) codes provided by Guidewire and should never be modified by a developer. Direct modifications to base files are not upgrade-safe and violate the core architectural principles of the platform.
To add custom codes to an existing typelist, the best practice is to use the extension file associated with that typelist, which carries the .ttx suffix. If the file BusinessType.ttx already exists in the configuration module, the developer simply adds the new typecode elements to it. If it does not exist, the developer creates it with the same name as the base typelist. At runtime, the Guidewire platform performs a " metadata merge, " combining the base codes from the .tti with the custom codes from the .ttx.
Option D is incorrect because the extension file should not have _Ext appended to the filename itself; it must match the name of the base typelist exactly to be recognized by the system. Option C is incorrect because .tti files are reserved for Guidewire ' s internal use. By following the pattern in Option A, the developer ensures that the new options (Auto Repair Shop, Home Inspector, and Collection Agency) are seamlessly integrated into the application while maintaining a clean, upgradeable configuration. This is a fundamental concept in Data Model Configuration and metadata management.
When creating an entity enhancement in Gosu, which of the following practices are recommended? (Choose 2)
Options:
Use the suffix _Ext for new properties added to base application entities.
Use a noun for most properties, but use an adjective for boolean properties.
Getters do not need to be null safe.
Use the suffix _Ext for new methods added to custom entities.
An enhancement to a subtype/subclass will need to be added to each child subtype/subclass as enhancements are not automatically inherited.
Ensure that the enhancement file is placed in the same package as the enhanced type.
Answer:
A, FExplanation:
Entity Enhancements are a unique feature of the Gosu language that allow developers to " inject " new methods and properties into existing entities. Because these enhancements often target Base Application Entities (like Claim, Policy, or Account), following architectural best practices is vital to avoid system conflicts.
The first key practice (Option A) is the use of the _Ext suffix for any new properties or methods added to a base entity. This is a defensive programming strategy. If Guidewire releases a future update that includes a new field with the same name as a custom one, the _Ext suffix prevents a naming collision that could break the application or cause database metadata errors. Note that this is generally required for extensions to base entities, rather than custom ones (which are already unique).
The second critical practice (Option F) relates to the physical location of the enhancement file. For the Gosu compiler to correctly associate an enhancement with its target entity, the enhancement must be placed in the same package as the entity it is enhancing. For example, if a developer is enhancing ABContact (which resides in gw.pc.contact), the enhancement file must also be placed in the gw.pc.contact package within the configuration module.
Regarding the other options: Option E is a common misconception; in Guidewire, an enhancement applied to a supertype (like Contact) is automatically available to all of its subtypes (like Person or Company). Option C is a violation of general programming safety, as enhancements should always be defensive and null-safe to prevent NullPointerExceptions during UI rendering or rule execution.
==========
An insurer has a number of employees whose names are similar, but each one has a unique employee number for identification. Displaying the employee ' s name as a drop-down list in the user interface must include the employee ' s number with the employee ' s name to ensure uniqueness. For example:
John Smith 3455
William Andy 3978
John Smith 4041
How can a developer satisfy this requirement following best practices?
Options:
Enable Post On Change for name fields to modify how they display when the name is referenced.
Define an entity name that concatenates the name fields and employee number.
Create a setter property in a Name enhancement class.
Create a Displaykey that concatenates the name fields and employee number.
Answer:
BExplanation:
In Guidewire InsuranceSuite, the " Entity Name " (often configured in Name Configuration files or .en files) defines how an entity is represented as a string throughout the application ' s user interface. Whenever an entity is referenced in a dropdown (RangeInput), a label, or a search result, the system automatically invokes the entity ' s DisplayName.
According to the Data Model Architecture, the best practice for ensuring that users can distinguish between similar records—such as employees with identical names—is to modify the Entity Name logic to include a unique identifier. By concatenating the FirstName, LastName, and EmployeeNumber fields within the entity ' s name configuration, the developer ensures a consistent user experience across all screens.
This approach is superior to using a Displaykey (Option D) because Displaykeys are intended for static localized strings, not for dynamic data-driven entity identities. Likewise, Post On Change (Option A) is a UI-level trigger for refreshing page data and does not govern the global string representation of an object. By defining the logic at the entity level, the developer ensures that any future UI component that references the Employee entity will automatically display the unique identifier without requiring additional configuration. This promotes reusability and maintains data integrity by preventing users from selecting the wrong record due to visual ambiguity.
During an implementation, which Git branch contains code across all releases including code under active development?
Options:
Mainline branch
Master branch
Product release branch
Production branch
Answer:
AExplanation:
In the context of Source Control Management (SCM) for Guidewire implementations, especially within the Guidewire Cloud Platform (GWCP), a robust branching strategy is essential for coordinating work across multiple teams and releases.
The Mainline branch (sometimes referred to as the develop branch in Gitflow, though Guidewire training specifically uses the term " Mainline " ) serves as the primary integration point for all active development. It represents the " trunk " of the code tree where all completed features, bug fixes, and configuration changes are merged after passing initial testing. Because it contains the cumulative progress of all developers and workstreams, it acts as the source of truth for the current state of the application.
While Release branches (Option C) are used to stabilize a specific version of the code for deployment to UAT or Production, and the Master/Production branch (Options B and D) represents the code currently live in production, the Mainline is unique because it holds the code destined for future releases as well.
Following the SurePath methodology, developers create " Feature " or " User Story " branches from the Mainline. Once a story is complete and verified with GUnit tests, it is merged back into the Mainline. This ensures that the build chain in TeamCity is always testing the most recent, integrated version of the configuration. Maintaining the integrity of the Mainline branch is critical for the " Continuous Delivery " model required by the Guidewire Cloud.
Which log message output follows best practices in production?
Options:
[Method=RenewalProcess#issueNow] [Job#JobNumber=00005678] is renewed.
User minimalist paid the premium with the card: 4071002234567855.
The account cannot be created for: Jane ' s Florist, phone number: (510) 555-0000, address: 112 Main Street, Livermore CA 94550.
ALERT! The server went down. It must be recovered immediately.
Answer:
AExplanation:
Effective logging in a production environment is critical for troubleshooting, but it must be balanced with strict adherence to Security and Privacy standards. Guidewire best practices for Gosu Logging emphasize two main pillars: the exclusion of sensitive information and the inclusion of structured context.
Option A is the correct implementation because it provides " traceability " without compromising security. By including the method name (RenewalProcess#issueNow) and a unique identifier (JobNumber=00005678), a developer or system administrator can easily search through logs to identify exactly which process failed or succeeded for a specific transaction. It avoids any Personally Identifiable Information (PII).
In contrast, Option B violates PCI-DSS compliance by logging a full credit card number. Option C violates privacy standards by logging PII, such as a customer ' s phone number and physical address. Logging such data can lead to legal liabilities and security breaches. Option D, while urgent, lacks the technical structure needed for automated monitoring tools to act effectively. Production logs should ideally follow a consistent pattern that allows tools like Datadog or Splunk to parse them into key-value pairs. By using the format seen in Option A, the system creates a high-quality audit trail that facilitates rapid debugging and performance monitoring without exposing the insurer to data privacy risks.
An insurer ran the DBCC checks against a copy of their production database and found three errors with high counts in the category Data update and reconciliation. What are two best practices for resolving the errors? (Select two)
Options:
Analyze the errors to determine the root cause and correct the code responsible for the errors
Promote the code to production and run the DBCCs again
Wait to see if error counts increase; if they increase by more than 10%, fix the errors
Identify any bad data and write a SQL script to correct the data; run the script immediately
Search the Knowledge Base on the Guidewire Community for solutions to the problems found
Answer:
A, EExplanation:
Database Consistency Checks (DBCCs) are the " canary in the coal mine " for data integrity. When high error counts appear in the Data update and reconciliation category, it usually implies that recent configuration changes (Gosu rules, enhancements, or batch processes) are generating data that violates the underlying metadata constraints.
The first best practice is Root Cause Analysis (Option A). Simply fixing the data in the database is a " band-aid " solution; if the underlying Gosu code that created the bad data is not fixed, the errors will immediately return. Developers must trace the lifecycle of the affected entities to find where the logic is failing.
The second best practice is to leverage the Guidewire Community Knowledge Base (Option E). Many DBCC errors, especially those following a version upgrade or a major configuration change, have been encountered by other insurers. The Knowledge Base often provides specific SQL patterns or Gosu fixes tailored to known platform behaviors.
Why other options are incorrect:
Option B is dangerous; never promote code known to cause database inconsistencies to a production environment.
Option C is irresponsible; data corruption should be addressed as soon as it is detected.
Option D is a partial fix, but " running the script immediately " without a code fix or support review (as discussed in Question 61) is high-risk and violates Cloud Assurance standards.
An insurer has identified a new requirement for company vendor contacts in ContactManager. If the Preferred Vendor9 field is set to Yes, display the new BBS Rating (Better Business Bureau) field.
Which two configuration changes will satisfy this requirement? (Select two)
Options:
Call a gosu expression from the PostOnChange onChange properly to set the value of the BBB Rating field
Enable the Post On Change property for the Preferred Vendor? field
Set the visible property of the BBB Rating field to true when the Preferred Vendor? field is Yes
Enable the Post On Change property for the 8BB Rating field
Set the editable property of the BBB Rating field to true when the Preferred Vendor ' field is No
Answer:
B, CExplanation:
Implementing dynamic UI behavior where one field appears or disappears based on the value of another is a common task in Guidewire Page Configuration Framework (PCF). To achieve this " conditional visibility, " two distinct configuration steps are required to ensure the user interface remains responsive and accurate.
1. Triggering the UI Refresh (Option B)
By default, the Guidewire web client does not send data to the server until a major action (like clicking " Update " or " Next " ) occurs. However, when one field ' s state depends on another, we need an immediate update. Enabling postOnChange on the " triggering " field—in this case, Preferred Vendor?—tells the application to perform an asynchronous (AJAX) request as soon as the user modifies that field. This refresh allows the PCF logic to re-evaluate properties for all other widgets on the screen.
2. Defining the Visibility Logic (Option C)
Once the page is set to refresh, the " target " field—the BBB Rating—must know when it is allowed to be seen. This is handled by the visible property. In Guidewire Studio, the developer enters a Gosu expression in the visible property of the BBB Rating widget, such as: contact.PreferredVendor == true (or the equivalent boolean/typekey check).
Why other options are incorrect:
Option A: The onChange property is for executing logic (like setting a default value), not for controlling visibility. Setting a value won ' t make the field appear.
Option D: Enabling postOnChange on the BBB Rating field itself is useless here, as it is the field being shown, not the field causing the change.
Option E: Setting the editable property only controls whether a field can be typed in; it does not hide the field from view, which is what the business analyst requested.
By combining postOnChange on the source and a visible expression on the target, the developer creates a modern, reactive user experience that adheres to Guidewire UI best practices.
The company has requested to group 3 new Pages, within Claim Details, in the left navigation. Which configuration best practice should be used to implement this requirement?
Options:
Implement each new Page as a LocationRef with its own Hyperlink widget.
Configure the new Page navigations within the TabBar definition.
Define the Page links in a reusable InputSet file to group the new pages.
Use a MenuItemIterator widget to create the heading and organize the Page links.
Configure a new LocationGroup to group the new pages.
Answer:
EExplanation:
The Guidewire UI is organized into a hierarchy of Locations, and the primary mechanism for grouping related pages in the side navigation (the " sidebar " or " west panel " ) is the LocationGroup. When a business requirement calls for grouping multiple pages under a single heading—such as adding three specialized inquiry pages within the " Claim Details " area—a LocationGroup is the standard architectural choice.
A LocationGroup acts as a container for multiple LocationRef elements (which point to specific Pages, Worksheets, or other Groups). By defining a new LocationGroup (Option E), the developer can create a nested navigation structure. This results in a cleaner UI where a single parent entry in the sidebar can be expanded to reveal the three sub-pages. This follows the design pattern used throughout InsuranceSuite (for example, the " Financials " or " Parties Involved " sections in ClaimCenter).
Options A, B, and C are incorrect because they use the wrong widgets or locations for side-navigation logic. TabBar (Option B) is for top-level application switching (like moving between Claim, Policy, and Desktop), not for internal page grouping. InputSet (Option C) is for grouping fields within a page, not for managing navigation locations. MenuItemIterator (Option D) is generally used for dynamic menu generation (like a list of recent claims) rather than static structural navigation. Using a LocationGroup ensures that the navigation remains declarative and consistent with the platform ' s breadcrumb and security permission logic.
An insurer plans to offer coverage for pets on homeowners policies. Whenever the covered pet Is displayed in the user interface, it should consist of the pet ' s name and breed. For example:
How can a developer satisfy this requirement following best practices?
Options:
Enable Post On Change for the pet name field to modify how it displays when referenced
Define an entity name that concatenates the pet ' s name and breed fields
Create a setter property in a Pet enhancement class
Create a display key that concatenates the pet ' s name and breed
Answer:
BExplanation:
In Guidewire InsuranceSuite, the global representation of a data object in the user interface is controlled by its Entity Name configuration. This configuration, stored in .en files within the metadata, defines how an instance of an entity is converted into a string whenever it is referenced in a widget like a RangeInput (dropdown), a TextCell in a list, or a read-only view.
According to the InsuranceSuite Developer Fundamentals course, the best practice for a requirement that applies " whenever the entity is displayed " is to define an Entity Name (Option B). This approach allows the developer to specify a template—often involving multiple fields—that the application server uses automatically. In this scenario, the developer would configure the Pet_Ext entity name to return a string like this.Name + " - " + this.Breed.
This method is superior to other options for several reasons:
Centralization: You define the display logic once. If the business later decides to include the pet ' s age or color, you only update the .en file, and the change propagates across the entire application instantly.
Performance: The Guidewire platform caches these display names efficiently. Using logic in every PCF (Option A) or creating manual display keys (Option D) increases the maintenance burden and can lead to inconsistent UI if a developer misses a specific screen.
Declarative Nature: It follows the Guidewire philosophy of using metadata for structural and identity-related logic, keeping Gosu code reserved for complex business processes.
Options like Post On Change (Option A) are designed for UI refreshes and cannot change the underlying string representation of an object. A Setter (Option C) is used for writing data to the database and is irrelevant to how data is formatted for viewing.
The Marketing department wants to add information for attorneys and doctors;
For doctors, store the name of their medical school. For attorneys, store the name of their law school.
Which two data model extensions follow best practices to fulfill this requirement? (Select two)
Options:
An entity named LawSchooLExt. and a foreign key to it from AB.Attorney
A varchar column on ABDoctor, named MedSchool_Ext
A varchar column on ABAttorney, named LawSchooLExt
An entity named ProfessionalSchooLExt. storing the school ' s name and type
An array on ABPerson. named ProfessionalSchools_Ext
An entity named MedSchooLExt and a foreign key to it from AB_Doctor
Answer:
B, CExplanation:
When extending the Guidewire Data Model, developers must choose the most efficient storage mechanism based on the nature of the data and its relationship to existing entities. In this scenario, the requirement is to store a single piece of information—a school name—for two specific subtypes of person contacts: Doctors and Attorneys.
According to Guidewire best practices for Entity Extensions, if a piece of data has a one-to-one relationship with an entity and is a simple data type (like a String/Varchar), it should be added directly to the entity extension file (.etx) as a column. Options B and C follow this principle. By adding MedSchool_Ext to the ABDoctor entity and LawSchool_Ext to the ABAttorney entity, the developer ensures that the data is stored in the specific table where it is relevant. This avoids unnecessary complexity in the database schema and simplifies UI configuration, as the fields can be accessed directly from the object without traversing a foreign key or array.
Alternatives like creating separate entities for the school names (Options A, D, and F) or using an array on the base person entity (Option E) represent " over-engineering. " Creating a separate entity and a foreign key is only recommended if the data needs to be normalized (e.g., if multiple people share the exact same school record and that record has its own attributes like address or accreditation). In the context of a Marketing request to simply capture a name, adding a varchar column with the mandatory _Ext suffix is the most performant and maintainable approach. It keeps the database joins to a minimum and follows the Guidewire " KISS " (Keep It Simple, Stupid) principle for configuration.
An insurer with a self-managed InsuranceSuite implementation is preparing to transition to Guidewire Cloud Platform (GWCP). Which two Cloud Delivery Standards must be met before deployment? (Select two)
Options:
Performance tests must be developed and run for all functionality before an upgrade to the Cloud.
All new typelist and entity extension names include a three-character customer-specific suffix.
Database Consistency Check data issues that prevent upgrades must be fixed.
Customers must be on the most current General Availability (GA) version of the product being deployed to the Cloud.
Answer:
C, DExplanation:
The transition from a self-managed (on-premise) environment to Guidewire Cloud Platform (GWCP) involves a rigorous set of " Cloud Delivery Standards " designed to ensure the stability and supportability of the SaaS environment.
The first critical standard (Option C) involves the Database Consistency Checks (DCC). Before a database can be migrated to the cloud, it must be " clean. " Any data integrity issues—such as orphaned rows, invalid typecodes, or violated foreign key constraints—that are flagged by the DCC tool must be remediated. If these issues are not fixed, the automated migration scripts used during the cloud transition may fail, or the application may exhibit unpredictable behavior in the cloud environment.
The second standard (Option D) requires that the customer be on a supported General Availability (GA) version. Guidewire Cloud is built on a " Continuous Delivery " model, and the migration path is significantly streamlined when the source application is on a recent, stable version of the software. Attempting to move a legacy version that is several years out of date often requires multiple " hop " upgrades before the cloud transition can even begin.
While custom suffixes (Option B) and performance tests (Option A) are important parts of a project lifecycle, they are not the specific, mandatory " blocking " standards for the initial architectural transition in the same way that data integrity and product versioning are. Adhering to these standards minimizes risk and aligns the customer with the Guidewire SurePath methodology for cloud success.
A user needs to enter a Tax ID into a field, and the application should provide feedback if the entered value does not match a specific format (e.g., nn-nnnnnnn). Which validation techniques are best practices for implementing this configuration? (Choose 2)
Options:
Use the regex property on the widget.
Perform validation in a Gosu Pre-Update rule.
Configure the errorMessage property on the widget.
Supply an inputMask property to the widget to enforce the format.
Configure an inputConversion property to reformat the input.
Answer:
A, DExplanation:
Guidewire InsuranceSuite emphasizes " immediate feedback " to improve the user experience and maintain data quality. For structural validation—where data must follow a very specific pattern like a Tax ID (nn-nnnnnnn)—the two most effective tools are the inputMask and regex (or validationExpression) properties.
An inputMask (Option D) is the primary best practice for this requirement. It provides a visual template within the text box (e.g., ##-#######), guiding the user on the exact number of characters required and automatically inserting non-numeric characters like hyphens. This prevents the user from entering malformed data in the first place, acting as a proactive constraint. It is significantly more user-friendly than allowing a user to type freely and only showing an error after they attempt to save the page.
However, an input mask alone may not catch all logical errors. Using a regex property or a validationExpression (Option A) allows the developer to define a regular expression that the input must satisfy. If the user enters a value that doesn ' t match the pattern, the PCF engine generates an immediate validation error on the screen. This " field-level validation " happens on the client side or during the UI request-response cycle, rather than waiting for a database transaction.
Using a Pre-Update rule (Option B) is considered a " late " validation. While it ensures data integrity at the database level, it provides a poor user experience because the user only discovers the error after clicking " Update " and potentially losing their context. Therefore, the combination of a mask to guide entry and a regex to verify the pattern is the verified standard for PCF Configuration.
An insurer stores the date a company was established in the company records. A business analyst identified a new requirement to calculate a company ' s years in business at the time a loss occurred. The years in business will be determined using the date established field and the claim date of loss.
The image below shows the Contact structure in the data model:
Which configuration steps will satisfy the requirement? (Select two)
Options:
Create a new enhancement class for the Company entity under the insurer package
Create a function to calculate the years In business in a Company enhancement
Create a setter property to calculate the years in business in the Contact enhancement
Create a new enhancement class for the Contact entity under the gw package
Create a function to calculate the years in business in a Ul Helper class under the gw package
Create a getter property to calculate the years in business in a Company enhancement
Answer:
AExplanation:
In Guidewire development, the preferred way to extend base entities with business logic or derived data is through Gosu Enhancements. This approach allows you to add properties or methods to an entity that appear as if they were part of the original class.
1. Enhancement Location and Package (Option A)
According to the Guidewire InsuranceSuite Developer Fundamentals guide, any custom enhancement must be placed in a customer-specific package (e.g., si.pc.contact for Succeed Insurance). Using the gw package (Options D and E) is strictly prohibited as it is reserved for Guidewire ' s internal product code. Because " Date Established " is specific to the Company entity (as indicated in the Contact hierarchy), the enhancement should target the Company entity directly.
2. Using a Getter Property (Option G)
The requirement is to " calculate " a value based on existing data. The most efficient and readable way to implement this in Gosu is via a getter property (property get). Unlike a standard function (Option B), a getter property allows you to access the value in PCFs or rules using simple dot notation (e.g., myCompany.YearsInBusiness_Ext), making the code cleaner and more maintainable.
Why other options are incorrect:
Option B: While a function would technically work, a getter property is the best practice for a value that logically represents a " read-only " attribute of the entity.
Option C: A setter is used to write data to a field. Since " Years in Business " is a derived calculation, it should not be manually set; it should be calculated on-the-fly from the source date fields.
Options D and E: As mentioned, these use the gw package, which violates upgrade-safety standards and would cause the " Cloud Assurance " checks to fail.
By creating a Company enhancement in the customer ' s package and providing a property get, the developer creates a reusable, performant solution that follows the platform ' s core architectural principles.
Total 150 questions
Unlock InsuranceSuite-Developer Features
- InsuranceSuite-Developer All Real Exam Questions
- InsuranceSuite-Developer Exam easy to use and print PDF format
- Download Free InsuranceSuite-Developer Demo (Try before Buy)
- Free Frequent Updates
- 100% Passing Guarantee by Activedumpsnet
Questions & Answers PDF Demo
- InsuranceSuite-Developer All Real Exam Questions
- InsuranceSuite-Developer Exam easy to use and print PDF format
- Download Free InsuranceSuite-Developer Demo (Try before Buy)
- Free Frequent Updates
- 100% Passing Guarantee by Activedumpsnet