[go: up one dir, main page]

0% found this document useful (0 votes)
113 views31 pages

tb0 113

Projects are containers that help organize resources for teams working in TIBCO Business Studio. Packages are mandatory containers that store processes and infrastructure in XPDL format, allowing processes to be shared and reused. The process interface specifies events and parameters for dynamic sub-process selection at runtime. Business Studio supports BPMN 1.2 and can export to BPEL 1.1. Packages are validated based on destination environments like BPM, simulation, or iProcess versions. Validation errors are displayed in the Problems view.

Uploaded by

Sanjay Samant
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
113 views31 pages

tb0 113

Projects are containers that help organize resources for teams working in TIBCO Business Studio. Packages are mandatory containers that store processes and infrastructure in XPDL format, allowing processes to be shared and reused. The process interface specifies events and parameters for dynamic sub-process selection at runtime. Business Studio supports BPMN 1.2 and can export to BPEL 1.1. Packages are validated based on destination environments like BPM, simulation, or iProcess versions. Validation errors are displayed in the Problems view.

Uploaded by

Sanjay Samant
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 31

Process Modelling

Projects
They are container for project artifacts.
They help to facilitate sharing &
organization of resources e.g team
members may have different
responsibilities but need to use the same
resources that are available through BS
project. You must create a project to use
TIBCO Business studio. Each project
has corresponding directory in the file
system. Projects can also refer to other
projects.
Packages
It is a mandatory container for processes
& their infrastructure (such as
participants & data fields).
The package & any processes stored in it are saved in XPDL format. Processes can be shared
between packages & projects so libraries of process components can be created & reused.
Process Interface
It is a way of allowing dynamic selection of sub-processes at runtime. It specified the events
& their parameters that must be present in the processes created using that interface.
Besides business process assets, when you create the project, you can decide which types of
assets to include & also designate a special folder for each asset type.
Business Studio process editor supports BPMN 1.2. It allows export to the BPEL version 1.1.
Packages are stored in XPDL 2.1 format. Normally, you don’t use XPDL directly, but
indirectly creating a process package then editing a process within it using the process editor.
A perspective includes the views & set of editors that you commonly use for a specific type
of work. A capability in Eclipse is a mechanism to enable & disable specific areas of the user
interface (UI) - Business Analysis capability & solution design capability. You can switch

between these capabilities using menu


The Welcome page is also available from Help menu. Welcome page includes
 Overview of features available to you
 Sample processes that you can install into your workspace.
 Tutorials that explain how to create a simple process. These tutorials will help you become
familiar with the process editor.
 Links to the TIBCO Business Studio discussion forum & to the TIBCO Business Studio
Developer Network.
Creating Analysis project [See PMS0001]
To create new analysis project, select File>New>Analysis Project.
Project Lifecycle settings
They are Id, Version, Status, and Destination Environments
Version : Default version is (1.0.0.qualifier).The standard Eclipse format for version is
major:minor:micro:qualifier. Specified version will be default for project artifacts such as

Page 1 of 31
Process Modelling

process packages, organization models & can be used to track revisions to the project. The
exact use of project versions should be coordinated with the solution designer working on the
project. Following are the guidelines
major: Incremented when the new version is incompatible with the previous version
minor: Indicates a compatible version
micro: Indicates an internal change
qualifier: Used to identify unique builds may use time format or other convention.
Status : This is for informational purposes - Under revision (for packages in development),
Under test (for packages in UAT), Released (for packages in production).
Destination Environments: Specifies intended runtime environment. Other artifacts (e.g.
organization models) are not affected by project destination settings. All processes are
validated for BPMN 1.2 – additionally, other destinations can be selected to validate
processes for use in specific environments.
 BPM: The process will be validated against BPM version 1.0
 Simulation: The processes are validated for simulation in TIBCO Business Studio as well as
BPMN correctness.
 iProcess: The process will be validated against iprocess engine version 10.5 or higher
If you don’t select a destination environment, basic BPMN validation will be performed. The
exact destination environments that are displayed depend upon the edition of BS & any
addins that you have installed. The specific components that make up a destination
environment can be viewed by selecting windows ->preferences & selecting Destination
Environments. You can add , edit & remove destination environments. If you delete a
destination environment, any process that uses that destination will report a BPMN error in
the problems view. The iProcess destination by default contains Engine, Technology
Plugins, web services. Validation is performed according to the destination components
contained in a destination environment. Any error messages resulting from this validation
will be displayed in the Problems View and indicate which parts of your process need to be
changed. Problem markers are also displayed against objects in the Process Editor.
Positioning the pointer over the problem marker displays the reason for the error. For
iProcess, following destination components can be configured
Engine 10.x, 11.0 or 11.0.1. When you save your process, BS performs validation to ensure
that the process can be directly deployed to the selected version of the iProcess Engine.
Version 11.0 and Version 11.0.1 allow the use of process interfaces that are converted to I/O
templates upon deployment to iProcess.
Modeler: 10.3 or 11.0. The BS performs validation to ensure that process can be directly
imported into selected version of iProcess Modeler.
Technology Plugins: 10.7 or 11.0
Web services: 10.5.1. or 10.6. Validation performed for version of web services plugin.
Workspace Brower: 11.1 BS performs validation to ensure that the forms in the process can
be directly deployed to version 11.1.x of the iProcess Workspace (Browser).
Workspace Lite Forms: 11.0
You can change or select the destination environment after the process has been completed
on the Destination tab of the process properties. To avoid error messages & warnings

Page 2 of 31
Process Modelling

associated with modelling constructs that can’t be executed in runtime environment, set
appropriate destination. You can export your destination preferences to a file so they can be
shared by others.environment on the process. To export destination preferences, select File >
Export > General, select Preferences, and click Next. In the Export Preferences dialog,
select Choose specific preferences to export and Destination Environments. To import
destination preferences, switch to the workspace into which you want to import the
preferences by selecting File > Switch Workspace selecting a workspace, and restarting BS
& then select File > Import > General, select Preferences.
Any problems that result from validation are shown in the Problems view. To correct the
problem do one of the following:
 Right-click the problem and select Quick Fix (if enabled for the current problem). The
gives you the option of having BS correct the problem for you.
 Double-click the problem or right-click the problem and select Go To. This displays the
Process in the Process Editor, highlighting the offending object and allowing you to
manually correct the problem.
You can customize the validation that is performed in the Process Editor. To disable in-
memory validation, deselect Project>Build Automatically. When this is done, any existing
problems remain in the Problems view and markers remain against the resources. To clear
these problems, select Project > Clean, and select the relevant projects. Subsequently, you
can select Project > Build All to rebuild all processes, causing any applicable problem
markers to reappear. Deselecting Project > Build Automatically can significantly improve
performance when editing processes or when performing operations on multiple files in the
Project Explorer e.g. copying several packages to a different location.
Specifically, for each validation error you can specify its severity level as Error, Warning,
Info, or Ignore. To Customize the Process Editor validation, select Windows>Preferences
and expand Process Editor & select Errors/Warnings. You can downgrade the severity of
BPMN errors, however some BS errors are not displayed because downgrading them would
allow processes to be deployed that would be invalid in the runtime environment. At the top
of the dialog there is a drop-down list that allows you to select either BPMN or Simulation.
You can configure the appearance and display of the Problems view by selecting items from
the menu in the upper right of the Problems view: Configure Contents. Two configurations
are provided by default, All Errors and Warnings on Selection. You can create and save
your own configurations. You also can reduce the number of errors displayed by selecting a
different scope. For example, by choosing Selected element only as the scope in conjunction
with the All Errors configuration, you will see all errors for the selected element only rather
than for all elements in the workspace. By default, problems in the Problems view are
grouped by severity of the problems. However, you can change this using the Group By
menu option. For example, to arrange the Problems by their type, select Group By > Plug-in
Problem Type. You can also add or remove types in the previous Configure Contents
dialog
To change package lifecycle settings after project creation, right click on project and select
Properties > Lifecycle Any new project artifacts will be created with the new settings e.g. if
you change the version, new process packages will be created with the new version. If there

Page 3 of 31
Process Modelling

