Skip to content

Debug ProcessMaker process triggers

tomolimo edited this page May 21, 2019 · 13 revisions

This section is under construction

Install and configuration

ProcessMaker

Copy content of zipped file processmaker_debug_triggers.zip into processmaker installation folder.
You should get a new folder in workflow/public_html/ named triggers

XDebug

  1. Install on the PM server the xDebug PHP extension from https://xdebug.org/docs/install (choose the method that fits your operating system)
  2. Configure xDebug extension like following:

[php_xdebug]
zend_extension = "pathtoxdebugext/php_xdebug.dll"
xdebug.remote_enable = 1
xdebug.remote_handler = dbgp
xdebug.remote_host = ip_address_of_your_visual_studio_code
xdebug.remote_port = 9000
xdebug.remote_mode = req
xdebug.remote_autostart = 1
;xdebug.remote_log="c:\temp\xd.log"
xdebug.auto_trace = off
xdebug.collect_assignments = on
xdebug.collect_return = on
xdebug.collect_vars = on
xdebug.dump_undefined = on

Note: ip_address_of_your_visual_studio_code is the IP address of your machine from which you want to start debugging. It's the machine hosting the Visual Studio Code. Don't use the xdebug.remote_connect_back option as it will get the ip address of the GLPI server, and not the ip address of the VSC machine.

VSC

  1. Install Visual Studio Code from https://code.visualstudio.com/ on the client machine
  2. Start VSC, and install "PHP Extension Pack" (author Felix Becker) from marketplace
  3. 'Open Folder' or 'Create a folder' like /pm/
  4. Switch to 'Debug' view
  5. Start a debug session (it will propose you to choose an environment, select PHP), verify that the 'launch.json' file is like following (adding serverSourceRoot and localSourceRoot):
{
   "version": "0.2.0",
   "configurations": [
      {
         "name": "Listen for XDebug",
         "type": "php",
         "request": "launch",
         "port": 9000
      },
      {
         "name": "Launch currently open script",
         "type": "php",
         "request": "launch",
         "program": "${file}",
         "cwd": "${fileDirname}",
         "port": 9000
      }
   ]
}   

Debug session

  1. In PM server admin.
  2. In the trigger you want to debug, add a PHP line: xdebug_break(); at the place where you want a breakpoint to occur. Save the trigger,
  3. In VSC Explorer, open the folder defined above.
  4. Start a debug session using the 'Listen for Xdebug' options.
  5. You may disable the 'Everything' breakpoint which is set by default, it's in the 'Debug' view and in the breakpoint list (bottom left).
  6. Start PM serveur admin (or GLPI if you want to debug a trigger used in GLPI) in your browser
  7. Execute task by task your process until you reach the breakpoint.
Clone this wiki locally