InsuranceSuite 10.0 Fundamentals Flashcards
What is 3-tier architecture?
Client-server software in which UI, functional logic, and data are developed and maintained as independent modules.
Data, application, presentation (DAP)
What is a relational database?
Collection of data structures and objects related to each other. Hosted separate from the application server.
Which file specifies the database connection?
database-config.xml
Which RDBMS are supported by Guidewire?
Oracle
Microsoft SQL Server
H2 - training and dev only
What is the application tier?
- Set of rules, UI, integrations, and data model.
- Requires a Java Enterprise Edition server
- Deployed using WAR or EAR
Which application servers are supported? [5]
- Websphere
- WebLogic
- Apache Tomcat
- JBoss
- Jetty - training and dev only
What is the presentation tier?
Server-side application that generates HTML pages rendered by a browser.
DON’T - use the back-button; DON’T bookmark anything except login page.
What is a data model entity?
High-level business object used by Guidewire.
- defined in a set of XML files.
Explain the relationship between the data model, DB, and Java
- Each entity is defined in a set of XML files.
- DB Tables are generated from entities.
- Java classes are generated as well.
What is a PCF file?
Page Configuration File
- abstract definition of a form or location
- used by the UI tier
What is the Guidewire Platform?
A layer of _____ _____ includes _____, _____, and _____ shared by all GW apps.
- data model, PCF, and application logic, integration mechanisms
What is the Guidewire Platform?
A layer of _____ _____ includes _____, _____, and _____ shared by all GW apps.
- data model, PCF, and application logic, integration mechanisms
configuration technology
functionality
common resources
techniques
What is gradle?
Open Source build automation system based on Groovy DSL
What are the 3 phases of build development in gradle?
Initialization, Configuration, and Execution
What is incremental build?
Gradle detects which parts of the build tree have changed and will not re-exec those that haven’t changed.
How to see available gradle tasks?
Run gwb on command line.
Which tier:
PCF?
Gosu?
Data model entities?
PCF - Presentation
Gosu - Application
Entities - Data
What is the purpose of the Guidewire platform?
Contains ____ and ______ shared by all Guidewire applications.
common resources
configuration techniques
How do you start Guidewire Studio?
open command line:
gwb studio
How do you start a Guidewire application from Studio?
Debug Server or Run Server
How to regenerate the data dictionary?
> gwb genDataDictionary
What is the Guidewire data model?
A set of XML metadata definitions of entities and typelists.
- loads on startup
- generates tables in application database
- generates Java and Gosu classes in application server
What is a data field?
- stores a single value
- does not reference an object
- e.g. varchar, datetime, bit, integer
What is a foreign key field?
- stores reference to related object
- defines unidirectional relationship
What is an array field?
- defines additional entities of same type to associate with main entity
What is a typelist?
- predefined set of possible values that limits valid values
- usually a drop-down
What are supertype and subtyped entities? [4]
- supertype is a parent
- subtype are children; they inherit all fields in the parent
- some supertypes are abstract and must be subtyped
- examples include Contact, Job, and Workflow
What is a virtual entity?
- non-persistent entity constructed only in code
- exist at run-time; not saved
- generally not recommended
What is a virtual field?
- field with a calculated value not stored in database
Are array fields stored in the DB?
No - queries are used via foreign key fields.
- every array on main entity must have a foreign key on the associated entity
How are typelists stored?
- each typelist has its own table, and each entity containing a typelist has a foreign key to that table
- prefix is ‘tl’
What kind of data is stored in a supertype parent table?
Both the supertype and subtype
How are irrelevant subtype fields handled in subtyped tables?
They are null
What 2 things are automatically created with a subtyped table?
1) subtype column
2) typelist for the various subtypes
What is the prefix for typelist tables?
xxtl, where xx is the application code (pc, bc, cc, ab)
What is the data dictionary?
A document listing the entities and typelists. It includes customer extensions.
What are the 3 main sections of the data dictionary?
[E,T,AF]
Entities, typelists, all fields
What are the 3 views of the data dictionary?
[S,D,M]
Standard, database, migration
What is the data dictionary migration view used for?
Assist in converting data from a legacy application.
What is the command to regenerate the data dictionary?
> gwb genDataDictionary
List three reasons to regenerate the data dictionary
1) a clean install of the GW application
2) Extending the data model
a) validate changes
b) generate static HTML pages
3) Modify system permissions to regen the Security Dictionary
What is an entity?
An entity is a definition of a business object.
What kinds of files define entities?
XML (ETI, ETX)
What are the two main types of entities?
Base application, custom
Where are platform entities found?
\modules\configuration\config\metadata\entity folder
- they are read-only
- platform=”true”
How do you prevent an entitiy from being subtyped?
final=”true”
What is a platform entity?
- common to all GW apps
- Activity, User
What is an application entity?
Specific to a GW app
- Claim, Policy, Invoice (BC)
Where are custom entities found?
\modules\configuration\config\extensions\entity folder
What is a custom entity?
Entity created by customer
- only created on application level
What is the naming recommendation for custom entities and fields?
1) _Ext for new entities
2) _Ext for new fields on base entities
3) Do not add _Ext to fields on custom entities
What is an EIX file?
Internal Entity Extension
What is an Internal Entity Extension used for?
Created by Guidewire to extend a platform entity in a specific application
- e.g. Activity fields specific to PolicyCenter
Where are EIX files found?
\modules\configuration\config\metadata\entity
Are EIX files editable?
No. read-only
How to get all typekey in code?
TYPENAME.getTypeKeys
- includes retired values
What is a typelist?
Fixed, predefined list of values
Can a typekey value be added at run-time?
No
How do typekeys typically appear?
dropdown list
What are the 3 typelist filetypes?
.tti - Typelist Type Info
.tix - Typelist Internal Extension
.ttx - Typelist Type Extension
When is _Ext used in typelists?
For typecodes added by the customer in an existing typelist.
Can internal typelists be modified?
No. Marked as final.
How many ETX files can an entity have?
One
What datatype do you enter for:
- string?
- boolean?
- numbers with decimals?
- varchar, shorttext
- bit
- monetary amount, decimal
What datatypes require columnParam subelements?
- varchar (size)
- decimal (scale, precision)
When does a GW application actually modify the physical structure of the database?
- during start-up only
What’s the difference between \Metadata\ and \Extensions\ folders?
Metadata - read-only
What is a PCF file?
Page configuration file
- XSD-validated XML describing structure, layout, and behaviour
What is a PCF widget?
PCF element converted to HTML and displayed
What is a PCF location?
PCF element that a user can navigate to
What 2 things does a location specify?
1) which part of the browser windows will be updated
2) what permissions are needed to view
What is an atomic widget?
Smallest building block of user interface
- displays individual data value
- executes individual action
What is a container widget?
Collection of atomic widgets or other container widgets
List 3 Primary Container Widgets
- Detail View Panels
- List View Panels
- Input Sets
What is a Detail View Panel?
Organize data into a single record
What is a List View Panel?
View information about multiple records.
What is an Input Set?
Set of atomic widgets grouped together
What container must be used to display an input set?
Detail view panel
Can an input set have a toolbar?
No
What is a secondary container?
Used to organize primary containers
- List Detail Panel, Card
What is a Card?
A card contains Detail Views or List Views
What is a List Detail Panel?
- top List View
- bottom view panel
What is a top-level container?
Screen. It organizes secondary and primary containers
Can a screen contain:
- Card?
- List View?
- Detail View?
- Input Set?
- Atomic Widgets?
1,2,3 Yes
4,5, No
Describe an < location /> element
Doesn’t exist. Conceptual only
List examples of Location widgets
Location group Page Wizard Popup Worksheet Forward Exit Point
What does ALT-SHIFT-W do?
Widget structure
Why are widgets purple / dark purple in studio?
Not defined in current PCF, reference in another PCF. Double-click to open.
What is the name of the widget that draws a horizonal line in an InputSet?
Input Divider
Alt + Shift + L
Reload PCF files
Purpose of atomic widget?
Display individual elements of data / functionality
Purpose of container widgets?
Group atomic widgets into logical groups
Purpose of locations?
Define how users move in the app
What does a PCF file define?
Container widgets, locations, and contents
Light green line in PCF:
Current selected widget will be inserted
PCF red background
Error in definition
3 ways to deploy PCF files?
- Restart server
- alt-shift-L (requires internal tools enabled)
- Internal Tools Reload page (admin access)
What is a display key?
Mechanism that allows locale-specific texts
How should static text be displayed?
Using a display key
What is specified in a widgets value property?
The field in the data model
What does the keyword ‘as’ mean? how is it used?
To subtype a base object and access a subtype field.
What are the widget defaults for:
- Visible
- Editable
- Required
- Visible
- Not-editable (read-only)
- Not-required (optional)
What are some format properties for DateInput widget?
short, medium, long
Is a secondary container, such as a Card, mandatory on a Screen?
No. Detail Views, for example, can be added tp a Screen.
What must a Detail View have?
At least one Input Column
PCF - what is a root object?
Input parameter of the container
What is a typical hierarchy example of a PCF?
Screen > Card > Detail View > Input Column > Atomic Widget
How to include a separate Detail View file in a PCF?
Use PanelRef widget
A Detail View must have at least one root object. Why?
Input widgets must reference the root to specify data
A Detail View must have >= input column. Why?
Used to organize and lay-out input widgets.
What determines if a Detail View is reusable?
Detail View must be the parent, highest object in a PCF file.
Explain the def property of a Panel Ref x(y)
x - name of container
y - list of objects to pass to child container
To edit a text input value, what must be set to editable?
Input widget and all containers, incl. Screen and Page location
Edit Buttons can be added to
- Inline Detail View Widget?
- Detail View PCF File?
- Inline Detail View Widget?
No. Toolbars typically added to Screen - Detail View PCF File?
No.
What does a Page contain?
A single Screen
Where are Pages used?
Exclusively in Location Groups
What is a Location Group?
Collection of pages
Is a Page a Location?
Yes
What is a wizard?
A Wizard is an ordered collection of screens to execute a complex business process.
What is a Popup?
Contains a single screen, returns user to previous location
Why are true popups difficult to implement?
Difficult to ensure synchronization between parent/child windows.
What is a Worksheet?
Area of the UI at the bottom. Not always visible.
What is a Forward?
A forward is a widget that contains logic to execute before navigating to another location. It can determine which location to navigate.
What is an Exit Point?
Points to a URL outside of GW
What navigation method is used in a Forward?
go()
What navigation method is used in a Location Group?
go()
What navigation method is used in a Page?
go()
What navigation methods are used in a Wizard?
go(), push()
What navigation method is used in a Worksheet?
goInWorkspace()
What navigation method is used in a Popup?
push()
What navigation method is used in a Exit Point?
push()
Which Locations have their own info bar, actions, and side bar?
Location Group, Wizard
Which Location renders a screen somewhere other than the screen area?
Worksheet
Which Location navigates to one of several Locations based on logic?
Forward
Which Location does not navigate to a screen?
Exit Point
What is a Gosu Rule?
A single decision in the for if {conditions} then {actions}
What are 3 examples of Gosu Rules?
- Event Fired Rules
- Pre-update Rules
- Validation Rules
What is a Workflow?
Custom business process executed in a time-based fashion.
- tiggered by an event
- e.g. Renewals, Delinquencies
What is the Gosu Scratchpad?
Used to write, execute, and debug Gosu snippets
What are some common array methods?
- hasMatch(condition)
- countWhere(condition)
- firstWhere(condition)
- where(condition)
What are the components of a block expression?
\ s -> s.length() == 3 \ - block indicator s - name of each element -> - start of condition s.length() == 3 - condition
What library should be used to store large/long decimal numbers accurately?
Rational
Rational.get(1.2323)
Rational.get(1,3)
Rational.get(“1/3”)
What array method returns # of objects?
x.length or x.Count
What file is used for Gosu Rules?
.gr
What are some types of events that trigger rule sets when an entity is changed?
- Preupdate Rules
2. Validation Rules
What are the 4 parts to a Gosu Rule?
Name
Root entity
Condition
Action
What are the 3 parts to a Gosu Rule hierarchy?
- Rule set category
- Rule set
- Rules
What is a Rule Set Category?
Collection of Rule Sets for 1) business purpose and 2) Trigger/Event
What are 3 types of Rule Set Categories?
EventMessage, Preupdate, Validation
What is an EventMessage?
- event processing
- generates messages
- triggered during save
What is a Preupdate?
- performs domain business logic across entities
- executed before entity is saved
- triggered during save
What is a Validation Rule?
- validation that must occur before being saved
- ensures data is valid
- triggered during save
What is a Rule Set?
- combines rules into useful set/group
- shares a root entity type
How are Gosu Child Rules executed?
Only executed if parent condition is true
What are 3 ways a Gosu Rule will NOT be executed?
- Rule condition is false
- Rule is deactivated
- Parent Rule condition is false
Gosu Rule - How to exit rule set?
actions.exit()
Gosu Rule - How to execute child rules and then exit rule set?
actions.exitAfter()
Gosu Rule - Skip to next sibling?
actions.exitToNextParent()
Gosu Rule - Skip to next sibling?
actions.exitToNext()
What is the difference between “execute all” and “exit after first action” rule set?
Exit after - rule set is exited after first true condition and action are exited
What is an example of “exit after first action?”
Assignment rules - exit after first assignment so it does not get reassigned
What is the effect of deactivating a rule?
Simply not executed by the rules engine
What 4 GW types can be enhanced?
Entities
Java Classes
Permissions
SOAP Entities
Why use a Gosu Enhancement?
Use a Gosu enhancement when subtyping would not be approprirate.
What is a getter property in an extension?
What are 4 facts?
Used to calculate a value that does not need to be stored in the database.
- Not declared in Data Model
- Cannot receive input parameters
- Only returns data - should not alter data
- Must be null-safe
What is a setter property on an extension?
What’s an example?
Takes a single input value and modifies object.
- example: Height is stored in meter, add setter person.HeightInInches(arg)
What is a function?
- set of statements
- executes logical unit of work
- receive many parameters
- optionally return a value
When is a Gosu enhancement on a Java type useful?
- does not relate to a specific entity
- extends the functionality of the base type
- usually static functions
- can extend final classes
example - GWBaseIntegerEnhancement
When you create a new enhancement, what code does Studio add for you automatically?
- package statement
- enhancement declaration
- type reference
How do you create an enhancement method that returns no value?
Create a method and specify return type void (optional)
List Incremental code generators
- PCF files
- Entities
- Typelists
- Permissions
List some Bulk code generators
- metadata classes
- PCF classes
- Permissions
- Localization
- XML Classes
What 3 resources result from PCF code generation?
.gs file representing the PCF type
.pcfc binary file for new PCF runtime
Expression.gs contains all container and widget expressions
What resource is generated from an entity definition?
java class
What is a breakpoint?
A place to suspend execution of code
How to show widget types as inline titles?
Set using Studio debug options.
Where do you debug a PCF Method?
In the generated Expression.gs file.
Which file type defines a (custom) customer data entity
ETX
What is the GW naming recommendation for custom entities?
Add _Ext to entity name. Do not add to fields.
What’s the table prefix for custom entities?
pcx_entity_ext, where pc = application name
What is the maximum length of an entity table name?
25
In what 2 cases are entities NOT stored in the database?
Virtual entities - created entirely with code and exist at run-time only. GW does not recommend this, generally.
Subtype entities - created in the parent table
What is a foreign key?
- pointer to single instance of another entity
What is a data model array?
- collection of pointers from one entity to another
- maintained at run-time
- requires a reverse foreign key
What is a one-to-one relationship?
- single-value association that can only be one-to-one cardinality
- unlike many-to-one use with foreign keys
- splits logic across multiple entities (e.g. Contact + Financial Summary)
What is required to create a many-to-many relationship?
- a new entity
- requires a ‘versionable’ type
- at least two non-nullable foreign keys
- unique index for all foreign keys
e.g. User <> UserRole <> Role
How to configure access to many-to-many relationships?
Add array in each entity
e.g. Roles in User, Users in Roles
What are circular relationships in the data model?
How are they implemented?
When an entity refers to itself. Examples are hierarchical data such as users, groups, etc.
edgeForeignKey
What’s the difference between an ETX and ETI file?
ETX file extends a base application entity. An ETI defines a new custom entity from scratch.
Entity Type Information
Entity Type eXtension
To deploy data model changes, is it required to:
a) regenerate the data dictionary?
b) restart the app server?
c) restart Guidewire Studo
a) regenerate the data dictionary?
- no
b) restart the app server?
- yes
c) restart Guidewire Studio
- no
What is a List View Panel?
A container widget:
- view info about multiple objects at same time
- can also edit data displayed
What is a Row Iterator?
Processes related array and produces row for each entity instance
Is the List View’s root object an array?
No, but the parent of the array, so that it supports addToXXX and removeFromXXX methods.
What are the 4 required properties of a Row Iterator?
value - set of elements to process
valueType - type of set e.g. HistoryEnty[]
elementName - variable name of individual elements
editable
Can ListViews be reusable? How?
Yes, must be defined as a top-level container in a PCF file.
What’s the difference between in in-line and externalized ListView?
ListViewInput vs PanelRef
What 3 things can a toolbar be added to?
Screen
Panel Ref
List View Input
In a List View:
a) What type of widget displays individual fields of data?
b) What type of widget organizes the individual fields of data?
a) cell widgets
b) row widgets
Why does a List View require a toolbar, even if read-only?
Pagination
In Editable List View, when is a Remove button available?
1) If action is defined
2) at least one row is selected
In Editable List View, when is a new object initialized?
When data is entered in the cells.
A list view panel with no editable property is _______
editable
How to make a cell editable?
Set row iterator to editable
Which buttons are added with an Iterator Buttons widget?
Add / Remove
What is a typelist?
Fixed, predefined list of values.
Which typelists do not have physical file definitions?
Entity subtypes.
What filetype is used for internal typelists
TIX
/modules/configuration/config/metadata/typelist
Where is the base configuration found?
/modules/base.zip
What element is used to edfine a typelist on an entity?
Which typelist folder is read-only?
/Metadata
What are valid values of a typecode?
AlphaNumeric only
Which typecode attribute determines order?
Priority. After priority, sorted by name.
What does a typefilter do?
Defines a named subset of typecodes.
Why not use browser popups?
- popup blockers
- ## passing info between windows difficult
Popup - how does the parent container become aware of the new object?
Popup must commit and return the object to the source container.
What are 3 use cases for popups?
- View/edit existing object
- Create new objects
- Executing popped searches
What happens if a location’s canEdit property evaluates to false?
Screen and contents are non-editable.
What happens if a location’s canVisit property evaluates to false
The widget navigating to the location in not visible or not clickable.
What is pattern matching?
A field-level validation technique
What is a regular expression?
An abstract matching pattern
What is an input mask?
Appears as a watermark in a field. Does not restrict data. Provides a guide.
What is a validation expression?
validationExpression
Logical Gosu expression associated with a single widget.
- if null, save is allowed
- if it returns a string, save is prevented, field is flagged, and a message displayed.
How is requestValidationExpression different?
Validates user input on update and when navigating to a different page.
- occur with any server call
What is a validation rule?
Written as a Gosu rule and contain cross-field logic.
What are the 3 outcomes of a validation rule?
- Reject with error
- Reject with warning
- No rejection
When is a validation rule checked?
When a Validatable entity is committed to the database?
How to configure an entity as Validatable?
implementsEntity in ETI/ETX file. Validatable.
What is a Delegate?
A way to share functionality across unrelated entities.
When to use Delegate vs Subtype?
When only a small # of fields are shared.
What are two examples of a Delegate?
Validatable, Assignable
What is the triggersValidation attribute?
Used to trigger parent validation when a child object is changed.
Can input sets contain columns?
No
What are 3 use cases for an input set?
- Reuse widgets across panels
- Shared logic such as editable and visible
- Targeted page update
What is an InputSetRef widget?
Used to reference a separate, shared, InputSet PCF file.
Where is the PCF Format Reference located?
/modules/pcf.htm
What is dynamic behaviour?
Widget property expression valuated on navigation or update.
What is a dynamic property
While value is changing, property expression is evaluated.
What is partial page update: layout re-render?
Changes the layout of the screen while data is being changed.
Is data committed in a layout re-render?
No
What is partial page update: data only?
Changes values of fields while user interacts. No data committed
Name two properties that evaluate expressions.
- editable
- required
- visible
- available
How is a partial page update implemented?
Enable post on change.
What are 3 properties to configure with Post On Change enabled?
- disablePostOnEnter
- onChange
- target
What does typeof 29 return?
java.lang.Integer
What is a ClaimCenter transaction?
Movement of money into a reserve line or a payment.
What is a ClaimCenter incident?
Describes damaged or lost property or coverable.
What is a PolicyCenter job?
Manages a policy transaction which creates or modifies a policy.
What is a BillingCenter charge pattern?
Used to define billing behaviors for each kind of charge. e.g. installment invoices for premium charges vs. one-time billing for taxes.
What is a limitation of relying heavily on subtype hierarchies?
Cannot have multiple inheritance.
What is a mode?
Property used for PCFs to change display based on given business scenario.
Name two scenarios which modes might be useful.
- Different types of contacts
2. Different LOBs
What happens if a mode is referenced but doesn’t exist?
Default mode is used.