Please rate how useful you found this document: 
Average: 2.7 (3 votes)

Overview

In version 2.0.29 and later, ProcessMaker uses the configuration file env.ini for global settings which aren't available under the ADMIN menu.

Editing the env.ini file

Use a plain text editor to edit the configuration file located at:

<INSTALL-DIRECTORY>/workflow/engine/config/env.ini

It is generally found at:

Linux/UNIX:
/opt/processmaker/workflow/engine/config/env.ini
Windows XP/Server 2003:
C:\Program Files\ProcessMaker-2_X_X\processmaker\workflow\engine\config\env.ini
Windows Vista/7/8/Server 2008:
C:\Users\USERNAME\AppData\Roaming\ProcessMaker-2_X_X\processmaker\workflow\engine\config\env.ini

By default, the env.ini file has the following content:

debug=0 ; To set the time zone uncomment the following line. ; For valid time zones check http://php.net/manual/en/timezones.php ;time_zone = "America/New_York" ; To set a different memory limit, uncomment the following line. ; For more info http://php.net/manual/en/ini.core.php#ini.sect.resource-limits ;memory_limit = "100M" ; To turn off caching of web services calls, uncomment the following line. ;wsdl_cache = 0

Most of the settings can be enabled by setting them to 1 and disabled by setting them to 0. Settings which are strings should be enclosed in double quotation marks. Lines beginning with ";" (semicolons) are treated as comments and are ignored. Remove the semicolon to uncomment the setting.

Available Settings:

  • debug_sql = 0|1
Set to 1 to log all SQL queries to the wf_<WORKSPACE>, rb_<WORKSPACE> and rp_<WORKSPACE> databases in MySQL. Default is 1. For more information, see MySQL Logging.
  • debug_time = 0|1
Set to 1 to log the time for web requests to be processed by ProcessMaker. Default is 0. For more information, see Time Logging.
  • debug_calendar = 0|1
Set to 1 to log information about calendars. Default is 0.
  • wsdl_cache = 0|1
Set to 0 to disable the caching of WSDL (Web Services Description Language) function calls. The default is 1, so WSDL function calls are cached for up to 24 hours, which increases the reliability (especially if there are connection problems), but is a problem when needing immediate execution for debugging.
  • memory_limit = "XM"
Set the maximum amount of memory available for each login session in ProcessMaker. Use "M" for megabytes, "K" for kilobyes and "G" for gigabytes. It is not recommended to set this value to less than "100M", which is the default. If generating large Output Documents, it may be necessary to increase this value. To set the memory_limit before version 2.0.29, seeIncreasing the maximum memory per session.
  • time_zone = "zone"
Set the time zone for the ProcessMaker server. This setting determines the time zone used for all timestamps in ProcessMaker, such as the starting and ending time for cases. By default, the time zone is set to "America/New_York". A list of available timezones can be found at: http://php.net/manual/en/timezones.php
To set ProcessMaker's time zone before version 2.0.29, See Default Time Zone.

MySQL Logging

If the debug_sql option is set to 1 (or debug is set to 1), then every SQL query to the workflow (wf_<WORKSPACE>), rbac (rb_<WORKSPACE>) and report (rp_<WORKSPACE>) databases will be written in the following three log files:

<INSTALL-DIRECTORY>/shared/log/
                               rbac.log  
                               report.log  
                               workflow.log

Each line in the log files records SQL actions in the following format:

time(HH:MM:SS.mmm) address-of-user database workspace [type] function/SQL-query [URL-path -> code-file.php:line-number:function() -> ...]

For example, here is the shared/log/workflow.log file for the "admin" user's login from the IP address 192.168.0.168:

