How to debug or troubleshoot a process in PAM

Document ID : KB000044070
Last Modified Date : 14/02/2018
Show Technical Document Details

Introduction: 

When building PAM processes, it is usually necessary to run the process multiple times to test the process definition.  PAM has some built-in debug tools to help so that a process instance can be debugged without having to end the process and launch it again.

Instructions: 

PAM processes are either "loaded" or "unloaded".  This means that there are certain statuses of a process instance that mean the process is still active or "loaded", or the process is done and has been "unloaded".  Statuses like running, waiting, and blocked are still "loaded".  But statuses like failed or completed are "unloaded".  

 
You can reset, modify, and resume operators or entire process instances when the process is still loaded.  Meaning if a process is running, waiting or blocked, you can still perform actions on that process.  But once a process has been unloaded, (as in failed or completed), that process instance can no longer be manipulated.
 
Look for the following buttons in the toolbar of a PAM instance that is still loaded:
 
Capture.PNG
 
These buttons will be available at different times in a loaded process instance.  You can see what they are when you hover over each of them.  They are "Suspend", "Resume", "Reset Process", "Abort Process", "Reset Operator" and "Abort Operator".  Suspending a process and then resetting an operator or the entire process instance will allow you to change values in the process instance and then rerun the process without having to launch the process all over again. 
 
 
Any loaded status will allow you to click the suspend button in the tool bar of the instance.  Notice that when you suspend a process, there is a toggle button that is selected in the toolbar.  Hovering over that button will show "Switch Process Status on Completion".  
 
Capture3.PNG
 
 
As long as this button shows as selected (with the black box around it), even if a process fails or completes, it will remain in a blocked status until you toggle that button.  This allows for further manipulation of a process instance before the it is unloaded.  But remember to click that button when you are done with debugging or the process will never be completed.
 
You can also debug a process by setting a break point so that the process will stop at a certain operator and go into a "break point suspend" status.  That is still a loaded status so this will allow you to manipulate the process instance.  Breakpoints can be set in a running process instance or even in the process definition using the following toolbar buttons:
 
Capture2.PNG