are artifacts that were created with previous settings that you want to update to new settings,
right click on project and select Refactor >Project Lifecycle.
Assets
These are usually stored under special folders under the project & include the following. The
BS is extensible there may be other types of assets displayed.
Asset Contents Special
folder
Business The XPDL package file and all associated processes, data Process
Process fields, parameters and so on Packages
Forms All the files and parameters necessary to display forms Forms
Organizatio The organization model it’s components such as organization Organization
n Model units, positions, groups and so on. File name ends with .om.
Service The WDSL files for any web services that you import into Service
your project. You can specify either abstract or concrete Descriptors
WSDL file. An analysis project doesn’t have a Service
Descriptors special folder by default, you need to create one
Business The files for any business object models that you create. File Business
Object name ends with .bom. Types are Business Object Model (no Objects
Model profile), Concept Model & Persistent Business Object Model.
Business There are two types of business assets in BS: Quality Process Business
(business cases, project plans & so on) & Ad-hoc assets Assets
(supporting documents, spreadsheets & so on that are not part
of quality process).**
WSDL file automatically generated for a business process. Generated
Services
**To include quality process, create a new Quality Process project to contain the templates &
use it in your project. To create a new Quality process project, select File>New>Quality
Process project or select File>New>Other.... then select Quality Process Project from
dialog or select File>New>Other.... then select Business Modelling> Quality Process
Project from dialog. You can create either empty Quality archive project (into which you can
copy your own template) or select PRINCE2 templates. If you used the PRINCE2 templates,
they are used to create the project [See M0004]. Quality processes can be used in your
project either by associating quality process project at the time of project creation or by right
clicking standard folder & selecting Special Folders>Other>Use as Business Assets. When
prompted, specify quality process project containing correct templates (or accept the default).
You can add ad-hoc business assets by right-clicking & selecting New > Folder or New >
File, and selecting the appropriate Parent Folder.
You can disable a special folder by highlighting it in the Project Explorer, right-clicking, and
selecting Special Folders > Do not use as SpecialFolderType.
Gadgets
You can add objects either using the gadgets that appear on the existing or using the tools on
the palette. A gadget is a user interface aid that allows you to easily create sequence flows
and other links between objects. The advantage is that it is quick to do but can’t perform all
of the tasks traditionally performed from the palette. When object is selected, initially one
gadget of each applicable type is displayed. If multiple gadgets of a particular type are
available, these are displayed when mouse cursor is moved over to first.
Cycle Object Type Gadget : Change type of task by cycling through the different types.

Page 4 of 31
Process Modelling

Create Connection Gadget : Create sequence flows to existing object or create and connect
to new object. If you add more connections or references, additional gadgets are added. These
are only visible if you position the mouse over the visible gadget.
Link Event Gadget : Designate a throw & catch link event pair.
Signal Event Gadget : Designate a throw & catch signal event pair.
Reply Activity Gadget : Specify a request-reply relationship (throw and catch message
events or send and receive tasks)
Reference Task Gadget : Select task that current task will reference.
You can control display of gadgets using toolbar tool or the Show Click/Drag Gadgets drop-
down list from Diagram toolbar. To add an object, click the Create Connection gadget and
drag & drop it in a lane content area or embedded sub-process content area. A popup menu is
displayed showing a selection of applicable main object types that can be created. You can
drag onto existing sequence flow & the object is inserted into sequence flow
Palette
To add more than one object of the same type, hold down the Ctrl key. To customise palette
preferences, select Customise from the right click menu on the palette. This allows you to
define preferences such as the default tool drawer states on editor start-up. There is also a
favourites drawer that you can customise by using Hide checkbox

You can connect objects by using Create Connection Gadget or using connection tools on
palette e.g. sequence flow. While drawing the sequence flow, you can add bendpoints by
right-clicking or pressing the spacebar as you create the flow. You can use CTRL or Shift key
to select multiple objects.
Finding Objects
Press Ctrl+F or click the icon on the toolbar.
Press Ctrl+F or click the icon on the Project Explorer to find workspace elements. The
wildcard ? returns all elements. Use the * wildcard to restrict the results e.g. *2 will return all
the matches ending with 2. Wildcard * doesn’t itself return any results; it only works in
conjunction with a string.
Processes created in previous versions of TIBCO Business Studio must be migrated to the
current version before they can be opened.
Package [See M0002]
Following are ways to create a package

Page 5 of 31
Process Modelling

 Right click the Process Package folder under which you want to create the package & select
New>Process Package
 Select File>New>Process Package menu
 Select File>New>Other menu. Select wizard dialog is displayed. Select Business Process
Modelling >Process Package option.
To copy & paste the package, use CTRL+C to copy & CTRL+V to paste. If copying the
package within the same project, you are prompted to enter a new name. If copying the
package to a different project when a package of that name already exists, you are
prompted to overwrite the file. After copying a package, errors similar to the following are
displayed in the Problems view. To correct this, right-click the problem, & select Quick Fix.

By default when you create a project, BS creates a package and process as well. The default
packages folder is called Process Packages & the default packages file is
ProcessPackage.xpdl. Package Label is used for purposes such as simulation reports. Default
package name is ProcessPackage. Package header information contains following things:
Author: Username of the user who created the package.
Created: The date/time that the package was created.
Description: Text description of the package
Document Location : URL or filename of any supporting documentation.
Status: Package lifecycle status for informational purposes
Business Version: version information. Version you specify here is unreleated to any source
control system and their use is entirely user defined.
Cost Unit: Three letter currency code for content assist.
Langauge: Used for content assist.
Processes
There are two types of processes in TIBCO business studio
Business Process: It models actual and future processes in an organization that involves
more than one person. Business processes are short or long-lived.
A pageflow process: It is a short lived process (always executed in a single sitting) designed
to present user interface pages to the user in sequence. They are always executed by one
person (the person that initiates the process). A user task in a pageflow process differs from a
user task in a business process. All tasks that are available in business process are available
within a pageflow process with exception of a business process user task. It is stored under
the Processes branch of project explorer alongside business processes.
 Pageflow user tasks don’t have participants assigned to them; this is because the user who
initiates the process instance completes all tasks in the pageflow process.
 Pageflow processes can’t contain lanes or pools.
 Pageflow user tasks don’t create work items. The user interface pages are presented to the
user without them needing to access their work queue.
 Pageflow user tasks don’t restrict the type of technology used to create the user interface
page that is displayed. This allows the same process to be deployed to several runtime
environments that utilise different user interface display technologies.

Page 6 of 31
Process Modelling

 Pageflow processes are not persistent.


 Pageflow processes are not audited.
 Pageflow processes are not transactional. If transactional control is required, chaining might
be a better choice than a pageflow process.
The Process Editor provides tools on a palette that use BPMN. Some objects such as
business assets can be shared at the project level, others such as data fields & participants can
be created at either the package level (where they can be shared amongst processes in that
package) or at the individual process level (where they can only be used by that process).
To create business process [See M0003], use one of the following options
 Select the package or package folder or any process or processes node , right-click and
select New > Business Process.
 Select File>New>Other menu. Select wizard dialog is displayed. Select Business Process
Modelling >Business Process option (the first dialog is the Project and Package dialog,
where you must specify a valid project and package. This dialog is not displayed if you use
first option. You need to click on back button to get this dialog)
You can select a process interface & process templates as the basis for your new process.
This creates a process with the necessary events, parameters that are specified in the process
interface. [M000302] The Extended dialog allows you to add optional supplemental
information to the xpdl for the process. Default name for the process is ProcessPackage-
Process. To delete process, right click on the process and select Delete from context menu or
select Edit>Delete. It is possible to delete a process by deleting the XPDL file of the package
that contains the process in windows explorer. This will delete all processes in that package.
You must refresh the project Explorer to see updated view of the workspace.
Extended Attributes
Extended attributes can be used to add extra information to schema such as
 XML e.g. an XSD file used by a web service.
 Plain test e.g. Supply Chain Management (SCM) metrics and best practices.
You can add extended attributes when creating new process or process interface or using
Extended properties tab for objects that support extended attributes.
Name: Name for the attribute (you can’t include spaces in the name)
Value:
Escape Body: Select this check box if you want the parser to interpret the contents of the
body attribute as text rather than XML (you don’t want parser to interpret symbols such as <
or >). If you are entering XML, don’t select this checkbox.
Body: either Text or XML
Project references
Projects can refer to other projects. This allows you to do the following
 Invoke sub-processes from another project.
 Use a process interface from another project.
 Create data field or formal parameter of type external reference
 Select a WADL from another project.
Project references can be created in two ways

Page 7 of 31
Process Modelling

 Right click project, select Properties & highlight Project References & select the project.
 Automatically when you select an object from outside the current project.