12:18:26.179 192.168.0.168 wf workflow [info] executeQuery(): SELECT LANGUAGE.LAN_ID, LANGUAGE.LAN_NAME, LANGUAGE.LAN_NATIVE_NAME, LANGUAGE.LAN_DIRECTION, LANGUAGE.LAN_WEIGHT, LANGUAGE.LAN_ENABLED, LANGUAGE.LAN_CALENDAR FROM LANGUAGE WHERE LANGUAGE.LAN_ID='en' [ /sysworkflow/en/classic/login/sysLoginVerify -> sysGeneric.php:535:getLanDirection()->class.serverConfiguration.php:355:load()->Language.php:49:retrieveByPK()->BaseLanguagePeer.php:555:doSelect()->BaseLanguagePeer.php:266:doSelectRS()->BaseLanguagePeer.php:298:doSelect()->BasePeer.php:450:executeQuery()->PreparedStatementCommon.php:334:executeQuery()-> ]

12:18:26.223 192.168.0.168 wf workflow [info] Beginning transaction. [ /sysworkflow/en/classic/login/sysLoginVerify -> sysGeneric.php:592:require_once()->sysLoginVerify.php:31:require_once()->authentication.php:181:create()->LoginLog.php:30:save()->BaseLoginLog.php:504:begin()-> ]
12:18:26.223 192.168.0.168 wf workflow [info] Beginning transaction. [ /sysworkflow/en/classic/login/sysLoginVerify -> sysGeneric.php:592:require_once()->sysLoginVerify.php:31:require_once()->authentication.php:181:create()->LoginLog.php:30:save()->BaseLoginLog.php:505:doSave()->BaseLoginLog.php:535:doInsert()->BaseLoginLogPeer.php:383:begin()-> ]

