System Processes
Certain CGI Advantage processes require exclusive access to identified application database tables while they are running. One or more of the table update actions (Insert, Update, Delete) may be protected for the identified table(s). At the same time one or more of the transaction actions (Create, Validate, Submit, Approve/Bypass Approval, Reject, Reject All) may be protected for identified transactions. The System Processes table allows you to configure a process to have exclusive access to one or more tables and transactions.
The System Processes table has three tabs in Edit or Create Mode:
System ProcessesSystem Processes
-
Process ID – This field is a unique identification for each process to be configured.
-
Short Description – This is a required field that captures a short description for the process.
-
Long Description – This is an optional field to capture a long description for the process.
-
In Progress – This check box ‘locks’ the reference tables and the specified action. When done manually by the System Administrator, it prevents any updates made through any CGI Advantage application code. This mode is used to reserve the tables and transactions for external processes as the ‘locking’ does not involve database locks. This secures the tables for updates and/or transactions for specified actions by that job only. Once the batch process is completed, the system will reset this flag and the System Process lock will be released. In case of chain jobs, this lock has to be manually reset.
-
Lock Resources on Process Fail – When a system process is associated with a batch process and if the batch process fails, this check box will prevent ‘releasing’ of the resources for online users for actions defined to be ‘locked’ in situations when the batch process fails. When this check box along with the Process Failed check box is checked the dependent resources will be ‘locked’ as defined by the In Progress check box.
-
Process Failed – This check box denotes that the job process failed. This along with the Lock Resources on Process Fail check box will lock the resources when the batch process fails. The system will set and reset this check box when the batch process fails processing or completes successfully.
Reference Table ResourcesReference Table Resources
This tab allows you to provide a list of tables for each process along with associated actions to be protected/allowed for the duration of the process run. All tables chosen here must already be registered as application resources of type Reference Table. For example, you may choose to allow updates on a specific table while the Payroll Process is running, but not allow deletions or inserts while the Payroll Process is running.
Transaction ResourcesTransaction Resources
This tab allows you to provide a list of transactions for each process along with associated actions to be protected/allowed for the duration of the process run. All transactions chosen here must already be registered as application resources of type Transaction. For example, you may choose to allow creation of Timesheet transactions while the Payroll Process is running, but not allow Submission while the Payroll Process is running.
Associating Batch Process with System Process
The System Process can be associated with a batch process using batch parameters. While scheduling a batch job, the batch administrator can define a batch parameter, SYSTEM_PROCESS_ID, with the value as the System Process Id. If the System Process needs to be associated with an entire chain job then the parameter should be defined in the chain job parameter list. Since the batch parameters are hierarchical, if the parameter is provided at both the chain and job step level then the job step level parameter will be used (chain job level parameter will be overridden). Only one System Process Id can be associated with a batch process.
Associating System Processes to Batch Processes using batch parameters and adding Transaction Type resources to the System Process is a feature flag driven feature. The onlineBatchProcesses feature flag in the feature.conf file must be enabled to turn on this feature.
To allow multiple batch processes to bypass specific system processes, refer to the following section "Batch Jobs System Processes”.
Batch Jobs System Processes
To support more flexible parallel processing, administrators can now configure certain batch processes to bypass System Process locking behavior. This allows selective parallel execution of batch processes while preserving resource protection for others.
This is managed using the Batch Jobs System Processes (BATPROC) page, where a mapping between a System Process and a Batch Process can be defined. Each mapping includes a Bypass SYSPROC flag that controls whether the batch process must respect the locking configuration of the associated System Process.
For example, suppose Batch Process A is mapped to System Process 1. While Batch Process A is running, the resources defined for System Process 1 will be locked according to the configuration.
-
To prevent Batch Process B from running in parallel with System Process 1, you can also map Batch Process B to System Process 1 on the BATPROC page and uncheck the Bypass SYSPROC flag. This ensures that Batch Process B cannot execute while System Process 1 is marked as In Progress.
-
Conversely, if you wish to allow Batch Process B to bypass this restriction and run concurrently, the Bypass SYSPROC flag should be checked.
This capability is dependent on the Online Batch Processes feature. Additionally, the ability to allow multiple batch processes to bypass specific system processes must be enabled by setting the ENABLE_BYPASS_SYSPROC_BATCH flag to true on the Application Parameter (APPCTRL) page.