Importing and exporting projects
To import either right click project or select File menu & select Import.
To Import Project: Select General>Existing Projects into Workspace. Select either
Select root directory: to locate other projects that are somewhere on the file system or
Select archive file to see projects that have already been archived which you may want to
import. Select the project to want to import (doesn’t work if there is already a project of the
same name in workspace).
To import archive files: Select General> Archive File. Select archive file & into folder &
“Overwrite existing projects without warning” tick box.
To export either right click project or select File menu & select Export.
To Export Project to archive file: Select General>Archive File. Select projects to export,
name of the archive file and archive options - (save in zip format or save in tar format),
(create directory structure for files or create only selected directories) & compress the
contents of the file.
To Export Project to file system: Select General>File System
Using Process Fragments
Rather than reusing the entire process, you can use fragments view to quickly create new
processes. BS provides some predefined BPMN fragments & you can also create your own
process fragments e.g. there may be process patterns that you frequently use Any fragments
you have created (except BS predefined fragments) in previous version of BS must be
migrated to the current version. To migrate fragments that you have defined, select File
>Import>Existing Fragments Projects into Workspace (See import project).
If Fragments view is not visible, select Window>Show View > Fragments (Make sure that
process is selected). To use predefined BS fragments, expand BPMN Process Fragments
folder & select & drag fragment on the process. You can use copy & paste operation on
context menu or Edit menu or copy & paste tool on Fragment window.
To create custom fragment, create a new category by either right-clicking BPMN Process
Fragments in the Fragment Explorer and select New>New Category or clicking the Create
New Category tool on Fragment Window. Holding down the CTRL key, select the
activities & sequence flows in the process that comprise the fragment. Copy and paste the
fragment into the Fragments view. The fragments that you create are stored in the category
you specify & can be used to create new processes in the same way as pre-defined fragments.
.bsProjects folder contains your custom fragments.
You can’t delete predefined fragments. To delete custom category or fragment, use delete
operation on context menu of category or fragment or Edit menu or delete tool on Fragment
window. To set properties (name & description) for category or fragment, use Properties
operation on context menu of category or fragment or Properties tool on Fragment window.
To refresh category, use Refresh Categoy content tool on Fragment window. You can drag
fragments and drop them into other categories.
Using Source control
The Eclipse feature for integrating with Source Configuration Management (SCM) product is
known as the Team synchronization. Since Eclipse provides CVS by default. SCM is one part

Page 8 of 31
Process Modelling

of Application Lifecycle Management (ALM) dealing only with the preservation of revision
of software at different times, not the editorial & approval processes that drive those different
revisions. Subclipse is an Eclipse plug-in that adds Subversion integration to the Eclipse
environment & is bundled with BS. Right-click an existing project that contains items you
wish to source control. Select Team > Share Project. Obtain the URL for the Repository
location from your subversion administrator. To create a project from existing project from
source control, select File>Import>SVN>Checkout Projects from SVN. Choose either
Create new repository location or Use Existing repository location. You can browse SVN
repositories by selecting Window>Open Perspective>Other> SVN Repository Exploring
The default workspace location is c:\Documents and Settings \username\workspace.
If you are using Asset Central and want to delete a project that you have put in Subversion, it
may appear that you have deleted the Project using Asset Central, however it remains in the
Subversion repository until you delete it using another tool such as TortoiseSVN, the
command line interface to Subversion, or a web-based tool.
Creating Process Package Documentation [See M0007]
Select File > Export. Expand Business Process Management and select Process Package
Documentation . Select package of process you want to export. Select a destination for the
export by either Selecting Project (to put the export in the \Exports\Process Documentation
sub-directory within your project directory), or Selecting Path to specific a directory for the
export. Select the elements of the process that you want to include in the generated process
documentation.
To create process package documentation from command line
TIBCOBusinessStudio.exe –application com.tibco.xpd.procdoc.rcp.document –nosplash –
data {workspace} [-contentoption1 on|off -contentoption2 on|off] XPDLpath\file
HTMLpath\file
To view process package documentation, Navigate to the directory where you created the
HTML file and open it in a web browser.
Presentation channels
They control how tasks will be displayed to the user after deployment. When you use
presentation channels, you can choose between Workspace Web, Workspace Email &
Openspace Web. This is ignored for those with iProcess as their destination environments.
To edit Presentation channels at workspace level, select Window > Preferences >
Presentation Channels. expand Default Channel (Default) to view the presentation
channels. Click on Workspace Email to view its attributes.
mailTemplateLocatio This is currently TIBCO Branded.
n
mailSubject A Brief summary of the contents of the message.
fromAddress This should be valid address depending on your SMTP server
settings
ccAddress Optional (delimited list of receipients)
mailHeaders Optional (use format Header Name : Header Value)
attachments A user friendly name of the file attachment.
presentationChannelId This is the ChannelId used when the user clicks the HTML link
in the pushed email message. The default setting is

Page 9 of 31
Process Modelling

GIGIPull_DefaultChannel. This is a mandatory field


The following tokens can be out into any of the above Email attributes
 %%token.workItemId%% - The work item id.
 %%token.entityName%% - The entity name who requires push notifications as defined in
the Organization Model.
 %%token.mailDate%% - The date & time the pushed mail message was sent
To edit at project level, click on Configure Project Specific Settings. To restore default
values, you can click Restore Defaults.
Activity & Task
Activity can be atomic or non atomic (presented by sub processes) Atomic activities are
represented in the Process editor by tasks. Activities may be triggered by events & may
involve judgement on presented facts & performing an action.
Task represents an atomic activity - it is not broken into finer level of detail.
Task
User Task Task that requires human interaction with software application. They can be
further configured for inbound and outbound parameters. You can also
generate pageflow process from the task.
Manual They are completed by a person without using software.
Task
Service Tasks that can ideally complete without human interaction e.g. email
notification or a web service .Script task and service tasks can be used to
Task achieve the same results. Only small and simple tasks are implemented using
script tasks because properly written services are easier to maintain and test.
Script Task Using the business analysis capability, you can add text to a script task to
describe desired behaviour of the script. (Script Defined as properties can be
Free Text, Transform or Unspecified).However by switching to solution design
capability or by clicking Provide Implementation Details in the Properties
view for the task, you can enter JavaScript to a script task.
Send Task They are used to send messages to a system or person outside of the process
(often using a web service). They can be paired with a receive task or message
event to form a request response operation
Receive They are used to wait for a message from a system or person outside of the
Task process (often using a web service). They can be used to start a process as long
as it has no incoming sequence flow & there are no start events in the process.
On the Interface tab, you can add parameters to receive tasks However you
can’t add data fields because data fields are used internally in the process &
parameters in this case are inputs from an external process. You must also
ensure that incoming messages are received by the correct process instance.
Reference They refer to another task & prevent you from having duplicate the same task
Task several times in a process. You can create a reference to another task using
either the dragging Reference Task gadget on the reference task to task you
want to refer or in the Properties view for the reference task (check Reference
Local Task & complete the Referenced Task field by clicking and selecting
a task from the list:
You can click the Reference Task gadget to go to the referenced task, or drag the Reference
Task gadget to create more references.

Page 10 of 31
Process Modelling

Sub-Processes
There are two types of sub-processes: embedded & reusable. A sub-process that is embedded
can be re-factored into reusable sub-process and vice versa.
Embedded sub-process has following characteristics
 It is fully contained within the parent process and is executed within the parent process.
 Activities within the embedded sub-process have access to the same data fields and
parameters as the parent process and package.
 No data mapping is required. It can’t contain lanes and pools.
Re-usable sub-process defines a call-out to another process.
 The called process exists as a separate process. It can be started from other processes.
 The called process doesn’t have access to data fields and parameters of the calling process
and package. For this reason, data mapping must be performed to & from the called process.
A sub-process (either embedded or independent) can be specified as transaction using the Is a
transaction check box.
Resource Patterns and work distribution
Resource patterns model how work to be distributed to resources. To support the modelling
of workflow patterns, the following sections are available on the Resource tab .
Resources (user and manual tasks): The participants is same as the participant specified
on the general tab & specifies who or what completes the task. You can specify Initial
Priority which indicates relative urgency with which the item should be completed.
Distribution Strategy (message events and user tasks) : It provides hints to the destination
environment on how to distribute work items to the user task participants. The exact method
with which work items are offered & allocated differ depending on the runtime environment.
Offer To All: Select this option to specify that you want all users that match the participant
definition to have opportunity to accept or decline the work item. Once a user opens a work
item it is allocated to them & removed from the work lists of other users in that group.
Offer ToOne: Select this option to specify that you want only one user that matches
participant definition to have opportunity to accept or decline the work item. If the user
declines the work item, it is offered to another user that matches participant definition.
Allocate ToOne: Select this option to automatically allocate the work item to a user that
matches participant definition.
Piling (user and manual tasks): Multiple instances of that user tasks in a user’s work queue
will be presented to the user in sequence (in preference to other work items). To specify
piling on a work item, select the May be piled checkbox and specify Maximum number of
items to pile.
Separation of Duties (user & manual tasks): This pattern stipulates that you want specific
tasks executed by different resources e.g. the resource that prepares a contract is different
from the one who witness it. There are several ways to specify this pattern [See PMS0023]
 On the right-click menu in the Process Editor [Resource patterns > Create Separation of
Duties Group]
 On the Resource tab in the Properties view for the task.
 On the Resource tab in the properties view for the process.

Page 11 of 31
Process Modelling

To see other task groups, click the See all task groups(s) in the process link on the
Resources tab. This displays the Task Groups tab for the process.
Retain Familiar (user & manual tasks): This pattern stipulates that you want a specific task
to be executed by same resource that executed a previous task in the same process instance.
However this is always not possible in the runtime environment e.g. it may be that by the
time the later tasks in a retain familiar group are reached, the original participant is
unavailable or not in the participant set. In such cases, the work item is delivered as normal
according to the distribution strategy. There are several ways to specify this pattern,
 On the right-click menu in the Process Editor Resource patterns > Create Retain
Familiar Group]
 On the Resource tab in the Properties view for the task.
 On the Resource tab in the properties view for the process.
