Application Building for IBM TRIRIGA Platform
Application Building for IBM TRIRIGA Platform
Version 3.2
This edition applies to version 3, release 2, modification 0 of IBM® TRIRIGA® Application Platform and to all subsequent releases
and modifications until otherwise indicated in new editions.
© Copyright International Business Machines Corporation 2011. All rights reserved.
US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
Table of Contents
Notices ............................................................................745
Trademarks .................................................................................. 747
* A business object is what the IBM TRIRIGA Application Platform uses to describe real world
entities.
Support
IBM Software Support provides assistance with product defects,
answering FAQs, and performing rediscovery. View the IBM Software
Support site at www.ibm.com/support.
Data Model
The IBM TRIRIGA Application Platform maintains a description of the
data that applications use. This description is called the data model.
It is common for most busi- • Field definitions describe individual pieces of data. A field con-
ness objects in a data model tains an individual piece of data.
to closely match the organi- • Business objects describe sets of fields that are stored and manip-
zation of information visible ulated together. Business objects are used to create records. A
in the application’s user record contains actual data for the fields described by the busi-
interface. However, this is ness object used to create the record.
not a requirement.
• Associations describe how business objects relate to each other.
A business object may be • Modules organize business objects. A module is a collection of
used to create records that business objects. Each business object belongs to exactly one
are used only for behind-
module.
the-scenes processing. The
information in such records • State transitions control the life cycle of records created from a
may not appear anywhere in business object. The life cycle of most records is that it is cre-
an application’s user inter- ated, modified, and possibly deleted. A record’s life cycle is
face. determined by the state transitions in the business object used to
create it.
The IBM TRIRIGA Application Platform provides a tool named the Data
Modeler that is used to describe and manage modules, business
objects, associations, and field definitions. This use of the Data Mod-
eler is described in Chapter 2.
The state transitions that are used by records created from a busi-
ness object also are described and managed using the Data Modeler.
The IBM TRIRIGA Application Platform provides a library of pre-built
state transition families you can draw upon when you are setting up
state transitions for a business object. The library of pre-built state
transition families is managed by a tool named the State Family Man-
ager. The State Family Manager and this use of the Data Modeler are
described in Chapter 4.
User Interface
The user interface of an application that runs on the IBM TRIRIGA
Application Platform has three essential pieces:
• Access to the major parts of an application is through a portal. A
portal can provide access to the major parts of an application
Form Builder
The IBM TRIRIGA Application Platform provides a tool named the Form
Builder for the purpose of defining and managing forms to create,
view and edit the contents of records. The Form Builder is discussed
in detail in Chapter 6.
Each form created by the Form Builder is associated with a business
object. Multiple forms can be associated with the same business
object. This allows different forms to provide different views of the
data in the same kinds of records.
The fields in a form can contain values for a record created using the
business object with which the form is associated. A form also can
display values from fields in other records. A form can even display
label fields that are not connected with any record at all.
Forms utilize workflows to control the interaction between the user
and the form. A workflow is a sequence of tasks you can specify to be
performed automatically. There is an overview of workflows on
page 6.
Workflows can be used with forms to customize the behavior of the
form in a number of important ways, including these:
Navigation Item
Navigation items allow people to create, view and edit related types
of records, among other things. A navigation item can be configured
to display is a collection of forms, results of a query, and hierarchical
data. Navigation items can be configured to display a default master/
detail query, known as a manager query, that provides a standard way
for the records of a form to be displayed. If users working in different
roles need different views of records or different ways to manipulate
the same records, their needs can be served by creating navigation
items that use a customized query to manage some of the same kinds
of records but in different ways.
The Navigation Builder is a tool provided by the IBM TRIRIGA Applica-
tion Platform to create, maintain, and organize navigation items in
menus or portals. The Navigation Builder gives access to navigation
items that determine what kinds of records to display. Navigation
items are also flexible and generic enough to represent menus, portal
quick link sections, display hierarchical data, run reports, and link to
other builder tools.
The Navigation Builder and navigation items are described in the IBM
TRIRIGA Application Platform 3 User Experience User Guide.
Queries / Reports
The IBM TRIRIGA Application Platform has facilities to produce a vari-
ety of reports or queries. The mechanisms for producing reports can
be divided into two categories: internal and external.
There are two internal report generating mechanisms for producing
two different kinds of reports. One internal mechanism is for produc-
ing what is called a form report. A form report presents the contents
of a single record. A form report may also include the contents of a
record’s multi-record smart sections or query sections.
Internally generated form reports are a very flexible way to format
the contents of a record. A form report provides you with all the flexi-
bility of Microsoft Word or Excel to format the contents of records.
The tool you use to lay out the format of a form report is either
Microsoft Word or Excel. Form reports are described in the IBM
TRIRIGA Application Platform 3 Reporting User Guide.
The other internal report generating mechanism is the Report Man-
ager. The Report Manager generates tabular reports or graphs. The
Report Manager is described in the IBM TRIRIGA Application Platform 3
Reporting User Guide.
Workflows
A workflow is a specified sequence of tasks that is performed auto-
matically. Use a workflow to specify the tasks you need an applica-
tion to perform automatically but that the IBM TRIRIGA Application
Platform does not already know how to do.
Many concepts need to be understood to successfully create a work-
flow. Having a background in programming is helpful in learning to
create workflows, but it is not necessary.
The major concepts needed to create a workflow are described in
Chapter 5. The details you need to know to create a working work-
flow are described in Chapter 7.
Custom Menus
Some of the tools in the IBM TRIRIGA Application Platform use menus
that look and work a little bit differently from most other menus.
Figure 1-1 shows an example of one of these menus.
These custom menus may not appear directly under the word in the
menu bar that is clicked to make the menu appear. The example in
Figure 1-1 shows the mouse on the word View and the menu appear-
ing to the left of the word.
After one of these custom menus appears, you cannot make it disap-
pear by just moving the mouse. You must click one of the menu items
to make it disappear.
At the bottom of these menus is an item labeled Close. The Close
menu item is the menu item to click when you do not want to click a
menu item. Clicking the Close menu item makes the menu disappear
without doing anything else.
* Metadata is data that describes data. For example, records are data. Business objects
describe records, so business objects are metadata.
can do with metadata in this state is edit it and save it. Saving the
metadata puts it in the Created state.
Created
A piece of metadata is in this state after it is saved for the first
time until it is published for the first time. The metadata is not
available for use while it is in this state.
While the metadata is in this state, you can edit it, save it, or
publish it. Publishing the metadata puts it in the Pending
Publication state.
Pending Publication
A piece of metadata is in this state after a publish action has been
performed on it. It stays in this state until the platform has fin-
ished its internal processes related to publishing the metadata.
This process takes a few minutes for business objects. It is almost
instantaneous for other kinds of metadata.
Published
A piece of metadata is in this state after it has been published.
While it is in this state, the piece of metadata is available for use.
Also, while a piece of metadata is in this state, you cannot edit it.
The only action you can perform on a piece of metadata in this
state is Revise. Performing a Revise action on a piece of meta-
data puts it in the Under Revision state.
Under Revision
A piece of metadata is in this state after a Revise action has been
performed on it. While a piece of metadata is in this state, you
Managing Panels
Many of the tools provided in the IBM TRIRIGA Application Platform
environment have a user interface that is organized into panels.
Figure 1-3 shows an example of this. The user interface in Figure 1-3
contains panels named Navigation, Layout, Properties, and
Components. The different panels are used to display different kinds
of information.
The following paragraphs are not about the information contained in
the panels. Rather, they explain how to manage and manipulate the
panels themselves. There are five things that you are generally able
to do with a tool’s panels:
• Hide a panel so that it is not visible in the user interface.
• Force a hidden panel to be visible in the user interface.
• Move panels around in the user interface.
• Change the size of a panel.
• Restore the panels in a tool’s user interface to their default con-
figuration.
To hide a panel, just click the X in panel’s upper right corner. After
you click the X, the panel will no longer be visible in the user inter-
face.
To force a hidden panel to be visible again, use the View menu. Tools
that have a panel-based user interface have a View menu that looks
similar to Figure 1-1 on page 8.
Most of the items in these View menus have the same name as pan-
els. Clicking a View menu item forces the panel with the same name
as the item to become visible if hidden.
To drag a panel to a different position in the window, move the
mouse to the rectangle at the top of the panel that contains the name
of the panel and the X. Hold down the left mouse button. After a
short amount of time, the contents of the panel will be covered by
the same color as the border. If you continue to hold down the mouse
button while moving the mouse, you will be able to drag the panel to
where you want it in the window.
To change the size of a panel, move the mouse to the border of the
panel. Hold down the left mouse button. After a short amount of
time, the contents of the panel will be covered by the same color as
the border. If you continue to hold down the mouse button while mov-
ing the mouse, you will change the size of the panel. Another way to
change the size of a panel is to move the mouse to the rectangle at
the top of the panel that contains the name of the panel and the X,
Naming Conventions
IBM TRIRIGA follows a set of naming conventions in its applications
and in all custom development that it does on behalf of its custom-
ers. IBM TRIRIGA suggests you also follow these naming conventions.
Following these conventions will reduce unexpected interactions
between IBM TRIRIGA’s applications and applications created by oth-
ers. Following these conventions will help ensure that upgrades go
smoothly.
Name Prefix
A three character customer prefix is assigned to all implementations,
typically cst. For IBM TRIRIGA applications, the prefix is tri. If you are
customizing your own implementation or if you are developing your
own application, use a cst prefix for your work.
Design Elements
A specific naming convention has been established for each type of
design element available on the IBM TRIRIGA Application Platform.
These are explained in Figure 1-4.
Design Naming Convention Example Name Label Convention Label Example
Element
Module cst + mixed case, no spaces cstContract none n/a
Business cst + mixed case, no spacesa cstPurchaseOrder User readable Purchase Order
Object name for the
business object
Form [cst +] Business object name + cstPurchaseOrderShortForm User readable Short Form
mixed case, no spacesb name for the Purchase Order
Graphical User
Interface
Navigation cst + mixed case, no spacesc cstPurchasing User readable Purchasing
Collection name for the
navigation col-
lection, suitable
for a menu item
Figure 1-4. Type Specific Naming Conventions for Design Elements
Workflows
Workflow naming standards are on page 388.
All applications that run on the IBM TRIRIGA Application Platform rely
on four basic facilities:
• Records that contain the application’s data.
• Queries or reports that allow people to work with sets of records.
• Workflows that automate the manipulation of records.
• Forms that allow people to work with individual records.
This chapter describes a tool named Data Modeler that is part of the
IBM TRIRIGA Application Platform. The Data Modeler allows you to
define the types of records that an application will use. It also allows
you to define the kinds of relationships that the records may have.
The Data Modeler works by allowing you to edit metadata that
describes records. Metadata is simply data that describes data. The
metadata for records is organized four ways:
Business Objects
A business object describes the properties of a kind of record. To
create a record, you use the business object that corresponds to
the type of record you want to create.
Field Definitions
A field contains an individual piece of data such as 4. Records con-
tain fields that contain the individual pieces of data. A field defi-
nition defines a type of field with a specified name. A business
object contains a list of field definitions that determine which
fields will be in records created from the business object.
Modules
Business Objects are organized into collections called modules.
Each module contains one or more business objects.
Metadata Defines 4
Module Data Association
Association 1 *
1 1 1
1..* 2 2
* 1..*
Figure 2-1. The Organization of Records and the Metadata that Describes Them
Modules
A module is a collection of business objects. Every module has a
name. Business objects with a similar structure or purpose are usually
in the same module.
The IBM TRIRIGA Application Platform comes with a number of
modules already defined. Here are some examples:
• The Geography module contains business objects used to create
records that represent different levels of political or geographic
entities. The business objects defined in the Geography module
include City, Country, State and World Region.
• The Document module contains business objects used to describe and
manipulate documents and files. It contains business objects for
describing individual documents, collections of documents, and file
directories.
• The Meeting module contains business objects used to describe a meet-
ing or meetings.
Before you can define a business object, you must decide which mod-
ule it will be in. You may decide to put some business objects into
modules that are already defined in the IBM TRIRIGA Application Plat-
form and some into new modules. You must create a new module
before you can put business objects in it.
The Data Modeler is organized into panels. The name of the panel
shown in Figure 2-2 is Object Browser. Other panels that appear as
needed are named Data Modeler, Property, Field List, and
Association List. You can rearrange and otherwise manage the panels
using the procedures discussed on page 11 under the heading
“Managing Panels”.
The panel labeled Object Browser contains a list of modules. Nor-
mally the Object Browser panel is collapsed so you cannot see what
Deleting Modules
Before you create a mod-
ule, it may be worth tak-
ing the time to ask
yourself if the module is
really needed. The reason
Figure 2-3. Data Modeler with Object Browser Panel Expanded for this extra care is that
the IBM TRIRIGA Applica-
If you click a closed folder ( ) icon next to module, a list of the busi- tion Platform does not
ness objects in the module appears under the module’s name. Also have a way to delete a
the closed folder ( ) icon changes to an open folder ( ) icon. module after it is created.
If you create a module you
If you click an open folder ( ) icon next to a module, the list of busi- do not need, there is no
ness objects under the module’s name disappears. Also, the open way to delete it.
folder ( ) icon changes to a closed folder ( ) icon.
What people usually do
In the menu bar at the top of the Data Modeler, there is a menu with a module that is not
named New. In this menu, click the New Module menu item, which needed is change its name
causes the Property panel to appear and look like Figure 2-4. This by putting an “X” at the
allows you to specify the properties needed to create a new module. beginning of the module’s
name. For example, if you
These are the properties to specify: find yourself with a mod-
Module Name ule named Widget that is
not needed, change the
The value of this property is the name of the module. Naming
name of the module to
conventions are described on page 13. XWidget.
Hierarchy Module
This check box should be checked if the module is going to be a
hierarchy module. Hierarchy modules are described in Chapter 9.
If you are not sure what a hierarchy module is, assume all mod-
ules you create are not hierarchy modules; leave this check box
unchecked.
Click the Save Module action near the top of the Data Modeler when
you finish entering a new module’s information. After you click the
Save Module action, you are finished creating the module.
You do not publish a module. Modules are different from most other
kinds of metadata in that they have no publish-revise cycle.*
* The concept of a publish-revise cycle is discussed on page 9 under the heading “Create-
Publish-Revise Cycle”.
Figure 2-7 shows the Data Modeler’s appearance after you select a
business object named triCountry. Its name appears at the top of the
Diagram panel along with the business object’s state, which is
Published.
If the business object is freshly created, its displayed state will be
Created. Otherwise, the business object’s displayed state may be
Pending Publication, Published, or Revision In Progress. A business
object’s state is explained on page 9 under the heading “Create-
Publish-Revise Cycle”.
Specifying Fields
After a business object exists, you can specify a list of the fields that
records created from the business object will contain. To access a
business object’s list of fields, the business object must be visible in
the Diagram panel. The procedure for making a business object visi-
ble in the Diagram panel is described earlier in this chapter on
page 32 under the heading “Existing Business Object’s Properties”.
Look at Figure 2-7 on page 33 and you will see an example of the Data
Modeler with a business object selected and its Field List panel visi-
ble. The business object’s list of fields appears in the Field List
panel. A Field List panel looks like Figure 2-9.
The Data Modeler’s Field List panel has columns showing these prop-
erties of the fields:
If the field(s) you are looking for appear in the search results, you can
add the field(s) to the business object by checking the check box to
the left of the field(s) and then clicking the Accept action at the top
of the Field Search. After you click the Accept action, the accepted
field(s) is added to the business object are is displayed in the list of
fields in the List panel.
If the label, default value, or most other things about the found
field(s) do not match the properties you want, you can change them.
The changes you make will affect only the business object’s copy of
the field. The changes will not have any affect on any other field or
business object.
There are two things about an existing field you cannot change. You
cannot change a field’s name or its type. If you find a field with the
right name but the wrong type, you must use a field with a different
name.
Many business objects have a field with the same name. Even if fields
in different business objects share the same name, most other things
about the fields are allowed to be different. However, there is one
thing that must be the same for every field with the same name:
* Smart sections of a business object are discussed on page 74 under the heading “Organi-
zation of a Record”.
Deleting a Field
Deleting fields from a business object is usually rather straightfor-
ward. Check the check box to the left of the field’s name in the Field
List panel and then click the Delete action at the top of the Field List
panel (shown in Figure 2-9 on page 36). The platform may ask if you
are sure you wish to delete the field(s) and may respond to the
Delete action by telling you that the delete was successful.
You cannot delete fields that are part of the published name. You
have to remove that field from the BO Mapping before the system will
let you delete that field. See “Determining a Unique Name for
Records” on page 48 for information about BO Mapping.
Another possible response to the Delete action is that the field can-
not be deleted because it is in use somewhere. A field cannot be
deleted from a business object if it is referenced by a smart section.
If you do not know which business object and which smart section is
using the field, you will have to find the smart section and business
object that contains it. The IBM TRIRIGA Application Platform can
assist you in this search.
If you check the check box to the left of the field name and then click
the Field Finder menu item in the Data Modeler’s Tools menu, a win-
There is another way to find where a field is used. Select the field in
the Field List. Once the field’s properties are displayed in the Field
Properties panel, click the Where Used action. A window pops up
showing what references or uses the business object / field. The dis-
play shows the following information: Name, Type, Module, Object,
Form, Action, Additional Information. An example of this is shown in
Figure 2-15.
You use this form to identify a field whose value will be used in the
name of a record. It allows you to identify a field by its smart section
and name.* For the purposes of this form, fields that are not actually
part of a smart section will appear to be part of a smart section
named General.
After you select a field, click the Select Field form’s Ok action. The
Select Field form disappears and the text of the Find link is replaced
with the name of the selected field. This is shown in Figure 2-18.
If a record’s entire name comes from a single field, you are finished
specifying the name. Be sure to click Save Mapping action at the top
of the Data Modeler to save your changes to the mapping properties.
In most cases, a record’s name is the value of a single field. How-
ever, the name of some kinds of records must come from more than
one field. To specify an additional field for the name, click the Add
action to the right of the Name link. Clicking this action adds a drop-
down list and a Find link to the Name property. This looks like
Figure 2-19.
You can use this Find link to specify the additional field. If you decide
it was a mistake to click the Add action, click the Delete action and
the most recently added drop-down list and link are removed.
* We have not yet discussed smart sections. A smart section is a named part of a record.
Smart sections are described in more detail on page 74 under the heading “Organization
of a Record”.
The meaning of the Name property value shown in Figure 2-21 is that
the name of triPeople records will consist of the value of the Last Name
field followed by a comma, followed by the value of the First Name
field followed by a hyphen, followed by the value of the ID field.
At this point, you have completed all the steps that are required to
prepare a business object for being published. Before we discuss pub-
lication of business objects, there are some other topics we will dis-
cuss because, like a record’s name, they are related to a business
object’s mapping properties. If you prefer to skip over these topics
and read about how to publish a business object, skip to page 57.
In addition to the many uses these three fields have in business appli-
cations, the platform has a security-related use for the GeographyName
and OrgName fields. These security-related uses are described on
page 674 under the heading “Organization and Geography”.
Two things must be done to take advantage of these fields:
• Geographies, locations and organizations must be entered into the
platform. Entering information about geographies, locations and
organizations is usually done by the people who use or administer
the application because they know the context in which the appli-
cation will be used.
Avoid Breaking
• The other thing that must be done to take advantage of the three Applications
fields is to have a way to set the value of each of the fields. Adding fields or sections to
an existing business object
The simplest way to set the value of the fields is to take advantage of
is usually a safe thing to do.
the IBM TRIRIGA Application Platform’s auto-populate feature, which Except for some unusual sit-
will copy the initial values for these fields from the triPeople or other uations involving hierarchies
record that describes the person who initiated the creation of the and the auto-populate fea-
record. The relevant portions of these records are described on ture, adding fields to a busi-
page 656 under the heading “Authentication”. ness object will not break an
application.
If the auto-populate feature is not sufficient to initialize the three
fields to whatever values are needed, you will need to provide work- Deleting fields or sections
flows to initialize the fields. from a business object can
be dangerous. If a workflow
or anything else uses a field
Publishing Business Objects you have deleted, it will
break. Only if you are cer-
A new business object is not available for use until you publish it. tain that a field is not being
Once you have done all the previously described things to a new busi- used should you feel free to
delete the field.
ness object and added a state transition diagram, you are ready to
publish it. Read about state transition diagrams in Chapter 4. If you are not certain that a
field is not being used by
If you have placed a published business object under revision, none of something, do not delete
the changes you make to the business object affect any records until the field from the business
you publish the business object again. object. Instead, leave the
field in the business object
When you publish a business object, if any records were previously
but remove the field from
created from the business object, they will be made to conform to all forms and reports that
the new definition of the business object. If you added fields to the use the field. This way, peo-
business object, publication will add the fields to all records created ple will not see that the
from the business object. If you deleted fields from the business field is still there, but work-
object, publication will delete the fields from all records created flows that expect it to be
from the business object. there will still see it.
Associations
Most records are of limited use all by themselves. Only when they are
associated with other records is their full usefulness realized. For
example, by itself, a record that describes a training course has some
usefulness. Associating it with other records that represent such
things as course materials needed for the course, scheduled sections
of the course, and prerequisites for the course makes the record that
describes the training course much more useful.
In the next part of this chapter we explain how to define the ways
that records can be associated with each other. In the following para-
graphs, we explain the IBM TRIRIGA Application Platform’s concept of
associations.
An association is a connection between records. An association
between two records allows the IBM TRIRIGA Application Platform to
navigate from one of the records to the other.
Each end of an association has a name. This is illustrated in
Figure 2-25.
Has Belongs To
Course Course Section
Defining Associations
The platform allows the creation of an association between records
only if there is an association definition that allows it.* Association
definitions are connected to two business objects. Association defini-
* There are some exceptions to this rule. For example, Associate Record tasks in workflows
described on page 464; temporary associations for the section actions of forms described
on page 340; field and button actions described on page 363; and Data Integrator for sin-
gle-direction record-level associations described in the “Data Integrator” chapter of
Application Building for the IBM TRIRIGA Application Platform 3: Data Management.
Unless the association only is used temporarily for custom logic, it is best practice to
explicitly define the association.
• Association Manager
With either tool, you define the association in the Associate Business
Object panel. Regardless of which tool you use to access the Associ-
ate Business Object panel, the data to be entered is the same. We
will describe this panel first, then how to access it from the Data
Modeler (page 67) and the Association Manager (page 71).
Suppose that the Dependent Flag property for an association defi- There is an overview of
nition is checked and that the association definition has been used workflows in Chapter 5.
to associate a record created from the business object specified De-Associate system events
by the Business Object to other records. If the record is deleted, are discussed on page 212.
the dependent records it is associated with are also deleted.
Similarly, if the record is copied, then the copy of the record
becomes associated with copies of the dependent records, if the
association or corresponding record is identified to be copied.
If records on the other side of the association are deleted or cop-
ied, it has no effect on the record on this side of the association.
For example, you may have Line Items which are dependent on a
Purchase Order. You would create an association definition named
Has from the Purchase Order business object to the Line Item business
object and named Belongs To in the other direction. This associa-
tion would have the Dependent Flag checked. If you defined the
reverse association named Belongs To from the Line Item business
object to the Purchase Order business object and named Has in the
other direction. This association would NOT have the Dependent
Flag checked. With this set up, the line items are dependent on
the purchase order, but the purchase order is NOT dependent on
the line items.
• The Project Containment Disabled check box is visible only when
the Dependent Flag check box is selected. When checked, the
Project Containment Disabled check box disables forcing a child
record into the same project as its parent. The RECORD_PROJECT_
CONTAINMENT property in TRIRIGAWEB.properties controls whether or not
child records are forced into the same project as their parent
A simple box with the name of the selected business object appears
at the center of the diagram. For each association that is defined
between the selected business object and other business objects,
there is a line and a box.
Each of the other boxes in the diagram corresponds to an association.
The name of the other business object connected to the association
definition appears in the middle of the box. The association name on
the side of the selected business object appears on the top of the
box. The name on the other side association appears on the bottom of
the box.
The middle part of boxes that correspond to an association are either
dark blue or light blue. A dark blue middle means that there is a
smart section based on the association. A light blue middle means the
All association definitions shown in the Association List panel have the
selected business object, in this case Employee, on one end of the asso-
ciation. The information displayed for each association definition is:
• The name of the module that contains the other business object.
• The name of the association on the side of the selected business
object.
• The name of the other business object.
* A base business object is the first business object created in a module. It should have the
same name as the module it is part of.
* If the Create Section action is grayed out, it is usually because the association has not
been created yet. Click the Save Association action at the top of the Data Modeler to
solve this problem.
Figure 2-32. Stand Alone Smart Section with Field List Showing
The Field List displays the fields in the business object that will be
used to create the records that the smart section will contain. There
are four columns in the Field List:
• Select
Sequence Numbers
When you are looking at the properties of an existing multiple-smart
section, it has a property labeled Table Sequence. Single-smart sec-
Embedded records exist only in the smart section they are created in.
Because the existence of embedded records always depends on the
existence of the record that contains them, the Dependent check box
is always checked and grayed out.
For similar reasons, the properties for a smart section that will con-
tain embedded records has no Reference Only radio button, no Live
Link check box and no Reference With Modify radio button.
There is a property that is unique to smart sections that will contain
embedded records. The property is displayed as a check box labeled
Add Through Find Query. Checking this check box designates that
the user is going to Find one type of record and a workflow is going to
take the information of the records found to create the records that
will be shown in the section. This option is available only in conjunc-
tion with the Associate Multiple Record option.
Note Sections
Note sections are a feature that was supported in older versions of
the platform. This feature is now obsolete. Business objects created
Links
As mentioned previously, a link was a special kind of record that
blurred distinctions between types of records created from different
business objects. Link records existed only in a smart section.
In the past, one of the uses of link business objects was to report on
multiple business objects. Now, Report Builder queries can report on
multiple business objects without using link business objects. Use
Report Builder queries to report on multiple business objects.
In the past, one of the uses of link business objects was to allow dif-
ferent business objects to appear in multi-record smart sections.
Now, query sections provide this functionality without using link busi-
ness objects or multi-record smart sections. Use query sections to dis-
play information from different business objects.
We will explain how a link works by first explaining how the other
kinds of records, stand alone and embedded, organize their fields.
Consider the diagram in Figure 2-36. it shows the organization of two
kinds of records that are not links. One is a Textbook record. The other
is a Sample Application record. Figure 2-36 shows three fields of each
record.
Some fields in the records have the same name. They both have a
field named Name and another field named Description. Each record also
has fields with names that the other record does not have. The
Textbook record has a field named Publisher that the Sample Application
record does not. The Sample Application record has a Revision Date field
that the Textbook record does not.
Clearly, these two records are different. Because they have different
fields, they must be treated differently. Looking for a Publisher field in
a Sample Application record does not work.
Link records are created when a person or workflow adds a record to
a section based on an association with a link business object. Instead
of causing the section to reference the record being added, the sec-
tion creates a new link record that is linked to the record being added
to the section. The section references the link record rather than the
record it was asked to reference.
If the name of a field in a link record is different from any field name
in the record it is linked to, the field’s initial value is determined nor-
mally. However, fields in the link record that have the same name as
a field in the linked record have their initial value copied from the
field with the same name in the linked record. This organization is
shown in Figure 2-37.
Figure 2-37 shows the same records we saw in Figure 2-36, each
linked to a link record created from a business object named Course
Material. The Course Material records are links that have fields with some
of the same names as the Textbook and Sample Application records.
Figure 2-37 shows how the fields of each Course Material link record are
given initial values from the record that it is linked to. The Name,
Description and Publisher fields of the Course Material record linked to the
Textbook record have their initial value copied from like-named fields
in the linked record. The Revision Date field does not get its initial value
from the linked record because the record it is linked to does not
have a field named Revision Date. Similarly, the Name, Description and
Revision Date fields of the Course Material link that is linked to the Sample
Application record have their initial values copied from the like-named
fields in the linked record. The Publisher field does not get its initial
A property of every field is its data type. A field’s data type deter-
mines the type of data that the field can contain. A good understand-
ing of data types is necessary for defining fields and for most things
that applications do with fields.
Because understanding data types is so important, we have devoted
this chapter to discussing just data types.
Figure 3-1 on page 94 shows a summary of the data types available in
the IBM TRIRIGA Application Platform. Figure 3-1 also shows where to
find more detailed information about each data type.
The description of each data type includes a discussion of what is
involved in specifying a field with that type. Most fields have the
usual properties described on page 40. Only additional properties or
properties that are somehow different will be described.
TIP: Binary field names should end with BI for easy identification
later, e.g., cstDataTemplateBI.
* The exception to this is when the binary field stores an Excel spreadsheet and used in con-
junction with the Distill File and Populate File workflow tasks discussed in “Offline Excel
Spreadsheets” on page 703.
To minimize user confusion, do not check the Required check box for
a Boolean field. Required is useful for data types that allow a distinc-
tion to be made between fields that contain a value and those that do
not. A Boolean field always contains a true or false value. Since there
is always a value in a Boolean field, making it required is meaningless.
TIP: Boolean field names should end with BL for easy identification
later, e.g., cstDefaultBL.
Classifications like the ones under Discipline are useful simply for their
name and what their name implies to people. Because classifications
are represented by records, they can have additional fields that con-
tain data used to determine the outcome of computations. For exam-
ple, a classification that indicates what type of equipment something
is may have a field whose value is the phone number to call if the
equipment needs repair.
The List data type is sometimes a good alternative to Classification.
Figure 3-5.
There is a comparison of the two types on page 164.
Classification Hierarchy
TIP: Classification field names should end with CL for easy identifica-
tion later, e.g., cstFunctionalRoleCL.
The next section describes how to define a Classification field and
how to create new classifications.
* The IBM TRIRIGA Application Platform’s general purpose way of handling hierarchies is
described in Chapter 9.
The form uses all the usual field properties discussed on page 40. The
form also has additional properties:
Full Path
If the Full Path check box is not checked, the classification that is
the value of this field will be displayed in the user interface using
just the classification’s name. For example, if the classification
labeled Owned Asset in Figure 3-5 on page 100 is selected it will
be displayed as
Owned Asset
* Another option is to Copy an existing Classification form. Starting from a copy could save
you some time.
h. Click the Apply action at the top of the Form Wizard’s Layout
tab. The General tab now appears in the Navigator panel.
i. Click the Add Section action at the top of the Form Wizard’s
Layout tab. This causes the properties for a new tab to appear in
the Properties panel of the Form Wizard’s Layout tab.
k. Click the Apply action at the top of the Form Wizard’s Layout
tab. A list of the fields in the cstPublicTransportationMode business
object appears in the Components panel.
l. Check the check box for the triNameTX and triDescriptionTX fields.
Click the Add action at the top of the Components panel. This
adds two fields to the General section that are based on the
triNameTX and triDescriptionTX fields in the business object. The
General section and its two fields appear in the Layout panel of the
Form Wizard’s Layout tab.
m. Navigate to the Includes/Forms tab of the Form Wizard.
n. Click the Add action on the Includes section bar. A Select Item(s)
panel pops up to allow the selection of records that may be cre-
ated under a cstPublicTransportationMode record.
o. Select the check box next to cstPublicTransportationMode and click the
Ok action at the top of the Select Item(s) panel. This causes the
Select Item(s) panel to disappear and the cstPublicTransportationMode
business object to appear in the Includes section.
Figure 3-11. Form to Edit Properties of a Color Field with Basic Color Picker
The Default Value property is used to specify the initial value for the
field. To specify a default value click the icon. A palette of colors
will pop up, as shown on the bottom of Figure 3-11. After you have
selected a color by clicking it, the color palette disappears and a rect-
angle of the selected color appears to the left of the icon.
You may have noticed that above the palette of colors there were two
tabs, Basic and Advanced. We just set the color using the Basic Color
Picker. The alternative is to use the Advanced Color Picker. Click the
icon again. Now click the Advanced tab. The Advanced Color Picker
choosing the color. You have four ways to specify the color: By select-
ing the area to the left and the color spectrum in the middle; by
entering the r, g, and b values directly; by entering the h, s, and v val-
ues directly; or by entering the hex value directly (do not forget to put
the # in front of the hex value). Note that if you are entering the val-
ues directly, you will need to click inside the Color Picker or press tab
for the color to update. When you are satisfied, click Apply and the
selected color appears in the Default Value property. Most other
places in IBM TRIRIGA that have color fields also provide the option of
using the Advanced Color Picker.
TIP: Color field names should end with CO for easy identification
later, e.g., cstDisplayColorCO.
The Do not Auto Populate and Read Only check boxes are grayed out
and always checked. You cannot uncheck either check box.
If the Generate on Create check box is checked, the Control Number
field is set to a generated value the first time that the record transi-
tions to a state other than null. This is usually desirable.
The generated value is based on a counter associated with the busi-
ness object. There are other settings that control the format of gen-
Figure 3-15. Date Field Default Value Property with Current Date Selected
If you leave the value of zero, then the default value is the current
date. If you put in a value greater than zero, then the default value
will be that many days before or after the current date. What deter-
mines whether it is a number of days before or after the current date
is whether the value selected in the drop-down list is + or -.
To specify that the initial value should be a fixed date, select the
lower radio button and enter a date into the field next to it.
The Validation property is used to specify what validation should be
applied to values people enter for the field in a user interface. Only
one value is supported for this property: Valid Date.
The Formula Type property is visible only if the Formula check box is
checked. If the Formula check box is checked, it means that the
value of the field will be determined by a formula and the field is
always read only. The details of how to specify a formula are speci-
fied on page 184.
TIP: Date field names should end with DA for easy identification later,
e.g., cstProjectedStartDateDA.
Figure 3-17. Date and Time Default Value with Current Date & Time Selected
You can select the default value to be the specified number of days,
hours minutes or seconds before or after the current time. What
determines whether it is before or after the current time is whether
the value selected in the drop-down list is + or -.
To specify that the initial value should be a fixed date and time,
select the lower radio button and enter a date and time into the field
next to it.
The Formula Type property is visible only if the Formula check box is
checked. If the Formula check box is checked, it means that the
value of the field will be determined by a formula and the field is
always read only. The details of how to specify a formula are speci-
fied on page 184.
Date and TIme fields mapped into Date fields are truncated to mid-
night (00:00:00).
TIP: Date and Time field names should end with DT for easy identifi-
cation later, e.g., cstActualEndDT.
The Default Value property is used to specify an initial value for the
field. To enter an initial value, click the Enter hyperlink. A small form
that looks like Figure 3-19 pops up to allow you to enter a quantity of
TIP: Image field names should end with IM for easy identification
later, e.g., cstPortraitIM.
By clicking the drop-down box below the Manage By section bar you
can choose to view by Name or by Type.
To modify a list, begin by clicking the radio button next to the name
of the list in the Manage By section. After you click the radio button,
We can select any item in the parent list to be the value of the
Parent List field. The columns below only contain items that are
paired with the specified item in the parent list. If we add an item to
Attention:
Be very careful about how you fill out this form. Once you
click the OK action and save what you enter, there is no way
to change the information you entered.
Text that people will see in a user interface to identify the list goes in
the Label field.
The unique name for the list that is used within the IBM TRIRIGA
Application Platform to identify the list goes in the Name field.
A description of the list goes in the Description field.
The Type field can be used to group related lists in the List Manager.
The List Manager can show the lists in order of their name or in order
of their type. For example, this is useful if we have a few different
lists that are related to training. In this situation we would specify
Training as the Type for training related lists. Then when we ask the
When the value of the Source Type field is Dynamic, the Dependent
List field is grayed out and cannot be checked. A list cannot be both
dynamic and dependent.
Together, the Source Module and Object Type fields identify a busi-
ness object. Use the Source Module field to select the name of the
module that contains the business object. Use the Object Type field
to select the business object.
Data from all records created from the specified business object is
used to populate the list. The rows of data to the right of the Fields
label identify the fields in the business object that have their Result
Column check box checked.
The text of the items in the list comes from the contents of the
selected fields in each record. In Figure 3-25, just the Name field is
selected. This means that the items of the list will consist of contents
of the Name field of every record that has been created from the
Country business object. For example, the contents of the list might
look like this:
If more than one field is selected, the contents of the selected fields
are assembled to form the text of each list item. The order in which
they are assembled is determined by the numbers in the Sequence
column. For example, suppose that both fields of Country are selected
and the sequence number for Name is 1 and the sequence number for
Short Name (ISO-A2) is 2. The contents of the list might look like this:
Canada CA
Mexico MX
United States US
If the value of a field used in a dynamic list changes, the dynamic list
does not update until the metadata cache is cleared. When a record
that is the source of a dynamic list is deleted, the value no longer
appears in the dynamic list.
Attention:
Deleting a list that is used in conjunction with other data may
produce unwanted or unexpected results.
The Source Module and Master List fields jointly identify the parent
list. The Source Module field contains the name of the module that
the List Manager associates with the parent list. The Master List field
contains the name of the parent list.
Attention
A Note field cannot be used as any part of a record’s name.
Also, the IBM TRIRIGA Application Platform’s search facility
does not find text in a Note field and the Report Manager does
not allow reporting on this field. If these limitations are unac-
ceptable, consider using the Text data type.
TIP: Number field names should end with NU for easy identification
later, e.g., cstCapacityNU.
TIP: Password field names should end with PA for easy identification
later, e.g., cstPasswordPA.
The Default Value property is used to specify an initial value for the
field.
Attention:
There is a 1000 character limit on the length of the text in a
Text field. If you need a field that can contain an unlimited
number of characters, consider using a Note field. Note fields
are discussed on page 134.
Locator Fields
If the Locator Field check box is checked, it means that this Text
field will function in a way similar to fields in a smart section. Like a
field in a smart section, if the Locator Field check box is checked, the
locator field can be populated with the value of a field from another
record and a reference and association (note, the reference and the
association are two separate things) to that record will be created
from the record containing the locator field.
This establishes the value of this field at the time it was populated
from the other record. However, should the value in the referenced
field be changed and saved, the value in the locator field is not
updated to the new value of the referenced field.
For example, the triProduct business object has a locator field called
triVendorCompanyLookupTX that is set to create a reference to an Organi-
zation and display the Organization's hierarchy path. If a triProduct
record's triVendorCompanyLookupTX field were populated with a vendor
whose hierarchy path value was Organizations\External Companies\AB&C, LLC,
the locator field's value would be Organizations\External Companies\AB&C,
LLC. If, after populating the locator field, the vendor's Name field
(which makes up the last part of the hierarchy path value) was
changed to ABC&D, Inc., the locator field's value in the triProduct record
would not be changed to the new value and would still have the value
Organizations\External Companies\AB&C, LLC. This is because a locator field
receives a copy of the referenced record's field value and not a link to
the value.
Locator fields are beneficial if a record containing a locator field
needs to retain the original value of the referenced record as it was
when the locator field was populated with the referenced record. If
your situation calls for a live link to the referenced record's most up-
Locator String
The Locator String property is read-only. Its value is the value
you specified for the Associated String locator field property.
As mentioned at the beginning of this discussion about locator fields,
there is some similarity between smart sections and locator fields. For
example, setting the value of a locator field is done in the same way
as setting the value of a smart section, and this is different from set-
ting other field types. The way that a workflow sets the value of a
record’s contents is called Object Mapping and is discussed on
page 425.
When a locator field is initially created or is cleared, the objectID of
the referenced object is set to null.
Autocomplete
When a locator field is used in a form, the user sees the field’s label,
a text box, the search (locator picker) icon , and the clear icon .
Autocomplete’s goal is to reduce the user clicks needed to reach the
final search target.
Autocomplete functionality is available for all locator fields. Specify
whether or not your users will have this feature in the USE_AUTO_
The list shows suggested items. The first suggested item in the list is
highlighted. For each suggested item, if the locator field has defined
locator mapping fields, those field values display. The characters in
the main field value that match the user’s input are bold.
The user can perform the following actions at this stage:
• Accept the first suggested item by pressing the Tab key or Enter.
• Use the up/down arrow keys to select an item. Pressing Enter or
the Tab key completes the selection.
• Scroll and click an item. The selection completes automatically.
• Type in more characters to narrow the suggested items list.
• Delete characters, which may broaden the suggested items list.
• Key in a different set of characters.
• Press the Esc key to clear the field and hide the list.
The Default Value property is used to specify a fixed initial value for
the field. The initial value is specified as an hour in the range 0-23, a
minute in the range 0-59 and a second in the range 0-59.
TIP: Time field names should end with TI for easy identification later,
e.g., cstStartTimeTI.
The Default Value property can be used to specify the initial value of
this field in a new record. The system allows the following prefixes:
http://, https://, file://, and ftp://. If the protocol is not http://, https://,
file://, or ftp://, the system prefixes http://
TIP: Use the full URL when entering external URLs; e.g., http://www.
ibm.com.
The units of measure are displayed as the selected item in a list. The
list contains other units of measure that are used to measure the
same kind of thing. In Figure 3-40, the kind of thing being measured is
length. Some of the other units of measure in the list are feet, yards,
meters and centimeters.
When a form is initially displayed, it shows numbers with the unit of
measure that they are stored with. Because the Width and Height
fields in Figure 3-40 initially display with inches selected, we know
that these numbers are stored as inches.
If we select a different unit of measure, the number is converted to
the selected unit of measure. For example if we change the unit
shown in Figure 3-40 for Width from inches to centimeters, the num-
ber changes from 7 to 17.78. You will need to save the record before
the conversion applies.
When someone enters a value for a number and selects its unit of
measure, that number and the selected unit of measure are stored in
the record’s field.
Next, fill in fields of the UOM Details section, which describes infor-
mation about the unit of measure.
Enter the unit of measure’s name in the UOM field and put the unit of
measure’s abbreviation in the UOM ABBREVIATION field.
The default value for the Conversion Factor field is 1. The value of
Conversion Factor for a base UOM should be 1.
The rest of the fields are not relevant for Kilobytes, so we finish by
clicking the Create action. Kilobytes becomes the base UOM for Digital
Data because it is the first unit of measure defined for Digital Data.
To complete the example, create UOM_Values records to describe bytes,
megabytes, and gigabytes.
There are additional fields in the UOM_Values form that we did not
use to define kilobytes. The first of this is Conversion Offset. The
Conversion Offset field is used to specify a value that needs to be
added before multiplying by the value of the Conversion Factor field.
To see how the Conversion Offset field is used, look at the example of
degrees-fahrenheit. The base unit that the platform uses for temperature
is degrees-celsius. The formula to convert from Fahrenheit to Celsius is
C = F – 32 5 9 . The record that describes degrees-fahrenheit is shown
in Figure 3-46.
The remaining fields are most often used with units of money (cur-
rency), but may be used for any kind of unit.
The value of the Display Mask field is used to determine how num-
bers with the unit of measure will be formatted when displayed. If no
value is supplied for the Display Mask field, default formatting is
used. The default formatting follows these rules:
• If a number is negative, it is formatted with a minus sign (-) at the
beginning.
• The number will be formatted with no leading zeros, unless the
magnitude of the number is less than 1. If the magnitude of the
number is less than 1, then there will be one leading zero.
• If the number has a fractional part, it will be formatted with a
decimal point followed by one or more digits.
• If a number has a fractional part, it will be formatted with only as
many digits after the decimal point as are needed. It will have no
trailing zeros.
• If a value has more digits to the right of the decimal place than
shown in the Display Mask property, the platform defaults to using
ROUND_HALF_UP to round the value in the display.
Number Formats
The value supplied for the Display Mask field of the UOM_Values form
or the Number field form is used to determine the way that numbers
with the unit of measure are formatted when displayed. The format-
ting in a Number field takes precedence over UOM formatting when
displaying Number fields in query reports or forms. If a value has more
digits to the right of the decimal place than shown in the Display Mask
property, the platform uses Round Half Up to round the value in the
display.
The value supplied for the Display Mask field is treated as a sequence
of characters with each character having a particular meaning. Differ-
ent characters have different meanings in a format. The following
explains how formats work one character at a time.
The first character is 0 (zero). A zero is used to indicate a position
that contains a digit. If a number has a format that consists of a
Do not use both a % (percent sign) and a ‰ (per-mill sign) in the same
number format.
Use a ¤ (currency sign) at the beginning or end of a number format to
indicate that a currency symbol should be in the formatted number.
This is always $ (dollar sign). Figure 3-54 shows some examples of
this.
Value Format Formatted Value
1234.5 ¤#,##0.00 $1,234.50
1234.5 #,##0.00¤ 1,234.50$
Use a ' (single quote) to indicate that the character following it should
not be treated with any special meaning, for example, for literal sym-
bols. Figure 3-57 shows some examples of this.
Value Format Formatted Value
12 '#0 #12
12 #0 o''clock 12 o'clock
Money
Units that are used to measure things like length, volume, and tem-
perature have something in common. The conversion factors between
units used to measure each of these things do not change. Units that
are used to measure money are different.
The conversions between different currencies that countries use to
measure money change over time. Hence, IBM TRIRIGA treats curren-
cies differently from other kinds of measurements.
Evaluate your use of currencies during implementation and add or
remove currencies pertinent to your company needs prior to adding
data records. Failure to do so before creating records could cause
conversion issues or data loss on those records.
The IBM TRIRIGA Application Platform allows you to maintain conver-
sion rates between different currencies that apply only to a range of
time that you specify. To manage conversion rates for currencies, you
use the Currency Conversion Manager.
Work in The record has this state while the book is being written.
Progress
Prepublication The state of the record after the book has been written and
while the book is being prepared for publication.
Out of Print The book was published but is no longer being published.
The boxes in Figure 4-1 represent the states of the record. The verti-
cal lines under the boxes help show transitions between the states.
The arrows between the lines represent transitions from one state to
another; these transitions are called state transition actions. The
words in the arrows are the labels users see for the station transition
actions that cause the transitions.
When any state transition action is invoked, the system saves the
record, regardless of the state transition action’s name.
The odd shape that looks like this indicates a transition
from a state to the same state. A state transition that does not go
anywhere may seem pointless at first. The value of such a transition
has to do with the fact that when a transition happens, it causes the
record to be saved and may call a workflow and/or set the values of
family for a cstBook business object that will model the life cycle
shown in Figure 4-1 on page 188.
As you can see in Figure 4-2, when you start from nothing*, a new
business object’s state transition family is created with a single state
named null.
A transition from null state to null state does not cause the control
number to be calculated.
* The alternatives to starting from nothing are described on page 196 under the heading
“Reusing Existing Transition Families”.
The new state has no name. When new states are added, they auto-
matically become the selected state. The form to edit the new state’s
properties appears in the left side of the panel. Set the name of the
new state to cstWorkInProgress.
The next thing to do is to add a state transition action from the null
state to the cstWorkInProgress state. To add this transition, first click the
null state. Then click the Add Transition action in the left panel.
Nothing happens right after you click the action. Then click the
cstWorkInProgress state. After clicking the cstWorkInProgress state, a blank
state transition action symbol appears from the null state to the
Continue adding the rest of the states and state transition actions.
Click the Add State action. This adds a new state. Set the name of
the state to cstAbandoned. Then create a state transition action from
the cstWorkInProgress state to the cstAbandoned state. Label this new state
transition action Abandon and have it trigger an action named
cstAbandon. At this point the life cycle diagram looks like Figure 4-6.
Build the rest of the state transition family. The completed life cycle
diagram looks like Figure 4-1 on page 188.
When you are finished entering the states and state transition actions,
click Save to save the diagram. Click Cancel to close the state transi-
tion diagram.
The following reviews the remaining actions in the upper right hand
corner:
Print
This action allows you to print the contents of the state transition
diagram.
The State Transition Attribute window contains the names of all the
fields in the business object. There is a check box to the left of each
name. Select a check box to indicate that the state transition action
should set a value in the field when it is triggered. After clicking Ok,
the State Transition Attribute window goes away and the selected
To specify the value to put in the field when this state transition
action is triggered, enter the value in the Constant Value column.
In order for this to work in classification fields, the Constant Value
must be one of the statuses in the classification hierarchy.
If you want the state transition action to set the value of more fields,
add more fields to the State Transition Attribute section.
When finished entering business object-specific information, click the
Ok action on the SubAction Label Details window. The SubAction
Label Details window disappears.
After business object-specific information for a state transition action
has been saved, the appearance of the state transition action in the
life cycle diagram changes. It looks like Figure 4-14. State transition
The IBM TRIRIGA Application Platform allows you to add your business
logic to your applications by creating a workflow. Workflows can be
created to define any business process associated with the system or
the business objects created in the system. A number of pre-defined
workflows are delivered with the IBM TRIRIGA applications. This chap-
ter is an overview of major concepts involved in creating workflows.
There is some discussion of how to connect workflows to other parts
of an application. Most other details about workflows are in Chapter
7.
This chapter covers the following topics:
• The sorts of things that workflows are commonly used for, begin-
ning on page 206.
• “Synchronous vs. Asynchronous Workflows” describes how work-
flows can be made to run while a person waits or in the back-
ground without making anyone wait for the workflow to finish and
begins on page 207.
• “Launch Conditions” begins on page 208 and describes various
things that can cause a workflow to run.
• “Organizing a Workflow into Tasks” describes how workflows are
organized into simple steps and begins on page 210.
• How workflows use data values in records in the database and
data values input by a person editing the fields of a form can be
found in “Temporary vs. Permanent Data” beginning on page 211.
• “System Events” on page 212 describes a system event and the
circumstances under which a system event causes a workflow to
be launched.
© Copyright IBM Corporation 2011. Variables, Parameters, and Return Values | 217
call. Duplicating common logic makes it harder to maintain the pro-
cessing logic and can lead to subtle differences in the way two simi-
lar business processes behave.
To allow these workflows to have access to all of the information
needed they can be defined to accept one or more parameters (as
workflow variables). They can also be defined to return one or more
results to the calling workflow (as workflow variables). This makes it
possible to break out common business logic into a shared workflow
that can be called with a set of workflow variable parameters that
have been set within the calling workflow. Upon return from the
called workflow, a set of workflow variables can be set containing the
return information. The calling workflow can then access the returned
values as variables.
Workflow parameters and return values are one or more workflow
variables that can be selected in the Start task to identify them as
being parameters and/or return values. Asynchronous workflows can-
not use parameters and return values. Synchronous workflows allow
optional parameters while Subflow workflows allow either optional or
required parameters.
More information can be found in the descriptions of the Start task
(page 394), Call Workflow task (page 543), Variable Definition task
(page 568), and Variable Assignment task (page 570) in “Creating
Workflows,” Chapter 7.
If you select the radio button to the left of a form whose status is
Published, the actions at the top of the Form Builder will look like
Figure 6-3.
Form
When you create a new form, the window to configure its properties
pops up. This window is called a Form Wizard. It looks like Figure 6-4.
Initially, three tabs are visible:
• The Layout tab is used to specify the internal presentation struc-
ture of the form.
• The Includes/Forms tab is used for two separate purposes. It is
used to describe the external presentation structure of forms for
records that are part of a hierarchy, for example Classifications.
This use of the Includes/Forms tab is described on page 368 under
the heading “Includes/Forms”.
The Includes/Forms tab is also used to specify which form reports
may be used in a Reports tab in the form. Form reports are
described in the IBM TRIRIGA Application Platform 3 Reporting
User Guide. Reports tabs are described on page 232 under the
heading “Show Reports”.
• The State Transition tab is used to manage the state-based
actions. This is described on page 370.
The following additional actions appear at the top of the Layout tab:
Reset
Changes the form back to what it looked like the last time it was
saved, including window size.
View
Presents a drop-down list of Form Builder sections. Click one to
add it to the Form Builder display.
Preview
Renders the form in its current state.
Validate
When selected, the platform checks the section for the following
and displays any errors.
• Duplicate fields on a tab.
• Duplicate sections on a tab.
If it is a Group By section, the platform also checks the following:
• Group By field set on the section.
• Only one Group By field set on the section.
Note that the Bookmark this record option corresponds to the spe-
cific record scenario, and allows the user to bookmark the Andrew
Admin employee record. The Bookmark this form option, on the
other hand, allows the user to bookmark the form itself. In other
words, selecting the form to bookmark means that the user can cre-
ate a new employee through a bookmark link in their My Bookmarks,
as shown in Figure 6-8 on page 234.
Keep in mind that the user would need to have the capability to book-
mark in the first place for these options to be available. See the IBM
TRIRIGA 10 Getting Started User Guide for more information about
bookmarks.
Tabs
A tab is a part of a form. A form contains one or more top-level tabs.
Top-level tabs take up all the available area in the window. Each tab
contains one or more sections. One kind of section a tab can contain
is a multi tab section (described on page 324). A multi tab section
contains one or more tabs. Tabs in multi tab sections contain exactly
one section.
More than one tab can be in the same form or section. However, the
contents of only one tab in the same form or section are visible at one
time. When you select a tab, its contents become visible and the con-
tents of other tabs under the same form or section are not visible.
Top-level tabs have their own properties. Tabs in a multi tab section
do not have their own properties; they are controlled by the proper-
ties of the multi tab section that contains them. For a description of
multi tab sections see page 324.
To add a top-level tab to a form, first select the form in the
Navigation panel and then click the Add Tab action that appears at
the top of the Form Wizard’s Layout tab. To delete a top-level tab,
first select the tab in the Navigation panel and then click the Delete
action at the top of the Form Wizard’s Layout tab.
While a top-level tab is selected in the Navigation panel, its proper-
ties appear in the Properties panel. The Properties panel displaying
the properties of a top-level tab is shown in Figure 6-9.
Copy A Tab
You can copy a tab from the current form to another place in the cur-
rent form, to another form in the same business object, or to another
form in a different business object in the same module. Begin by
selecting the tab in the Navigation panel. While the tab is selected,
there is an action labeled Copy Tab at the top of the Form Wizard’s
Layout tab. The purpose of the Copy Tab action is to allow you to
copy the tab and paste it.
When you click the Copy Tab action, the Properties panel changes to
allow you to specify the properties of the tab when it is pasted. The
Properties panel looks like Figure 6-10.
The properties are as follows:
Name
This is the name of the tab in the target form. The default is the
name of the source tab. You cannot use the same name unless you
are copying the tab to a different form. The name must be unique
in the target form.
Target Business Object
This is the business object of the target form. The default is the
business object of the current form. You can copy a tab to a form
in the same business object or in a different business object in the
same module. Select the Target Business Object from the drop-
down list. The list shows all business objects in the same module
as the current form.
Target Form
This is the form into which the tab will be copied. The default is
the current form. You can copy a tab into any form in the
selected Target Business Object. Select the target form from the
drop-down list. The list shows all forms in the target business
object.
Click the Apply action in the Properties panel. The system revises the
target form if necessary and pastes the copied tab as the last tab in
the target form. Be sure to publish the target form.
If the target business object is not the same as the source business
object, the system removes fields, smart section fields, and smart
sections that are not valid in the target business object.
You will see an error message if the tab is not uniquely named within
the target form.
Overview of Sections
You can add a section to a tab by clicking the tab’s name in the
Navigation panel and then clicking the Add Section action.
Sections of a form are used to present information of some sort.
These kinds of sections are used to present different kinds of informa-
tion:
Form Section
A form section can contain fields and buttons. Each field may be
explicitly based on a field in the business object associated with
this form.
Form sections are discussed in greater detail on page 247.
Copy A Section
You can copy a section from the current tab to another place in the
current form. Begin by selecting the section in the Navigation panel.
While the section is selected, there is an action labeled Copy Section
at the top of the Form Wizard’s Layout tab. The purpose of the Copy
Section action is to allow you to copy a section and paste it.
When you click the Copy Section action, the Properties panel
changes to allow you to specify the properties of the section when it
is pasted. The Properties panel looks like Figure 6-14.
Figure 6-15. Start Row, Row Span, Start Column, Column Span Combinations
Fields
There are two ways you can edit the properties of a field: You can
click the name of the field in the Navigator panel or add a new field
to a section.
To add a field to a form section or smart section, first click the sec-
tion’s name in the Navigator panel so its properties appear in the
Properties panel. Then click the Add Field action at the top of the
Layout tab.
check boxes in the list and then click the Components panel’s Add
action, Data fields that correspond to record fields whose check box
you checked will be added to the currently selected section in the
form.
When you are editing the properties of a field, the field’s properties
will appear in the Properties panel and look like Figure 6-18 on page
250.
Figure 6-18 shows the properties of a new field, just after someone
has clicked the Add Field action. Additional properties may become
visible as you select values of some of the initially shown properties.
Here are descriptions of the properties:
Type
A field has two properties named Type. This is a description of
the first.
The value of this property determines whether the field is a form
field, a data field, or a button. The value for this field is chosen
from a drop-down list. The possible values are:
Data
If the value of the Field Type property is Data, the field will
be a data field connected to the business object’s field speci-
fied by the Data Field and Data Section properties. All prop-
erties shown in Figure 6-18 will apply to the field.
Despite the flexibility these properties provide, this comes at the cost
of difficulty--it is very easy to configure these properties improperly,
so you should explore other options, e.g., using workflows and swap-
ping in hidden fields, if doing so can accomplish the same thing.
Needless to say, target fields like List Name should be hidden to pre-
vent the casual user from being able to search for sensitive list data
values with this setup.
After you have selected the file with the image that you want,
click the panel’s Ok action. The panel will disappear and a small
version of the image appears to the left of the icon.
Clicking the icon causes the image selection to be cleared, so
that there will be no image to display for the button.
If the value of the Display Type property is Button or Text Only, the
value of this property is irrelevant and this property is ignored.
Image Tooltip
If the value of the Display Type property is Image Only or Image and
Text, the Image Tooltip field appears. Enter the text of the tooltip
you wish to appear when a user moves their mouse over the
image.
Press Image
If the value of the Display Type property is Image Only or Image and
Text, the image that is the value of the Display Image property will
be the image that is normally displayed for this button. When the
mouse pointer is over this button and the mouse button is
pressed, you may want an alternate image to be displayed for this
button to give the appearance that the button is being pressed. If
the Press Image property has a value that is an image, the image
that is the value of this property is the alternate image.
To specify an image to be the value of this property, click the
icon. A panel pops up that looks like Figure 6-24. Click the Browse
button and a File Chooser window pops up so you can select the
file that contains the image you want.
After you have selected the file with the image that you want,
click the panel’s Ok action. The panel will disappear and a small
version of the image appears to the left of the icon.
Clicking the icon causes the image selection to be cleared, so
that there will be no image to display for the button.
If the value of the Display Type property is Button or Text Only, the
value of this property is irrelevant and this property is ignored.
Smart Sections
Smart sections are similar to form sections in that they both contain
fields. Smart sections are different from form sections because they
are connected to a specific smart section of the associated business
object. A smart section can have actions a person can click to control
what records are referenced by the connected smart section.
The specific actions that a smart section can offer and the way it dis-
plays the contents of the smart section depends on whether it is a sin-
gle-record smart section or a multiple-record smart section. The basic
setup and properties for smart sections are the same whether they
are connected to a single-record smart section or a multiple-record
smart section. The aspects of smart sections that are independent of
the kind of connected record smart section are discussed in the fol-
lowing paragraphs. The details of laying out fields in a single-record
smart section are discussed on page 247 under the heading “Fields”.
The details of laying out fields in a multiple-record smart section are
discussed on page 272 under the heading “Laying Out Multiple-Record
Smart Sections”.
Like other kinds of sections, you can create a smart section by select-
ing the tab that will contain the section and clicking the Add Section
action. You then set the value of the Type property to Smart Section. At
this point, the Properties panel looks like Figure 6-25 on page 269.
The next thing to do is select the smart section you want connected
to this section. The names of smart sections in the associated busi-
ness object appear in the drop-down list for the Data Section prop-
erty. When you select the value for the Data Section property, the
value of the Name and Label properties are set to the name of the
smart section.
There is a shortcut that can get you to this point in the creation of a
smart section in fewer steps. When you select a tab in the Navigation
panel, the Components panel contains a list of the smart sections in
the business object that have not been connected to a smart section
in this form. This list of smart sections looks like Figure 6-26 on page
270.
You can use the list of smart sections in the Components panel to
create all the smart sections you want in a single step. Check the
check box of each smart section you want to use to create a smart
section, then click the Add action at the top of the Components
panel. That’s all there is to it.
When you create a smart section you may not need to add any fields
to it. A smart section starts out with a data field for each of the fields
in the smart section it is connected to. You can delete any of these
fields. If you change your mind, you can add them back in.
“Common Section Properties” on page 243 includes information about
the following properties in a smart section: Type, Name, Label,
Height, Title Bar Color, Visible, Expand Section, Read Only, Show
Title Bar, Style Class, Start Row, Row Span, Start Column, and Col
Span. The properties in a smart section that are not described in
“Common Section Properties” on page 243 follow:
Fixed Data Cols
If you would like some of the left hand columns in the display to
be fixed and not move as the display is scrolled horizontally,
enter the number of columns in Fixed Data Cols. You can identify
the fixed columns because they are to the left of a thicker grey
demarcation line. The default value is 0 (zero). Performance
degrades as the number of fixed columns increases. Set Fixed
Data Cols to no more than 5.
Hierarchical Fields
This property is visible only for smart sections that are backed by
a Vertical Table business object section. Vertical sections are
described page 77.
When selected, fields in vertical table sections have and
icons that allow the user to expand parent fields to show child
fields below or to collapse the display. A field has a parent when
its Hierarchical Parent property identifies a field, as described on
page 256.
Comparison
This property is visible only for smart sections that are backed by
a Vertical Table business object section. Vertical sections are
described page 77.
When selected, the Comparison property indicates that the sec-
tion will compare numeric field values of the records in the sec-
tion to the same field in a compare to record. The number type
Source Details
Below a smart section’s real properties is what looks like a property
with no value and the label Source Details… This label is a hyperlink.
Clicking this hyperlink causes a window to pop up that displays infor-
mation about the underlying smart section.
Autocomplete
Autocomplete functionality is available for all single-record smart sec-
tion text fields. Specify whether or not your users will have this fea-
ture in the USE_AUTO_COMPLETE_IN_SMART_SECTION property in the
TRIRIGAWEB.properties file, as described in the IBM TRIRIGA Application
Platform 3 Installation and Implementation Guide. The default is for
autocomplete to be enabled. Read more in “Autocomplete” on
page 154.
The autocomplete functionality also is available on Locator fields, as
described in “Autocomplete” on page 154.
* In the properties of the connected business object, if the check box for the Vertical
Section property is checked, you will be laying out rows of fields instead of columns. The
Vertical Section property of a business object is discussed on page 77.
number of rows refers to the top-level (check box) rows, and expand-
ing the top level causes the query section height to expand accord-
ingly. For queries with Group By or Sum, the number of rows refers to
data (check box) rows, not the sum rows. A query section with Height
Selecting a Query
Initially, no queries appear in the Select Item(s) panel because no
module is selected. Select the module of the query you want from the
drop-down list to the right of the Module label. Once the module is
selected, the system displays all queries for that module from the
Report Manager. If what you are looking for is a query, you will see it
in a list.
If what you are looking for is not a query but some other kind of
report, you will not see what you are looking for because the list ini-
tially includes only queries. You will need to select the type of report
you want to see.
To select the type of report you want to see, click the Filter icon
to the right of the Reports List label. A menu will pop up that looks
like Figure 6-30. From this menu, you can choose the type of report
you want to see a list of or you can choose All to see a list that con-
tains every kind of report.
The query or report you use in a query section should have an associa-
tion filter that uses $$RECORDID$$ or $$PARENTID$$ (discussed in the IBM
TRIRIGA Application Platform 3 Reporting User Guide) so that its
results only include records associated with the record that contains
the Query section.
After you have set the value of the Type property, the next property
you will probably want to set the value of is the Document property.
The value of the Document property is used to determine which form
You may set this property to specify a different Default Theme for
this section. To specify a Default Theme, click the icon. A list
tion to the form. Once this is done, this query section will be
available in the Associated Query Section property.
In this diagram, the List View section is the linked query section, and
all Vacant Spaces are highlighted. In addition, the entities in the floor
After you have set the value of the Type property, the next property
you will probably want to set the value of is the Excel(.htm)
Document property. The value of the Excel(.htm) Document prop-
erty is used to determine which form report template will be used to
generate the contents of this Excel section.
To select a form report template, click the icon in the Excel(.htm)
Document property. Clicking the icon causes a panel to pop up
over the Properties panel containing a list of the documents in the
Document Manager.
To specify which document to use as the form report template, select
the document’s radio button and then click the OK action at the top
of the list.
Figure 6-37. Result when Cell Linked to Assoc. Business Object Field
triProjectCalcEndDA
This is the project’s calculated end date. This should be a read
only field because the scheduling engine calculates the value.
triTimeZonesCL
This is the time zone of the project.
triProjectCalcFromLI
This establishes scheduling engine calculation settings. The val-
ues in the drop-down list are Start, End, and Both.
TIP: Prior to opening the Gantt chart, any unsaved changes to the fol-
lowing fields should be saved so that the project can be scheduled
correctly: Plan Start, Plan End, and Calculate Project From. This does
not apply to forms that include a Gantt Project section but do not
include a Form section containing the fields listed.
In addition to needing a business object that contains these fields, a
Gantt section also needs a query that determines which records and
which of their fields will be displayed in the Gantt section. Though
the Form Builder allows you to use any query with a Gantt section, at
the time of this writing, Gantt sections can display only records cre-
* The limitation that Gantt sections will only display records that were created from busi-
ness objects that are part of the triTask module should not be relied upon to filter query
results.
TIP: If you are experiencing issues with date and time fields display-
ing the time incorrectly, the following steps may help resolve them:
1. Make sure your operating system is updated and includes the
most current time zone patches.
2. Upgrade the Application Server’s Java with the appropriate
time zone patches.
3. When applicable, make sure the TZ environment variable has
DST set.
Container Tasks
Some project tasks are what are called container tasks or umbrella
tasks. This means that they are composed of one or more tasks. The
tasks inside a container task can execute in series or in parallel (be
overlaying). A container task is used to break a project into major
phases; each container task contains a group of tasks or activities.
It is possible to interac-
tively make some tasks
container tasks by using
the Gantt section’s pro-
mote and demote fea-
tures. You use these by
right clicking the task in
the Gantt chart and then
clicking the Promote or
Demote menu item of the
menu that pops up. This
pop-up menu is shown in
Figure 6-41.
For this feature of the
Figure 6-41. Gantt Chart Pop-Up Menu Gantt section to work
properly, there must be
workflow called triTask - Synchronous - Promote Task that creates the Includes
/ Included In association.
Another way to create the parent child relationship for the container
task is to use the Rolls up To section from the task form. Populate this
section with the ID of the task that is the parent of the current task.
Calendars
When scheduling a task, the scheduling engine takes into account the
Calendar of the task. The calendar includes information on Working
Hours and non-Working Events. Calendars such as these are repre-
sented using records created from the business object named
triCalendar in the triSetup module.
Dependent Tasks
It is common for there to be dependencies between tasks. Some com-
mon dependencies are that one task must start after another finishes
or that two tasks must start at the same time. Dependencies such as
these are represented using records created from the business object
named triDependency in the triIntermediate module.
Two associations from a triDependency record to records that represent
tasks are used to identify the tasks involved in a dependency relation-
ship. One of the tasks involved in the dependency relationship is con-
sidered to be the predecessor task; the other task is considered to be
the dependent task.
The predecessor task must have an association with the triDependency
record. The name of the association on the predecessor task side must
be Is Predecessor. On the triDependency side, the name of the association
must be Has Predecessor.
The dependent task must have an association with the triDependency
record. The name of the association on the dependent task side must
be Has Dependency. On the triDependency side, the name of the associa-
tion must be Defines Dependency.
Some fields of the triDependency record must be set to describe the
dependency. The required fields are:
triDependencyRelationshipLI
The value of this field determines the type of dependency that
this record represents. The choices available are:
Finish-to-Finish
This value means that the finish time of the dependent task
depends on the finish time of the predecessor task.
Finish-to-Start
This value means that the start time of the dependent task
depends on the finish time of the predecessor task. This is the
most common type of dependency.
Start-to-Finish
This value means that the finish time of the dependent task
depends on the start time of the predecessor task.
Resources
It is often the case that you want to associate resources with tasks.
Resources that can be associated with tasks are represented by
records created from the triResource business object in the triIntermediate
module. A triResource record has a number of fields that can be used to
describe the resource it represents. It also has a number of sections
that can be used to reference other records that describe the
resource being represented. Applications and people have a great
deal of leeway in how they use these fields and sections, since nei-
ther the Gantt section nor the scheduling engine rely on them.
The triResource record also must have an association with the record
that describes the underlying resource. The association on the side of
the underlying resource must have the name Is Resource For. On the task
side of the association, the name must be Has Resource.
CalcActualDuration Fields
Calculates actual duration, triActualStartDT Input
working days and hours, total triActualEndDT Input
working hours based on actual
start and actual end date. triActualDU Output
triActualWorking- Output
HoursNU
triActualWorkingIn- Output
putHrsNU
triActualWorkingIn- Output
putDaysNU
CalcActualEndDateFromDuration Fields
Calculates actual end date, triActualStartDT Input
working hours and days, total triActualEndDT Output
working hours based on actual
start date and actual duration. triActualDU Input
triActualWorking- Output
HoursNU
triActualWorkingIn- Output
putHrsNU
triActualWorkingIn- Output
putDaysNU
Table 6-1.
CalcActualEndDateFromWkghrs Fields
Calculates actual duration, triActualStartDT Input
actual end date, actual working triActualEndDT Output
days and hours based on actual
start date and actual total work- triActualDU Output
ing hours. triActualWorking- Input
HoursNU
triActualWorkingIn- Output
putHrsNU
triActualWorkingIn- Output
putDaysNU
CalcActualStartDateFromDura-
tion Fields
Calculates actual start date, triActualStartDT Output
actual working days and hours, triActualEndDT Input
actual total working hours based
on actual end date and actual triActualDU Input
duration. triActualWorking- Output
HoursNU
triActualWorkingIn- Output
putHrsNU
triActualWorkingIn- Output
putDaysNU
CalcActualStartDateFromWkg-
days Fields
Table 6-1.
CalcActualStartDateFromWkghrs Fields
Calculates actual start date, triActualStartDT Output
actual working days and hours triActualEndDT Input
based on actual end date and
actual total working hours. triActualDU Output
triActualWorking- Input
HoursNU
triActualWorkingIn- Output
putHrsNU
triActualWorkingIn- Output
putDaysNU
CalcBaselineDuration Fields
Calculates baseline duration, triBaselineStartDT Input
baseline working days and hours, triBaselineEndDT Input
baseline total working hours
based on baseline start and triBaselineDU Output
baseline end date. triBaselineWorking- Output
HoursNU
triBaselineWorking- Output
InputHrsNU
triBaselineWorking- Output
InputDaysNU
CalcBaselineEndDateFromDura-
tion Fields
Table 6-1.
CalcPlannedDuration Fields
Calculates planned duration, triPlannedStartDT Input
planned working days and hours, triPlannedEndDT Input
planned total working hours
based on planned start and triPlannedDU Output
planned end date. triPlannedWorking- Output
HoursNU
triPlannedWorking- Output
InputHrsNU
triPlannedWorking- Output
InputDaysNU
CalcPlannedEndDateFromDura-
tion Fields
Calculates planned end date, triPlannedStartDT Input
planned working hours and days, triPlannedEndDT Output
planned total working hours
based on planned start date and triPlannedDU Input
planned duration. triPlannedWorking- Output
HoursNU
triPlannedWorking- Output
InputHrsNU
triPlannedWorking- Output
InputDaysNU
CalcPlannedEndDateFromWkg-
days Fields
Table 6-1.
CalcPlannedEndDateFromWkghrs Fields
Calculates planned duration, triPlannedStartDT Input
planned end date, planned triPlannedEndDT Output
working days and hours based on
planned start date and planned triPlannedDU Output
total working hours. triPlannedWorking- Input
HoursNU
triPlannedWorking- Output
InputHrsNU
triPlannedWorking- Output
InputDaysNU
CalcPlannedStartDateFromDura-
tion Fields
Calculates planned start date, triPlannedStartDT Output
planned working days and hours, triPlannedEndDT Input
planned total working hours
based on planned end date and triPlannedDU Input
planned duration. triPlannedWorking- Output
HoursNU
triPlannedWorking- Output
InputHrsNU
triPlannedWorking- Output
InputDaysNU
CalcPlannedStartDateFromWkg-
days Fields
Table 6-1.
TIP: If you are using the Gantt scheduling Custom workflow tasks on a
server with no graphics card, start the Application Server with the fol-
lowing arguments to avoid java.awt.HeadlessExceptions when calling the
tasks: -Djava.awt.headless=true
The names shown for the three records in Figure 6-45 are not record
types. The names just indicate the role that the record plays in
manipulating the free/busy status table. The three records can be
The Resource record must have an association named Has Resource with
exactly one other record. In Figure 6-45 this associated record is
labeled Person. This Person record should be the record that the Avail-
ability section will use for its right side.
The Resource record must also have an association named Assigned To
with exactly one other record. In Figure 6-45 this associated record is
labeled Task. This Task record must have Data and Time fields named
triPlannedStartDT and triPlannedEndDT. The internal pieces of logic used by
the Custom workflow task use the Task record to identify a single
chunk of time that the Person record is associated with a particular
free/busy status. Task records correspond to the colored rectangles
that appear on the right side of an Availability section.
The piece of internal logic that a Custom workflow task will use is
determined by the value of its Class Name field. Here are descrip-
tions for the pieces of internal logic a Custom workflow task can use
to manipulate the free/busy status table:
com.tririga.architecture.web.process.gantt.workflow.AddResourceFreebusy
Adds the free/busy information corresponding to the Task record for
the Person record. The beginning and end of the chunk of time will
come from the Task record’s triPlannedStartDT and triPlannedEndDT fields.
The status of this chunk of time in the free/busy status table will
be Tentative.
com.tririga.architecture.web.process.gantt.workflow.RemoveResourceFreebusy
Removes the free/busy information corresponding to the Task
record for the Resource record.
com.tririga.architecture.web.process.gantt.workflow.UpdateResourceFreebusy
Changes the start and end time for the free/busy information
corresponding to the Task record for the Person record. The new
beginning and end of the chunk of time will come from the Task
record’s triPlannedStartDT and triPlannedEndDT fields.
To create a Stacking section, select the tab that will contain the sec-
tion and click the Add Section action. In the Properties panel for the
new section, set the value of the Type property to Stacking Section. At
this point the Properties panel looks like Figure 6-47.
When you finish defining the properties of the stacking section, click
the Apply action. To improve performance, the platform displays a
tan panel with the words “-Stacking Section-” in the middle.
“Common Section Properties” on page 243 includes information about
the following properties in a Stacking section: Type, Name, Label,
Height, Title Bar Color, Visible, Expand Section, Read Only, Show
Title Bar, Style Class, Start Row, Row Span, Start Column, and Col
Span. The properties in a Stacking section that are not described in
“Common Section Properties” on page 243 follow:
Pre-Move Workflow
When the user performs a place operation, the platform executes
the pre-move workflow identified here, if one is configured. This
workflow determines whether the move is allowed. If an opera-
Group By Field
Field whose values the section will be grouped by. There should
be a discrete number of values for this field as its values deter-
Orientation
Select either Horizontal or Vertical from the drop-down list to indi-
cate whether the grid will be horizontal or vertical in appear-
ance. It determines whether the Group By Columns and their
respective values are laid out horizontally or vertically.
Field Properties
The fields for a Group By section come from the query as Display Col-
umns for the primary business object. Use the Components panel to
Select what the fields represent with the Column Use property. Order
the fields left to right with the Start Row. The fields of type Column
must be first and in the sequence indicated by the query Order By set-
tings. Place the other fields in the sequence you want them to appear
in the Group By section.
The properties of a Group By section’s field are shown in Figure 6-56
on page 334.
Most are as described in “Fields” on page 247. The properties unique
to a Group By section’s field are as follows:
Label Style Class
If you do not specify a value for this property, the appearance of
Column labels and Group By value labels will be determined by
default settings in the Style Manager.
If you do specify a value for this property, it will be the name of a
field style sheet defined by the Style Sheet Editor. The style sheet
determines the appearance of the Column and Group By value
labels. The Style Sheet Editor is described in “Style Sheets” in the
If the Hide Label property had not been checked for Actual Area
and Forecast Area, the second row of labels would appear imme-
diately below the first row of labels, and would look like the fol-
lowing:
Workflow Metadata
If you want to use metadata to influence the Visible, Read Only, or
Label property for the Group By Columns, the field specified as the
Group By field must be a reference field (i.e., a locator, classifica-
tion, or smart object). The metadata defined on its reference
instances will be used to determine the Visible, Read Only, or Label
properties for the Group By Columns. The data definition for the ref-
erenced object must include the Group By Column fields. Use a Mod-
ify Metadata task in a workflow to change the Group By Column
metadata on the Group By Field value records.
Labels changed via instance data are not translatable.
Data
Data in the Group By section that is editable will have Borders turned
on automatically. When the user clicks the Save or Save & Close
action, the platform updates the records with any changes made by
the user.
If there is more than one record for a given cell in the Group By sec-
tion, or there is no record for the cell, the platform writes a log
entry. If there is more than one record, the platform places one of
Column Filters
Group By sections support column filters on the Columns type fields.
The operator and filter columns come from the query. After a user
enters a filter string, the platform re-executes the query and re-dis-
plays the Group By section filtered by the filter string.
Query
The query and the section are intertwined. The query determines the
fields available in the section by which fields are defined as the Dis-
play Columns. The query Order By determines how the data is ordered
and these must be designated as the Column fields in the Group By
section. Do not use the Group By feature of the query. The Filter Col-
umns in the query determine which Columns in the Group By section
have filters.
Section Actions
You can explicitly specify actions for a section in a form. You can also
request that the platform automatically generate some standard
actions. Except for properties used to request the automatic genera-
tion of standard actions, you cannot specify actions for a section until
after the first time you save the section.
If a section is a type of section for which you can explicitly specify
actions, after the first time you save the section, a list of actions will
appear below its properties. The list of actions will look like
Figure 6-59.
This list of actions is initially empty for a Form section because it has
no automatically generated actions. You can add an action by click-
ing the Add action at the top of the list. You can delete an action, if
it is not automatically generated, by selecting the radio button next
to it and then clicking the Delete action.
You cannot delete automatically generated actions. To make an auto-
matically generated action not appear at the top of the section, edit
the action’s properties and uncheck the Visible property’s check box.
To edit the properties of an action, click its name.
The first few properties are always the same. If you select different
values for the Action Type property, you will see different properties
below the Action Type property. We begin our explanation of the
properties of a Form section’s actions with properties that do not
depend on the value of the Action Type property.
Label
This is the text of a hyperlink that will appear at the top the sec-
tion. Clicking the hyperlink will trigger this action.
Display Sequence
The value of this property is a number.
URL
The content of the window that pops up will come from the URL
specified as the value of this property
You should edit the properties of a Find action, at least specifying the
query to use for finding records. The default query finds every record
that the Smart section’s underlying association would allow to be in
the Smart section. It displays only the name of the record. You will
generally want to be more selective about which records are dis-
played. Also, you will generally want more than just the name of the
records to be displayed. For these reasons, you will generally want to
create a query that is more appropriate for the Find action and edit
the Find action’s properties so that the Find action will use the
query.
To edit the properties of the Find action, click the Find hyperlink that
is its name. The properties of a Find action will look like Figure 6-65.
The property you will most usually set is the URL property. The value
of this property identifies the query that will be used to find records.
To select a query, click the icon in the URL property. Clicking the
icon causes a Select Items panel to pop up. You use the Select
Items panel to select a query. The details of how to use the Select
Items panel are discussed on page 279 under the heading “Selecting a
Query”.
If you click the name of the action, you will see the action’s proper-
ties which will look like Figure 6-67.
If you click the name of the action, you will see the action’s proper-
ties which will look like Figure 6-69.
The first few properties are always the same. If you select different
values for the Action Type property, you will see different properties
below the Action Type property. We begin our explanation of the
properties of a Query section’s actions with properties that do not
depend on the value of the Action Type property.
Label
This is the text of a hyperlink that will appear at the top the sec-
tion. Clicking the hyperlink will trigger this action.
Display Sequence
The value of this property is a number.
The order of the action hyperlinks displayed at the top of the sec-
tion depends on the value of their Display Sequence property.
The actions are displayed from lowest Display Sequence value to
highest Display Sequence value.
Popup
If the check box in this property is checked, a window will pop up
when someone clicks this action. The nature of the window that
pops up depends on the value of the Action Type property.
Visible
If this check box is checked, the hyperlink for this action will be
visible. If the check box is not checked, the hyperlink will be hid-
For both a field action and a button action, the value of the Label
property is read-only. For a field action the value of the Label prop-
erty is always onChange. For a button action the value of the Label
property is always onClick. That is the only difference in the setup for
the two kinds of actions.
Here are the things that you can arrange for in a response to a field or
button action:
• You can arrange for a window to pop up with the results of a
query. This will allow the user to select records that correspond
to query results.
If you do not want this form to have access to the Published state or
the state transition that leads to the Published state, you can delete
the Published state from the form’s view of the state transition fam-
ily.
To delete a state from this form’s view of the state transition family,
begin by selecting the state you want to delete. When you click a
Click the Delete action to delete the selected state and all state tran-
sitions connected to it from the form’s view of the state transition
family.
When a state is selected, actions to manipulate the state appear on
the left side of the State Transition tab. You can use the Move Left
or Move Right action to change the order in which the states appear
across the State Transition tab.
If you decide that you want to delete a state transition but not a
state, you can do that too. Begin by clicking the state transition you
After you have selected a transition, you can delete it by clicking the
Delete action that appears on the left side of the Form Wizard.
There may be transitions or states defined in the state transition fam-
ily of the underlying business object that are not included in the
form’s State Transition tab. This can happen because they were pre-
viously deleted from the form’s State Transition tab or because they
were added to the state transition family of the underlying business
object after the form was created.
If there are any transitions or states defined in the state transition
family of the underlying business object that are not included in the
form’s State Transition tab, they can be added to the form’s State
Transition tab by clicking its Find action. When you click the Find
action, a window pops up. The window contains a list of the transi-
tions in the state transition family of the underlying business object
You can add state transitions that appear in this list to the form’s
State Transition tab by checking the check box for each state transi-
tion you want to add and then clicking the Ok action. If you add any
state transitions that are connected to a state that is not in the
form’s State Transition tab, that state is also added to the form’s
State Transition tab.
When a state transition is selected, there are properties you can spec-
ify for it that appear on the left side of the Form Wizard:
Read Only
When a state transition is triggered, the record’s read-only prop-
erty is set to true or false, depending on if the state it is transi-
tioning to is read only. To make a state read only all of the
transitions coming out of that state must have this check box
checked. If a record’s read-only attribute is set, then a form dis-
playing the contents of the record will not allow the value of any
of its fields to be changed.
Default Display
Determines whether the state transition action appears on the
form as an action button by default. In other words, if you want
this action to be selectable by the user on the form, check this
box. If you want the action to be hidden, leave it unchecked. Hid-
den actions are still useful as they can be triggered by workflows
or IBM TRIRIGA Connector for Business Applications. Workflows are
discussed in Chapter 7. IBM TRIRIGA Connector for Business Appli-
cations is described in the IBM TRIRIGA Connector for Business
Applications 3 Technical Specification. Note that a sub-action can
use its Inclusion Exclusion section to override the Default Display.
See page 198 for details about using Inclusion Exclusion to change
the visibility of an action.
The value of the Message Content field is used to create the body of
the message. Notice that the text in the Message Content field con-
tains numbers in curly braces like {2}.
Each of these numbers in curly braces is a place holder for some text
that can be supplied from a triUserMessage record. The contents of the
Description field should describe the purpose of each of the place
holders.
TIP: If you want to display a message containing a single quote (for
example, I'm {1}), you need to escape the single quote by adding
another single quote (for example, I''m {1}).
The value of the Language field identifies the language in which the
value of the Message Content field is written.
triUserMessageHelper
To create finished message text, a workflow creates a
record from the triUserMessageHelper business object in
triUserMessageHelper
the triHelper module. After creating the record, the workflow sets the
values of its fields and then finishes the message by triggering a
Calculate action on the triUserMessageHelper record. After the message is
finished, the workflow that triggered the Calculate action can copy
the finished message text to the appropriate field in a form.
Here are descriptions of the relevant fields in a triUserMessageHelper
record:
triIdTX
Workflows must set the value of the triIdTX field to the ID of the
triUserMessage record that will provide the fixed portion of the mes-
sage’s content.
triLanguageLI
Workflows must set the value of the triIdTX field to the Language of
the triUserMessage record that will provide the fixed portion of the
message’s content. For a given ID there could be text for multi-
ple languages. This field determines which message to retrieve. If
the language selected is not found, the helper looks for a mes-
sage in “US English”.
triInput1TX, triInput2TX,
…, triInput9TX
These fields correspond to the place holders {1}, {2}, …, {9} that
may appear in the fixed content provided in the triUserMessage
record. The value in each of these fields will be substituted for
the corresponding place holder in the content.
triUserMessageTX
Triggering a Calculate action on the triUserMessageHelper record
launches a workflow that creates a finished message with the
value of the appropriate field substituted for each place holder.
After the workflow is done, the finished message is in the
triUserMessageTX field.
This chapter assumes that you are familiar with all of the workflow
concepts discussed in Chapter 5.
This chapter contains detailed descriptions of the different kinds of
workflow tasks.
Workflow Manager
Before you actually create or modify any workflows, you must first
navigate to a part of the IBM TRIRIGA Application Platform called the
Workflow Builder. The Workflow Builder is used to create new work-
flows and to modify existing workflows.
To navigate to the Workflow Builder, click the Workflow Builder item
in the Admistration menu. The Workflow Builder will appear. It looks
like Figure 7-1 on page 382.
The Workflow Builder organizes workflows by the module with which
they are associated. It shows a list of the workflows associated with
whichever module is selected. You can select a module by clicking its
name on the left side of the Workflow Builder. Clicking the name of a
module causes workflows associated with the module or one of the
business objects in the module to be listed on the right side of the
Workflow Builder.
Most workflows are associated with a particular business object in a
module. If many business objects in a module have associated work-
flows, you may prefer to select just one business object and see just
the workflows associated with that business object.
If you do not see the names of business objects in the relevant mod-
ule, click the plus sign ( ) next to the module’s name to expand the
list. The business objects in the module now show under the mod-
ule’s name. Also the plus sign ( ) next to the module name changes
to a minus sign ( ). To contract the list of business objects, click the
minus sign ( ).
The Workflow Builder has a menu of actions that can be performed on
workflows:
New
Click this action to create a new workflow.
Copy
Sometimes, you want to create a new workflow that is similar to
an existing workflow. It is easier to create a similar workflow by
starting with a copy of the selected workflow and modifying it.
Clicking the Copy action creates a new workflow that is a copy of
the currently selected workflow.
Publish
Click this action to make the selected workflow available for use.
New workflows are not available for use until they are published.
When you modify an existing workflow, the modified workflow is
not automatically put into use. The modified version of the work-
flow does not replace the version of the workflow currently in use
until the modified version of the workflow is published.
Workflow Editor
The Workflow Editor allows you view and modify workflows. Details of
the kinds of tasks that make up a workflow are discussed in following
sections.
The Workflow Editor pops up in its own window. When you create a
new workflow, the workflow editor looks like Figure 7-2.
The Workflow Editor shows the tasks of a workflow as shapes. Each
kind of task has a different color and shape. The newly created work-
flow shown in Figure 7-2 has two tasks: a Start task and an End task.
The Workflow Editor shows arrows connecting tasks. The purpose of
the arrows is to show the order in which the tasks will be performed.
The arrow in Figure 7-2 shows that after the Start task is performed,
the next task to be performed is the End task.
The Workflow Editor is organized into three sections called:
• diagram
• properties
• task palette
The diagram section is shown in Figure 7-2. The diagram section is the
only section of the workflow editor that is always visible.
The properties section of the workflow becomes visible when you
click one of a workflow’s tasks. The properties section that appears
after clicking the Start task is shown in Figure 7-3 on page 386.
The properties section always appears at the bottom of the window.
It shows the properties of the task that was clicked. You can tell
which task’s properties the properties section is showing because the
task is highlighted in the diagram section, as shown in Figure 7-3.
Each kind of task has a different set of properties. The properties of
each kind of workflow task are described in the following sections of
this chapter as part of the description of each kind of task.
If the properties section is already visible and you click a different
task, that task’s properties are displayed in the properties section. To
make the workflow editor stop displaying any properties section, click
the background of the diagram section.
The task palette section appears when you move the mouse pointer
over the New Task bar on the left side of the workflow editor. It looks
like Figure 7-4 on page 387.
The shapes in the task palette correspond to the different kinds of
tasks that can be in a workflow. The shape of each type of workflow
task is included in the descriptions of the workflow tasks that appear
in the following sections of this chapter.
Depending on the context and properties set in the workflow’s Start
task, some kinds of tasks may not be visible in the task palette. If a
kind of task is visible in the task palette only under certain condi-
tions, those conditions are noted in the description of the individual
workflow task.
Use the task palette to add a task to the workflow. To add a task to
the workflow, move the mouse pointer over the New Task bar. After
(Subflow Workflow)
If the workflow references an as- cst-triLocation - Synchronous -
delivered business object: Populate parent fields on create
cst + “-”Business Object Name -
Action - Descriptionb
or
or
(Synchronous Workflow) cstNewBOName - Synchronous -
If the workflow references a
newly created business object: Populate parent fields on create
Business Object Name - Action -
Description
Create Business Object Name Create cstAddress from Building
from Business Object Name Primary cstAddress
(source)
Set Context for Business Object Set ID to Read Only for cstPeople
Name, Form Name (if to a partic-
ular form)
Integration
This property is always visible if the workflow is asynchronous.
When the property is selected, the workflow is used to migrate
data from staging tables into IBM TRIRIGA records. This type of
workflow is used extensively in IBM TRIRIGA DataConnect. More
information about DataConnect can be found in the DataConnect
chapter of Application Building for the IBM TRIRIGA Application
Platform 3: Data Management book.
Tasks can check the Integration status to control flow through the
workflow.
and the Return Values section. Clicking Add in the Parameters sec-
tion allows you to define input parameters. Clicking Add in the Return
Values section allows you to define return values. In order to have
either of these the workflow must contain some variables. Variables
are defined with the Variable Definition task, which is described in
“Variable Definition Task” on page 568.
Click Add in the Parameters section. The Workflow Parameter Defini-
tion screen appears as shown in Figure 7-11.
Give the parameter a Name. The choices in the Variable drop down
are the variables defined in the workflow. Check the Required check
box if the parameter is required. In a synchronous workflow, this
Click the Add action in the Return Values section. When adding a
Return Value, specify its Name and select its source from the Vari-
able drop-down list, as shown in Figure 7-13.
To see how this example Start task is used with a calling workflow,
see the Call Workflow task discussion starting on page 547.
Records Section
The second section of the form for User Action task properties is
labeled Records. The purpose of the Records section is to identify
the record that will be in the action item. The following explanation
of the Records section may be easier to understand if you take
another look at Figure 7-16.
There are fields at the top of the Records section that are used to
identify a target record. The target record is used to determine the
record that will be used for an action item created by this task.
Note Section
Arbitrary notes about the task can be put here. They are copied
into the action item record when the user action task is executed.
The properties form for a Create Record task is organized into three
sections. Here are descriptions of the fields in the first section:
Label
This is the label used to identify this task. This field’s text
appears on the shape in the drawing that represents this work-
flow task. Use the standards in “Workflow Naming Standards” on
page 388.
Description
A description of this task goes in this field.
Transaction Section
The third section of the Create Record task properties form is labeled
Transaction. The purpose of the Transaction section is to specify the
scope of the transaction being processed. The Transaction setting only
applies to the creation of the object record prior to post-create and
record transition processes. The Transaction setting is not applied to
post-create and record transition of the newly created records, which
means that pre-create and transition workflows called within a Cre-
ate Record task will not be wrapped in the currently controlling trans-
action. The choices for Transaction are as follows:
• None
Indicates that the record is committed right after it is created. No
transactions are created; the processing of the task follows stan-
dard workflow rules.
• Per X Source Records
A new context is created for each X number of source records to
be created from and committed when that number of source
records is reached. The default value is 1, which means the
records are committed after each creation.
When a Create Record task is within a DataConnect task, the outer-
most DataConnect task is in control of the transaction for that Create
Record task, regardless of setting in the Transaction section of the
nested Create Record task. The Create Record task only can apply its
This Extended Formula window differs in three ways from the one dis-
cussed in the book Application Building for the IBM TRIRIGA Applica-
tion Platform 3: Calculations. First, extended formulas are available
for fields of any data type in the Workflow Builder, they are not lim-
ited to numbers and dates. Second, the extended formula does not
have an Outputs section. An extended formula used in object map-
ping always has exactly one output, which is the field it is being used
to provide data for. Third, extended formulas can access fields in the
source record of the object map only, fields from associated objects
cannot be accessed. With these exceptions, specifying an extended
The properties form for a Modify Records task is organized into four
sections. Here are descriptions of the fields in the first section:
Label
This is the label used to identify this task. This field’s text
appears on the shape in the drawing that represents this work-
flow task. Use the standards in “Workflow Naming Standards” on
page 388.
Description
A description of this task goes in this field.
Then click the Record link to find the specific record you want this
task to use.
Transaction Section
The fourth section of the Modify Records task properties form is
labeled Transaction. The purpose of the Transaction section is to
specify the scope of the transaction being processed. The choices for
Transaction are as follows:
• None
Indicates that the record is committed right after it is modified.
No transactions are created; the processing of the task follows
standard workflow rules.
• Per X Source Records
A new context is created for each X number of records to be modi-
fied and committed when that number of records is reached. The
default value is 1, which means the records are committed after
each modification.
When a Modify Records task is within a DataConnect task, the outer-
most DataConnect task is in control of the transaction for that Modify
Records task, regardless of setting in the Transaction section of the
At this point, you are ready to specify how the records specified in
the Map To Records section will be modified by data copied from
records specified in the Map From Records section. You specify this
by using the Object Mapping window.
Access the Object Mapping window by clicking the Edit Map action on
the Map To Records section bar. The Object Mapping window is
described on page 425.
If you want to reset the object mapping to its defaults without pop-
ping up the object mapping window, click the Reset Map action.
Retrieve
vs. Query
The Retrieve Records and
the Query workflow tasks
are similar in that the essen-
tial purpose of both work-
flow tasks is to find records.
They differ in the way that
they find records.
The properties form for a Retrieve Records task is organized into five
sections. Here are descriptions of the fields in the first section:
Label
This is the label used to identify this task. This field’s text
appears on the shape in the drawing that represents this work-
flow task. Use the standards in “Workflow Naming Standards” on
page 388.
Retrieve
The second section of the properties form for a Retrieve Records task
is labeled Retrieve. The purpose of this section is to specify the com-
putation that is to be performed on the records that are retrieved.
The computation is determined by which one of the radio buttons in
this section is selected.
When the properties form is first displayed, only the currently
selected radio button is visible. There is a button to the left of the
visible radio button. Clicking the button alternately makes all the
radio buttons visible or just the selected radio button visible.
The following descriptions explain the meaning of the radio buttons.
There are fields that appear to the right of some of the radio but-
tons. These fields contain additional information needed for the
choice represented by the radio button they appear next to.
Here are the descriptions:
A List
If this option is selected, the task will take the retrieved and fil-
tered records and make them the result list that is associated
with this task.
____ Record(s) with the Greatest value In CHOOSE FIELD
If this option is selected, this task will take the specified number
of retrieved and filtered records that contain the greatest values
in the specified field and make them the result list associated
with this task. Note there is no unit of measure considerations, it
is a straight comparison.
Records with a null value will be returned last. You can add a
static filter in the Filter Using section if you want to eliminate
null returns. Information about the Filter Using section starts on
page 446.
When you click this radio button, a window pops up for you to
specify which field this task should use. After you have specified
which field to use, the name of the field appears as the text of
the hyperlink in place of the previous text. Clicking the hyperlink
will pop up the window again to you can change the specified
field.
From Records
The purpose of the From Records section is to specify the records
that this task will retrieve.
At the top of the From Records section are fields used to identify tar-
get records. The target records are used to determine the records
that will be retrieved.
Filter Using
The purpose of the Filter Using section is to specify filter conditions
that will be used to filter the retrieved records. A filter condition is
something about a retrieved record that can be either true or false.
This task’s computation will only use retrieved records for which all
the filter conditions are true. If any filter conditions are false for a
retrieved record, the retrieved record is discarded and not used.
To add a filter condition to the Filter Using section, click the Add
Filter action on the Filter Using section bar. Once you have added fil-
ter conditions to the Filter Using section, you will see a check box for
each filter condition. To remove a filter condition from the Filter
A Task Filter window has two sections. The purpose of the Left Side
Data section is to specify how retrieved records will be used in the fil-
ter condition. The purpose of the Right Side Data section is to spec-
ify what the retrieved records will be compared to.
When the List check box in the Left Side Data section is not checked,
it means that the value of a field in each retrieved record will be
compared to one other value. The field in the retrieved records to use
for the comparison is specified by the Section Name and Field Name
fields.
When the List check box in the Left Side Data section is checked it
means that the set of retrieved records will be compared to the set of
records specified by the Filter Using section of the Retrieve Records
task’s properties form. Since you are comparing lists of records, both
the From Records and the Filter records should be created from the
same module.
The comparison to use is specified by the value of the Operator field.
The Operator field is a drop-down list that allows you to choose from
the following values: In or Not In.
Check the List check box in the Right Side Data section.
We conclude this description of the Task Filter window by describing
what the comparison operators are for:
Equals, Not Equals
These are useful for comparing individual values. If both values
are the same, then Equals is true. If the values are different then
Not Equals is true.
To test for the existence of a date value, use Equals or Not Equals for
the operator and Null for the value; do not use More Than or Less Than
zero to test for the existence of a date value.
Less Than, Less Than or Equals, More Than, More Than or Equals
These are used to compare individual number values. Less Than is
true if the value specified by the Left Side Data section is less
than the value specified by the Right Side Data section. The rest
of these comparisons work in a similar way.
To test for the existence of a date value, use Equals or Not Equals for
the operator and Null for the value; do not use More Than or Less Than
zero to test for the existence of a date value.
You specify the value for the Module and Object properties so that
this task knows what kind of record you want to copy values from.
Then click the Record link to find the specific record you want this
task to use.
Query vs.
Retrieve
The Query and the Retrieve
Records workflow tasks are
similar in that the essential
purpose of both workflow
tasks is to find records. They
differ in the way that they
find records.
A Query workflow task runs a
query and uses the records
returned by the query.
The Retrieve Records task
does not use queries. Instead
it finds records through their
association with a record
already associated with a
workflow task.
When a query is set to Active Project and executed from the Report
Manager, the results are based on the scope of the project the user is
in if the record is in a capital project or on the scope of the project
the parent record is in if the record is not in a capital project. If the
same query is executed in a workflow, the results are based on all
projects including the Company Level. To resolve this discrepancy,
use a Set Project task at the start of the workflow. This ensures the
workflow returns the same results as the query returns when run from
the Report Manager.
If what you are looking for is not a query, but some other kind of
report, you will not see what you are looking for because the list
Context Records
A query can have association filters or field filters specified to filter
out records in context of a particular record. This context is based on
the relationship to the record and is specified to filter records that
are not associated in a specified way or do not have the required val-
ues in particular fields. These are often used in query sections or
actions that the user interacts with based on the record the user is
currently viewing. In a workflow, the way to specify the records that
are used for this type of filter is called context records. Association
filters and field filters are discussed in the IBM TRIRIGA Application
Platform 3 Reporting User Guide.
A Task Filter window has two sections. The purpose of the Left Side
Data section is to specify how query result records will be used in the
filter condition. The purpose of the Right Side Data section is to spec-
ify what the query result records will be compared to.
When the List check box in the Left Side Data section is checked it
means that the set of query result records will be compared to the set
of records specified by the Filter Using section of the Query task’s
properties form. Since you are comparing lists of records, both the
From Records and the Filter records should be created from the same
module.
The comparison to use is specified by the value of the Operator field.
The Operator field is a drop-down list that allows you to choose from
the following values: In, Not In, or Associated To.
Check the List check box in the Right Side Data section.
We conclude this description of the Task Filter window by describing
what the comparison operators are for:
Equals, Not Equals
These are useful for comparing individual values. If both values
are the same, then Equals is true. If the values are different then
Not Equals is true.
To test for the existence of a date value, use Equals or Not Equals for
the operator and Null for the value; do not use More Than or Less Than
zero to test for the existence of a date value.
Less Than, Less Than or Equals, More Than, More Than or Equals
These are used to compare individual number values. Less Than is
true if the value specified by the Left Side Data section is less
Filter Records
The purpose of the Filter Records section is to identify the records
that this task will use to filter query result records.
The Filter Records section has two radio buttons to specify where
records for filtering will come from. These radio buttons are labeled:
Workflow Activity
If this radio button is selected then the records for filtering will
be associated with a previously performed workflow task.
Existing Record
If this radio button is selected, then the record used for filtering
will be a specified record that exists now.
The selection of one of these radio buttons determines what appears
in the Filter Records section. Figure 7-36 on page 452 shows what the
Filter Records section looks like when the Workflow Activity radio
button is selected.
When the Workflow Activity radio button is selected, the Filter
Records section has all the fields that are in the Context Records
section. The difference between the fields in these sections is that
the fields in the Filter Records section are used to select the records
You specify the value for the Module and Object properties so that
this task knows what kind of record you want to copy values from.
Then click the Record link to find the specific record you want this
task to use.
Specify the value for the Module and Object properties so that this
task knows what kind of record you want for the second record. Then
click the Record link to find the specific record you want this task to
use.
The properties form for a Trigger Action task is organized into two
sections. Here are descriptions of the fields in the first section:
Label
This is the label used to identify this task. This field’s text
appears on the shape in the drawing that represents this work-
flow task. Use the standards in “Workflow Naming Standards” on
page 388.
Description
A description of this task goes in this field.
Action
This field is a drop-down list of the actions that can be performed
on the kind of records specified in the Records section of this
To Record
The third section of the properties form for a Delete Reference task is
labeled To Record. The purpose of this section is to identify the
record that is referred to by the reference that will be removed from
the smart section.
The To Record section has two radio buttons to specify how to find
the referenced record. These radio buttons are labeled:
Workflow Activity
The referenced record will be associated with a preceding work-
flow task.
Existing Record
The referenced record will be a record that exists now.
The selection of one of these radio buttons determines what appears
in the To Record section. Figure 7-50 on page 484 shows what the To
Record section looks like when the Workflow Activity radio button is
selected.
When the Workflow Activity radio button is selected, the To Record
section has all the fields that are in the Delete Reference From
Record section. The difference between the fields in these sections is
that the fields in the To Record section are used to select the record
to remove and the fields in the Delete References From Record sec-
tion are used to select the record that contains the smart section.
If you want to remove a reference to record that is part of the appli-
cation’s configuration information, you should select the option of
You specify the value for the Module and Object properties so that
this task knows what kind of record you want to remove a reference
to. Then click the Record link to find the specific record you want this
task to use.
This will work only if the child records are allowed to be children of
the candidate parent record. For this to be the case, the parent and
child records must have been created from business objects that are
part of the same hierarchy module. An Is Parent of association defini-
tion must exist from the business object used to create the parent
record to the business object used to create the child records.
The properties form for an Add Child task is organized into three sec-
tions. Here are descriptions of the fields in the first section:
Label
This is the label used to identify this task. This field’s text
appears on the shape in the drawing that represents this work-
flow task. Use the standards in “Workflow Naming Standards” on
page 388.
Specify the value for the Module and Object properties so that this
task knows what kind of record will be the parent. Then click the
Record link to find the specific record you want this task to use.
Child Record
The third section of the association task properties form is labeled
Child Record. The purpose of the Child Record section is to identify
child records for this task.
The following description of the fields in the third section also applies
to the fields in the second section that appear in the Parent Record
section when its Workflow Activity radio button is selected. The
fields in the Parent Record section serve a purpose similar to the cor-
responding fields in the Child Record section. The difference between
the corresponding fields in the Parent Record section is that they are
used to identify the parent record for this task and the fields in the
Child Record section are used to identify child records for this task.
At the top of the Child Record section are fields used to identify tar-
get records. The target records are used to determine the child
records.
The properties form for a Set Project task is organized into one, two,
or three sections, depending upon selections made in the first sec-
tion. Here are descriptions of the fields in the first section:
Label
This is the label used to identify this task. This field’s text
appears on the shape in the drawing that represents this work-
flow task. Use the standards in “Workflow Naming Standards” on
page 388.
Description
A description of this task goes in this field.
Under these fields are four radio buttons:
Figure 7-56. Set Project Properties - Set Workflow Project to Company Level
With this setting, a Set Project task sets the current project for the
following tasks in this execution of the workflow to Company Level.
The properties form for a Set Project task when Set Workflow
Project to Company Level is selected is organized into one section.
Figure 7-57. Set Project Properties - Change Project for Records to Company
Level
The properties form for a Set Project task when Change Project for
Records to Company Level is selected is organized into two sections.
The second section, To Records, identifies the target records to be
changed to the Company Level.
To Records Section.
The second section of the properties form for the Set Project task
when Change Project for Records to Company Level is selected is
labeled To Records. The purpose of the To Records section is to
identify the records whose associated project will become the Com-
pany Level.
At the top of the To Records section are fields used to identify tar-
get records whose associated project will be changed to the Company
Level.
There are radio buttons below the fields. The way that the target
records are determined depends on which one of the radio buttons is
selected.
Here are descriptions of the fields:
Figure 7-58. Set Project Properties - Change Project for Records to Company
Level
The properties form for a Set Project task when Change Project for
Records from Record is selected is organized into three sections. The
second section, To Records, identifies the target records to be
changed. The third section, From Record, identifies the source record
that contains the project to which the target will be changed.
To Records Section.
The second section of the properties form for the Set Project task
when Change Project for Records from Record is selected is labeled
To Records. The purpose of the To Records section is to identify the
records whose associated project will be changed.
At the top of the To Records section are fields used to identify tar-
get records. The target records will have their project changed.
Organization of
Form Metadata
For each kind of form that can
be used to edit a record, a set
of metadata is kept with the
record. This means that if
there is more that one form
for a record, you can use a
Figure 7-61. Modify Metadata Properties Modify Metadata task to make
a field appear in red text for
Using the Modify Metadata task, you can do things like make sections one form and the same field
for field hidden or visible, change the color of text in a field or the in blue text for another form.
text of a label. Alternatively, you can set the
color of text for a field to
The properties form for a Modify Metadata task is organized into two black in all forms that can be
sections. Here are descriptions of the fields in the first section: used with the record.
Records
The second section of the Modify Metadata task properties form is
labeled Records. The purpose of the Records section is to specify the
record associated with the form whose metadata is to be modified.
At the top of the Records section are fields used to identify a target
record. The target record is used to determine the record associated
with the form(s) to be modified.
There are radio buttons below the fields. The way that target records
are used to determine the record associated with the form(s) depends
on which one of the radio buttons is selected.
Here are descriptions of the fields:
Take the
This is a drop-down list that can have one of three possible val-
ues:
Stop Task
A Stop task is used to indicate the end of a workflow. When a work-
flow reaches a Stop task, no more of its tasks will be performed. The
Figure 7-66. Stop Shape workflow is considered to have completed abnormally.
The shape for a Stop task is shown in Figure 7-66. Stop tasks do not
have any properties.
The contents of the Switch task form is a condition that is either true
or false. If the condition is true when a switch task is performed, the
task sequence attached to the green circle is performed. If the condi-
tion is false, the task sequence attached to the red square is per-
formed.
The Swap action swaps the positions of the green circle and the red
square, while leaving the task sequences where they are. After a
Swap action, the task sequence that was attached to the green circle
When we first begin building a new condition, the bottom panel of the
Condition builder looks like Figure 7-70.
The next thing to do is add the text "SUCCESS" so that the condition can
be true if the value of the Create Record task’s Success attribute is
equal to "SUCCESS". To put a text or number value in a condition, we
use the Insert menu at the top of the condition builder.
When you click the Insert menu, its menu items appear. They look Figure 7-73.
Insert Menu
like Figure 7-73.
* There is a complete list with explanations of the operators in the Basic Ops section on
page 527 under the heading “Condition Builder Operators”
The next thing to add to the condition is the operator &&. The &&
operator is a logical && operator. The and operator is true if the condi-
tions on both sides of the && operator are true.
After we added "SUCCESS" to the condition, the part of the condition
that was selected was the box that contains "SUCCESS". The Condition
Builder will not allow us to do anything to the condition unless one of
the gray boxes is selected. Before we can add the && operator to the
end of the condition, we must select the gray box at the end of the
condition by clicking it. We then add the && operator by clicking && in
the Basic Ops panel.
The next thing we add to the condition is a reference to the DateHire
field in the Employee record that was used to launch the workflow.
The list that appears in the Tasks panel under the name of a kind of
record is a list of section names. An icon appears next to each sec-
tion name. If what appears next to a section’s name is a icon, the
section is a type of section that the Condition Builder cannot use to
access fields.
At the time of this writing, the Condition Builder is unable to access
fields in multiple-record smart sections. Most of the sections in
Figure 7-75 that have a icon are multiple-record smart sections.
If what appears next to a section’s name is a icon or a icon, then
the Condition Builder is able to access the section’s fields. At the
time of this writing, there are only two kinds of sections that have a
icon or a icon next to their name. Single-record smart sections have
one of these icons next to their name.
The next thing to add to the condition is a <= that will be used to
determine if the value of the DateHire field is before or equal to the
current time. We add it by clicking the <= in the Basic Ops panel.
The system functions that you can click in the System Function panel
are the same system functions that are used for extended formulas.
See “Formulas Predefined by the Platform” in the book Application
Building for the IBM TRIRIGA Application Platform 3: Calculations.
You can access user defined functions by clicking the button labeled
User Defined Function. These are the same user defined functions
that are used for extended formulas. See “Predefining Your Own For-
mulas” in the book Application Building for the IBM TRIRIGA Applica-
tion Platform 3: Calculations.
The operators in a condition are evaluated strictly from left to right,
except for parentheses. For example, this is always true:
2 + 3 * 4 == 4 * (3 + 2)
* It is not unusual for the branches of a fork to do different things. We chose an example
in which the branches of a fork do similar things to keep the example in Figure 7-80 sim-
ple.
The properties form for a Break task is organized into three sections.
Here are descriptions of the fields in the first section:
Flow Type
Loop, Iterator, and DataConnect tasks are tasks that define a
block of tasks. Select Break if the workflow should exit from the
block when the condition is met. Select Continue if the workflow
should continue processing from the beginning of the block when
the condition is met. The block to Break out of, or the block to
Continue in, is determined by the Scope property.
Break Scope
The second section of the Break task properties form is labeled Break
Scope. The purpose of the Break Scope section is to specify what the
Break task is controlling. The values for Break Scope are as follows:
Current Block
When the workflow encounters this Break task, processing either
continues or breaks from the current block.
Selected Block
When the workflow encounters this Break task, processing either
continues or breaks at the block selected from the drop-down list.
The tasks available in the Selected Block drop-down are above the
current task.
DataConnect
The third section of the Break task properties form is labeled Data-
Connect. The purpose of the DataConnect section is to specify what
happens to the temporary data.
The platform ignores properties in the DataConnect section when the
Break task is not used in conjunction with a DataConnect task or when
temporary data is not enabled (Use Temporary Data not checked) for
the DataConnect task.
The values for DataConnect are as follows:
The shape and color of the Break task changes depending on how it is
configured. If there is a red dot inside the Break task, it means the
Task Status will be Error if the condition is met. No dot inside the
Break task means the Task Status will be Success if the condition is
met.
A Break task with a round interior and green color indicates a regular
Break or Continue. If the interior is square and the task shape is gold
color, the condition is swapped.
The chart below shows the different shapes for the Break task:
Shape Description
Break
Continue
The normal color for a Break task is green. If a Break task is green, it
is normal (not swapped) and will break (or continue at the top) when
the condition is true. Clicking the Swap action in the task’s proper-
ties form causes the Break task to turn gold. If the Break task is
already gold, clicking the Swap action causes it to turn green.
One thing to notice about the Iterator task as it appears in Figure 7-87
is that the end of the Iterator task is the Iterator palette shape upside
down.
Here is a summary of what the workflow in Figure 7-87 does:
• It retrieves work orders associated with a person.
• The Iterator task performs the workflow tasks inside of it, once
for each retrieved work order.
The properties form for an Iterator task is organized into two sec-
tions. Here are descriptions of the fields in the first section:
Label
This is the label used to identify this task. This field’s text
appears on the shape in the drawing that represents this work-
flow task. Use the standards in “Workflow Naming Standards” on
page 388.
Description
A description of this task goes in this field.
Iterate Records
The second section of the Iterator task properties form is labeled
Iterate Records. The purpose of the Iterate Records section is to
specify the workflow task whose associated records will control the
looping of this task.
At the top of the Iterate Records section are fields used to identify
the record that will control this task’s looping.
The properties form for a Call Workflow task is organized into two
sections. Here are descriptions of the fields in the first section:
Label
This is the label used to identify this task. This field’s text
appears on the shape in the drawing that represents this work-
flow task. Use the standards in “Workflow Naming Standards” on
page 388.
Description
A description of this task goes in this field.
Workflow
The value of this field is the name of the workflow that this task
will launch. This field’s value is chosen from its drop-down list.
The names in the drop-down list will be the names of synchro-
nous and subflow workflows that can be launched from the type
of record identified in this form’s Records section.
Records
The second section of the Call Workflow task properties form is
labeled Records. The purpose of the Records section is to specify the
record that will be used to launch the workflow.
At the top of the Records section are fields used to identify a target
record. The target record is used to determine the record that will be
used to launch the workflow.
There are radio buttons below the fields. The way that target records
are used to determine the record that will be used to launch the
workflow depends on which one of the radio buttons is selected.
Here are descriptions of the fields:
Take the
This is a drop-down list that can have one of three possible val-
ues:
• Business Object
If Business Object is selected, then the record associated with
the task specified by the field to the right of this one will be
the target record.
• Secondary BO
This option is available if the workflow is launched in response
to an Associate or De-Associate system event. If the value of
this field is Secondary BO, then the record at the other end of
the association is the target record.
The parameter and return value names from the subflow are filled in.
One of the parameters is required and therefore does not have a
check box to allow selecting it to be deleted.
The variables to use within this workflow have not been assigned yet.
Assign them by clicking on the Name. The Workflow Parameter Defini-
tion screen appears.
The choices in the Variable drop down are the variables defined at
the top of the workflow. Click OK after selecting the Variable. The
Repeat the definition process for the other parameter and the return
value. Since the second parameter is optional it could be deleted
rather than assigning it a value. You can always choose to ignore any
returned values by deleting them. Any that are left in the Workflow
Parameters and Return Values screen must be valid, which means the
input parameters must be assigned to variables. Any left with <Not set>
in the Variable column will prevent the workflow from publishing.
In the following figure, the second (optional) input parameter has
been deleted and the return value assigned a variable.
Figure 7-98. Error Message When Calling Workflow Has Invalid Parameter
The Custom task can work with any Java class that implements either
the com.tririga.pub.workflow.CustomTask interface shown in Figure 7-102 on
page 559 or the com.tririga.pub.workflow.CustomBusinessConnectTask inter-
face. The task creates an instance of the specified class using a zero
argument constructor. The task then calls the instance’s execute
method, passing it the IDs of the records in the result list of a speci-
fied task. The called Java code can then use the record IDs to inter-
act with the IBM TRIRIGA Application Platform using IBM TRIRIGA
Connector for Business Applications. IBM TRIRIGA Connector for Busi-
ness Applications is described in the IBM TRIRIGA Connector for Busi-
ness Applications 3 Technical Specifications.
Records
The second section of the Custom task properties form is labeled
Records. The purpose of the Records section is to specify the
record(s) whose ID will be passed to the Java method.
At the top of the Records section are fields used to identify a target
record. The target record is used to determine the record(s) whose ID
will be passed to the Java method.
There are radio buttons below the fields. The way that target records
are used to determine the record(s) whose ID will be passed to the
Java method depends on which one of the radio buttons is selected.
Here are descriptions of the fields:
Take the
This is a drop-down list that can have one of three possible val-
ues:
• Business Object
If Business Object is selected, the record associated with the task
specified by the field to the right of this one will be the tar-
get record.
CustomTask Interface
The Java class is com.tririga.pub.workflow.CustomTask shown in Figure 7-102.
package com.tririga.pub.workflow;
/**
* This interface must be implemented by any class specified in
* the "Class Name" field of a Custom Workflow Task.
* The implementing class must have a zero argument constructor.
* The workflow runtime engine will get the Class and call the
* zero argument constructor through reflection.
* It will then call the execute method and set the success
* attribute of the task based on the value returned.
*/
public interface CustomTask {
/**
* This method is called by a custom workflow task.
*
* @param recordIds
* An array of record IDs specified by the Record
* section of the task’s properties.
* @return true if successful, false if not
*/
public boolean execute(long[] recordIds);
}
Figure 7-102. Java Interface for Custom Task
When implementing this class, the first thing that needs to be done in
order to allow the twsClient to work properly is to call the register
method. This will verify the context of the client in relation to the
workflow that triggered it. The register method takes the userId as an
argument. An example is provided below:
public boolean execute(TririgaWS tws, long userId, Record [] records) {
try {
//you must validate that the tws object has been preauthenticated
//and that an existing active session user is being utilized
tws.register(userId);
//...
} catch(Exception e) {
e.printStackTrace();
return false;
}
}
Correlation Section
The second section of the DataConnect task properties form is labeled
Correlation. The purpose of the Correlation section is to specify
where the task should get the correlation number. The correlation
number is a secondary key to help with sequencing or to signify child
records for a specific parent. The choices for Correlation are as fol-
lows:
• In-Sequence
Indicates that the correlation on the staging entry should be used
in ordering the rows to process and will be used in the Order By in
conjunction with the Sequence Number. This is the default and
the most common scenario unless you have DataConnect tasks one
within another.
• Task Step
Transaction Section
The third section of the DataConnect task properties form is labeled
Transaction. The purpose of the Transaction section is to specify the
scope of the transaction being processed. The Transaction setting only
applies to the outermost DataConnect task. If a DataConnect task is
nested within another DataConnect task, the first, outer task speci-
fies the Transaction value. The choices for Transaction are as follows:
• None
Indicates that the record created or updated is committed before
the DataConnect task processes the tasks inside the body of the
DataConnect task, right after the record is created. No transac-
tions are created; the processing of the block follows standard
workflow rules.
• Per X Iterations
A new context is created for each X iterations and committed
when that number of iterations is complete. The default value is
1, which means the records are committed after each iteration.
• All Iterations
A new context is created before the task starts any processing and
is committed when all iterations have been completed.
Assign Variable
The second section of the Variable Assignment task properties form is
labeled Assign Value. The purpose of the Assign Value section is to
identify the variable being assigned a value in this task.
Variable
The value of this property is the variable being assigned a value.
Select from the drop-down list. The variables listed are those
defined above this task in the workflow.
Value
The third section of the Variable Assignment task properties form is
labeled Value. The purpose of the Value section is to specify the
value for this variable. The possible values are:
Clear
The value assigned to the variable is empty.
From Task
When you select the From Task radio button, the system presents
a drop-down list containing the compatible preceding task steps
whose result type (module and business object) match that of the
variable. Choose a task step from those presented.
The Append Results option allows building up a result from multi-
ple source tasks. Selecting the Append Results option adds the
result (record list) from the source task to any existing values in
the variable rather than replacing them.
* If a workflow is defined as temporary and is called through a callable workflow task from
an asynchronous workflow, there is no user interacting with the data and therefore there
is no temporary data. In this case, all of the tasks defined to do work on the temporary
data will do that same work on the permanent data.
Records
The second section of the Get Temp Record task properties form is
labeled Records. The purpose of the Records section is to specify the
record whose temporary data is to be fetched.
At the top of the Records section are fields used to identify a target
record. For the Get Temp Record task, the target record is the record
whose temporary data is to be fetched.
Here are descriptions of the fields:
Take the
This is a drop-down list that can have one of three possible val-
ues:
• Business Object
If Business Object is selected, then the record associated with
the task specified by the field to the right of this one will be
the target record. Although the other two options below are
available in the list, this is the option you want to select.
• Secondary BO
This option is available if the workflow is launched in response
to an Associate or De-Associate system event. If the value of
this field is Secondary BO, then the record at the other end of
the association is the target record.
This option is also available if the workflow is launched in
response to a SCHEVENTCREATE, SCHEVENTSTART or SCHEVENTEND sys-
tem event. If the value of this field is Secondary BO, then the
Event record that triggered the event is the target record.
• Assignee
If Assignee is selected, then the My Profile record of the user
assigned to the task specified by the field to the right of this
one will be the target record.
Records
The second section of the Save Permanent Record task properties
form is labeled Records. The purpose of the Records section is to
specify the record that contains the temporary data.
There is no need to separately identify the related record that con-
tains the permanent data. The connection between the record that
contains the permanent data and the record that contains the tempo-
rary data is established by the Get Temp Record task when it gets the
record that contains the temporary data.
The IBM TRIRIGA Application Platform allows almost any data organi-
zation to be constructed using records and associations as building
blocks. The platform provides special support for constructing hierar-
chies.
This chapter describes the special support for hierarchies built into
the IBM TRIRIGA Application Platform. It begins with an explanation of
what a hierarchy is and describes some hierarchies built into the plat-
form. Then it describes how to build your own hierarchies. The chap-
ter finishes by describing special features of the IBM TRIRIGA
Application Platform that are built on top of hierarchies.
Hierarchy Modules
A hierarchy is an organization of records connected to each other in a
special way. One record is chosen to be the root of the hierarchy.
Other records are connected directly to the root. Other records may
be connected to those. Figure 9-1 on page 582 is an example of a
hierarchy organization.
There are a few points about the hierarchy shown in Figure 9-1 that
are important to notice.
• The hierarchy contains more than one kind of record, but they all
must be from the same module. This is common. However, it is
not necessary for a hierarchy to contain more than one kind of
record.
• A record can appear in only one place in a hierarchy. The same
record cannot appear in more than one place in a hierarchy.
Ajaria
Alberta Georgia
Autonomous
Province State`
Republic
Abkhazia
British Columbia
Autonomous
Province Atlanta
Republic
City
South Ossettia
Autonomous
Vancouver Macon
Republic
City City
T'Blisi
Victoria City ...
City City
...
... City Nevada
City State
... ...
Province State
Examples of Hierarchies
The hierarchy shown in Figure 9-2 on page 583 is an example of a
hierarchy that is built into the IBM TRIRIGA Application Platform. Four
hierarchies are built into the platform that are used to support spe-
cific data types of fields:
• Geography
• Location
• Organization
• Classification
The hierarchy shown in Figure 9-2 on page 583 is part of the Geography
hierarchy. The Location hierarchy is used to describe such things as the
location of a building or a particular room in a building. The
Organization hierarchy is used to describe organizations and sub-organi-
zations.
A business object field can refer directly to a Geography, Location or
Organization record. Even though they do not appear in the Data Mod-
eler, the IBM TRIRIGA Application Platform supplies one of each of
these in the layout for every business object as a non-display field.
You can use the connection records may have to a Geography, Location,
Organization, Classification or other hierarchical record to manage or orga-
nize records. This is discussed in greater detail in the IBM TRIRIGA
Application Platform 3 User Experience User Guide.
The Geography and Organization hierarchies also can be used with the IBM
TRIRIGA Application Platform’s security features to control access to
specific records. These security features are discussed in Chapter 13.
The Classification data type is based on the classification hierarchy.
Creating Hierarchies
The following paragraphs describe the steps needed to create a new
hierarchy. Most of these steps also apply to the task of adding new
records to an existing hierarchy.
It is more common to add new kinds of records to the Classification hier-
archy than it is to create an entirely new hierarchy.
Includes
The IBM TRIRIGA Application Platform is organized to provide a clear
separation between the design of a user interface and the internal
organization of records. In keeping with this principle, you need to
organize a hierarchy of forms to create a hierarchy of form records.
This hierarchy of forms does not need to precisely mirror the organi-
zation of the record hierarchy. If the same kind of record can appear
under two different kinds of parents, you can choose to use the same
or a different form in each context.
The way the Form Wizard organizes this hierarchy is that for each
form that can be used in a hierarchy, you specify what form to use for
each kind of child record. If you do not specify a form to create a par-
ticular kind of child record under a form, you will not be able to cre-
ate that kind of child from that form.
To specify what forms can be used to create child records from a par-
ent form, use the Form Wizard’s Includes/Forms tab, which is shown
in Figure 9-5.
For each business object that can be used to create a child of a
record this form is used to edit, you can add a form to the Includes
section of the Form Wizard’s Includes/Forms tab.
Each row of the Includes section specifies a form that is to be used
when creating a child record from a particular business object. You
can have one row in the Includes section for each business object
that may be used to create a child record under the type of record
that the form edits.
In addition to specifying the form that will be used to create child
records, the rows of the Includes section also specify the label that
will be used in a hierarchy tree to indicate the type of record that a
child is.
The other columns in the Includes section are intended to specify the
appearance of a child record’s label and icon image in a hierarchy
tree. At the time of this writing, these platform does not use the val-
ues specified in these columns.
Biological Hierarchy
We will explain how to build a hierarchy by working through an exam-
ple. The example will be to create a hierarchy to model the scientific
classification of living things (biological taxonomy). The top three lev-
els of this hierarchy will be built using records created from business
objects named Kingdom, Phylum, and Class, respectively.
Begin by creating a hierarchy module named LivingThing. The proper-
ties for the LivingThing module look like Figure 9-6.
In order to create records for this hierarchy, you will need to create a
couple more items. First, you should create a manager query defini-
tion for a hierarchy using the Report Builder. Then you will need to
create a navigation item for a master/detail hierarchy.
To create the manager query, navigate to My Reports. Select the Sys-
tem Reports sub-tab. Click New to create a new System Report. Click
the Add Business Object link. Select the Living Thing Module, -All- Busi-
ness Objects, and -All- Forms. Click Ok. Fill the remaining fields as
shown in Figure 9-12.
Select the Columns tab. Add the Name (triNameTX) field to the Display
Columns. Select the Advanced tab. Click the Add action in the Associ-
ation Filters section. Set the Module to -Any-, Business Object to All,
Association Type to Is Parent Of, Reverse Association to No, and Filter
Type to Record. Then type $$RECORDID$$ in the Record/Query field, as
shown in Figure 9-13. Click OK. Click Save & Close to save the query.
The final step is to add a navigation item to your menu so that you
can create new records in your hierarchy. Before you do this, check
your menu by going to the People record > Profile tab, as shown in
Figure 9-14. This will be the menu, also known as a navigation item
collection, to modify. Note: Any change you make to this navigation
item collection will affect all other users who have the same naviga-
tion item collection set as their menu. Make sure you are working in
your own environment, or undo all changes at the end, or create a
custom navigation item collection for this example. See the IBM
TRIRIGA Application Platform 3 User Experience User Guide for more
details about navigation collections.
Go to Tools > Navigation Builder. Select your menu and click Edit as
shown in Figure 9-15.
Now click Navigation Items Library on the bottom of the page. Click
Add to create a new navigation item. Set the Name to Hierarchy - Living
Things and Label to Living Things. Now set the Target Type to Master/Detail
Hierarchy. Make sure to check the Modify Hierarchy check box. Then set
the Hierarchy to Living Thing, the Query Module to Living Thing, and the
Report to the query you just defined, as shown in Figure 9-16. Click
Save & Close.
The last step is to add the navigation item to your menu. Select your
navigation item on the left panel and Landing Page - Portfolio on the right
panel. Click Add to collection. If you now expand Landing Page - Portfolio,
the new navigation item is there. Now click Save and Close, as shown
in Figure 9-17 (the left side of the Navigation Builder) and in
Figure 9-18 (the right side of the Navigation Builder), to save the
changes to your menu. To update your menu, either refresh the
browser, or sign out and sign back in.
Navigate to Portfolio > Living Things. As shown in Figure 9-19, the
Hierarchy is displayed in the left panel. It only contains the record
that is the root of the hierarchy. The right panel displays all the
records that the root Living Thing is a Parent of, currently none. Note
that if you had not defined the query earlier and set it as the query
for the navigation item, the right panel would show “No queries
defined”; you would still be able to use the hierarchy to create and
open records, however.
The IBM TRIRIGA Application Platform automatically creates the root
record of a hierarchy. The way that root records are created is
unique. No pre-create workflow is run. Both the name and the state
of the record is initially null, yet the record is saved in the database.
If you wanted to edit the record that is the root of the hierarchy,
click the Open action. You should edit the root record of a new hier-
archy if only to just set its name.
To add additional records to the hierarchy, click the New action.
Clicking the New action causes a menu to appear that contains a list
Figure 9-20. Select Type of New Record for Living Thing Hierarchy
The kinds of records that appear in the menu are determined by the Is
Parent Of associations you created in the Data Modeler and the Includes
defined in the Form Builder. The LivingThings business object has an Is
Parent Of association with only the Kingdom business object, so Kingdom is
the only choice in the menu.
At this point, you can click Kingdom in the menu to create a new
Kingdom record under the root of the hierarchy. If you change your
mind about wanting to create a new Kingdom record under the hierar-
chy’s root, click the x at the top of the list to get rid of the list.
When you click Kingdom, a form appears in the details view for you to
enter in the values of the new Kingdom record. After you click the
form’s Create action, the new Kingdom record appears in the hierar-
chy. Repeat this four times, to create records for all five of the bio-
logical kingdoms. The hierarchy now looks like Figure 9-21.
Auto-Populate
In the Data Modeler, among the properties of each field in a business
object is a check box labeled Do not Auto Populate. If this check box
is checked, it disables a feature of the IBM TRIRIGA Application Plat-
form called auto-populate.
The auto-populate feature supplies initial values for fields in new
records that do not have a specified default value. The auto-populate
feature uses as a source of default values the triPeople or other kind of
record that describes the logged in person. If a field in a new record
has the same name as a field in record that describes the logged in
person, the value of the like-named field is copied to the field in the
new record.
If a new record is created as part of a hierarchy, its parent is used as
a second source of data for auto-populate. If the record that
describes the logged in person does not have a field with the same as
a field in a new record in a hierarchy but its parent has a field with
the same name as a field in the new record, the value is copied from
the field in the parent to the corresponding field in the new record.
Parent-Child Reports
The Report Manager does not allow you to explicitly define reports on
types of records that have a parent-child relationship in a hierarchy.
However, it does allow us to create such a report by treating the con-
nection between a parent and its children as an association named Is
Parent Of.
Calendars
Although every record has a calendar associated with it, to see a
record’s calendar in the user interface, the business object it was cre-
ated from must be configured with its Has Calendar check box
checked. The properties of business objects, including the Has
Calendar check box, are discussed on page 26 under the heading “A
Business Object’s Basic Information”.
If the Has Calendar check box for a business object is checked and
the Show Calendar check box is checked for a form, the form will be
displayed with a tab named Calendar that otherwise would not
appear.
The system does not depend on this tab existing in your form to func-
tion properly. Instead there are two things you must add to your busi-
ness object in the Data Modeler. For the scheduling engine to work
properly you should add a field to your business object named triTime-
ZonesCL. You also should make an association to the triCalendar business
object in the triSetup module with the association name Has Calendar
and reverse string of Calendar For. This field and association are not
added automatically.
The Time Zone field (triTimeZonesCL) is used to specify the time zone
that is used to schedule the resource represented by the record.
Another field used if working in conjunction with the Reserve product
is the Reservable flag. If the Reservable (triReservableBL) check box is
checked it means that the resource can be reserved for an event. This
602 | Chapter 10: Calendar and Time Based Events © Copyright IBM Corporation 2011.
is normally checked for things like conference rooms and audio-visual
equipment, but not for people.
If you want the calendar to include events from an external Microsoft
Exchange server or a Lotus Notes server that the IBM TRIRIGA Applica-
tion Platform environment has been configured to work with, specify
the appropriate login information in the Mail Server Login field (triEx-
ternalLoginTX).
604 | Chapter 10: Calendar and Time Based Events © Copyright IBM Corporation 2011.
The Scheduling Assumptions section identifies the working hours per
day, working days per week, and working days per month for
resources using this calendar.
The Working Hours section is used to specify ranges of time that
resources are available during days of the week. When you select the
Quick Add action to add an entry to this section, an open line appears
at the top of the section; enter the new day, start time, and end
time. Click one of the triangle icons or the circle icon to sort
the information shown.
The Non-Working Events section is used to specify individual days on
which resources are not available. In the example shown, it is used to
indicate non-working holidays for people. When you select the Quick
Add action to add an entry to this section, an open line appears at the
top of the section; enter the date and the name of the new event.
Click one of the triangle icons or the circle icon to sort the
information shown.
A Calendar tab looks like Figure 10-3.
Events
Before we discuss the details of putting events in calendars, it is help-
ful to explain just what we mean by an event. When we are talking
about events that can appear in a calendar, we are talking about
scheduled events. A scheduled event begins at a particular time. It
has a duration. After a scheduled event begins and its duration has
passed, the scheduled event ends.
A Scheduled Event record is used to represent a scheduled event in the
IBM TRIRIGA Application Platform. To be useful, Scheduled Event records
should not be created directly. Instead, they should be created indi-
rectly by a SCHEDULE action performed on an Event record. The form
for editing Event records does not have an action in its menu bar for
performing a SCHEDULE action on an Event record.
606 | Chapter 10: Calendar and Time Based Events © Copyright IBM Corporation 2011.
At least three workflow tasks are needed for a workflow to create
Scheduled Event records. The first task is a Schedule task. A Schedule
task does not create Scheduled Event records. What it does is create an
Event record. The Event record describes one or more scheduled events.
After the Event record is created, one or more workflow tasks are
needed to set the fields in the Event record.
The last workflow task needed is a Trigger Action task to perform a
SCHEDULE action on the Event record. This causes the Scheduled Event
records to be created.
The Schedule workflow task is described on page 621 under the head-
ing “Schedule Workflow Task”.
The Event and Scheduled Events business objects are in the Mail module.
Setting the fields of the Event record is described on page 631 under
the heading “Event Records”.
Trigger Action workflow tasks are described on page 473.
What happens after a SCHEDULE action is performed on an Event record
is described on page 633 under the heading “Scheduled Events”.
608 | Chapter 10: Calendar and Time Based Events © Copyright IBM Corporation 2011.
to a form to launch the workflow. In the Workflow Editor, the work-
flow will look like Figure 10-4. Like all workflows, this workflow has a
Start task and an End task which do not do anything. Between them is
a Trigger Action workflow task that triggers the SCHEDULE action.
The properties for the workflow’s Start task will look like Figure 10-5.
The most important thing to notice about the settings in Figure 10-5 is
that the Module and Object Type fields specify the business object
used to create records that contain the single-record smart section.
Figure 10-4.
SCHEDULE Workflow
The properties for the Trigger Action task labeled Trigger SCHEDULE are
shown in Figure 10-6. Notice the following things about the settings in
Figure 10-6:
• The action that the task will perform is specified in the Action field
as SCHEDULE. It will perform the SCHEDULE action on the Event record
referenced by the Event single-record smart section.
610 | Chapter 10: Calendar and Time Based Events © Copyright IBM Corporation 2011.
Figure 10-7. Event Form, Event Tab
some applications but not others. The items in the drop-down list are
managed by the List Manager under the name Event Type.
A person should set the value of the Event Start Date field to the
time and date when the event will be scheduled to start. If the event
will be recurring, the date portion of this field will be used to deter-
mine the earliest start date, not the actual start date. The actual
date(s) when the event will occur will be determined by the recur-
rence information instead.
The default value for this field is the current time and date. For most
events, this is not a useful default.
The Event Duration field may be filled in with the duration of the
event.
After you have finished entering values into the fields of the Event
Info section, the next thing to do is select one of the Recurrence
Figure 10-8. Event Form with Single Occurrence Radio Button Selected
612 | Chapter 10: Calendar and Time Based Events © Copyright IBM Corporation 2011.
Selecting the Single Occurrence radio button means that the event
will occur just at the one date and time specified by the Event Start
Date field.
Selecting the DAILY radio button means that the event will recur with
a frequency measured in days. It will recur after the number of days
specified in the Recur Every ___ Day(s) field has elapsed. For exam-
614 | Chapter 10: Calendar and Time Based Events © Copyright IBM Corporation 2011.
Figure 10-10. Event Form with WEEKLY Radio Button Selected
value is specified in the End After ___ Occurrences field, the event
will continue recurring forever.
If an event recurs, a Scheduled Event record will be created for each
recurrence. However, these Scheduled Event records may not be gener-
ated all at the same time. Instead, just the next few Scheduled Event
records that are needed are generated. The exact number that will be
generated is determined by the value of the Generate __ Week(s) of
Events (rolling) field.
After the first of the scheduled events happens, another Scheduled Event
record is created. This keeps the number of pre-generated Scheduled
Event records at the number specified by the Generate __ Week(s) of
Events (rolling) field. Once the number of remaining scheduled
events for the recurrence specified falls below the Generate ___
Selecting the MONTHLY radio button means that the event will recur
with a frequency measured in months. It will recur after the number
of months specified in the Recur Every ___ Month(s) On field has
616 | Chapter 10: Calendar and Time Based Events © Copyright IBM Corporation 2011.
elapsed. For example, if the value of the Recur Every ___ Month(s)
On field is 2 then the event will recur every other month.
The day of the month on which the event happens can be determined
by one of three methods. If it is desired to have the event occur on a
specific numbered day of the month, the Day of month (1-31) field
value can be set. For example, if the value of the Day of month (1-
31) field is 2, the event will happen on the second day of the month.
If the value in the Day of month (1-31) field is 29, 30, or 31 and a
recurrence falls in a month that does not have that many days, the
event happens on the last day of the month. So, if you want an event
to be repeated on the last day of every month, specify 31 for the
value of the Day of month (1-31) field.
Alternately, the day of the month on which the event happens can be
determined by setting the Week of month or Day of Week value. Set-
ting a value for Week of month instructs the system to have the
event happen on the week number selected. The Day of Week value
defines which day of the week the event happens for the week
selected in the Week of month field.
The event will continue to recur until the date specified in the End
After ___ Occurrences field. If there is no value specified in the End
After ___ Occurrences field, the event will continue recurring for-
ever.
If an event recurs, a Scheduled Event record will be created for each
recurrence. However, these Scheduled Event records may not be gener-
ated all at the same time. Instead, just the next few Scheduled Event
records that are needed are generated. The exact number that will be
generated is determined by the value of the Generate __ Month(s) of
Events (rolling) field.
After the first of the scheduled events happens, another Scheduled Event
record is created. This keeps the number of pre-generated Scheduled
Event records at the number specified by the Generate __ Month(s) of
Events (rolling) field. Once the number of remaining scheduled
events for the recurrence specified falls below the Generate ___
Month(s) of Events (rolling) field value, the system stops generating
additional Scheduled Event records.
Specify ranges of dates in the Exclude Dates section. During these
ranges of dates, the event will not recur.
Selecting the YEARLY radio button means that the event will recur
every year. It will recur in the month specified by the Recur Every __
_ Year(s) On field on the day specified in the Day of Month (1-31)
field.
The event will continue to recur until it has completed the number of
occurrences specified in the End After ___ Occurrences field. If no
value is specified in the End After ___ Occurrences field, the event
will continue recurring forever.
618 | Chapter 10: Calendar and Time Based Events © Copyright IBM Corporation 2011.
If an event recurs, a Scheduled Event record will be created for each
recurrence. However, these Scheduled Event records may not be gener-
ated all at the same time. Instead, just the next few Scheduled Event
records that are needed are generated. The exact number that will be
generated is determined by the value of the Generate __ Year(s) of
Events (rolling) field.
After the first of the scheduled events happens, another Scheduled Event
record is created. This keeps the number of pre-generated Scheduled
Event records at the number specified by the Generate __ Year(s) of
Events (rolling) field. Once the number of remaining scheduled
events for the recurrence specified falls below the Generate ___
Year(s) of Events (rolling) field value, the system stops generating
additional Scheduled Event records.
In the Exclude Dates section you can specify ranges of dates. During
these ranges of dates, the event will not recur.
Event Shadowing
Sometimes you may have multiple events fall on the same day and
want just one of the events to happen, not all of them. For example,
there may be a weekly event for shampooing the carpet in a hallway.
There also may be an annual event to paint the hallway. You do not
want the rug shampooing to happen when it would coincide with the
painting. There is a feature called event shadowing that controls
things like this.
There are two steps to make one event shadow another. The first is to
put the event that has priority in the Shadowing Events section of the
other. In the above example, you would put the painting event in the
Shadowing Events section of the rug shampooing event. The other
step is to supply a value for the OffsetDate Duration (for Shadowing)
field.
620 | Chapter 10: Calendar and Time Based Events © Copyright IBM Corporation 2011.
Schedule Workflow Task
Instead of designing applications to create scheduled events manu-
ally, use the Event form, as described earlier in this chapter.
To use a workflow to automate the entire process of scheduling
events, write a workflow that uses the Schedule workflow task. The
Schedule task handles a number of details that would otherwise have
to be done by a few other tasks.
A Schedule workflow task creates an Event record and associates it
with the record on which events will be performed. A Schedule task
also creates a Recurrence record, sets the value of its fields, and associ-
ates the Recurrence record with the Event record.
A Schedule task does not schedule an event to happen. A Trigger
Action workflow task is needed to do that. The Trigger Action work-
flow task is discussed on page 473. Figure 10-14. Schedule Shape
The shape for a Schedule task is shown in Figure 10-14. The form for a
Schedule task is shown in Figure 10-15 on page 622.
The properties form for a Schedule task is organized into three sec-
tions. Here are descriptions of the fields in the first section:
Label
This is the label used to identify this workflow task. The text in
this field is used as the label for the shape that represents this
kind of workflow task in drawings.
Description
A description of this workflow task goes in this field.
Records
The second section of the form for a Schedule task’s properties is
labeled Records. The purpose of this section is to specify which
record or records the event(s) will happen to.
The top of the Records section has two radio buttons to specify how
the Schedule task will find the record(s). These radio buttons are
labeled:
Workflow Activity
If this radio button is selected, the event(s) will happen to a
record or records associated directly or indirectly with a preced-
ing workflow task.
Existing Record
If this radio button is selected, the event(s) will happen to a
record that exists at the time the workflow is being created.
The selection of one of these radio buttons determines what appears
in the Records section. Figure 10-15 shows what the Records section
looks like when the Workflow Activity radio button is selected.
After we finish describing the way that the Records section works
when the Workflow Activity radio button is selected, we describe (on
622 | Chapter 10: Calendar and Time Based Events © Copyright IBM Corporation 2011.
page 625) what happens when the Existing Record radio button is
selected.
The fields and radio buttons that appear in the Records section under
the Workflow Activity radio button are visible only if the Workflow
Activity radio button is selected. Under the Workflow Activity radio
button are two fields used to identify a target record(s). The target
record is used to determine the record(s) that events will happen to.
There are radio buttons below the two fields. The way that the tar-
get record(s) will be used to determine the record(s) that events will
happen to depends on which one of the radio buttons is selected.
Here are descriptions of the two fields:
Take the
This drop-down list can have one of three possible values:
• Record
If Record is selected, then the record associated with the task
specified by the field to the right of this one will be the tar-
get record. If multiple records are associated with the task,
there will be multiple target records.
• Assignee
If Assignee is selected, then the My Profile record of the user
assigned to the task specified by the field to the right will be
the target record.
of Task
The value of this field is the label of the task that the target
record will be associated with.
The radio buttons under the two fields determine how the target
record(s) will be used to determine the record(s) that events will hap-
pen to.
When the properties form is first displayed, only the currently
selected radio button is visible. There is a button to the left of the
visible radio button. Clicking the button alternately makes all the
radio buttons visible or just the selected radio button visible.
The following descriptions explain the meaning of the radio buttons.
There are fields that appear to the right of some of the radio but-
tons. These fields contain additional information needed for the
choice represented by the radio button.
Here are the descriptions:
624 | Chapter 10: Calendar and Time Based Events © Copyright IBM Corporation 2011.
You may also specify that the record on the other end of the asso-
ciation must have been created by a particular business object in
the specified module. If the name of a business object appears in
the drop-down list to the right of the module name, then the
record on the other end of the association must have been cre-
ated from the named business object. If -Any- appears in the drop-
down list, then the record on the other end of the association may
have been created from any business object in the named mod-
ule.
To specify that a particular association name is required, click the
icon. A list of the association types defined in the List Man-
ager pops up. Click the association name that you want to appear
to the right of the icon. To retrieve association records that
are not restricted to a particular association name, click -Any-
which appears at the top of the list.
This is similar to the Use its Association radio button.
Use its Parent
If the target record is created from a business object that is part
of a hierarchy module and this option is selected, then the events
will happen to the parent of the target record.
When you select this radio button, a window pops up for you to
select the business object that was used to create the parent
record. This selection of a business object is not used for filter-
ing. It is used to allow other tasks to access the parent’s fields.
One of the choices for the business object that created the par-
ent is -Any-. Choosing this is the equivalent of selecting the mod-
ule’s base business object (the one with the same name as the
module).
At the bottom of the Records section is a read-only field labeled
Object Type. The value displayed in this field is the type of the
record that the event(s) will happen to. If the record can have been
created from any business object in a particular module, then the
name of the module appears in the Object Type field.
If you want event(s) to happen to record(s) that are part of the appli-
cation’s configuration, then you should select the option of using an
existing record in the Records section. When the Existing Record
radio button is selected, the Records section looks like the one in
Figure 10-16.
Recurrence
The third section of the form for a Schedule task’s properties is labeled
Recurrence. The purpose of this section is to specify how often and
how many times the event should be repeated, if at all.
626 | Chapter 10: Calendar and Time Based Events © Copyright IBM Corporation 2011.
The Recurrence section contains a group of radio buttons that allows
you to select how often the event will be repeated. Under these radio
buttons is a field that contains a date used to calculate when the
event will first happen. Under this field is another set of radio but-
tons used to select when the repetitions of the event will end.
Here are explanations of the radio buttons that control how often the
event will be repeated:
None
If this radio button is selected, the event will not be repeated.
Every _____ Days
If this radio button is selected, the event will happen after a
specified number of days have elapsed. The event will first hap-
pen on the date specified in the Start field. After that, the event
will happen every time the specified number of days has elapsed.
The number of days between recurrences of the event is speci-
fied in the field between the words Every and Days. For example,
Every 3 Days
means that beginning on the date specified in the Start field, the
event will happen every third day.
Every Weekday
If this radio button is selected, the event will happen on every
Monday, Tuesday, Wednesday, Thursday and Friday on or after the
date specified in the Start field.
Every Weekend Day
If this radio button is selected, the event will happen every Satur-
day and Sunday on or after the date specified in the Start field.
_____ Days After Each Task is Complete
If this radio button is selected, the event will first happen on the
date specified in the Start field. It will be repeated the specified
number of days after the end of the event. The number of days is
specified in the field to the right of the radio button.
The end of an event is determined by the time that the event
starts and the value in the Event record’s EventDuration field. The
value of the EventDuration field must be set after the Event record is
created by the Schedule workflow task. The EventDuration field is
described on page 631.
Every _____ Weeks on _____
If this radio button is selected, the event will first happen on or
after the date specified in the Start field, the first time that the
628 | Chapter 10: Calendar and Time Based Events © Copyright IBM Corporation 2011.
On the _____ _______ Every _____ Months
If this radio button is selected, the event will first happen on or
after the date specified in the Start field, on the first day that is
the specified day of the month. The event will be repeated after
the specified number of months has elapsed on the specified day
of the month.
The number of months is specified in the field between Every and
Months.
The day of the month is specified as either the first, second,
third, fourth or last occurrence of a particular day of the week in
the month. The selection of first, second, third, fourth or last is
specified in the drop-down list to the right of On the. The day of
the week is specified in the drop-down list to the left of Every.
Selecting the last occurrence of a day of the week means that the
event will happen on the fifth occurrence in a month of the speci-
fied day of the week if there is a fifth occurrence; otherwise the
event will happen on the fourth occurrence in a month of the
specified day of the week.
_____ Months After Each Task is Complete
If this radio button is selected, the event will first happen on the
date specified in the Start field. It will be repeated the specified
number of months after the end of the event. The number of
months is specified in the field to the right of the radio button.
The end of an event is determined by the time that the event
starts and the value in the Event record’s EventDuration field. The
value of the EventDuration field must be set after the Event record is
created by the Schedule workflow task. The EventDuration field is
described on page 631.
Every _______ _____
If this radio button is selected, the event will first happen on or
after the date in the Start field on the first day that is the speci-
fied day of the year. The event will be repeated every year after
that on the specified day of the specified month. The month is
specified by selecting it in the drop-down list to the immediate
right of Every. The day of the month is specified in the field to
the right of the drop-down list.
If February 29 is specified, on years that are not leap years the
event will happen on February 28.
630 | Chapter 10: Calendar and Time Based Events © Copyright IBM Corporation 2011.
End Never
If this is selected, the event will never stop repeating.
End After _____ Occurrences
If this is selected, the event will stop repeating after it has hap-
pened the specified number of times. The number of times is
specified in the field between After and Occurrences.
End by _____
If this is selected, there will be no repetitions of the event on or
after the specified date. The date is specified in the field to the
right of End by.
Event Records
Once an Event record has been created, the values of its fields must
be set. A Schedule workflow task does not set the values of an Event
record’s fields, except for EventRefId. This is what a Schedule task
does:
• A Schedule workflow task creates an Event record.
• A Schedule workflow task creates a Recurrence record.
• A Schedule task sets the values of the Recurrence record’s fields
with what is specified in the Schedule task’s Recurrence section.
• A Schedule task associates the Recurrence record with the Event
record.
An Event record has these fields:
EventStartDate
This is the date and time when the event will happen.
If the Event record has an associated Recurrence record and the
selection of recurrence is not None, the date portion of this field
will be used to determine the earliest start date, not the actual
start date. In this case, the information in the associated
Recurrence record determines the actual dates on which the event
happens.
The time of day an event starts is always the time of day in this
field.
The value of this field must be specified.
EventDuration
This is the duration of the event.
The value of this field must be specified, but can be zero.
632 | Chapter 10: Calendar and Time Based Events © Copyright IBM Corporation 2011.
The way that the life cycle for an Event record is organized, a Schedule
action can be performed only once on an Event record.
After a Schedule action is performed on an Event record, its scheduling
effect can be undone by performing an Unschedule action on the Event
record. Performing an Unschedule action on the Event record does not
allow another Schedule action to be performed on the Event record.
Scheduled Events
A Scheduled Event record is used to represent each time that an event
has been scheduled. If the form for a record includes a Calendar tab,
you can see links to Scheduled Event records in the calendar.
Scheduled Event records are involved in at least these two associations:
• There is an association between a Scheduled Event record and the
Event record that it was created from. The name on both sides of
the association is RECURRENCE.
• There is an association from a Scheduled Event record to the record
for which the event is scheduled. Its name is also RECURRENCE.
At the time a Scheduled Event record says that an event is supposed to
start, a SCHEVENTSTART system event happens to the record that the
event is scheduled for. At the time a Scheduled Event record says that an
event is supposed to end, a SCHEVENTEND system event happens to the
record that the event is scheduled for.
E-Mail
Some applications are able to process e-mail messages in a useful way
if they are in a particular format. You can create a workflow in the
IBM TRIRIGA Application Platform to send e-mail messages. The
details of doing this are discussed in Chapter 12.
Form Reports
Form reports are the usual mechanism that you use to integrate
Microsoft Word, Microsoft Excel, or external reports with the IBM
TRIRIGA Application Platform. Form reports are described in detail in
the IBM TRIRIGA Application Platform 3 Reporting User Guide.
For the purposes of integration, there are three different ways a form
report can be presented. Each has slightly different uses.
636 | Chapter 11: Integration with External Applications © Copyright IBM Corporation 2011.
• A form report can be presented as part of a record’s form. It can
either be in the form’s Reports tab or it can be in a report sec-
tion. This is a good solution if the integration goal is to interac-
tively present the contents of an Excel spreadsheet, a Word-based
form, or external report to a person.
This presentation also can be useful as a way to allow a person to
copy and paste data in a form that is formatted by Excel or Word.
It has the drawback that not all the format information is avail-
able that would be available if a person were copying it directly
out of an Excel spreadsheet or a Word document.
The reason for this is that even though the form report looks like
an Excel spreadsheet or a Word document, it is actually part of
the HTML that makes up the record’s form.
On the other hand, using this presentation to facilitate copy and
paste operations has the advantage of convenience. Presenting a
form report in this way may require the least effort on the part of
a person.
• A form report can be presented as the body of an e-mail mes-
sage. This is the most convenient way of sending a form report to
someone who many not be logged into the IBM TRIRIGA Applica-
tion Platform environment. For form reports using Word or Excel
this works particularly well for people who receive the form on a
mobile device, such as a laptop or PDA.
This presentation also can be used to send the form report to
applications that run outside the IBM TRIRIGA Application Plat-
form and can receive data through e-mail.
For form reports using Word or Microsoft Excel this presentation is
also HTML based. This means that it has the same disadvantages
of the presentation in a record’s form. It has some additional dis-
advantages:
• Because it is HTML, it will not be useful to send to applica-
tions that are expecting an actual Excel spreadsheet or Word
document.
• Some e-mail reading programs will not correctly render the
HTML.
For form reports using Crystal Reports, the report is attached to
the email as a PDF file. This means that it has the same disadvan-
tages of the presentation in a record’s form. It has an additional
disadvantage: The person receiving the e-mail must have a PDF
viewer.
Data Integrator
The Data Integrator is a tool provided by the IBM TRIRIGA Application
Platform to allow records to be created or updated from data in a
638 | Chapter 11: Integration with External Applications © Copyright IBM Corporation 2011.
kind of file called a tab-delimited file. If you want an application that
runs in the IBM TRIRIGA Application Platform to receive data from an
external application that runs outside of the IBM TRIRIGA Application
Platform, the Data Integrator is the simplest way to get the data into
the IBM TRIRIGA Application Platform. Application Building for the IBM
TRIRIGA Application Platform 3: Data Management describes the Data
Integrator in detail.
Tab-delimited files can be created from spreadsheets. There are a
number of accounting packages and other kinds of programs that can
produce tab-delimited files.
The simplest way to run the Data Integrator is for it to be run interac-
tively by a person. If you run the Data Integrator this way, no pro-
grammer involvement is needed.
In some cases, it is not practical to have a person run the Data Inte-
grator every time there is data to be received into the IBM TRIRIGA
Application Platform from a tab-delimited file. For these cases, it is
possible to schedule data to be read from a tab-delimited file periodi-
cally without the involvement of a person.
Financial Transactions
Among the integration requirements for an application may be
requirements for the application to record transactions that capture
the impact of numbers recorded by an application. For example,
when a customer buys something, an application may generate a
transaction to bill the customer and decrease the value of the inven-
tory by the amount that was sold.
Requirements to record numbers as ACID* transactions and feed them
to an accounting package are rather common. They are so common
that the IBM TRIRIGA Application Platform has a special facility for
generating financial transactions. This is described in the book Appli-
cation Building for the IBM TRIRIGA Application Platform 3: Calcula-
tions.
Java Objects
A method of a custom Java object can be invoked to perform any cus-
tom logic or solve any integration problem. The mechanism that
makes this work is described on page 554 under the heading “Custom
Task”.
640 | Chapter 11: Integration with External Applications © Copyright IBM Corporation 2011.
Chapter 1
In this chapter: CHAPTER 12
• How to send internal and
external notifications.
Notifications
Notification Content
Notification Content records are templates for notifications. They
provide the fixed portions of a notification’s content. These records
are normally created interactively by a person. To manage Notifica-
tion Content records, navigate to Tools > Approvals & Notifications >
Notifications > Notification Content.
Notification Helper
To send a notification, a workflow creates a Notification Helper
record from the Notification Helper business object in the triHelper
module. After creating the record, the workflow sets the values of its
fields, associates the record with triPeople records to identify the noti-
fication’s recipients, and then sends the notification by triggering a
Calculate action on the Notification Helper record.
Here are descriptions of the fields in a Notification Helper record:
triIdTX
Workflows must set the value of the triIdTX field to the ID of the
Notification Content record that will provide the fixed portion of
the notification’s content.
triPeople
The workflow triggered by the Calculate action knows where to send
the notification it creates because of associations named Notify that
the Notification Helper record has with triPeople records.
If an associated triPeople record identifies an active user, the notifica-
tion is put in the notification section of the user’s portal. If an associ-
ated triPeople record identifies an e-mail address, the notification is e-
mailed to the specified address.
Figure 12-2.
Attach Format File Shape
The properties form for an Attach Format File task is organized into
three sections. Here are descriptions of the fields in the first section:
Label
This is the label used to identify this task. This field’s text
appears on the shape in the drawing that represents this work-
flow task. Use the standards in “Workflow Naming Standards” on
page 388.
Description
A description of this task goes in this field.
Format File
The Object Type field of this form’s Attach Format File From
section specifies the business object that must have been used to
create the record for which the form report will be produced.
The value of this field is the name of form report template file
that this task will use to produce form reports. To select a file,
click the hyperlink to the right of the Format File label. A win-
dow will pop up to allow you to select a file.
You specify the value for the Module and Object properties so that
this task knows what kind of record will be the parent. Then click the
Record link to find the specific record you want this task to use.
To Notification
The third section of the Association Task properties form is labeled To
Notification. The purpose of the To Notification section is to specify
the Notification record that will be used to send the form report.
The following description of the fields in the third section also applies
to the fields in the second section that appear in the Attach Format
File From section when its Workflow Activity radio button is
selected. The fields in the Attach Format File From section serve a
purpose similar to the corresponding fields in the To Notification sec-
tion. The difference between the corresponding fields in the Attach
Format File From section is that they are used to identify the record
that contains the data that will be used to generate the form report
The first task creates the Notification record, sets the message con-
tent and makes the RefObject field refer to the record that was used
to launch the workflow.
The second task sets the recipient of the notification.
The third task triggers the Notify action on the Notification record.
©656 | Chapter
Copyright 13: Security
IBM Corporation 2011.
Figure 13-1. Profile Tab
©658 | Chapter
Copyright 13: Security
IBM Corporation 2011.
Currency
Use this field to specify the default currency that the person will
use. Currency settings are discussed in detail in IBM TRIRIGA
Application Platform 3 Localization User Guide.
Time Zone
The time zone that the person is normally in. If blank, the system
uses the value of the SYSTEM_DEFAULT_TIMEZONE property in
TRIRIGAWEB.properties.
Delegate To
The purpose of this field is to allow someone else to handle this
user’s approval action items when this user is not able to do it. If
this field has a value, it is the person who is allowed to approve
action items on behalf of this user.
Approval Amount
The maximum amount that this user is authorized to approve on a
single transaction.
Group Details
The groups the user is in.
License Details
The licenses the user has.
Having filled in the fields of the Profile tab, you are ready to create
the person’s My Profile record by clicking the Activate action in the
menu. Once the My Profile record is created, the person can sign in to
IBM TRIRIGA.
By default the platform logs successful and failed logins and user
account changes in the security.log file. You can turn off this logging by
editing the log4j.xml file located in the <IBM TRIRIGA installation>\config
folder (for example, C:\Tririga\config\log4j.xml).
Being able to sign in is not useful by itself. If no licenses are granted
to a user, the user will not be able to access any application features
or tools provided by the platform. User IDs that have not been
granted any licenses are not allowed to sign in.
Having licenses without membership in a group is not useful either. In
order to be able to access any particular kind of record, you must
have permission to do so. To perform an action on a record, you must
have permission to perform the action on the record. A person gets
permissions by being a member of a group that has the necessary per-
missions.
The system only uses the rules defined in the rest of the Password
Setup form when the Enforce Password Rules field is checked. When
Enforce Password Rules is not selected, the system uses the standard
IBM TRIRIGA password rules and ignores the rest of the values in the
Password Setup form. This is the default value.
The system begins to follow the rules defined in the Password Setup
as soon as the record is in Active status.
See the “Passwords” chapter in IBM TRIRIGA 10 Application Adminis-
tration User Guide for more information about strong passwords.
Single Sign-On
In some organizations, people may use multiple computers and appli-
cations. The larger the organization, the more likely this situation.
©660 | Chapter
Copyright 13: Security
IBM Corporation 2011.
When an organization first encounters this situation, a person may be
given a different user ID or password for each computer or applica-
tion they use. For example, an organization where people begin their
day by signing on to their computer. They then sign on to an applica-
tion to see their schedule for the day. They then sign on to another
application they use for most of their work. At the end of the day,
they sign on to another application to account for how they spent
their time that day.
Most people in this organization had four different user IDs and pass-
words to remember. This was inconvenient and it also hurt security.
People would try to use the same password for each computer or
application, but this was not always possible for a variety of reasons.
What people tend to do when they have multiple user IDs and pass-
words is to write them down. Usually, they put the paper with their
user IDs on it somewhere convenient for them to see when they need
it. Common locations are taped to the side of a monitor or in a desk
drawer. This is convenient for the person who needs to remember the
passwords. This also makes it easy for someone else to discover the
passwords.
To avoid the inconvenience and security issues that come with people
having multiple user IDs and passwords, many organizations have a
way for people to use a single user ID that works for everything. Some
organizations have improved convenience beyond having a single user
ID to having a single sign-on.
Single sign-on means that people use one user ID and password to sign
on when they start working and do not need to sign on to anything
else until the next time they return to work.
There are a variety of schemes that organizations use to support a sin-
gle sign-on. The IBM TRIRIGA Application Platform’s authentication
mechanism is designed to work with most single sign-on mechanisms.
There is more than one way to integrate the IBM TRIRIGA Application
Platform’s authentication mechanism with single sign-on mecha-
nisms. The essence of how it works is that the IBM TRIRIGA Applica-
tion Platform learns from an external trusted source the user ID of the
person who wants to be logged in to the platform. If the user ID from
the external source matches a user ID specified by a My Profile record,
then the platform accepts the user ID as authenticated and logs the
person in.
License Management
A license allows access to menu items and tools in the IBM TRIRIGA
Application Platform. An installation of the platform includes a file
that contains quantities of different kinds of licenses. Each kind of
license can be used to give access to a different combination of
menus and tools.
You obtain licenses by buying them. You buy the kinds of licenses you
need in the quantity that you need and install them in your IBM
TRIRIGA Application Platform environment.
People cannot take advantage of a license unless it is assigned to
them. To assign licenses to people, use the License Manager in Tools >
Administration. The License Manager looks like Figure 13-3.
©662 | Chapter
Copyright 13: Security
IBM Corporation 2011.
• An IBM TRIRIGA Custom Application license is a special kind of
product license that does not provide access to any application
features. However, assigning a custom application license to a
user allows that user to sign in and use applications that were not
created by IBM TRIRIGA.
The left side of the License Manager is a list of available licenses.
When you select the radio button to the left of a license’s name, you
see the user IDs to which the license has been assigned.
At the top of the right side you can see the name of the license.
Under that displays a list of user IDs that the licenses have been
assigned to. You can add user IDs to the list by clicking the Add Users
action. You can remove user IDs from the list by selecting the check
box next to a user ID and clicking the Delete Users action.
The query on the Add User action can be customized. To have the sys-
tem run your query, name your query “Security License List” in the
Report Manager.
The licenses shown in the License Manager are synchronized with the
licenses shown in user profiles. Adding a user to the License Manager
triggers a workflow to update the user’s profile record. Deleting a
user from the License Manager triggers a workflow to remove the
license from the user’s profile record.
Groups
A group identifies a group of user IDs and the access they have to spe-
cific kinds of records and what they are allowed to do with the
records.
©664 | Chapter
Copyright 13: Security
IBM Corporation 2011.
General Tab
The General tab looks like Figure 13-5.
The General tab has two sections labeled General and Data Access.
Here are descriptions of the fields in the General section:
Name
The text in this field is the name of the group.
Description
This field contains a description of the group.
Personalize Portal
If Yes, users in this Group will have the ability to select Personal-
ize on their portal, which will allow them to customize their
Home page. If No or empty, the Personalize button will not be
available.
The IBM TRIRIGA 10 Getting Started User Guide describes how
users personalize portals.
Personalize Bookmarks
If Yes, users in this Group will have the ability to select Add to
Bookmarks and personalize their Bookmarks menu. If No or empty,
bookmarking will not be available for this user.
©666 | Chapter
Copyright 13: Security
IBM Corporation 2011.
Members Tab
The Members tab is used to control which people and other groups
are members of a group. The Members tab looks like Figure 13-6.
You can add people directly to the group by clicking the Add Users
action. Clicking the Add Users action causes a list of all of users with
user IDs to pop up with a check box next to each user ID. You can
then check the check box next to the user ID of everyone you want to
add. Clicking the pop-up window’s Accept action causes the pop-up
window to disappear and the selected user IDs to be added to the
group.
You can add people to a group indirectly by clicking the Add Groups
action. Adding a group as a member of another group causes all user
IDs and groups that are members of the added group to be members
of the group to which they were added. It also gives the Access Per-
missions in the added group to the group.
Clicking the Add Groups action causes a list of all groups to pop up
with a check box next to each group. You can then check the check
box next to the groups you want to add. Clicking the pop-up win-
dow’s Accept action causes the pop-up window to disappear and the
selected groups to be added to the group.
Access Tab
The Access tab is used to determine how much access membership in
the group grants to records created from specified business objects. It
also determines what actions the members of the group are allowed
to perform on the records. In addition, the Access tab determines the
access the members of the group will have to the tabs and sections of
the form.
The appearance of the Access tab varies with the type of object for
which security is being defined. The Access tab has an Object sec-
tion on the left and an Permission section on the right.
The Object section shows a tree that contains all modules. The tree
also contains all of the tools that the IBM TRIRIGA Application Plat-
form provides, such as the Data Modeler and the Report Manager.
The content of the Permission section varies based on what is
selected in the Object section.
Modules that contain published forms are represented by a plus sign
icon ( ). You can expose the form under a module by clicking the
module’s plus sign icon ( ). Tools and modules that do not contain
any published forms are represented by a dot.
You can select a module, tool, or anything else that is exposed on the
left side of the Access tab by clicking its name. When something is
selected on the left side of the Access tab, relevant choices for per-
missions appear on the right side of the Access tab.
The permissions you see in the right side of the Access tab vary with
the type of object that is selected on the left side of the Access tab.
The meaning of the permission also varies with the type of object that
is selected on the left side of the Access tab.
TIP: Be sure to review the access permissions in any Group that you
create. A new custom Group by default may have Data Access set to
No Access and all items listed in Application Access and Form Access
unchecked (no access). Record instances covered by such a custom
Group are read-only. Furthermore, users in such a custom Group will
not have access to any form actions, which means that users will not
be able to commit any change made in a form.
©668 | Chapter
Copyright 13: Security
IBM Corporation 2011.
Module
In Figure 13-7, a module is selected on the left side of the Access tab.
Two kinds of permissions are shown on the right side of the Access
tab. At the top are Data Access permissions. In the bottom part are
Application Access permissions.
You may select one Data Access permission. Initially, No Access is
selected. No Access means just what it sounds like. The other levels of
data access permissions allow progressively more access to records,
all the way up to Read, Update, Create and Delete, which allows members
of the group to look at existing records, change the contents of
records, create new records, and delete records.
Tool
Figure 13-8 shows the Access tab with a tool selected in the left side
of the Access tab.
The permission choices for most tools are very simple and only define
Data Access permission. The members of the group can either have
full access to a tool or no access. The Report Manager has more per-
mission choices; these choices are described in “Reports” on
page 682.
©670 | Chapter
Copyright 13: Security
IBM Corporation 2011.
Form
When you click the plus sign icon ( ) to the left of a module name, it
exposes the forms in the module. Figure 13-9 shows a form selected in
the left side of the Access tab.
Tab
When you click the plus sign icon ( ) next to the name of a form, you
see the tabs that the form contains. If a tab contains a section, it will
be represented by a plus sign icon ( ) you can click to see the tab’s
sections. Figure 13-10 shows a form’s tabs and some of its sections
exposed and the Data Access permissions for a section.
The list of permissions for a tab is the same. Initially, Inherit from Parent
is selected. If the members of a group have No Access to a tab or a sec-
tion, they will not be able to see the tab or section.
©672 | Chapter
Copyright 13: Security
IBM Corporation 2011.
Figure 13-10. Group Access, Section Selected
©674 | Chapter
Copyright 13: Security
IBM Corporation 2011.
Group have access to this geography and also to every geography
under that in the Geography hierarchy. This access is subject to
restrictions imposed by project security (described on page 675) and
by restrictions specified in the Group’s Access tab.
The following table summarizes the relationship between a record’s
System Organization field and a Group’s System Organization field:
Record Record
System Organization System Organization
is Blank is NOT Blank
Group User in Group WILL see User in Group will NOT
System Organization is record see record
Blank
Group User in Group WILL see User in Group WILL see
System Organization is record record
NOT Blank
Table 13-1.
Record Record
System Geography System Geography
is Blank is NOT Blank
Group User in Group WILL see User in Group will NOT
System Geography is record see record
Blank
Group User in Group WILL see User in Group WILL see
System Geography is record record
NOT Blank
Table 13-2.
Projects
One of the business objects that comes with the IBM TRIRIGA Applica-
tion Platform is triCapitalProject in the triProject module. triCapitalProject
records are intended to be used for tracking a set of related activi-
ties and their associated financial data. The triCapitalProject business
object is useful for applications that manage projects.
records have a security-related purpose that is indepen-
triCapitalProject
dent of project management. triCapitalProject records can be used to
restrict who can access records. They are similar to Organization and
Geography records in the way that the IBM TRIRIGA Application Plat-
form uses them to filter which records are visible to the user.
Using Projects
The IBM TRIRIGA Application Platform comes with one built-in
triCapitalProject record that has the name Company Level. There are a few
things about the Company Level project that make it special:
• You may not edit or delete the Company Level project.
• Nobody is denied access to a record because it is associated with
the Company Level project.
• The user must have an IBM TRIRIGA Projects or IBM TRIRIGA
Projects Upgrade license to change their active triCapitalProject.
When a user signs on to the IBM TRIRIGA Application Platform, their
session with the platform is associated with a triCapitalProject record.
This triCapitalProject record is referred to as the active project. The
name of the active project is shown above the menu bar. It looks like
Figure 13-11. To the left of the project name is a search icon .
When a user clicks the Find Project icon and has permission to
change the active project to a triCapitalProject record other than Company
Level, a list of other triCapitalProject records pops up. The current
project can be changed to one of those Capital Project records by
selecting it in the list and clicking the OK action.
Clicking the Company button in Figure 13-11 sets the current project
back to the Company Level project. To change the appearance of the list
of capital projects that is popped up, update the query named Portal
Project Search in the Report Manager. For more information on editing
queries see the IBM TRIRIGA Application Platform 3 Reporting User
Guide.
When a user signs out, the system saves their active project. The next
time that user signs in, the system returns them to that project.
©676 | Chapter
Copyright 13: Security
IBM Corporation 2011.
When projects are displayed in a grid in the user’s portal, as shown in
Figure 13-12, the user can change the active project by clicking the
©678 | Chapter
Copyright 13: Security
IBM Corporation 2011.
Creating and Managing Projects
records are managed using the Capital Projects page. To
triCapitalProject
access the Capital Projects page, navigate to Projects > Capital as
shown in Figure 13-13.
©680 | Chapter
Copyright 13: Security
IBM Corporation 2011.
Figure 13-15. Capital Project, Security Tab
the person will be able to view but not change records internally asso-
ciated with that Capital Project record. Use the Find action to add a
person to the User Access section.
For this security to be enforced you must click the Activate action on
the Capital Project. Depending on the Approval Requirements for Capi-
tal Projects, the project may need to be approved. Once the project
has an Active status, the security will be enforced. More information
on Approval Requirements provided with IBM TRIRIGA 10 applications
is described in the document IBM TRIRIGA 10 Application Administra-
tion User Guide.
Reports
There are three types of reports: System Reports, Community
Reports, and My Reports. As shown in Figure 13-16, you can control
the access to each report type for each Group. These options control
access to the tabs in the Report Manager, as shown in Figure 13-17 on
page 682.
If a Group has No Access to System Reports, users in that Group will not
see the System Reports tab in the Report Manager. If a Group has Full
Access to System Reports, users in that Group will be able to manage
(create, edit, copy, delete) and share any System Report.
©682 | Chapter
Copyright 13: Security
IBM Corporation 2011.
Figure 13-16. Report Manager Security Options
Please note that Community Reports are actually System Reports that
have been designated as useful for end users to be able to copy and
modify for their own use as My Reports. In order to manage a Commu-
nity Report, a user must belong to a Group with access to System
Reports.
If a Group has No Access to My Reports, users in that Group will not see
the My Reports tab in the Report Manager, and users in that Group
will not be able to create or manage their own personal reports. If a
Group has Manage permission to My Reports, users in that Group will be
able to create, edit, copy, and delete their own personal reports. If a
©684 | Chapter
Copyright 13: Security
IBM Corporation 2011.
Figure 13-18. Community Report Security Sub-Tab
the user has shared this report with members of three security
groups, IBM TRIRIGA Facilities Executive - Retail, IBM TRIRIGA Facili-
ties Manager, and IBM TRIRIGA Facility Assessment Manager. If the
user chooses, she can give one of the Groups All access, which effec-
tively grants that Group the same privileges as she has as the owner.
Note that the owner of a My Report always has view, edit, delete, and
copy access to his or her report.
The Report Manager has an Administration tab, shown in Figure 13-17
on page 682. This only displays for members of the Admin Group. The
Administration tab lists all My Reports for all users. In this tab, an
Administrator can change the owner of a report, or copy, delete, or
share My Reports. In addition, he or she can open individual My
Reports and update the Security sub-tab as needed.
For more details on Report Manager functionality, see the IBM TRIRIGA
Application Platform 3 Reporting User Guide.
Audit Trail
Some records may be considered so sensitive that you want to keep a
record of all changes made to them. A record of all changes made to
a record is called an audit trail.
These are the most common reasons for wanting an audit trail:
• People who have legitimate access to records may be tempted to
do something dishonest. This is most often the case when the
records in question are used to represent money or other things
that are worth money.
©686 | Chapter
Copyright 13: Security
IBM Corporation 2011.
• There is an undesirable legal consequence if an improper change
to or action on a record is performed.
• There is a regulation or standard that requires you track changes
to records.
If any of these concerns is relevant to a record, it is important to have
an audit trail that tells who did what to each such record and when
they did it. Having an audit trail is a disincentive for dishonesty,
because it makes it easier to discover dishonest actions. An audit trail
removes speculation about what actually happened.
An audit trail is an historical record of everything that happened to a
record. Because it is an historical record, the information that is in an
audit trail cannot be altered or deleted.
There are two main reasons for not wanting an audit trail:
• Maintaining an audit trail increases the amount of time that an
operation takes. Saving the audit records takes additional time.
• Maintaining an audit trail can greatly increase the amount of stor-
age that an application uses. In addition to needing space to store
records, you need space to store the audit trail. The space
needed to store the history of everything that ever happened to a
record can be significantly larger than the record itself.
Support for audit trails is built directly into the IBM TRIRIGA Applica-
tion Platform. Though it is possible to implement audit trails as part
of an application’s business logic, IBM TRIRIGA strongly suggests that
you use the audit trail support that is built into the platform. There
are at least three reasons for this:
• An audit trail maintained by the platform is more secure than an
audit trail maintained by the application. An audit trail based on
an application’s business logic is only as reliable as the applica-
tion itself. If there are bugs or mistakes in the application, an
audit trail maintained by the application may not be accurate.
The accuracy of an audit trail maintained by the built-in audit
trail mechanism is unaffected by bugs or mistakes in an applica-
tion.
• It takes a lot more work to build the logic for an audit trail into an
application than it does to use the audit trail support that is built
into the platform.
• Though all audit trail mechanisms increase the amount of time it
takes an application to do things, an audit trail maintained by the
©688 | Chapter
Copyright 13: Security
IBM Corporation 2011.
The properties of a business object are shown in Figure 13-20.
©690 | Chapter
Copyright 13: Security
IBM Corporation 2011.
Whether you are creating a new sub action or editing it, after you
click the appropriate action you will see a form that looks like
Figure 13-21. Check the Log check box to enable auditing of the sub
action.
the business object where you would like to see the Audit data and
check Show Audit Actions. The form properties are shown in
Figure 13-22.
Once the form has been published, the form will have a tab labeled
Audit. The purpose of the Audit tab is to display all the audit records
that contain data changes made to the record. The Audit tab looks
like Figure 13-23.
Three columns display in an Audit tab.
Modified By
Who made each set of data changes.
©692 | Chapter
Copyright 13: Security
IBM Corporation 2011.
Figure 13-23. Audit Tab
Comment
If users are required to enter a reason for making changes to a
record through a form, the reason they enter appears in the
Comment column.
Modified On
When the data was changed.
TIP: You may not want everyone to see the contents of the Audit or
Audit Actions tabs. Access to those tabs is controlled through Group
permissions, just like any other tab.
To see details of the data changes that were made, click the hyper-
linked audit record that you want to see. This causes an Audit Details
window to pop up that looks like Figure 13-24.
The Audit Actions tab shows every recorded sub action that has been
clicked on the record. The Audit Actions tab has three columns. The
first column shows the label of the sub action. The second column
shows who clicked the sub action. The third column shows when the
sub action was clicked. To allow a user to view this data, you need to
©694 | Chapter
Copyright 13: Security
IBM Corporation 2011.
update that form to show the Audit Actions tab. To do so, revise the
properties of the form for the business object where you would like to
see the Audit data and check Show Audit Actions. The form proper-
ties are shown in Figure 13-22.
Workflow Instances
Depending on your auditing requirements, it may be good enough to
know what sub actions have been clicked for records, when those sub
actions were clicked, and who clicked them. If you need to know what
workflows were launched as a result of the sub actions and what the
workflows did to records, you will need more information than is in
the Audit Actions tab.
The IBM TRIRIGA Application Platform provides a way for you to exam-
ine the actual workflows that ran in response to clicking sub actions
and see how they ran. The organization of this feature is based on the
fact that workflows run only in response to an action or system event
happening to a record. It allows you to see workflows that were actu-
ally run in response to something happening to specific records.
To be able to see workflows that were launched for a record, you will
need to:
• Decide which workflows are of interest.
• Specify that information about each running of those workflows
should be saved.
• Include a tab in appropriate forms for viewing the records of the
workflows that have run. The first step in enabling this feature is
to decide which business objects you need to modify.
In order for information to be saved each time a workflow is run, the
Save Workflow Instances check box in the workflow’s properties
must be checked. If this check box is not checked, no record will be
kept of when the workflow was run and what happened when it was
run. The Save Workflow Instances check box is discussed on
page 397.
If a workflow’s Save Workflow Instances check box is checked, every
time the workflow is run a copy of the workflow is kept with informa-
tion about how it ran. This saved information about a single running
of a workflow is called a workflow instance.
The Work Flow Instance tab shows the name of each workflow that
ran, the current status of the workflow, and when the workflow
started. There is no indication of what launched the workflow. You
will need to use the times sub actions were clicked and the times that
workflows were started to match them up.
The statuses showing in the Work Flow Instance tab are as follows:
©696 | Chapter
Copyright 13: Security
IBM Corporation 2011.
For synchronous workflows:
• Active (the workflow is currently running)
• Completed (the workflow has completed)
For asynchronous workflows:
• Aborted, Aborted-Warn (the workflow was aborted using the Stop
capability in the Administrator Console)
• Active (the workflow is currently running)
• Completed, Completed-Warn (the workflow has completed)
• Failed (the workflow encountered an error and could not con-
tinue; information about the problem was written to the System
Log)
• Skipped (the workflow would have run, but the Start Conditions
were not satisfied)
• Stopped, Stopped-Warn (the workflow executed a Stop task)
• Waiting, Waiting-Warn (the workflow is waiting for a user (user
action or approval task))
If Warn is on the status it means a problem was encountered, infor-
mation was written to the System Log, and the workflow continued
processing.
The workflow names in the Work Flow Instance tab are hyperlinks. If
you click a workflow name, the workflow editor pops up to show the
actual workflow that was run. Even if the workflow has changed since
Debugging
Workflows
The workflow trace you
see in the Work Flow
Instance tab can be very
useful in debugging a work-
flow, since dashed green
highlighting tells you the Figure 13-27. Workflow with Completed Tasks Highlighted
execution path that the
workflow followed. The workflow editor displays the workflow differently from when you
access it through the Workflow Builder. Workflow tasks that have
been performed are highlighted with a green dashed border. There is
an example of this in Figure 13-27. Looking at the highlighting, you
can see the path that was taken through the workflow when it ran.
If a workflow step was started but has not finished, it is highlighted
with a red dashed border.
©698 | Chapter
Copyright 13: Security
IBM Corporation 2011.
About Audit Trails
By auditing the actions that people perform on a record and the
changes that people make to its data, it is possible to have a detailed
and accurate audit trail that allows you to determine exactly how the
record came to have its current data and state.
There are some rules that you must observe to ensure the integrity of
audit trails produced by the IBM TRIRIGA Application Platform:
Make changes to an application only when people are not using it.
It is a good idea to keep people from using an application while it
is being changed, just to be sure of getting consistent results.
Another reason to keep people from using an application while it
is being changed has to do with accurately interpreting audit
trails.
It is important to know whether the consequences of clicking a
sub action happened before or after a change to the way an appli-
cation works. If people are using an application at the same time
it is being changed, it may become difficult to know if an action
and its consequences happened before or after a change. If the
change affected which workflows are launched by the action, it
may not be possible to know which workflows were launched by
an action.
Restrict access to the Data Modeler.
Even if you are only auditing data changes, it is still important to
restrict access to the Data Modeler.
Through the Data Modeler, it is possible to turn off generation of
audit records for all records created from a business object and
then later turn the generation of audit records back on. While the
generation of audit records is turned off, someone can change
data in records without the change being recorded in an audit
trail. Also, there is no record in the audit trail that generation of
audit records was turned off or on.
Security settings should prevent people from deleting records that
you are keeping an audit trail for.
When a record is deleted, the audit records associated with the
record are also deleted.
Instead of designing audited records to be deleted, design them to
have a retired state that keeps them from being seen or used in
most contexts.
©700 | Chapter
Copyright 13: Security
IBM Corporation 2011.
• Because multiple queries must be made consistent to present a
consistent view of things, errors are more likely when using this
security technique than with most other security techniques.
• Because the policy governing what records a person is allowed to
see may be replicated in multiple queries, this technique makes
changing the policy governing what a person can see more diffi-
cult to change and keep consistent.
704 | Chapter 14: Offline Excel Spreadsheets © Copyright IBM Corporation 2011.
Figure 14-2. Process Flow - Inbound - Staging Table Validation
• Use the Distill File workflow task to distill the Excel data into the
IBM TRIRIGA application. See “Distill File Task” on page 722.
706 | Chapter 14: Offline Excel Spreadsheets © Copyright IBM Corporation 2011.
erties for the tag will be in columns D, E, and F. If the tag were in
column A, the properties would be in columns B, C, and D.
Some tags in the mapping worksheet have a corresponding end tag.
This mechanism serves to enclose other tags between the given tag
and its corresponding end tag, giving the mapping a hierarchical
structure. Mapping in either direction starts with a root row. Various
tags in the mapping let the mapping engine navigate to other objects
related to the root through associations. Nesting these tags allows
navigation through multiple association hops. This document refers to
parent and child rows to describe these relationships. For example: if
we follow an association from the root row to row A, the root row is
the parent of row A and row A is a child of the root row. If we then
follow an association from the row A to row B, A is the parent of B and
B is the child of A.
All tag, object, field, association names, and the like are case sensi-
tive.
Records to Excel
This refers to the Tririga to Excel section in the Tririga Object Map on
the offline form. This section defines field mapping from IBM TRIRIGA
form fields to the offline form. The following describes the tags used
for mapping from records to an Excel spreadsheet:
Tririga to Excel
This tag is the root of the record to Excel spreadsheet mapping
and encloses all other tags in the map.
Properties:
None
End tag:
End
Selector
The Selector tag finds existing records associated to the parent so
that their data can be copied to the Excel spreadsheet.
Optionally, the Selector can specify a filter that compares a field
value in the records to a value in the map. It also can filter by
record type.
Sub-tags of this tag are applied to the records found.
Properties:
Association Name – The name on the parent side of the
association.
708 | Chapter 14: Offline Excel Spreadsheets © Copyright IBM Corporation 2011.
Field tag maps field x to cell G4 and the second Field tag maps field
y to cell H4.
The mapping engine will make two copies of row 4 (plus the origi-
nal row makes three rows total) and insert them into the docu-
ment as rows 5 and 6. It will then map fields x and y from the first
record into cells G4 and H4, fields x and y from the second record
into cells G5 and H5, and fields x and y from the third record into
cells G6 and H6. Use this mechanism to create line items in the
Excel spreadsheets from line items in records.
Properties:
Section Name – The name of the section that contains the field
to be mapped. For smart section fields, specify the BO smart
section name, for example, triParkingClause.
Field Name – The name of the field in the current record(s)
from which data will be mapped.
Cell Reference 1 – A reference to the cell to which the data will
be copied.
End tag:
None
Excel to Records
This refers to the Excel to Tririga section in the Tririga Object Map on
the offline form. This section defines field mapping from the offline
form to IBM TRIRIGA form fields. The following describes the tags used
for mapping from an Excel spreadsheet to records:
Excel to Tririga
This tag is the root of the Excel spreadsheet to record mapping
and encloses all other tags in the map.
Properties:
None
End tag:
End
Association
This tag tells the mapping engine to create new child records
from a specified business object, trigger a specified action on the
new records, and associate them with the parent record. Field
tags within the Association tag define how data in the Excel spread-
sheet will be mapped into the newly-created child records.
710 | Chapter 14: Offline Excel Spreadsheets © Copyright IBM Corporation 2011.
End tag:
End Selector
Field
This tag defines how values in the Excel spreadsheet are mapped
to a single field in a record or records. This tag can appear any-
where in the mapping hierarchy. The field mapping is applied to
records that correspond to that level in the hierarchy.
If only one reference property is specified, a single value is
retrieved from the referenced cell in the spreadsheet and put into
the specified field in the records.
If a second reference is specified, the mapping engine collects all
values in the spreadsheet from the first reference (inclusive) to
the second reference (exclusive). The collected values will be set
to the given field in the records sequentially. This mechanism is
most useful inside an Association tag.
If a Field tag inside an Association tag references a range of three
values, the Association tag creates three child records and sets the
first value to the given field in the first created record, second
value to the second record, and third to the third. Use this mech-
anism to extract line items from the spreadsheet to create line
item records.
Excel formatted Time fields are correctly distilled into IBM
TRIRIGA.
Duration fields can be distilled when they are entered into the
Excel spreadsheet in the following format where each element is
optional: y Year(s) m Month(s) w Week(s) d Day(s) h Hour(s) m
Minute(s) s Second(s). For example, 2 Year(s) 3 Month(s) 4 Day(s)
and 5 Month(s) 2 Week(s) 7 Hour(s) 15 Minute(s).
Properties:
Section Name – The name of the section that contains the field
to be mapped. For smart section fields, specify the BO smart
section name, for example, triParkingClause.
Field Name – The name of the field to which data will be
mapped.
Cell Reference 1 – A reference to the cell that contains the data
to be put into the field.
Optional Properties:
Cell Reference 2 – A reference to a second cell in the docu-
ment. Specifying a second reference indicates that this Field
tag is working with a range of values from the document.
712 | Chapter 14: Offline Excel Spreadsheets © Copyright IBM Corporation 2011.
Populate File Task
The purpose of the Populate File task is to copy record data into an
Excel spreadsheet as defined in the Tririga Object Map. The required
organization of the Excel spreadsheet is described on page 705 under
the heading “IBM TRIRIGA Object Map”. This task requires a binary
field to store the Excel spreadsheet that contains the mapping and
which is the target of the populate.
The Populate File task always uses UTF-8 encoding.
Figure 14-4.
The shape for a Populate File task is shown in Figure 14-4. Populate File Shape
The form for a Populate File task is shown in Figure 14-5.
The properties form for a Populate File task is organized into four sec-
tions that have these purposes:
• Name and describe the workflow task.
• Specify the record that the data will come from.
• Specify the binary field in a record that will contain a template
for the Excel spreadsheet.
714 | Chapter 14: Offline Excel Spreadsheets © Copyright IBM Corporation 2011.
tem event. If the value of this field is Secondary BO, then the
Event record that triggered the event is the target record.
• Assignee
If Assignee is selected, then the My Profile record of the user
assigned to the task specified by the field to the right of this
one will be the target record.
of Task
The value of this field is the label of the task that the target
record will be associated with.
The radio buttons under these fields determine how the target record
will be used to determine the record from which data will be copied.
When the properties form is first displayed, only the currently-
selected radio button is visible. There is a button to the left of the
visible radio button. Clicking the button alternately makes all the
radio buttons visible or just the selected radio button visible.
The following descriptions explain the meaning of the radio buttons.
There are fields that appear to the right of some of the radio but-
tons. These fields contain additional information needed for the
choice represented by the radio button.
Here are the descriptions:
Use it
If this is selected, the target record will be the record from which
data will be copied.
Use its Reference
If this is selected, a record referenced by a smart section or loca-
tor field of the target record will be the record from which data
will be copied. When you select this radio button, a window pops
up that allows you to choose from the smart sections and locator
fields in the target record.
After you have selected this radio button, the name of the
selected smart section or locator field is displayed in a read-only
field to the right of the radio button.
Use its Association
If this is selected, a record associated with the target record will
be the record from which data will be copied. When you select
this radio button, a window pops up that allows you to specify the
type of association to use. It allows you to identify the associa-
tion by the type of record that must be on the other end of the
association and optionally the name of the association.
716 | Chapter 14: Offline Excel Spreadsheets © Copyright IBM Corporation 2011.
One of the choices for the business object that created the par-
ent is -Any-. Choosing this will be the equivalent of selecting the
module’s base business object (the one with the same name as
the module).
At the bottom of the section is a read-only field labeled Object Type.
The value displayed in this field is the type of the record that will be
the record from which data will be copied.
718 | Chapter 14: Offline Excel Spreadsheets © Copyright IBM Corporation 2011.
tons. These fields contain additional information needed for the
choice represented by the radio button.
Here are descriptions of the radio buttons:
Use it
If this is selected, the target record will be the record that con-
tains the Excel spreadsheet.
Use its Reference
If this is selected, the record that contains the Excel spreadsheet
will be referenced by a smart section or locator field of the tar-
get record. When you select this radio button, a window pops up
that allows you to choose from the smart sections and locator
fields in the target record.
After you have selected this radio button, the name of the
selected smart section or locator field is displayed in a read-only
field to the right of the radio button.
Use its Association
If this is selected, the record that contains the Excel spreadsheet
will be associated with the target record. When you select this
radio button, a window pops up that allows you to specify the
type of association to use. It allows you to identify the associa-
tion by the type of record that must be on the other end of the
association and optionally the name of the association.
After you have selected this radio button, if you specified an asso-
ciation name, the association name is displayed in a read-only
field to the right of the radio button. The type of record that was
selected appears at the bottom of the Initialize from section in
the Object Type field.
Use any Associated BO from Module ____ of type ____
This option is useful when you want to specify an associated
record without specifying which association to use. This option is
also useful when the association defined in the Data Modeler was
to the base business object and you do not know which type of
business object in a module is selected at runtime.
When you select this radio button, you must specify a module,
unless the module whose name appears to the right of the icon
is the module that contains the business object used to create the
record on the other end of the association. If that is not the cor-
rect module, then click the icon. A list of modules will pop up.
Click the correct module.
720 | Chapter 14: Offline Excel Spreadsheets © Copyright IBM Corporation 2011.
At the bottom of the From Binary Field is a record labeled Field. This
field has a drop-down list that contains the names of the binary fields
in the type of record shown in the Object Type field. The binary field
selected as the value of the Field field is the field that will be
expected to contain the Excel spreadsheet.
If you want to initialize records with information that is determined
by the application’s configuration, you should select the option of
using an existing record in the From Binary Field section.
You specify the value for the Module and Object properties so that
this task knows what kind of record you want to copy values from.
Then click the Record link to find the specific record that contains the
template Excel spreadsheet.
Once you have specified the record that contains the Excel spread-
sheet, you then specify the binary field in the record that contains
the spreadsheet by selecting its name as the value of the Field field.
To Binary Field
The fourth section of the form for a Populate File task’s properties is
labeled To Binary Field. This section specifies a binary field in a
record in which this workflow task will put a copy of the template
Excel spreadsheet that has had data copied to it.
Except for the fact that this section is used to specify the binary field
that will contain this workflow task’s result, the fields in this section
function identically to the corresponding fields in the From Binary
Field section.
The properties form for a Distill File task is organized into three sec-
tions that have these purposes:
• Name and describe the workflow task.
• Specify the record that the data will be copied to.
• Specify the binary field in a record that will contain the Excel
spreadsheet.
722 | Chapter 14: Offline Excel Spreadsheets © Copyright IBM Corporation 2011.
Here are descriptions of the fields in the first section:
Label
This is the label used to identify this task. This field’s text
appears on the shape in the drawing that represents this work-
flow task. Use the standards in “Workflow Naming Standards” on
page 388.
Description
A description of this task goes in this field.
Distill to Record
The second section of the Distill File task properties form is labeled
Distill to Record. The purpose of the Distill to Record section is to
specify the record that data will be copied to.
At the top of the Distill to Record section are fields used to identify a
target record. The target record is used to determine the record to
which data will be copied.
There are radio buttons below the fields. The way that the target
record is used to determine the record to which data will be copied
depends on which one of the radio buttons is selected.
Here are descriptions of the fields:
Take the
This is a drop-down list that can have one of these possible val-
ues:
• Business Object
If Business Object is selected, then the record associated with
the task specified by the field to the right of this one will be
the target record.
• Secondary BO
This option is available if the workflow is launched in response
to an Associate or De-Associate system event. If the value of
this field is Secondary BO, then the record at the other end of
the association is the target record.
This option is also available if the workflow is launched in
response to a SCHEVENTCREATE, SCHEVENTSTART or SCHEVENTEND sys-
tem event. If the value of this field is Secondary BO, then the
Event record that triggered the event is the target record.
• Assignee
If Assignee is selected, then the My Profile record of the user
724 | Chapter 14: Offline Excel Spreadsheets © Copyright IBM Corporation 2011.
selected appears at the bottom of this section in the Object Type
field.
Use any Associated BO from Module ____ of type ____
This option is useful when you want to specify an associated
record without specifying which association to use. This option is
also useful when the association defined in the Data Modeler was
to the base business object and you do not know which type of
business object in a module is selected at runtime.
When you select this radio button, you must specify a module,
unless the module whose name appears to the right of the icon
is the module that contains the business object used to create the
record on the other end of the association. If that is not the cor-
rect module, then click the icon. A list of modules will pop up.
Click the correct module.
You may also specify that the record on the other end of the asso-
ciation must have been created by a particular business object in
the specified module. If the name of a business object appears in
the drop-down list to the right of the module name, then the
record on the other end of the association must have been cre-
ated from the named business object. If -Any- appears in the drop-
down list, then the record on the other end of the association may
have been created from any business object in the named mod-
ule.
To specify that a particular association name is required, click the
icon. A list of the association types defined in the List Man-
ager pops up. Click the association name that you want to appear
to the right of the icon. To retrieve association records that
are not restricted to a particular association name, click -Any-
which appears at the top of the list.
Use its Parent
If the target record is created from a business object that is part
of a hierarchy module and this option is selected, then the target
records’ parent will be the record to which data will be copied.
When you select this radio button, a window pops up for you to
select the business object that was used to create the parent
record. This selection of a business object is not used for filter-
ing. It is used to allow other tasks to access the parent’s fields.
One of the choices for the business object that created the par-
ent is -Any-. Choosing this will be the equivalent of selecting the
726 | Chapter 14: Offline Excel Spreadsheets © Copyright IBM Corporation 2011.
Take the
This is a drop-down list that can have one of three possible val-
ues:
• Business Object
If Business Object is selected, then the record associated with
the task specified by the field to the right of this one will be
the target record.
• Secondary BO
This option is available if the workflow is launched in response
to an Associate or De-Associate system event. If the value of
this field is Secondary BO, then the record at the other end of
the association is the target record.
This option is also available if the workflow is launched in
response to a SCHEVENTCREATE, SCHEVENTSTART or SCHEVENTEND sys-
tem event. If the value of this field is Secondary BO, then the
Event record that triggered the system event is the target
record.
• Assignee
If Assignee is selected, then the My Profile record of the user
assigned to the task specified by the field to the right of this
one will be the target record.
of Task
The value of this field is the label of the task that the target
record will be associated with.
The radio buttons under the these fields determine how the target
record will be used to determine the record that contains the Excel
spreadsheet.
When the properties form is first displayed, only the currently-
selected radio button is visible. There is a button to the left of the
visible radio button. Clicking the button alternately makes all the
radio buttons visible or just the selected radio button visible.
The following descriptions explain the meaning of the radio buttons.
There are fields that appear to the right of some of the radio but-
tons. These fields contain additional information needed for the
choice represented by the radio button.
Here are descriptions of the radio buttons:
Use it
If this is selected, the target record will be the record that con-
tains the Excel spreadsheet.
728 | Chapter 14: Offline Excel Spreadsheets © Copyright IBM Corporation 2011.
Click the business object that you want to appear to the right of
the icon. If you want nothing to appear after the icon, click
-Any- which appears at the top of the list.
Use its Parent
If the target record is created from a business object that is part
of a hierarchy module and this option is selected, then the record
that contains the Excel spreadsheet will be the target record’s
parent.
When you select this radio button, a window pops up for you to
select the business object that is assumed to have been used to
create the parent record. This selection of a business object is not
used for filtering. It is used to allow this task to access the par-
ent’s fields.
The selection of a business object represents an assumption about
what kind of record the parent will be. Because of this assump-
tion, subsequent tasks will be able to access the parent record’s
fields. If the actual parent was not created from the assumed
business object, the task may fail if the actual record does not
have an expected field.
One of the choices for the business object that created the par-
ent is -Any-. Choosing this will be the equivalent of selecting the
module’s base business object (the one with the same name as
the module).
Below the radio buttons is a read-only field labeled Object Type. The
value displayed in this field is the type of the record that values may
be copied from. If the record can have been created from any busi-
ness object in a particular module, then the name of the module
appears in the Object Type field.
At the bottom of the From Binary Field is a record labeled Field. This
field has a drop-down list that contains the names of the binary fields
in the type of record shown in the Object Type field. The binary field
selected as the value of the Field field is the field that will be
expected to contain the Excel spreadsheet.
If you want to initialize records with information that is determined
by the application’s configuration, then you should select the option
of using an existing record in the From Binary Field section.
You specify the value for the Module and Object properties so that
this task knows what kind of record you want to copy values from.
730 | Chapter 14: Offline Excel Spreadsheets © Copyright IBM Corporation 2011.
Using E-Mail
Typically when using the IBM TRIRIGA Connector for Offline Forms
processing functionality, you will want to use e-mail to send popu-
lated Excel files. The system can then use the populated Excel file to
update records.
The e-mail capabilities used for offline processing are not the same as
those used for notifications and do not support the same features as
available for notifications.
To configure the IBM TRIRIGA Application Platform to receive incom-
ing e-mail, you must first set up the SMTP server for your installation.
Details on how to set up the SMTP server can be found in the IBM
TRIRIGA Application Platform 3 Installation and Implementation
Guide. Next, you must set up at least one incoming e-mail address for
the system to listen for.
To create or modify incoming e-mail settings, navigate to Tools > Sys-
tem Setup > System > Incoming Mail Config. It should look like
Figure 14-8.
You can use the Add or Edit actions to create or edit Incoming Mail
Config records.
If you add an Incoming Mail Config record, you will see a form that
looks like Figure 14-9. If you wish to have the IBM TRIRIGA Applica-
tion Platform listen for e-mail on multiple user account / folder com-
binations, set up an Incoming Mail Config record for each
combination.
The following explains the sections and fields in an Incoming Mail Config
record:
UID
This field stores the control number for this record assigned by
the system.
Host
This field stores the name of the host server that will received the
incoming e-mail.
Username
This field stores the user name that will receive the e-mail on the
host server.
Password
This field stores the password for the user that will receive the e-
mail on the host server.
Action
This field stores the name of the action that will be called on the
EmailMessage when a message is received for this user. Often this
field’s value is CREATE.
MailServerType
Select the mail server type from the drop-down list. pop3 is the
default.
When an e-mail is received for this account, a new EmailMessage record
is created. Additionally, new records are created for each attach-
ment to the message and for each e-mail address associated with the
message. The EmailAddress and EmailAttachment records are associated
to the EmailMessage record. Once these records are created and the
action specified is triggered, the EmailMessage record is moved from
732 | Chapter 14: Offline Excel Spreadsheets © Copyright IBM Corporation 2011.
the null state. Attach a workflow to the Action triggered to process
this e-mail and distill any attachments.
Trademarks
IBM, the IBM logo, ibm.com, and TRIRIGA are trademarks or regis-
tered trademarks of International Business Machines Corp., registered
in many jurisdictions worldwide. Other product and service names
might be trademarks of IBM or other companies. A current list of IBM
trademarks is available on the Web at “Copyright and trademark
information” at www.ibm.com/legal/copytrade.shtml.
Microsoft, Windows, Windows NT, and the Windows logo are trade-
marks of Microsoft Corporation in the United States, other countries,
or both.