IFS Field Service Management Architecture


Configuration

About FSM Architecture

The information below explains the structure of IFS Field Service Management (FSM). You use this information to plan and execute your customizations. Customizations apply to all users of the system unless you use roles and access groups to restrict them to fewer users.

About the Database 

The database is used to store information. FSM can use either an Oracle database or a SQL Server database. Relationships between columns or tables are not defined on the database but are instead described using metadata. Some tables are defined by us and you can read them but cannot write to them. These tables include some code tables and tables that describe screens, functions, menus, and metadata. Additional tables are provided for you to override or add to the information we supply. User‐defined columns appear on most tables and enable you to add your own data to tables in a way that is meaningful to you. In addition to tables, we supply some views that enable you to more easily access related data at once. You can use a supplied view, or your own view, as the primary table of a screen.

About Metadata

Metadata describes how parts of FSM work together. It includes:

  • Table properties
  • Table relationships
  • Column properties
  • Screen layouts
  • Menus

We supply the metadata to create a complete, working system. You can also specify your own metadata to override certain properties of supplied metadata, new field labels and descriptions, or completely new screens that can replace screens that we supply.

There are two categories of metadata that you cannot override:

  • You cannot change the column type.
  • If a column value is required, you cannot make it optional.

About Table Properties

Table properties define how the table is processed. The following options are the most often used.

Key Value

The key value identifies a row on the table. You can choose to have this value entered, or you can generate it. The value can be generated in one of two 702 Configuration IFS ways:

  • The key value can be generated by a counter. Counters for that table always increment by one when a new row is created.
  • The key value can be generated by a sequence. Sequences are usually used on tables that are always a child table and they are unique to the individual relationship. For each parent‐child relationship, child table rows always start at one and increment by one when a new row is created.
    Another key value is always specified for the row so that the row is uniquely identified.
Archive 

You can archive old data you no longer need visible. Records olderthan a date you specify are copied to an archive table on the database. These tables are available to archive by default:

  • attachment
  • contract
  • invoice
  • part_tranlog
  • purchase_order
  • quote
  • request

Records on these tables that are older than the archive date are archived unless they are referenced by another active record. You can update table properties to decide which tables you want to archive. You access the archiving engine on the Tools sub‐menu of the Studio menu.

Import/Export

By default, you can both import and export to a table. You can select that a table cannot be imported or cannot be exported.

Table Alias

Because a table can only be referenced once on a screen, you normally cannot display table columns on multiple tabs of a screen. However, you can create an alias to a table, and by specifying the alias, you can use its columns again elsewhere on the screen. The table alias inherits all of the properties of the original table and you can override some of these properties.

About Column Properties

Column properties define how the information is accepted and stored. The following options are the most often used. 

Required. When this option is selected, the column must be filled when a new row is saved.

Read Only. When this option is selected, the column cannot be changed after a new row is saved.

Key Value. Then this option is selected, the column is a key value for identifying a row.

Column Type. When this value is specified, it describes what information can be stored in the column. The types are:

  • Binary—a binary value
  • Datetime—a date and time value
  • Decimal—a decimal value
  • Integer—an integer value
  • Longstring—a long string value of 1024 characters
  • String—a string value of 256 characters

Default Value. When this value is specified, it is filled in this column on new rows.

Maximum Number of Characters. When this value is specified, no more than this number of characters can be entered and saved. Maximum Number of Decimal Places. When this value is specified, the entered value is truncated or rounded to this number of decimal places.

Maximum Value. When this value is specified, it is the maximum valuethat can be entered and saved. 

Minimum Value. When this value is specified, it is the minimum valuethat can be entered and saved.

Mask Type. When this value is specified, it describes the expected value and how it appears. The types are:

  • Currency— a numeric field formatted as currency, including currency symbol and separators
  • Dateonly—a datetime field formatted with only the date appearing
  • Datetime—a datetime field formatted with date and time, including time zone
  • DatetimeNoTZ—a datetime field formatted with date and time,not including time zone
  • Decimal—a numeric field formatted as a decimal value
  • HTML—a text field formatted by interpreting inline HTML code
  • Integer—a numeric field formatted as an integer
  • None—no formatting is applied
  • Richtext—a text field is formatted by interpreting inline Rich TextFormat code
  • Timeonly—a datetime field is formatted with time only
  • Upper—a text field formatted as uppercase
  • YorN—a text field that accepts a value of Y or N only; used for options (checkbox)

Label. This value identifies the label on the screen. You usually use a message to define the label.

Force Unique. If this option is selected, the value entered must be unique before it can be saved.

Counter Name. When this value is specified, the column is defaulted by the next available value for the specified counter.

About Table Relationships 

Metadata defines the relationship between a table and any child tables. For example, the request_unit table is defined by us as a child of the request table, using the request ID as the key column that links the two tables together.

You can create your own relationships as well, specifying the tables and the key columns that link the two together.

At times you want to display information that is not directly related to a table. In that circumstance, you can use an intermediary table to link all three together.

About Types of  Relationships

The type of relationship determines what happens to child tables when actions are performed on parent tables.

Parent. These relationships describe the relationship of a child table to its parent. It is defined on the child table.

Cascade Delete. These relationships determine that all related rows on child tables are deleted when a row is deleted on the parent table. They are defined on the parent table.

Restricted Delete. These relationships determine that a parent row cannot be deleted when any related rows exist on a child table. They are defined on the parent table. 

Default. These relationships determine the values that are copied from a parent row when related rows are created on a child table. They are defined on the child table.

Join. These relationships determine the relationship between two tables, which is not a parent‐child relationship. It is used to reference related information between tables that share a key value. It is defined on one of the tables, generally the one you have previously referenced before referencing the joined table.

Extension. This relationship determines the relationship used to manage extension tables. An extension table is used to add columns to an existing table. It is defined on the table you are extending. When you add a row on the primary table, you automatically add a corresponding row on the extension table. Only a single extension table is supported for each baseline table.

Access. These relationships determine from where a table should get its access group value for access control. 

About Validation

Validation refers to ensuring that correct data appears in a field. In metadata terms, to perform validation, you set up a lookup. Lookups are set up for a particular column and you set up one or more lines. With no arguments, the lookup verifies the data in your specified column appears as a value in the lookup table and column.

Drop‐Down List. A drop‐down list field displays a list of values, one of which can be null or blank. Because the user can only select from the list, the value is always valid, though it may not be correct.

Lookup Field. A lookup field enables a user to search for a value. Any value returned from the search is valid. The user can also type a value into this field, but a red outline appears if the value is not valid.

Text Field. A text field enables a user to enter a value. A red outline appears around the field if the value is not valid. Validation is not usually used for this type of field.

The lookup is set up in one of two ways, depending on the table you’re using for validation.

Record and Code Tables. Record tables and code tables can be validated by specifying the record or code table name and column name. For those tables that include a column for “active”, you can add a line that constrains active to Y, because checkboxes are stored in the database as Y (selected) or N (not selected).

Global Code Tables. Global code tables must have at least three lines for validation.

For all lines, the lookup table name is global_code_table

  • On the first line, the lookup column is code_value and the validate column name is the global code name
  • On the second line, the lookup column is code_name, the validate column name is the global code name, and the validate constant is the global code name
  • On the third line, the lookup column is active, the validate column name is the global code name, and the validate constant is Y (is active)

About Selects

Sometimes you want to display certain information together, for example a complete name from salutation, first, last, and suffix. You define a “column” on your table that does not exist in the database, and select from columns that do appear on the database. In this manner, you can display the information easily using the same method as any other column.

About Messages 

Messages are used to create the following:

  • Field labels
  • Field descriptions
  • Informational messages
  • Error messages
  • Code descriptions

A message consists of the following:

  • Identifier
  • Locale code
  • Type
  • Message text

We supply a complete list of messages using the EN‐US locale code. They are used by default unless you specify messages of your own using EN‐US or another locale code.

For more information, see “Messages” in the IFS Field Service Management Reference Guide

About Screens

You can also create two specialized types of screen, a lookup screen and a search screen. A lookup screen is a window that appears when you have a lookup‐type field, identified with a magnifying glass. It enables you to search in a specified list of values and select the appropriate value. A search screen is used to search for one or more field values and display the results in a list. Each screen has a primary table associated with it. It can also have one or more child tables associated with it. Metadata determines the relationships and what data is used to link tables within the relationships. Primary table information generally appears in the top of the workspace, called the header. Child table information appears on tabs. You can also put some primarytable information on a tab; for example, the Details tab on many screens.

The following are available to add to a tab.

Listview. A listview panel is a columnar list of records that appear on a child table. You can choose to use expanders to show additional fields for each record.

ItemPanel. An item panel is a set of fields or other controls that usually contain additional fields as in the header. You can locate them into columns.

TabControl. A tab control panel is used to create additional sub‐tabs. You use a tab control panel when you have many fields or child tables to organize.

About Buttons 

Buttons enable you to perform actions on data you have entered. When you create a screen, default buttons are added on the screen to create a new record, save changes to a record, and delete a record from the database. Buttons for a new record and to delete a record are also added to listview tabs. You can delete the default buttons and add other buttons that we provide for your use.

You can add buttons of the following types:

  • Blank—this button type is used to execute an action or execute XMLor code
  • Show—this button type is used on search panels to show savedsearches
  • ReportSet—this button type is used to create a report based on screen information
  • Workflow—this button type is used to execute a workflow based on screen information
  • Time Clock—this special button type is used to create a time clock that can provide information to the screen it appears on

The following actions are available to associate with a blank button; they may also update changes to child records or delete child records based on metadata relationships:

  • New—create a new record
  • Delete—delete the current record
  • Save— save changes to the current record
  • Clear—clear all fields on the search panel
  • Search—perform a search on the search panel
  • Refresh—refresh the current record from the database
  • Copy—copy the current record and create a new record for editing
  • Mass Update—update multiple records on the result panel based on specified criteria

When you add a Copy or Mass Update button, you specify additional information, such as a copy map or update criteria, to achieve a useful result.

You can also do the following with a blank button:

  • Associate custom code with a button
  • Associate a perform message with a button

The following button types are available when the primary table is request or task:

  • Assign—perform work assignment
  • Change Contract—change the contract associated with the current record
  • Unlink ECO—unlink an ECO from the current record
  • Wizard—invoke a wizard based on the current record
  • Solution—search for solutions based on the current record
  • IQA—invoke intelligent question and answer based on the current record

You can also do the following:

  • Set a button as initial focus
  • Use a button for a lookup and specify navigation to a custom lookup screen 

About Functions 

Functions are used to refer to screens and tabs on screens. They are specified on roles and can be used to prevent using a screen or making parts or all of a screen read‐only. When you create a new screen customization, a function is created for you to address the screen. You can also add functions to address tabs.

About Menus 

You can customize menus by adding items to the menus, deleting items, and rearranging items. You can also create nested menus.