Chained Execution : Specifies that the selected sub-process implements the chained
execution resource allocation pattern. It specifies the intention that the workflow engine
should automatically start next work item in a case one previous one has completed. This
keeps the resource constantly processing a given process instance. For embedded sub-
process, check Chained Execution property in General tab of Properties view.
The Workflow Patterns initiative (a joint effort of Eindhoven University of Technology and
Queensland University of Technology) provides a conceptual basis for process technology.
Their research identifies numerous patterns that can be supported by a workflow language or
a business process modelling language. Many of these patterns are supported in BS.
Connects flow and non-flow objects or specifies the compensation
Association
task for a compensation event on a task boundary. You can change
the direction in Properties view – None, Source to Target, Target to
Source, Both
Used for informational purpose. It is usually associated with flow
objects (also sequence or message flow) with an association
They serve to explain or clarify the process. They can be connected
to flow objects (for example, tasks) using an association.
Groups are used to indicate a relationship between elements of a
process by enclosing them in a dashed line. It can span lanes &
pools. They are not preserved upon export because they have no
meaning in the runtime environment. Because the group is a separate
layer that is overlaid on process, it is not deleted when a lane or pool
is deleted even when group is fully enclosed within lane or pool.
Swimlanes They consist of lanes and pools.
Lanes : It is a subdivision of a pool that is used as a container for partitioning processes.
How you use lanes is specific to your business. It can be Normal or Closed. Contents of a
closed lane are not visible & are used for “black-box” processes where you don’t know the
details of contained processes. If you delete a lane, all the objects in that lane are also deleted
(use Ctrl+Z to restore). Sequence flow can connect objects in different lanes.
Pools: It is used as a container for partitioning in ways that make sense for your business. A
pool is commonly used to document a process in a self-contained system. Typically business
analyst focuses on just one system or pool but sometimes needs to show interactions with

Page 12 of 31
Process Modelling

outside systems. Pools are used in conjunction with lanes & are also related to message flow,
which can also be used to show message flow between objects in different pools.
Controlling Flow
Message Indicates asynchronous flow of messages between objects in separate pools or
Flow between pools
Sequence Indicates order in which activities will be performed. You can setup them
Flow between flow object (activities, events & gateways). Type property has
following values
: Shows the default flow from a gateway or activity that will be
taken if no conditional flow has its condition met.
: Only followed if associated condition is met.
: Indicates a flow doesn’t have a condition associated with
it (the default). This path will be taken in all cases.
One statement is allowed in script for conditional sequence flow which must
evaluate to a Boolean value.
Using Loops
You can select type of loop applied to a task either in the Properties view for that task
(General> Activity Markers) or by right-clicking the task & selecting Activity Markers
menu. BS supports standard and multi-instance loops as defined in BPMN.
Standard Consists of a Boolean expression that is evaluated before or after each cycle of
loop loop. If expression evaluates to true, loop continues. In Loops tab, specify
Evaluate Loop Condition either Before (loop while condition is true)- similar to
while loop or After (loop until condition is true) – similar to do ...while loop.
Optionally specify Loop Maximum to control maximum number of times the
activity is performed. Script Defined As can be either Free Text (A BPMN
warning is generated if you leave script area blank )or Unspecified or JavaScript.
Multi It has an expression that evaluates to an integer & is evaluated only once (before
Instance the activity is performed), the resulting integer specifies the number of times the
loop activity should be performed. In Loops tab, specify Ordering either Sequential
(instances of the activity to occur in succession) or Parallel (instances of the
activity to occur at same time). Flow Condition Property has following values
No Condition (perform outgoing flow for each completed instance)- equivalent to
no gateway or “ uncontrolled flow”, One(perform outgoing flow once first
instance completes)-equivalent to exclusive gateway, All(perform outgoing flow
when all instances complete)- equivalent to parallel gateway, Complex
(Behaviour defined by complex exit expression).There are 3 tabs to specify scripts
Loop Expression: Specify either a script that evaluates to an integer or a
description of desired script (except if Complex as the Flow Condition is selected
or planning to implement control-flow pattern WCP-15).
Complex Exit Expression :
Additional Instances Expression: Used for control-flow pattern WCP-15
(additional activity instances may be required at runtime)
Ad-hoc Indicates an embedded sub-process marker that contains activities that have no
pre-defined sequence. Number of times the activities are repeated is completely
determined by performers of the activities & can’t be defined beforehand.
Example – Multiple instances without synchronization (WCP-12)

Page 13 of 31
Process Modelling

This workflow pattern specifies that multiple instances of an activity should be created,
each instance being independent and able to run concurrently with other instances. Note that
 The number of instances required is known and specified at design time
 The tasks instances do not need to be synchronized upon completion.
 Each task instance has access to the process data (data fields, parameters and so on)
Set Activity Markers property to Multiple Instance Loop. On Loops tab, set Flow
Condition to No Condition. Set Loop Expression as Free Text & Describe no. of instances
script to 3. To recreate WCP-13, which is exactly like WCP-12 except that the activity
instances must be synchronized, set the Flow Condition to All.
Gateways
They are control mechanism for the sequence flow in the process. When a gateway has
multiple sequence flow output, you can specify the order in which outgoing sequence flow is
processed. You can view the current order by highlighting one of the sequence flows and
placing the pointer over the outline numbers that appear. To change the order of evaluation,
drag the numbers that appear on the sequence flows. Regardless of the selected order of
evaluation, conditional sequence flows are always evaluated before default sequence flows.
Gateways with multiple conditional output sequence can’t be deployed to iProcess.
Exclusive There are several paths through which process can continue, but only one
(XOR) chosen when process is run
XOR Data The sequence flow is chosen based on expression using data from the
process. You can disable the display of the X in the Property view for the
gateway by deselecting Show “X” Marker
The sequence flow is chosen based an external event (e.g. a JMS message)
XOR Event
Inclusive (OR) It is used for branching, each output Sequence Flow is independently
evaluated according to an expression. This means that anywhere from zero
to maximum output sequence flows can be taken. You should either
provide a default sequence flow or ensure that at least one sequence flow
evaluates to true. When used to merge flow, any upstream sequence flows
are synchronised, but gateway doesn’t wait for all sequence flows.
Parallel (AND) It is used to fork or merge several parallel paths (synchronization). When
several sequence flows enter a parallel gateway, the process flow waits
until all arrive at the gateway before continuing.
Complex It is used to fork or merge depending on how an expression evaluates.
When used as a decision, the expression determines which of the outgoing
sequence flow are chosen for the process to continue. When used to merge
flow, the expression determines which of the incoming sequence flows is
required for the process to continue. Join Type property in Join
Configuration section can be either Unspecified or Continue when ‘n’
Parallel Flows Arrive [If selected, specify Number of Incoming Flow
(Number of input Sequence flows are required before output sequence
flow is followed) & Parallel Split Name (upstream parallel gateway that
this complex gateway is handling)]
Events
Start events can be used to indicate the start of a process or to control how a process is
started or triggered. They are optional and “catch” events.

Page 14 of 31
Process Modelling

Intermediate events can be placed after start events and before end events to indicate
messages, exceptions, compensation, and so on. Most types of intermediate events can also
be placed on the border of the activity, where they are considered as “catch” events. An event
that is located in sequence flow "throws" an event that can be "caught" by a catch event.
Catch intermediate events can be placed in flow, or on a task border. An in-flow catch event
halts the flow until the event is triggered. A catch event attached to a task border usually
cancels the task when the event is triggered. In BPMN, when an event of any type on the
boundary of a task fires, task is cancelled and exception flow from that event is followed. To
create reference between throw and catch events either use Properties view or drag Link
Event gadget from throw event to corresponding catch event. Once you link a throw and
catch event, you can click the Link Event gadget to go to the catch event. BPMN imposes
following restrictions. Although BS allows them but any invalid constructions are reported in
the Problems view.
 Intermediate events of type None and Link can’t be placed on boundary of the task.
 Intermediate events of type Cancel and Multiple cannot be placed in sequence flow
