Академический Документы
Профессиональный Документы
Культура Документы
February 2008
Table of Contents
The present document introduces some general concepts related to BMPs and
its implementation in ProcessMaker. Likewise it explains the software
installation and shows how you can start to automate your processes using
ProcessMaker.
Process
A Process, which is the term we use in the ProcessMaker context to
refer to a Business Process, is a collection of tasks that takes one or
more kinds of input and creates an output that is of value to the
customer or to an end user within the organization.
Task
A task is a logical group of sequential steps, sharing a common goal.
Step
A step is a piece of work that forms a clearly defined activity. A step
may be a manual activity, or a workflow (automated) activity.
The section 4.2 explains the object model in ProcessMaker, which is based in
the key concepts explained before.
If you have the RHEL or Centos Linux distribution, to install and run
ProcessMaker, the feature SELinux should be disabled. See How to disable
SELINUX for additional instructions.
The name of this virtual server is only an example, you can change this
name according the domain defined in your network.
4. If you don't have the name of the virtual server defined in step 3, you
should add this server to your host.
/etc/hosts
your_ip_address your_processmaker_server
a. Configuration
1. Make sure that the "data" and "compiled" subdirectories are world
writable (chmod 0777), because the data of your workflows will be
saved in the "data" subdirectory, and the subdirectory "compiled" will
store the compiled templates of ProccesMaker.
2. Open your browser and load the ProcessMaker site. You should see the
test page (See Illustration 1). If you don't see it, please check the
installation steps.
4. Click on the tab "Install" (in the upper right-hand corner of Illustration
2)
5. After few seconds you will get the confirmation of your installation, see
Illustration 3. If it was successful, click on the button "Finish
installation" and enjoy ProccesMaker, you can log in into the system
(See Illustration 4). Otherwise, please visit our forums
(http://forum.processmaker.com/) to get support.
/etc/selinux/config
SELINUX = disable
After that you need to restart your computer, so this change will take effect.
In this file you should put the new value (between 31 and 120):
memory_limit = 31MB;
Cases: A case is the instance of a Process. The menu option Cases lists
the instances initiated in ProcessMaker. This option makes possible the
supervision and monitoring of the cases in different status and with
different users.
1. Process Map: create all tasks and define their relationships in the
option Processes.
4. Start your Cases: Once you have defined your Process (with its
tasks, rules and users), you are able to start a case and so automate
and track your process with ProcessMaker.
The following sections will guide you through the necessary steps to obtain a
working business process definition.
This chapter describes the necessary tasks required for setting up your
account and managing your ProcessMaker user accounts and group users.
3.2. My Account
Illustration 6. My Account
New password
a. List of User
Search: this option allows a very useful utility to filter user accounts.
You should put the search criterion, and every row that matches with
this criterion will be filtered on the list.
Role: this column shows the current role of each account. There are
two types of users: Administrators and Operators. Administrator
accounts are enabled to create, modify or delete existing processes.
Operator accounts are meant for production mode, using the facilities
of cases interface
Due date: this value defines a date when this account will no longer be
allowed accessing the platform.
View link: When you click on the view link, you will see the selected
account's information in read-only mode.
Edit Link: You can click on the corresponding hyperlink to edit the
account.
If you accept, the selected account will be deleted. Otherwise, the operation
is cancelled. In order for an account to be successfully deleted, a few
conditions must be met:
The Illustration 9 is from the form which allows creating new user accounts.
All required fields are identified by an asterisk (*).
Most of these fields are self-explanatory. We will only clarify the meaning of
some of them.
User ID: this is the account that should be provided when the user
logs into the system.
Expiration date or Due Date, this value defines a date when this
account will no longer allow access to the platform.
3.4. Groups
Groups are intended to simplify the way you assign tasks to users. For
example, you could define two groups: “Sales” and “Customer Care”. Then
you could add selected users to the Sales group. Upon defining the derivation
rules for a given task, you will be able to select either a specific user or a
A user account can belong to one or many Groups. In other words, there is a
many-groups-to-many-accounts relationship. The Illustration 10 shows an
overview of the existent groups and the associated user.
The left pane of the Groups section depicts the whole structure of existing
groups (See Illustration ). To create new groups you must click on the New
Group hyperlink on the left pane.
b. Edit a Group
This form allows you to modify the current settings of a selected user group:
The left pane of the Groups depicts the whole structure of existing groups
(see Illustration 10). To delete an existing group, you must click on the
Delete link of the selected group on the left pane.
The resulting form will request your confirmation to delete the target group.
User: this drop-down lists all employees currently not assigned to the
selected group. Please note that you can assign an employee account
to many groups. And a given group can have many employees
assigned. In other words, there is a many-groups-to-many-employees
relationship.
To remove a user from existing group, you must click on the Remove link of
the selected group on the left pane (See Illustration 10). The resulting form
will request your confirmation to remove the requested user from the group.
A list of users and groups whom are going to interact with the process
Once you have this information at hand you can proceed to designing the
actual business process by entering the ProcessMaker Process Managing
interface. The recommended steps to obtain a complete business process are
the following:
1. Define the Process Map: create all tasks and define their
relationships. (See section 4.4)
2. Create Steps: for each task created in step 1. There are different
types of steps: DynaForms, Triggers, Input Documents and Output
Documents, they are explained in sections 4.5.
The following section explains the object model of a process definition within
ProcessMaker.
Legend
Element Main or parent object
Element Child object
The Process object is located at the top of the object hierarchy. Any business
case is always an instance of an existing process definition.^
Process
Task(s)
Illustration 13. Process Structure: A process is composed of one or many tasks
Property Description
Process GUID Unique identifier of a given process
definition
Process Name this is a short description of the process
Table 1. Process Properties
b. Task Object
A task corresponds to a rectangle in a Process Map. This object has a rich set
of properties and dependant objects, as it defines the interaction of every
object residing inside the business process definition, such as users,
derivation rules, dynaforms, input and output documents.
Task
Step(s)
Illustration 14. Task structure: A Task is composed of one or more Steps.
Property Description
Task Title this field is a short description of the
task
Task derivation These properties define which user will
receive the current business case
Task ownership You can define up to 5 case owners,
whom can then be referenced later on
during the business case lifetime.
Privileges This set of properties permits an
efficient handling of exceptions
(canceling, pausing and ad-hoc
transfer), sending messages, uploading
files and defining access privileges to
existing business case documents.
Labels These properties simplifies the naming
of current business cases and allows
defining custom derivation messages to
subsequent participants of a given
business case.
Table 2. Task Properties
Dynaform(S)
Input Documents
Output Documents
Triggers
Derivation Step
Illustration 15. Step Structure: a Step can be composed of a sequence of DynaForms,
input documents and output documents. The Derivation Step is always executed upon
task completion.
Property Description
Step Condition A Boolean expression defining whether
the current step will be executed or not.
This expression usually evaluates
specific business case variables.
Run Triggers A sequence of Trigger scripts which will
Before be executed before the current
DynaForm or the Derivation step is
shown. Input documents and Output
documents don’t support this property.
Run Triggers A sequence of Trigger scripts which will
After be executed after the current DynaForm
or the Derivation step is shown. Input
documents and Output documents don’t
support this property.
Table 3. Step Properties
d. DynaForm Object
This object is a main component of the task user interface. It allows a direct
human-workflow interaction by means of a distributed web application
approach.
DynaForm
Fields
JavaScript Snippets
Illustration 16. DynaForm Structure.
Property Description
Label Multilingual element allowing to display the same
DynaForm in different languages
Type Allowed types are: Title, Subtitle, Textbox,
Caption, Password, Text area, HTML Edit,
Currency, Percentage, Date, Yes/No, Link, Sub-
Form, Sub-Grid, On-demand, Checkbox, Button,
Reset, Submit, Hidden, File upload, Dropdown,
Listbox and Radio options group.
Size On-screen width
Maximum Maximum number of characters for the field
Length
Default value Default value
Required Either Yes or No
Dependant A given field may control the value of one or more
Fields dependant fields
Link Field Most fields have an embedded Link to invoke
popup windows and providing assistance when
filling a form
Immediate In the case of a Grid element, a given column can
Sum be defined display a sum of existing values
DB Connection Allow to define an external data source to request
values
SQL SQL sentence allowing querying external data
sources. Case variables may be used.
Table 4. Field Properties
e. JavaScript Snippets
f. Trigger Object
PHP Code
Illustration 17. Trigger Structure.
The process you are about to create from scratch is a Loan Application
Process. It is intended to be used by a fictional banking institution, and it will
allow its New Loans Division to process new applications.
In task 1, the loan applicant will fill-out a web form corresponding to the
Loan Application Form.
Once the form is submitted, three parallel tasks will take place: tasks 2, 3
and 4. Task 2 consists of checking the credit history of the loan applicant.
Task 3 consists of checking the cosigner information. Task 4 consists of
including the loan applicant information in the contacts database of the
banking institution for future campaigns and promotions. Note that task 4 is
a Leaf End, also known as an Intermediate Event.
Once all three parallel tasks take place, tasks 3 and 4 will join in task 5,
which is the Application Review. In this task, a loan officer will review the
case and decide among three possible issues:
In the following lessons you will be conducted through the necessary steps to
create and try this fully functional process from scratch.
In the following section you will create the Loan Application process
described in the last section. Then you will define all required tasks in order
to reflect the business process.
Create a new process: Processes New.
Once you press the Save button you will be conducted to the Process Map,
which is an interactive and friendly Business Process Design environment.
This interface consists of a top pane menu and an interactive design area.
The latter contains a large number of contextual menus that will allow you to
design and maintain business processes with ease. Now that the business
process has been defined, we will proceed creating all tasks and their
relationships.
The following section explains how to create your first task (or activity).
Now we are going to change the properties of this very first task, as
shown follow.
Follow the same steps to create all remaining tasks (2 through 7). Below is a
summary of required settings for these tasks. All non-mentioned fields
should be left to their default values.
Task 2
Title: Check Credit History
Description: In this task, the credit officer will verify the credit history
of the loan applicant. He must check the banking history inside the
banking institution (if exists) and in the Financial Risks Database.
Task 3
Title: Cosigner
Description: In this task, the credit officer will verify the validity of
identity documents provided by the cosigner.
Task 4
Title: Contacts database
Description: In this task, a customer support clerk will verify that the
new applicant personal information is now part of the Contacts
Database. This is to ensure that future campaigns for new products or
services will reach a focused audience.
Task 5
Title: Application review
Description: In this task, the credit officer will verify if all required
information from the applicant and the cosigner are appropriate to
grant a new loan.
Task 6
Title: Reject loan
Once you have completed the creation of these tasks, use the design area to
organize them as shown below: This illustration have already the derivation
rules as also the ending and starting tasks as well, the following sections
explain how you can define them.
In this section, you will define the starting task of this sample process.
Right-click over the Loan Application Form task, and enter the
Properties interface.
In the next section you will define an ending task for this sample process.
There are two possible ending points for the Loan Application Process: either
the loan is rejected, either it is approved. Both outcomes have a
corresponding activity in the current process design.
In this section, you will define the ending tasks of this sample process.
Select on the derivation tool the end-task button. Drag and drop the
button on the Reject Loan task.
Follow the last two steps for the Approve loan task.
In this section, you will define a leaf end for this sample process.
What is a Leaf End? A Leaf End consists of a branch end in the context of
a business workflow, meaning that the business case keeps moving to
other tasks by different paths. Not to be confused with a Process End.
Right click on Contacts Database task and select Derivation Rules
option.
Click on the Add Derivation Rule link and configure this derivation rule
as follows:
In the next lesson you will define a parallel fork for this sample process.
At this point Loan Application Form task should look like this:
In the next lesson you will define a parallel join for this sample process.
In this section you will define a parallel join in Task 5, where tasks 2 and 3
will converge.
At this point the Application review and Consigner task are defined
as a Parallel join, and the Process Map should display it like this:
In this section we are going to complete the process design. One important
thing to keep present is that we will reference a case variable, which will be
defined later. Right-click on Application review task and select Derivation
rules option. Fill the popup window as shown below:
a. Dynaforms
In this section you will create the Loan Application form. This form is
intended to be used by an external applicant.
Fill the New DynaForm interface as follows and press the Save button:
This interface contains all required tools for dealing with DynaForms. Now
you will learn how to add fields to your first DynaForm.
We will add one field of type Title to the Loan Application DynaForm.
Create all remaining fields according to the following list (please note that the
Title field from previous lesson is included in this list to keep consistency):
1 Soltero(a) Unmarried
2 Casado(a) Married
6 Type Currency
Name AMOUNT
Label (es) Monto solicitado
Label (en) Loan Amount
7 Type Yes/No
Name FIRST_TIME
Label (es) ¿Ya solicitó un préstamo en nuestra institución en el pasado?
Label (en) Have you requested a loan from our bank in the past?
9 Type Date
Name PREVIOUS_DATE
Initial Year 1980
Final Year 2006
Required No
Label (es) Si la respuesta es afirmativa, ¿cuándo fue?
Label (en) If yes, when?
10 Type File Upload
Once you have created all these fields, you should see a DynaForm preview
similar to the following screenshot:
Illustration 23. Loan Application DynaForm. All fields have been created.
b. Input Documents
So far you’ve created steps of DynaForm type. Such steps allow receiving
information from end users whom must type input data into Web forms. In
this section you will create another type of steps: Input Documents. Input
Documents are documents required in a given activity context, they can be
impressed or digital.
c. Output Documents
Another type of steps are the Output Documents. They can be either PDF
(Portable Document Format) or RTF (Rich Text Format) documents
automatically generated in a given activity context. An Output document can
use one or more case variables and place them in a formatted output file,
applying a PDF or RTF template definition.
In this section you will create a sample Loan Contract intended to be part of
the Loan approval task.
In the design area copy the following text, then save the file:
d. Triggers
Another type of steps are the Triggers. Most business rules are far more than
simple Boolean conditions, therefore Triggers provide the appropriate
framework to perform complex calculations, to name a few.
Now all pieces are in place to start assigning steps to each an every task.
This lesson will guide you through the required step to assign Loan
Application Form to the starting task.
Right-click on the Loan Application Form task and select the Steps
option: