Online definition of a control is performed on the Budget Control Administration (BCADM) table. Many budget controls are delivered and can be viewed on this table. Changes to those delivered records can be done and tracked as a modification to delivered data for future upgrades to re-apply. New records can also be added to meet any controlling needs. However, the recommended approach when a delivered record should be changed is to add a new record. Following this recommendation will ensure that data from future upgrades will not overlay any client-modified record. When adding new records, a Control ID should be used that is four-digits. Delivered controls will never use an ID that large. Discussion in this section will assume the recommended approach is used for modifications.
Below is a list of the fields used for defining a control and information about how to complete each.
Control ID - The required unique number assigned to a control for identification.
Control Name - The required short descriptive name used in conjunction with the ID when viewing control records. "Available To Obligate Only" is an example of a delivered name.
Control Description - The required full description of a control to explain in accounting and budgeting terms how a control functions. "Constraint limits Expenditures and Encumbrances to the Unobligated amount only" is an example of a delivered description.
Control Formula - The required descriptive field to explain a control with budget amount names, operands, and amounts. "Unobligated >= 0" is an example of a delivered formula.
Formula Type - Controls are either one of two types: Constraint or Guideline. Constraints regulate accounting activity against a budget line, and guidelines regulate budget activity against a budget line.
Constraints are always fired when a budget line is updated, which means that a constraint error can be issued on an accounting or a budgeting document. Guidelines are only fired when a budget document updates a budget line.
Expense/Revenue - A single control never applies to all types of budgets. Most controls are for regulating either an expense budget or a revenue budget. A small number of controls will actually apply to a third type of budget - both expense and revenue budgets.
This required setting for a budget control enables performance logic within the Budget Posting Routine to only evaluate controls that should apply to a type of structure. The value also assists the budget document's line-level control establishment in displaying only the controls that should apply to a type of budget line.
Left Hand Side (LHS) - The required left hand side of a budget control's formula defined by using Reverse Polish Notation. Budget amount fields are denoted by their ID values with a 'B' preceding that ID. Other values such as numbers and operands (+, -, *, /) can also be used to define the LHS of a formula. When < or > is used, the budget control is an 'advanced control'.
Operator - A required choice of Greater Than (>), Greater Than or Equal To (>=), Less Than (>), Less Than or Equal To (>=), Equal To (=), and Not Equal To (<>) are used to compare the LHS and RHS values.
Right Hand Side (RHS) - The required right hand side of a budget control's formula defined by using Reverse Polish Notation. Budget amount fields are denoted by their ID values with a 'B' preceding that ID. Other values such as numbers and operands (+, -, *, /) can also be used to define the RHS of a formula. When < or > is used, the budget control is an 'advanced control'.
Bucket Triggers - When an update is made by a line on an accounting or budgeting document, not every bucket is changed on a budget line. When evaluating controls, the Budget Posting Routing will fire all that are applicable to a budget line. However, it will only issue errors for controls that had one or more of their Budget Triggers changed. When a budget bucket ID is used in either the LHS or RHS fields, it is to be listed again in the Budget Triggers field, but without the 'B' in front of the ID. Multiple values are separated by commas. This is a required field.
Error Code - Each budget control has to point to one error message. The ID for that error message is defined as the Code on the Messages (MESG) table. Budget control error messages do not use the Severity Field on the MESG table, but rather severity is set online within one or more budget reference tables. However, the Severity Field on the MESG table should be set toError for budget control messages. The Override Level field on the MESG table should be the appropriate value between 1 and 10. If set to 0, the message cannot be overridden even given that the severity level is chosen on a budget reference table.
Any custom error messages should begin with the letter 'W' to differentiate them from delivered messages and ensure that the data is not overlaid with data from an upgrade that may have created a new error message with the same ID.
Advanced Budget Control - When a budget control uses the < or > within a LHS or RHS value, the control cannot be tracked the same way as others. Such controls are marked as an Advance Budget Control so that the Budget Posting Routine can handle them correctly.
With the introduction of the performance enhancement of incremental updates to budget lines, changing certain fields on the BCADM table after budget lines have been created will involve a batch program. Once a budget line is created that a control would apply to, a record is created in an offline tracking table that stores the LHS and RHS amounts calculated from that budget line for that control. If a control being used then had the LHS, RHS, or Operator values changed, the record for that control on the offline table would be incorrect, or compromised. The running of the Calculate Budget Control Amounts batch job will need to be run to update the offline table. Refer to the CGI Advantage Financial - Budgeting Run Sheets guide or the associated page help file for more information on this batch job.