End events indicate the end of a flow or branch. End events are optional, however if a
process contains a start event, it must contain an end event.
Type S IC IT E Description
None To Specific Trigger for the event e.g. e.g. to start process
as sub-process
Message Message is sent to one of the following: Start the
process, resume the process, and signify the end of the
process.. Message (End) event can either be a response
to the start message or a different message. Intermediate
throw and catch & End message can be implemented
using a Web service
Timer Event is triggered at a specific date/date or regular time
interval (time cycle). When Catch Timer event placed on
the boundary of a task, a time event defines a deadline
for the task. In the Properties view for the event, there
are two options you can select (Withdraw Task on
Timeout & Continue Task on Timeout).
Error Ends a sub-process with an error.
Cancel Ends a transactional sub-process. On a task boundary,
catches the cancel event thrown (triggered if a cancel end
event is reached within the transaction sub-process or if
transaction protocol “cancel” message is received while
transaction is being performed) from within the sub-
process. Cancel end event is used within a transaction
sub-process to trigger a cancel intermediate event
attached to sub-process boundary.
Compensa Either throws or catches a call for compensation. Used to
tion process compensating activities for previously executed
tasks. If located in sequence flow of the process, this
event throws a call for compensation. If attached to the
boundary of an activity, this event catches named

Page 15 of 31
Process Modelling

compensation call. Set Select specific task to


compensate (no selection=compensate all) property
Condition Triggered based on the evaluation of conditions. Specify
al Condition Name property.
Link Creates a "go to" or "off page connector" to break up a
process for better legibility. In Throw Link Event
Properties, Links To signifies reference to Catch Link
event. Back Button to go to Throw Link Event and
Reveal Button to go to Catch Link Event.
Signal Broadcasts or catches signals
Multiple Indicates that one of several possible triggers are to be
thrown or caught. Multiple End Event indicates that
there is more than one result that will occur when the
process ends.
Terminate Ends the process and all activities within without
compensation or error handling.
Timer events
Set Date and/or time & cycle properties. Script defined As property has following values
(depending on destination environment): Free Text (Text will be lost if you change the select
JavaScript from the Script Defined As list), JavaScript, Unspecified (if no description or
script specified), Constant Period (specify years, months, weeks, days, hours, minutes,micro
seconds). For the iProcess, Constant Period is translated into a Deadline Expression. Not all
time units are available for all Destination Environments e.g. Seconds and Micro Seconds are
not valid in an iProcess Deadline specification, so you cannot specify these units for a process
that will be deployed to the iProcess Engine. It can however be empty for the iProcess
Modeller Destination Environment.
Error Events
Attached to task boundary can be set to catch any error or errors thrown by the task to which
it is attached. When attached to reusable or embedded sub-process task, it catches errors
thrown by activities within the process, end error events, process interface error events (if
reusable sub-process task references a process interface rather than a process) & any other
error throwing activity executed within the sub-process.. Either catches the specified error or
catches any error if no specific error is specified. Catch Error Code property has default
value <Catch All>.
Catch All: The event catches any error thrown by any event.
Catch By Name: The event catches an error of the specified name, thrown by any activity. To
do this, click Select Error and select the Select Unspecific Error By Name Only checkbox.
Catch Specific:  The event catches a specific error thrown by a specific activity. Click Select
Error and deselect the Select Unspecific Error By Name Only checkbox. The dialog lists
events and activities that throw error codes.
Thrown By property has default value <Any Activity>.
For Error End events, specify Result Type as Error. There are two options: Throw
Process/Sub-process Error (Specify Enter Error Code property) & Throw Incoming
Message request Fault (Specify Request Activity property)

Page 16 of 31
Process Modelling

Causes of invalid error events


 After configuring a catch error event, the event that throws the error code is deleted.
 The activity no longer throws the given error.
 The event is detached from the task.
 The activity that throws a specific error is no longer processes as a result of the task to
which the event is attached.
To fix the error event, click Select Error. If possible BS identifies the closest match to the
originally selected error code. Select an error code and click OK.
To Map error data, click the Map From Error tab to map error parameters to process data.
The content of the left side of the Map From Error tab depends on the configuration of the
General tab
Signal Events
With a throw/catch signal event pair, an
inflow signal event broadcasts a signal, and if
there is an active task with a signal event on
the task boundary, that event "catches" the
signal, cancelling the task and following the
exception flow. In this example, if the default
flow for the XOR gateway is taken, the inflow
signal event broadcasts a signal. If the task
with the signal event on its boundary is active,
it will catch the signal, cancel the task and
proceed with Task 2. If the task is not active, no cancellation occurs. This is useful when
either Task 5 or Task must be completed. You must specify a signal name with a throw signal
event. With catch signal event, a signal name is optional. If no signal name is specified, it
catches thrown signals in the process (while the task it is attached to is active) otherwise it
only catches signal events that throw that signal. When you specify the signal name for catch
signal event you can press Ctrl +space to select available signal events. You can also use in-
flow catch signal events to pause flow until the specified (or any signal) is broadcast. A
signal end event or Signal throw broadcasts a default signal name (signaln).
Implementing Message events
Receive one-way  Start message event (if the process is started upon receipt of
request from external the message)
application  Intermediate catch message event
 Receive Task – It is used in place of catch message event.
Send one-way request  End message event
to external application  Intermediate throw message event
In Properties view, ensure that Send One Way Request
property is selected. Throw message Events are set to one way
request by default.
 Send Task : It can be used in place of Throw Message Event
Receive request-  Start message event or Intermediate catch message event, or
response message from Receive task
an external application paired with
 Message end event or Intermediate throw message event or

Page 17 of 31
Process Modelling

Send Task
In Properties view, ensure that Reply To Upstream Incoming
Request property is selected. Set Request Activity and Message
Name property. End message events are set to reply to upstream
requests by default. In addition, if there is only one upstream
request (for example, a start message event), the end event is
automatically configured to reply to that request. The tasks
between the request and reply parts of the process should
complete quickly enough that they do not cause the service
calling the process to timeout. For this reason, avoid putting
user tasks or manual tasks in between the request and reply
parts of the process. The start message event and send task can
be exposed as a synchronous receive-request operation.
Send request-response Service Task
message to an external
application
Data Fields and Parameters
Data fields identify inputs and outputs of an activity. Parameters are input to or output from a
source external to the process. Parameters can only be created at process level but data fields
can be created either at package level or at process level. You can change process level data
field to parameter by right clicking it & selecting Convert To Parameter. The default mode
for converted parameters is In/Out, meaning that they can be specified as either input or
output. Data fields & parameters share the same basic types (Integer, Text & so on), however
they have different properties.
 Parameters can be specified as mandatory (they must be present at runtime)
 Both data fields and parameters can be specified as read only. For data fields, this means
that they can only be assigned by their initial value setting. For formal parameters, it means
that once input to the process they can’t be re-assigned e.g. in scripts or user tasks.
 Data fields and parameters can be an array of basic types e.g. array of Text). In iProcess,
you will see a Warning message if an array field name exceeds 8 characters & if a data field
in general exceeds 15 characters.
 Parameters can also be specified as input, output or both by selecting mode (In, Out or
In/Out). The mode is indicated by icon next to parameter.
To add data fields and parameters [See M0007]
Right Click on Process (process or Data Fields folder) or Package (Package folder or Data
Fields folder) & select New>Data Field from Context menu OR
Select File>New>Other...>Business Process Modelling>Process Content>Data Field
menu. For Parameter, Parameters is a special folder OR
From Properties view of Parameter or Data Field, by clicking button. This method is
better if you need to create several data fields or parameters.
If the Data Fields folder is empty under a package, it will be hidden by default. This is
because the preferred usage is to define Data Fields at the Process level. To Show empty Data
Fields folder under a package, in Project Explorer click the View Menu icon in the top right
corner, then select Customize View & deselect BPM Package Data Fields.

Page 18 of 31
Process Modelling

Values to be entered while creating a Data Field or Parameter: Mandatory (parameters


only), Read Only, Mode (parameters only): In, Out or In/Out, Basic Type(Text, Decimal
Number, Integer Number, Boolean, Data, Time, Date Time or performer), Initial Value (for
data fields. For arrays you can add more than one value.), Allowed values( For parameters,
you can specify the permitted input values -values that may be supplied by application
starting an instance of the process), Declared Type, External Reference (allows you to refer
to object defined in the Business Object Modeller), Array(check box),Documentation URL
and Description, Extended Attributes
Correlation Data
It is used to ensure that each incoming message is received by the process instance to which it
applies. The incoming data to a receive task or catch message event is compared to the
correlation data in existing process instances to determine whether it applies to that process
instance. You must initialise the correlation data with a value, either on the start message
event or subsequently e.g. in a script task. After creating correlation data fields & associating
them with the relevant events or tasks, the correlation data must be mapped with the
incoming data. There are several ways to create correlation data,
 From Properties view of Correlation Data, by clicking button
 Select File>New>Other...>Business Process Modelling>Process Content>Correlation
Data.
 Right Click on Process (process or Correlation Data folder) & select New>Correlation
Field from Context menu
 By refactoring an existing data field into a correlation data field by right-clicking the data
field & select Convert to Correlation Data. To convert the correlation data field to a
"standard" data field right-click it and select Convert to Data Field
 Copying a data field and pasting it under the Correlation Data folder in the project Explorer.