12:18:26.224 192.168.0.168 wf workflow [info] executeUpdate(): INSERT INTO LOGIN_LOG (LOG_UID,LOG_STATUS,LOG_IP,LOG_SID,LOG_INIT_DATE,LOG_CLIENT_HOSTNAME,USR_UID) VALUES ('5507406534e1f16d2367124077319688','ACTIVE','192.168.0.168','15db39802fcaba5acd1ed3d53335c3d6','2011-07-14

12:18:26','192.168.1.76:20302','00000000000000000000000000000001') [ /sysworkflow/en/classic/login/sysLoginVerify -> sysGeneric.php:592:require_once()->sysLoginVerify.php:31:require_once()->authentication.php:181:create()->LoginLog.php:30:save()->BaseLoginLog.php:505:doSave()->BaseLoginLog.php:535:doInsert()->BaseLoginLogPeer.php:384:doInsert()->BasePeer.php:304:executeUpdate()->PreparedStatementCommon.php:356:executeUpdate()-> ]

12:18:26.225 192.168.0.168 wf workflow [info] Committing transaction. [ /sysworkflow/en/classic/login/sysLoginVerify -> sysGeneric.php:592:require_once()->sysLoginVerify.php:31:require_once()->authentication.php:181:create()->LoginLog.php:30:save()->BaseLoginLog.php:505:doSave()->BaseLoginLog.php:535:doInsert()->BaseLoginLogPeer.php:385:commit()-> ]

12:18:26.225 192.168.0.168 wf workflow [info] Committing transaction. [ /sysworkflow/en/classic/login/sysLoginVerify -> sysGeneric.php:592:require_once()->sysLoginVerify.php:31:require_once()->authentication.php:181:create()->LoginLog.php:30:save()->BaseLoginLog.php:506:commit()-> ]

12:18:26.225 192.168.0.168 wf workflow [info] Committing transaction. [ /sysworkflow/en/classic/login/sysLoginVerify -> sysGeneric.php:592:require_once()->sysLoginVerify.php:31:require_once()->authentication.php:181:create()->LoginLog.php:38:commit()-> ]

12:18:26.254 192.168.0.168 wf workflow [info] executeQuery(): SELECT COUNT(PROCESS.PRO_UID) FROM PROCESS WHERE PROCESS.PRO_STATUS='ACTIVE' [ /sysworkflow/en/classic/login/sysLoginVerify -> sysGeneric.php:592:require_once()->sysLoginVerify.php:31:require_once()->authentication.php:185:getWorkspaceInfo()->class.serverConfiguration.php:266:doCount()->BaseProcessPeer.php:308:doSelectRS()->BaseProcessPeer.php:378:doSelect()->BasePeer.php:450:executeQuery()->PreparedStatementCommon.php:334:executeQuery()-> ]

Logging will noticeably slow down ProcessMaker's performance, so it is not suggested to use this option except for debugging. The log files are not automatically deleted, so they will continue to append new information (until the file system runs out of space). If SQL Logging is enabled for long periods of time, it is a good idea to periodically delete the log files so they don't occupy too much harddrive space.

Enabling MySQL Logging before version 2.0.29

To turn on MySQL logging before version 2.0.29, edit the file <INSTALL-DIRECTORY>/workflow/public_html/sysGeneric.php with a plain text editor. it can generally be found at:Linux/UNIX:

/opt/processmaker/workflow/public_html/sysGeneric.php

Windows, before ProcessMaker version 1.6-4260:

C:\Program Files\ProcessMaker\apps\processmaker\workflow\public_html\sysGeneric.php

Windows, in ProcessMaker version 1.6-4260 and later:

<INSTALL-DIRECTORY>\processmaker\workflow\public_html\sysGeneric.php

Change the value of the debug setting to 1 to turn on detailed SQL logging:

'debug' => 1, //change this value to 1, to have a detailed sql log in PATH_DATA . 'log' . PATH_SEP . 'workflow.log'

Time Logging

If the debug_time option is set to 1, then the time to process each web request will be logged in a file located at:

<INSTALL-DIRECTORY>/shared/log/time.log

Each line in the log file records the time to process a separate web request in the following format:

time-of-request(HH:MM:SS.mmm) user-address server-address processing-time(S.mmm) URL-path

Note that the processing-time is in seconds and milliseconds, so a time of 1.309 means 1 second and 309 milliseconds. The URL-path does not include the protocol and IP/Domain address. Time Logging is a good way to discover the URLs and GET variables used in the different frames in the ProcessMaker interface.

For example, here is the shared/log/time.log file for running a case:

13:11:15.000   192.168.0.168 1.76 0.179 /sysworkflow/en/classic/cases/proxyCasesList
13:11:16.000   192.168.0.168 1.76 0.507 /sysworkflow/en/classic/cases/casesMenuLoader?action=getAllCounters&amp;r=0.7974853888047986
13:11:16.000   192.168.0.168 1.76 0.481 /sysworkflow/en/classic/cases/casesStartPage?action=startCase
13:11:16.000   192.168.0.168 1.76 0.496 /sysworkflow/en/classic/cases/casesStartPage?action=startCase
13:11:20.000   192.168.0.168 1.76 0.381 /sysworkflow/en/classic/cases/casesStartPage_Ajax.php
13:11:21.000   192.168.0.168 1.76 0.323 /sysworkflow/en/classic/cases/open?APP_UID=9361624344e1f2338d52331039957370&amp;DEL_INDEX=1&amp;action=draft
13:11:23.000   192.168.0.168 1.76 0.402 /sysworkflow/en/classic/cases/ajaxListener?action=steps
13:11:23.000   192.168.0.168 1.76 0.579 /sysworkflow/en/classic/cases/cases_Open?APP_UID=9361624344e1f2338d52331039957370&amp;DEL_INDEX=1&amp;action=draft
13:11:23.000   192.168.0.168 1.76 0.404 /sysworkflow/en/classic/cases/cases_Step?TYPE=DYNAFORM&amp;UID=8318185774e1c7ec7100be1011109529&amp;POSITION=1&amp;ACTION=EDIT
13:11:24.000   192.168.0.168 1.76 0.335 /sysworkflow/en/classic/cases/ajaxListener
13:11:24.000   192.168.0.168 1.76 0.327 /sysworkflow/en/classic/cases/ajaxListener?action=steps
13:11:26.000   192.168.0.168 1.76 0.402 /sysworkflow/en/classic/cases/cases_Step?TYPE=ASSIGN_TASK&amp;UID=-1&amp;POSITION=10000&amp;ACTION=ASSIGN
13:11:28.000   192.168.0.168 1.76 0.402 /sysworkflow/en/classic/cases/cases_Derivate

The client machine is running on 192.168.0.168 and the ProcessMaker server is running on 192.168.1.76 (the first two numbers of the IP address aren't displayed because of the network's netmask).