ProcessMaker
ProcessMaker is an open source, workflow management software suite, which
includes tools to automate your workflow, design forms, create documents, assign
roles and users, create routing rules, and map an individual process quickly and
easily.
ProcessMaker is a cost effective and easy to use open source business process management (BPM) or workflow software application. Workflow software such as ProcessMaker can assist organizations of any size with designing, automating and deploying business processes or workflows of various kinds.
It's relatively lightweight and doesn't require any kind of installation
on the client computer.
requirements and installation steps for the server.
-----------------------------
|* Requirements for Server *|
-----------------------------
ProcessMaker 2.0 and later requires:
* Linux or UNIX or Windows (XP, Vista, 7, Server 2003, Server 2008)
* MySQL 5.1.6 or greater
* Apache 2.2.3 or greater, with the following modules:
* Deflate* Expires
* Rewrite
* Vhost_alias
* PHP 5.1.6 or greater with the following libraries:
* mysql* xml
* mbstring
* mcrypt
* soap (necessary if using web services)
* ldap (necessary if integrating with LDAP or Active Directory)
* gd (recommended if using Events)
* curl (necessary for uploading/downloading files)
* Also install PHP's command line interface (CLI) if planning on using Events,
the Case Scheduler, workspace backup/restore, or developing plugins with theGulliver Framework.
------------------------------
|* Requirements for Clients *|------------------------------
Mozilla FireFox (recommended)
or
Internet Explorer 7 or later
-----------------------
|* PHP Configuration *|-----------------------
In the PHP configuration file (php.ini), set the following settings:
memory_limit = 120M
file_uploads = On
short_open_tag = On
The memory_limit may be a minimum of 80MB, but it is recommended to set it to
120MB. If planning on uploading large Input Documents and attached files, then
increase the max_post_size and upload_max_filesize to larger than the default
2MB:
max_post_size = 2M
upload_max_filesize = 2M
-------------------------
|* MySQL Configuration *|
-------------------------
The MySQL "root" user should already have all the necessary privileges to setup
the ProcessMaker databases. If planning on using a MySQL user other than "root"
to set up the ProcessMaker databases, grant a MySQL user superuser privileges
to create and update databases.
Login to MySQL:
mysql -u root -pEnter the root password for MySQL.
Once in MySQL, give the user which will be running ProcessMaker superuser
privileges to create create and modify MySQL databases:mysql> grant all on *.* to 'USER'@'localhost' identified by 'PASSWORD' with grant option;
Replace USER with the name of your MySQL user and PASSWORD with the password
for that user. (If that user doesn't already exist, he/she will beautomatically created with the above grant command. If you are running
ProcessMaker on a different server than your MySQL server, then replace
localhost with the domain name or IP address of the server where ProcessMaker
is located.
Exit MySQL:
mysql> exit;
If you have forgotten the root password, see these instructions to reset it:
http://dev.mysql.com/doc/refman/5.1/en/resetting-permissions.html
If unable to log into MySQL because there is no socket, then MySQL needs to be
started as a service.Roles in Process Maker
Each user is assigned a role determines
- what actions that user can perform in ProcessMaker
- what parts of the interface that user can access.
Three default roles
- PROCESSMAKER_ADMIN
- PROCESSMAKER_MANAGER
- PROCESSMAKER_OPERATOR
Properties Menu of tasks in Process Maker
User Management in Process Maker
http://wiki.processmaker.com/index.php/2.0/Managing_Usersinclude Creating a Department and setting the supervisor for the department

Permissions for users in Process Maker
http://wiki.processmaker.com/index.php/2.0/Roles
Conditions in Process Maker
Conditions are rules that determine the path of a case. Two major types of conditions are :- Routing Route Condition => indicates the direction of the next task a case will be directed to depending on the value of an earlier task
- Step Condition => indicates the steps that need to be filled out based on the information collected during the process
- Trigger Condition => If a Trigger doesn't have a condition, then it will always be executed when running a case.
Reference for more on Conditions
http://wiki.processmaker.com/index.php/Using_Conditions
Some videos on Pre-built generic processes on Human Resourse Workflow in Process Maker
http://www.processmaker.com/workflow-solutions
When a dynaform containing a grid object is submitted, a CASE VARIABLE is created with same grid name. This contains an associative array of associative arrays.
row1 row2 row3 row4
Fieldname1:value Fieldname:value
Fieldname2:value
Reading from Grids
To access the value stored in a particular field in a grid, reference it as:
@=grid-name[row-number]['field-name']Remember:
- The case variable for a grid is the name of the grid field which is embedded in a master DynaForm.
- The row numbers start counting from the number 1 (not 0 like a normal array).
- The names of grid fields are case sensitive and they are strings which must be enclosed in quotation mark
- $model1 = @=OrderList['1']['model']
- Looping through grids
$tot = count(@=OrderList);
for ($cnt = 1; $cnt <= $tot; $cnt++) {
if (int(@=OrderList[$cnt]['price']) > 300) {
PMFSendMessage(@@APPLICATION, "admin@example.com", "supervisor@example.com",
"", "", "Please verify large order", "expensiveOrder.html");
break;
}
}
PMFSendMessage(@@APPLICATION, "admin@example.com", "supervisor@example.com",
"", "", "Please verify large order", "expensiveOrder.html");
break;
}
}
foreach (@=OrderList as $row) {
if (int($row['price']) > 300) {
PMFSendMessage(@@APPLICATION, "admin@example.com", "supervisor@example.com",
"", "", "Please verify large order", "expensiveOrder.html");
break;
}
}
Executing Code When Adding a Row
Hiding a GridAccessing Grids with PHP
Triggers in Process Maker
Using the ProcessMaker Debugger to debug triggers
http://wiki.processmaker.com/index.php/2.0/TriggersTriggers are mostly used with hidden fields when accessing grid fields
Functions in Process Maker
Getting the function list
Usually, it is difficult to remember functions and sentences to be used in ProcessMaker. Now the trigger editor added the possibility to list ProcessMaker functions and PHP sentences to be inserted while a trigger is created. Press Cntrl + Space in the Editor, to get the function list as the image below
Functions
Functions are used in trigers to make works done. Below are few functions in ProcessMakker
- PMFTaskCase() => returns all the tasks for the specified case
- PMFTaskList() => returns a list of tasks which the specified user has initiated
- PMFUserList() => returns a list of users whose status is set to "ACTIVE"
- PMFGroupList()
- PMFRoleList()
- PMFProcessList()
- PMFNewCase() => creates a new case starting in the specified task
- PMFSendMessage() => function sends out customized email notifications using a template.
Administration in Process Maker
Applying a Skin
Admin -> Settings -> skin
- UxModern
- Neoclassic Skin
- Classic Skin
- Blank Skin => removes the top framework with the logo
Applying a Logo
Admin -> Settings -> logo
install the php_exif.dll file, due to some problems with images larger than 250 x 40 pixels. Uploading those size, logo won't be resized :
Setting Environment
Admin -> Settings -> environment (hide process information)
Heartbeat
new "heartbeat" function which is designed to send statistics to the ProcessMaker developers about how ProcessMaker is being used
help the developers gauge how ProcessMaker is being used and to determine how to improve the application in the future
Case Schedular
provides a way to automatically start new cases at specified times.
Specified process => CaseSchedular
Case Tracker
allows an external user to log into ProcessMaker and review the advances of a given case.
Cases List Builder
is a plug-in designed to allow users to customize the content that is available in their Cases List
The Case List Builder plugin is included in the Enterprise Edition plugin.
http://wiki.processmaker.com/index.php/Cases_List_Builder
More information on Cases
http://wiki.processmaker.com/index.php/2.0/Cases
Plugin Development
Eventhough Processmaker is a opensource software it is not recommanded to EDIT the code. Instead a plugin can be developed to add additional functionality.
Plugins are developed using the gulliver new-plugin command in a Linux/UNIX server.
Plugins cannot be developed in Windows servers, because symbolic links are needed.
After the plugin has already been created, it can be exported to other installations of ProcessMaker, including Windows servers.
enterprise edition includes plugins http://www.processmaker.com/enterprise-plugin-manager
processmaker advanced BPM LDAP authentication and active directory plugin is available in enterprise edition.
Community edition ldap plugin in other
- Enable Automatic Register'. in the configuration screen. With this enabled, a first time user of ProcessMaker can navigate to the ProcessMaker server and attempt to log in using their LDAP credentials
Input Documents
http://wiki.processmaker.com/index.php/2.0/Input_Documents - maintaing required fieldshttp://wiki.processmaker.com/index.php/JavaScript_Function
To assign a user for the next task by being in the dynaform using Triggers
Value Based Assignment allows a variable to specify which user will be given authority to work on a task. The variable can be set in the Variable for Value Based Assignment textbox which appears when the option is selected. By default, the variable is @@SYS_NEXT_USER_TO_BE_ASSIGNED, whose value should be set to the UID (Unique ID) of the next user to be assigned to the task
When the assignment is done inside a grid, use hidden fields in that dynaform and use these field names in that dynaform trigger
Interprocess communication in Process Maker
Processmaker uses POOLS to allow communication and connection between processes.http://wiki.processmaker.com/index.php/3.0/Pools_and_Lanes
Security in Process Maker
Security is an important and an essential issue in the Industry. Processmaker provides security too to an acceptable level.http://www.processmaker.com/security-statement
.jpg)