To prevent accidental reassignment of correlation data fields, they are set to read-only by
default. If you want to assign a value to correlation data that does not come from an incoming
message, deselect the Read Only checkbox.
Catch message events and receive tasks must have correlation data associated with them.
Start message events can optionally have correlation data. If you do not want a start message
event to have correlation data, select the No correlation data initialization required check
box in the Correlation Data section of the Interface tab. If you select this check box, you
must ensure that correlation data is initialized (for example, using a script) before it is
required in the process. Other types of event or task do not require correlation data and
therefore do not display this section on the Interface tab. By default, all correlation data is
associated with an event or task, but you can explicitly associate only selected correlation
data on Interface tab. The mode for the correlation data has following values. Depending on
the type of event or task, BS provides appropriate defaults
Correlate (Intermediate Catch Message Event & Receive task only) Just comparison
Initialize: Specifies that correlation data is expected to receive its value from the incoming
data. For a start message event, a process instance is started, and then the correlation data
field is initialized with a value from the incoming data. (Default mode for start events)

Page 19 of 31
Process Modelling

Join: (Start Event Only) Causes the correlation data (mapped from the input data) to be
compared to the correlation data for any existing process instances. If no matching process
instances are found, a new process instance is started. If the correlation data matches that of
an existing process instance, the request is directed to the start event in the existing process (a
new process instance is not started).
Declared Types
They are used if you want to re-use a definition either when creating a data field or
parameter. Right click on Process package or Type Declarations folder & select New>Type
Declaration from context menu OR Select File>New>Other...>Business Process
Modelling>Process Content>Type Declaration.
Associating Process Data with Events and Tasks
There are many reasons to associate process data with tasks or events.
 Data field needs to be displayed on the form
 A process can’t be started unless a particular parameter is passed to a start event.
Following are the ways to associate Process Data with Events and Tasks
 To create a new user task with associated process data, you can drop process data into blank
part of the process. Menu is displayed with following options Create User Task to View
and Assign Data (“In/Out”), Create User Task to View Data (“In”), Create User Task
to Assign Data (“Out”).
 In the Project Explorer, click the data field or parameter you want to associate with your
activity, holding down the mouse button, drag the pointer to the event or task and release
the mouse button.
 Using the interface tab: [Process Data Name, Mode, Description, and Mandatory]
The process data displayed depends on what type of event or task is selected. Most events
and tasks can have both data fields and formal parameters associated with them, however
receive tasks and events of type None can have only formal parameters associated with them.
End events of type Message can only have formal parameters if the selected WSDL has both
input and output parameters.
The mandatory setting on the Interface tab for a formal parameter overrides the mandatory
setting in the Properties view for the formal parameter. This allows complete freedom in
designing the process - you can define a formal parameter as mandatory in one place in a
process, and optional in another.

The visibility of an event or task (private or public) controls whether process information is
available to an external process or application. Setting the visibility to public results in a
subset of events or steps that are then available to external processes or applications. The
runtime effect of this setting is entirely destination specific. By default, events and tasks in a
process are private; in a process interface, they are public.
Participants
They are used to identify who or what performs an activity. There are following options for creating
participants
 Use the basic types of participants that are provided by BS as follows
 Role: Identifies the role responsible for performing an activity

Page 20 of 31
Process Modelling

 Organizational Unit: Identifies department or unit within an organization that performs an activity.
 Human: Identifies a specific person or user that performs an activity
 System: Identifies an activity that is performed by a system
 Organization Model Query: Allows to enter a query using a script or expression. This is evaluated
when referencing task is executed at run-time. A query could resolve to a participant in the
package /process or to an entity in the organizational model.
 Create your own organization model & use the positions from the organization model for your
participants. You can also refactor the participants in process into a organization model.
Participants can be created at either the package level or at the process level. Creating them at
the package level is recommended as it enables them to be shared amongst processes. If the
Participants folder is empty at the Process level, it will be hidden by default. This is because
the preferred usage is to define Participants at the Package level.
Right Click on Process (process or Data Fields folder) or Package (Package folder or
Participants folder) & select New>Participant from Context menu OR
Select File>New>Other...>Business Process Modelling>Process Content>Participant
menu. [See M0009]
If you select type as Basic Type & Organization Model Query, you can enter the
Organization Model Query script in Resource Query Language (RQL) using script or
expression in the General tab of the Properties view. A query could resolve to a participant in
the package/process or to an entity in the organizational model. To create external reference
to organization model, select External Reference.
You can associate a participant with an activity with following options
 By dragging and dropping the participant onto the activity. A menu is displayed with two
options if participants already assigned to an activity: Add Task Participant(s) (adds the
participants to any existing participants for the activity), Set Task Participant(s) (clears
any existing participants associated with the activity, before setting the participants).
 From General tab of the Properties view for the activity use ? & * to narrow the search.
You can also select as a participant a data field or formal parameter of the type Performer.
To create an organization model based on participants in a process package or number of
process packages
 Process packages with errors cannot be selected
 Processes must contain only one pool, but can have many lanes.
 If a process package references another process package, the referenced process package is
automatically selected.
Right-click the XPDL package file in the Project Explorer and select Refactor > To
Organization Model. In the resulting dialog, select the process packages that you want to
refactor into an organization model, and click Finish: Mapping is done as follows
Process Organization Model Object
participant if participant is not referenced in if participant is referenced in the process
type the process
Human Position in default organization Position in organization unit, unit is
model unit named after the lane in the original
process
Organizatio Top-level organization unit Organization unit within an organization

Page 21 of 31
Process Modelling

n unit unit -the containing unit is named after the


lane in the original process
Role Top-level group Top-level group
System Ignored Ignored
If you have participants, you can drag them to a blank area of a process to automatically
create several types of task -Create User Task For Participant(s), Create Service Task
For Participant(s), Create Manual Task For Participant(s), Other Task Types
If you delete data fields, parameters, participants & type declarations referenced by another
object, process is invalidated. The References in General tab in Properties view shows the
references to other objects.
Reusable Sub-process
There are three different ways of creating a call to a re-usable sub-process
 By dragging a process from the Project Explorer & dropping it onto process. If you are
dropping more than one process (selecting multiple processes using Ctrl key), menu is
displayed with two options: Create Sub-process Task Sequence (allows to select the order),
Create Unsequenced Sub-process tasks
 Using the reusable-process tool from the palette. On the Properties view for the activity,
browse for the process you want to call as a sub-process. If the process you select is not in
the current project, you are prompted to create a project reference. To expand the sub-
process associated with this activity, either click the symbol OR Select General tab of the
Properties view & Click Open Sub-Process link. To associate the process with reusable
sub-process, click Open Sub-Process link to select the sub-process. Sub-process location
and Sub-process name are populated with selected sub-process.
 By refactoring objects in your process
Embedded Sub-process
You can expose the embedded sub-process as a re-usable sub-process by refactoring it. By
default, activities in the embedded sub-process have access to all local data and process data;
however, using the Interface tab, a subset of data can be selected. You can add data fields
that are local to a sub-process by selecting the Data Fields tab in the Properties view. Local
data fields are not displayed in the Project Explorer. On the Interface tab for activities within
the embedded sub-process, you can access the local data as well as the process data: You can
quickly create an embedded sub-process that has local data by using the fragment BPMN
Process Fragments > Basic Fragments > Embedded Sub-Process with Data Fields.
Refactoring sub-process [See M0010]
Refactoring sub-process allows you to do following:
 Create a new embedded sub-process from selected objects.
Select the objects and right click and select menu Refractor->Move into New Embedded
Sub-process. It will display a dialog with options New Sub-process is a transaction, Insert
start event in new sub-process & Insert end event in new sub-process.
 Create a new reusable sub-process from selected objects
Select the objects and right click and select menu Refractor->Extract into New Reusable
Sub-process. Dialog is displayed about referenced data & participants. If a data field is
referenced only in the selection that you are refactoring, you have the option of moving or

Page 22 of 31
Process Modelling

copying it. Data fields that are copied into the sub-process are created as formal parameters.
Data fields that are moved into the sub-process are created as data fields. Formal parameters
in the parent process are created as formal parameters in the sub-process. A mapping is
created between data fields and formal parameters of the sub-process and any corresponding
formal parameters that are created in the sub-process. You can view this mapping by
selecting the task that calls the sub-process and clicking the Map To Sub-Process and Map
From Sub-Process tabs in the Properties view. When refactoring objects into a reusable
sub-process, you can potentially change the logic of the process flow. BS displays a dialog
to confirm the change in the process logic. For the participant, BS gives you the option of
either moving participant into the reusable sub-process, or duplicating the participant in
both the parent process and the sub-process. Click Next. It will display a dialog with
following options: New Sub-process is a transaction, Insert start event in new sub-
process, Insert end event in new sub-process.
 Convert an existing embedded sub-process (and its contents) into a reusable sub-process
The reason for making a reusable sub-process inline is that in some cases the tasks in the sub-
process execute relatively quickly and the overhead of invoking a sub-process can be
comparatively high. Only a single level of a process hierarchy can be made inline at a time.
Right-click the reusable sub-process task, and select Refactor > Inline Sub-Process
Content. Dialog is displayed indicates there are or aren’t any problems with refactoring. If
the errors can’t be resolved, click Cancel, resolve the problems manually. The possible
problems displayed are similar to those for process package optimization except that some of
these problems that are not resolvable for package optimization are resolvable by refactoring
into an embedded sub-process. Also, problems dealing with nesting of sub-processes are not
applicable because manual refactoring affects only a single level of sub-process hierarchy at a
time. You can see the location of each problem by highlighting it.
Following are potential consequences of refactoring
 Sub-process data fields and unmapped parameters are copied up to the calling process and
renamed with a sequence number if the data field or parameter already exists in the calling
process. Sub-process participants are copied to the calling process (if they do not exist).
 References to sub-process parameters in the sub-process content are swapped for the calling
process data fields that are mapped to them.
 Type declarations referenced by data copied up from the sub-process are copied to the
package of the calling process only if the sub-process is in a different package.
 If the sub-process implements a process interface, the start or intermediate events that
implement interface-defined events are changed so that they are no longer flagged as such.
 References to sub-process parameters in the sub-process content are swapped for the calling
process data fields that are mapped to them
Creating an inline sub-process from a reusable sub-process is a way of optimizing the
process. To create an inline sub-process, in General tab of properties view of Reusable sub-
process (not task), check Inline sub-process during process package optimization.
In the Project Explorer, right-click the package that contains the process, and select Create
Optimized Package. Clicking on the individual sub-processes provides information about
whether the selected sub-process is a good candidate for conversion to an inline sub-process.
If there are no problems with the selected sub-processes, in the Project Explorer, a folder
called Optimized Packages is created, and an optimized copy of the original process

Page 23 of 31
Process Modelling

package is created.
When a package is optimised, following sub-process objects are moved into the main process
replacing relevant sub-process calls: associations, data objects, events (except Start and
End), Gateways, Sequence Flow, Tasks, Text Annotations. References to parameters in
sub-processes are replaced according to the parameter mapping e.g. the data field CustRef in
the parent process is mapped to RefNum in the sub-process. In the sub-process, the parameter
RefNum is used by the single user task. After refactoring as an inline sub-process, the user
task is brought into the main process with RefNum as its parameter.
Every effort is made to ensure that when a sub-process is inlined, it is semantically the same
as if it were not in-lined. Not every potential scenario can be catered e.g. if the same calling-
process field is used in the parameter mappings for two parallel reusable sub-process tasks,
the calling-process field will now be used in-parallel in the two sets of sub-process contents
that were moved up into the calling-process. This may have undesired effects.
Sub-process data fields and unmapped formal parameters are moved up to the calling process
after refactoring. In order to preserve the original semantics of the sub-process, any data
fields or unmapped formal parameters in the sub-process that also exist in the calling-process
are renamed (each new instance of the same named data is suffixed with a sequence number).
Any references to the renamed sub-process data are updated when the sub-process activities
and flows are moved up to the calling process. Package-level data fields are not included in
this behaviour unless the sub-process is in a different package to the calling process. This rule
also applies when several sub-processes are called from a single process. If the sub-processes
have the same data fields names, then each invocation will cause separate, sequence-
numbered instances of data fields in the calling process when they are made inline. This rule
also applies when inline sub-processes are nested, and have conflicting field names.
Participants are moved up to the calling process if the calling process does not already have a
participant with the same name. If the Participant already exists in the calling process,
references to the sub-process participant are exchanged for references to the calling process
participant in the sub-process content that is moved up. Similarly, type declarations (that are
referenced by sub-process data fields and unmapped formal parameters) are moved up to the
calling process if the calling process does not already have a type declaration with the same
name. Otherwise, the calling-process type declaration is used.
The following conditions result in errors in the Problems view & prevent optimization.
 The sub-process referenced by the task can’t be accessed.
 A reusable sub-process task generate an error if it has boundary attached events or multiple
incoming sequence flows or multiple outgoing sequence flows or a cyclic inline sub-process
call or script parameter mappings.
 A inline sub-process generates an error if it has multiple pools or multiple end points or an
end event not of the type None or an end event with multiple incoming sequence flow or a
nested invocation from external packages or no start activity or multiple starting points or a
start event not of the type None or a start event with multiple outgoing sequence flow or no
activities besides start and end events or a call task set to multiple instance or inline sub-
process in/out parameter ‘%s’ must be mapped to the same calling process field
Packages which are strong candidates for Inline Sub-process (optimization) are

Page 24 of 31
Process Modelling

 The process contains no tasks or events that cause a pause in the process flow
 The process is invoked from a reusable sub-process task in another process in the package
 These are no problems that prevent optimization
Packages which are potential candidates for Inline Sub-process (optimization) are which
do not have problems that prevent optimization, but contain processes with tasks or events
that cause a pause in process flow. Such a package may still merit optimization e.g the
process may have user tasks, but if it is invoked frequently enough, there may be a
performance improvement if the package is optimized.
Packages with processes which can’t currently be inlined are which have problems that
prevent them from being optimized or are not invoked from a process within the same
package (and would therefore disappear on optimization).
Packages with external packge line sub-processes (this category is for reference only & to
show if these sub-processes have problems, these sub-processes are disabled in the wizard)
Process interfaces
It is the "contract" between the process and external applications that call the process. The
use of a process interface allows the dynamic selection of sub-processes at runtime,
promoting separation of the design-time and runtime environments. Optionally, you can
create a process interface with one or more message events This creates an abstract WSDL
file that is stored in a folder named Generated Services. You can then call this abstract
WSDL file in a service task, or optionally add the concrete implementation details to the
WSDL file. Once created, a process interface can be used by several different processes. If a
process is created using a process interface, all the events and parameters specified in the
interface must be present in a process that implements that interface. You can add additional
events or parameters, but removing any of those required by the process interface will
invalidate the process.
Process (that implements a process interface) local parameters can be moved into the process
interface by right-clicking the parameter and selecting Move Parameter to Interface. This
option is only available for processes that implement a process interface in the same package,
and only for parameters that do not have problems in the Problems view. The process created
using process interface inherits the events and parameters created in the interface.
To create process interface, Select File > New > Other...>Business Modelling > Business
Process Modelling> Process Interface OR [See M0011]
Right Click on Package or Process Interfaces folder and select New>Process Interface
Following are parts of process interface
Start Events: It must have one or more start events (one is automatically created by default)
that specify how a process instance is initiated. When more than one start event is specified, a
process implementing the interface can be invoked by any of the start events specified in the
interface. As per BPMN, multiple separate start events are considered exclusive (each starts a
new process instance). The start event for a process interface can be of type None or
Message. A maximum of one start event of type None can be specified. Use this type of start
event for invoking a sub-process using a reusable sub-process task or when a sub-process is
to be manually invoked. Use message start events for the invocation of the process using a
message based interface. A start event for a process interface can be associated with

Page 25 of 31
Process Modelling

mandatory formal parameters using the Interface tab. Both input and output (including
combined in/out) parameters can be associated with the event.
Intermediate Events: The intermediate events for a process interface can be of type None
(manual event triggering) or Message. An intermediate event can be associated with input or
input/output formal parameters that should be present when triggering the event, as well as
with errors that will be translated into catch error end events in implementing processes.
Output formal parameters cannot be associated with catch message intermediate events.
Since a process interface doesn’t specify the intended location of the event within the flow of
the process implementation, events are considered “persistent”. Trigger is persisted until till it
is reached in the flow.
Task C is not processed without an event trigger. If
the trigger is received during processing of Task A or
B, the trigger arrival is persisted, and the event is
triggered immediately when it is reached in the flow.
You can specify errors that may be thrown by the process that implements process interface.
 The process interface defines a messaging or web-service interface. In this case, the error
events are translated into WSDL operation fault messages.
 The process interface is used for dynamic sub-process invocation. In this case, the error
events are translated into end error events in process implementations. Independent sub-
process tasks that reference process interfaces can then identify the thrown error events
directly from the process interface.
To Create Error Events, in the Project Explorer, under the process interface, expand an event.
Right-click Errors and select New > Error. Enter a name for the error code and click Finish.

The default sequence flow from the gateway replies to the start event. The conditional
sequence flow from the gateway throws an error with the code WSDL error. The catch error
event is configured in calling process to catch the error thrown from the sub-process.
There are two different ways of creating a call to process interface
 By dragging process interface from the Project Explorer & dropping it onto your process. If
you are dropping more than one process interface, a menu is displayed with two options :
Create Sub-Process Task Sequence & Create Unsequenced Sub-Process Tasks
 Using reusable sub-process tool from the palette.
You can modify a process interface using the Process Interface editor, however any changes
made cause validation errors in processes that have already implemented the interface. To
correct this problem, ensure that the changes made to the process interface are reflected in
any processes that have already implemented the interface.
You can integrate with following software

Page 26 of 31
Process Modelling

 BizAgi Business Process Management software


 Savvion Business Process Management software
 IBM Rational System Architect Import Wizard
 Mega 2009
 ARIS
Project Explorer view
To see this view, select Window > Show View > Project Explorer, or Window > Show
View > Other...> General > Project Explorer. You can also use the search facility to locate
workspace elements in the Project Explorer view such as processes, package names, &
process interfaces by pressing Ctrl+F or search toolbar button in the Project Explorer view.
Cheet Sheets view
When you first start BS, a Welcome Cheat Sheet is displayed. You can view TIBCO Cheat
Sheets and other Cheat Sheets by selecting Help > Cheat Sheets and selecting from the list
Problems view
To see this view, select Window > Show View > Problems, or Window > Show View >
Other...> General > Problems
Outline view
The Outline View allows you to focus on specific areas of a large process. To see this view,
select Window > Show View > Outline.
Fragments view
To see this view, select Window > Show View > Fragments. The buttons in the upper right
of the view allow you to do the following:
- Copy a diagram fragment to the clipboard in preparation for pasting it onto a Process.
- Edit fragment/category properties such as the Name and Description.
- Create a custom fragment category in which to store your fragments.
- Paste a fragment from clipboard into the Fragments view or into the process.
- Delete a fragment or category.
Properties view
The Business Process Modeling Notation (BPMN) complete set is supported by the
Properties View. To see this view, select Window > Show View > Properties or Window >
Show View > Other...> General > Properties. Properties related to simulation are only
present when Simulation is selected as the destination environment.
Labels and names: Name is displayed if solution design capability is selected. It usually
doesn’t contain whitespaces or special characters. Labels are used for onscreen display. If the
Name has not been modified from the default, it automatically changes to match the Label
when the Label is changed.
Process
Tab Property Description
General Label
Inline Inline sub-process during Process Package Optimization
Sub- checkbox
process
Process Select name and location of Process Interface.
Interface
Used By Lists any processes or tasks that use the selected process. This field

Page 27 of 31
Process Modelling

helps prevent deleting a process that is used in another. However that


a process may be used by other packages, and these references
cannot be displayed in this field Click Go To to display the
referencing object.
Description Description
Documentation Url
Destinations
Advanced Destination specific properties
Extended
Resource Separation of Duties
Retain Familiar
Resources Initial priority
Activity
Tab Property Description
General Label
Activity Markers
Participants
Activity Type
No Form URL (User Task)
User Defined URL (User Task)
Form (User Task)
Pageflow Select this option if you want the user task to call a
pageflow. Browse to select a pageflow process. When
deployed, the specified pageflow process is run when the
work item associated with the user task is opened.
Reference Click Go To to highlight in the Process Editor the task to
Task which the current task refers. Click Back to show the
(Reference referring task.
Task)
Is a transaction (Embedded sub-process)
Chained Execution (Embedded sub-process)
Sub-Process Location (Reusable sub-process)
Sub-process Name (Reusable sub-process)
Runtime Reusable sub-process. Specify the field that will be used in
Identifier field the runtime process engine to dynamically select a sub-
process that implements a process interface
Description Description
Documentation Url
Interface Visibility
(Except Parameters
reference
task)
Resource(Us Resources Participants property is same as the Participant specified
er & Manual on the General tab. Initial property (destination specific)
Task) specifies a relative property for the work item.
Distribution Strategy
Separation of Duties
Retain Familiar

Page 28 of 31
Process Modelling

Piling
Scripts Script Defined Free Text, Unspecified,Transform (either XPath or XSLT),
As JavaSscript. If there is text description, it will be converted
to comments if you select JavaScript. If you specify
Unspecified from Script Defined As, the description is lost.
You can recover description by pressing Ctrl+Z.
Map to Sub- Use this section to create a mapping from an actual
process parameter (data field or parameter) into the formal
(reusable parameters of the reusable sub-process. Create a mapping
sub-process) by clicking a parameter, dragging to the destination
parameter, then releasing the mouse button
Map from Sub-process (reusable sub-process)
Appearance Line Color & Fill Color properties
Extended See process properties
Advanced BPMN Task Allows you to enter duration values for the task as per
Extensions BPMN. How these durations are used is dependent on how
the are implemented in a particular destination environment.
iProcess Task Properties
Gateways (Description, Appearance, Extended & Advanced tabs are same as activity)
Tab Property Description
General Label
Name
Gateway Type Exclusive Decision/Merge (XOR) Data based, Inclusive
Decision/Merge (OR), Exclusive Decision/Merge (XOR)
Event based, Complex Decision/Merge, Parallel Fork/Join
(AND)
Join Configuration
Sequence Flow (Extended, Appearance and Description tabs are same as activity)
Tab Property Description
General Label
Name
Type
Advanced Shows properties and values for sequence flow
Event (Label,Extended, Description, Appearance, Interface, Resource (Distribution
Strategy), Scripts,
Tab Property Description
General Trigger Type for Start or Intermediate Events or Result Type (for end
events)
Catch Error for each catch error intermediate events only
Code
Map From Use this section to create a mapping from error parameters to
Error process data fields or parameters.(For Catch error
intermediate events only)
Advanced
Lane: Label property & Extended and Appearance tabs are same as activity. Advanced tab
contains destination specific properties.

Page 29 of 31
Process Modelling

Aligning objects
For easier alignment of objects in the Process Editor, you can select either or both of the
following options:
 Diagram > Grid - This allows you to align objects to a grid.
 Diagram > Alignment Guides - As you move objects in a Process Editor, a blue line
appears when the center of two objects coincide.
You can also align objects that you have selected by choosing options from the Diagram >
Alignment menu. For example, if you have two Activities selected, you can align them
horizontally on their centers by selecting Diagram > Alignment > Align Middle.
Scripts
Content assist:
To display all data fields with name start with letter F, enter F & press Ctrl+Space. Although
BS allows to create process data that has spaces in its name, such names are not displayed.
If there is error marker next to line, you can position cursor over it to display reason for error.
Content assist also provides templates for common JavaScript constructs e.g. to construct
if...else enter if & press Crtl+Space.
When using the colon character in a JavaScript conditional expression, ensure that you insert
spaces before and after the colon e.g. FIELD2==4?PARAM1:PARAM2; is not valid. The
corrected expression is FIELD2 == 4 ? PARAM1 : PARAM2;.
iProcess Script is supported for backward compatibility via the TIBCO iProcess JavaScript
class library. Within the packaging/export phase this JavaScript is converted to iProcess
Script for execution by the iProcess Engine. If you have selected the iProcess Engine or
iProcess Modeler destination environment, you can view the available list of iProcess Script
functions by typing IPE and pressing Ctrl+Space.
Some iProcess functions expect parameters of the data type VarType. BS Text, Decimal
Numbers, Integer Numbers, and Date or Time portion of a Date Time can all be passed to a
VarType parameter.
Transformation [See I0006]
To apply an XPath expression or XSLT to process data, select the Transform option
(Transform tab is displayed) on the General tab for the script task. Using XPath or XSLT,
you can perform the following types of mappings : Simple type to simple type, Simple type
to complex type (A simple type is mapped to a data field that is an external reference to the
business object model. At runtime, an output XML is created and inserted into a memo field
in iProcess), Complex type to simple type (A data field that is defined as an external
reference to the business object model is mapped to a simple type. At runtime, an output
XML is created and inserted into a memo field in iProcess). For iProcess destinations, a script
task can have multiple simple input mappings, or one complex mapping as input.
Script Grammar property on Transform tab can have one of following values: XPath or
XSLT. If you change the script grammar from XPath to XSLT, the script is converted to
XSLT. However, this is a one-way operation; if you change to XSLT, then back to XPath, the
original mappings and scripts are lost. You can concatenate the parameters.
Complex data types are represented in BS as data fields or parameters that are external
references to business objects. To create a data field that has an external reference to a class
in the Business Object Model, select type as External Reference and select external type by

Page 30 of 31
Process Modelling

clicking ... button. To avoid errors during iProcess deployment, make sure that data fields
that have an external reference to a class in the Business Object Model are only used in the
script task. To navigate to Transform tab from General Tab, click on link Go To
Transform mappings. When you select XSLT as the script grammar, you can either the
XSLT directly, select the Edit XSLT option or specify a remote XSLT by selecting the
Import XSLT from a URL option and specifying the URL to the XSLT.
Javascript preferences [See I0008]
Select Window>Preferences. Select TIBCO JavaScript from the dialog. You can configure
JavaScript styles and templates & changes to the Formatting or Content Assist .
XPath Presentation preferences [See I0009]
Select Window>Preferences. Select TIBCO XPath from the dialog

Page 31 of 31

You might also like