Understanding Entering and Posting Commitment Control Budget Journals
You can manually enter budget journals to establish or change the budgeted amount for a control budget and you can also choose to automatically generate parent budgets or budget transfers from their associated child budget journals. Budget journals post to budget ledgers—whether it is an expenditure budget definition or a revenue budget definition. The way your budget journal entries are processed depends on the rules set up for the budget definition in the Budget Definitions and Budget Attributes components.
This section discusses:
Budget entries and adjustments.
Budget transfers.
Budget journal copying.
Budget posting process.
Generate parent budgets, budget adjustments, and budget transfers automatically.
Combination editing for budget and budget adjustment journals.
Budget journal deletion and unposting.
Import budget journals from a flat file.
Load budget journals from other PeopleSoft applications.
Prerequisites.
Common elements.
You enter budgets and adjustments using journals much as you do in the General Ledger journal process. Enter budget journals in the Enter Budget Journals component.
Security
The Enter Budget Journals component is subject to the security you set up for the Budget Entry or Adjustment security event.
Note: If you do not activate security for the Budget Entry or Adjustment event and for the Budget Transfer event, anyone who has general security access to the budget entry, adjustment, and transfer pages is able to enter, adjust, and transfer budget amounts.
Entering Budget Journals
The process below outlines the major steps to enter budget journals and adjustments.
Enter budget journal header information on the Budget Header page.
A journal ID can include journal lines for only one Commitment Control ledger group.
Enter budget journal lines on the Budget Lines page.
You can edit budget journal ChartField combinations and correct errors prior to posting by selecting the Edit Chartfields processing option in the Process field and clicking the Process button even if you do not have the security authority to post the journals.
Post budget journals in either of the following ways:
Post the budget journals immediately using the Budget Lines page by selecting Post Journal in the Process field and clicking Process.
The system verifies that you have security authority for your entries. If the security check passes, the system then calls the Commitment Control Posting (FS_BP) process remotely. Commitment Control Posting performs a series of edits. If the entries pass the edits, the process posts the entries to the budget ledger.
If entries fail edits, you can check the applicable errors page, correct the errors, and process the journal again. Budget posting errors are viewed from the budget journal exceptions page, which is accessible by a link on the budget journal lines page and from the menu.
Combination editing errors are viewed using both the budget journal exceptions page and using the budget errors tab on the budget journal page. The budget journal exceptions page displays at a high-level indicating that ChartField errors exist. To see the detail regarding the errors, such as which ChartFields, use the error tab on the journal. If you call combination editing directly using the Edit ChartFields option, information about the errors is only available using the budget error tab.
Security errors are displayed on the budget error page.
Post the budget journals later at a time of your choosing by completing the Budget Posting Request page and running the Commitment Control Posting process in batch.
Save your entries on the Budget Lines page. When you do, the system verifies that you have security authority for your entries. If the entries fail security, you can check the Budget Errors page, correct the errors, and process the Budget Journal posting again.
You also have the option to automatically generate and post parent budget level impacts.
The same functionality is available from within the Budget Transfer component.
Note: Budget journal entries are not created for the generated parent budgets. The posting process generates and posts the parent level impacts, but the generated parent level journal lines are stored in the KK_SOURCE_HDR, KK_SOURCE_LN, and KK_ACTIIVTY_LOG tables.
See Generate Parent Budgets, Budget Adjustments, and Budget Transfers Automatically.
Budget Entry Types
To report on budget journal entry activity, each budget journal header row and each budget ledger row carries one of the following budget entry types:
Original: Indicates an original budget journal entry.
This type is used to record adopted or originally approved budgets.
Adjustment: Indicates an adjustment to an original budget. This is typically an approved subsequent adjustment of original budget for tracking purposes (one-sided entry versus transferring amounts.)
Transfer Original: Indicates a transfer of original budget amounts. This is typically to correct an error in the originally-entered budget, moving amounts from one department to another, for example.
Transfer Adjustment: Indicates a transfer of adjusted budget amounts. This is an approved subsequent adjustment of original budget for tracking purposes (transfer amount from one ChartField to another).
Closing: Identifies budget journal entries that contain a closing amount for a budget being closed.
Roll Forward: Identifies budget journal entries that contain a balance forward amount for a budget that is being closed.
The Closing and Roll Forward budget entry types are created by the Budget Close (FSPYCLOS) process.
By storing budget entry types and the fiscal year with the accounting period for a journal in the budget ledger (LEDGER_KK), Commitment Control, enables the reporting of budget activity by entry type and fiscal year and accounting period directly from the budget ledger. Budget entry types also enable the proper segregation of budget amounts for GASB reporting.
Journal Classes
Journal class is a user-defined field used to categorize types of journals. Use it to identify budget journal lines for data selection for reports and queries. You set up journal classes on the Journal Class page.
You could, for example, set up a journal class for cost of living adjustments and use it to identify budget journals in that category.
The Enter Budget Transfer component uses the same pages as the Enter Budget Journals component, and you process and post transfers just as you do regular budget entries, with the following exceptions:
The Budget Header page in the Enter Budget Transfer component has different budget entry type options, namely, Transfer Original and Transfer Adjustment.
Journal lines must balance.
The Enter Budget Transfer component is subject to the Budget Transfer security event.
You can transfer amounts only between budgets within a single Commitment Control ledger group and business unit combination.
If the control option for a budget is control, then a transfer cannot reduce the budget amount below previously committed amounts. But if the control option is track with budget, then a transfer that reduces the budget amount below total commitment amounts can pass budget checking.
You also have the option to automatically generate parent-level budget adjustments from child budget adjustment entries.
See Generate Parent Budgets, Budget Adjustments, and Budget Transfers Automatically.
See Generating Parent Budgets, Budget Adjustments and Budget Transfers Automatically.
Open an existing commitment control budget journal using the commitment control Journal Entry page and you can copy it to a new budget journal entry online. This includes posted, unposted, edited, and edit required budget journals. Journals having an error status can also be copied.
Note: Offset lines (if required) exist only in the activity log entries. They are not part of the budget journal and are recreated by the budget processor when the journal is posted.
When the copy process finishes successfully, the Commitment Control Journal Entry page is refreshed and is loaded with the newly copied journal.
If commitment control security is activated, the copied journal has a journal status of incomplete (I) that prevents it from being posted either online or in batch. When you save the newly copied journal, the process resets the journal status to none (N) and the commitment control security checking logic verifies security according to your applicable rules.
Security is controlled by the Budget Entry or Adjustment (ENT_ADJ) Security Event, as well as the commitment control security rules and the fields specified in the rules.
Note: If you do not activate security for the Budget Entry, Transfer or Adjustment event, anyone who has general security access to these pages is able to enter, adjust, and transfer budget amounts.
Except for budget closing journals, you can use any budget journal as the source journal if you can open it from the commitment control journal entry page. This includes posted, unposted, edited and edit required budget journals.
Copying budget journal across different commitment control setups is not supported. Different setup means that if the journal date of the copied journal refers to a different effective dated row on the budget definition, you cannot copy the journal. The system prevents this action and issues an error message. Duplication of entries across commitment control ledger groups is handled by using the automatic generation of parent budget journals feature that enables you to generate parent budget level impacts from child budget journals.
Note: Copy journal batch processing is not supported. Budget journals must be copied online.
Most of the data for the new journal comes from the source journal. However, some of the fields are populated from the copy request parameter or system overrides. For example, those lines having a budget period, the budget date is populated with values from the original journal but for lines without budget period, the budget date takes the value from the new journal date.
Currency exchange rates and base amount (monetary amount) are first copied from the source journal. If rate type is specified on the budget line, the copy process repopulates the line exchange rates according to the rate type and currency exchange date of the new journal. The copy process then recalculates the base amount using the new exchange rate.
With the exception of these changes, an exact copy of the source journal is created by the process. This includes all of the auto-generation of parent options that might be included in the original journal.
See Generate Parent Budgets, Budget Adjustments, and Budget Transfers Automatically.
See Generating Parent Budgets, Budget Adjustments and Budget Transfers Automatically.
You run the Commitment Control Posting (FS_BP) process to post completed budget journals to the control budget ledgers. You can run the process by initiating it on the Budget Lines page for a single budget journal, or you can request a batch process on the Budget Posting Request page.
Commitment Control Posting Functions
The Commitment Control Budget Processor Application Engine (FS_BP) process performs the following functions:
Edits the budget journal entries to ensure that they meet the rules established on the Budget Definitions component and the Budget Attributes pages.
Validates that the journal meets the following conditions:
Budget is not closed.
Control ChartField value is valid for the budget definition.
If the All Values option is selected on the Control ChartField page, you can enter journals for any value of this ChartField. Otherwise, the ChartField value entered on the budget journal must be among those listed in the ChartField Values grid on the Control ChartField page.
Key ChartField values are at or above a budgetary-level node of the translation tree, if translation is established in the budget definition.
The journal date falls within valid dates for the control ChartField, if the ChartField value has beginning and ending dates for spending range.
Budget period is valid for the budget ledger, unless no budget calendar is defined for the rule set, in which case it validates that budget period is blank.
Ledger is valid for the business unit and is a budget ledger.
Base currency is correct for the budget ledger.
Account is not an account type that is excluded for the budget.
Account value is not excluded for the budget.
Non-key ChartFields are blank.
Funding source code is populated, if funding source is enabled on the budget definition and for the control ChartField value.
Entry events are populated, if entry events are enabled and required.
If entry events are optional for the Commitment Control ledger group, they are only validated if present. However, if entry event codes are optional at the parent level but are blank, a warning is logged for each such line.
Note: Security and balancing checks (the latter for transfers only) are performed when you save or when you select Refresh Journal in the Process field and run it on the Budget Lines page. Security errors result in a budget header status of S, for Security Error. Balancing errors result in a budget header status of B, for Balancing.
Creates offsetting lines for budget journal entries (if the Entries Must Balance option is selected on the Control Budget Options page).
Note: The offsets are created in the PS_KK_ACTIVITY_LOG and not in the budget journal itself.
If you have chosen to use combination editing, it is initiated as a part of the posting process even if you have previously separately run Edit Chartfields manually using the Process button on the Budget Lines page.
Automatically running the combination edits at posting catches the introduction of errors due to ChartField changes made after a manual edit but before the subsequent running of the posting process.
Run the Edit Chartfields process online as often as necessary to prove the validity of your entries as you create budget journals and before posting them either online or in batch.
Note: The Edit Chartfield batch process can be run only as a part of the posting batch process and cannot be run as a batch process separately from the posting process.
See Generating Parent Budgets, Budget Adjustments and Budget Transfers Automatically.
See Using Combination Editing with Budget, Transfer, and Adjustment Journals.
If there are errors, the process marks the budget header status as E, for Error.
Note: When the posting process is run and combination edit errors exist, the budget processor logs a budget checking exception indicating that ChartField errors exist. This sets the journal header status to E. When the combination edit process is run directly using the Edit ChartFields option, the process does not update the header status.
These budget related edits are performed by the process:
Journal does not reduce the available budget amount below tolerance.
Edit check is not performed if the control option is Tracking with Budget or Tracking without Budget.
Journal does not cause a child budget (along with its siblings) to exceed the parent budget limit.
Edit check is not performed if the Child Budgets Exceed Option is selected on the Control Budget Options page. However, it checks that a parent budget row exists and logs a warning if it does not. If the parent budget definition has more than one child budget definition, the posting process does not sum children across child budget definitions but ensures that each child does not exceed its parent.
Negative journal amount does not cause a parent budget to be less than the sum of the children.
Edit check is not performed if the Child Budgets Exceed option is selected on the Control Budget Options page. If the parent budget definition has more than one child budget definition, the posting process does not sum children across child budget definitions but ensures that each child does not exceed the parent.
A funding source has been allocated to the budget on the Funding Source Allocation page, if funding source tracking is enabled.
The process also updates the funding source allocation row with the journal amount.
Sum of the budget amount and all funding source allocation revenue rows is less than or equal to the overall budget amount defined on the Funding Source Allocation page, if funding source is enabled.
If equal, the process permits processing of source transactions.
Journal amount does not cause the total allocations for a funding source to exceed the authorized funding source amount, if funding source is enabled.
If there are no errors, posts the budget journal entries to the budget ledger and marks the budget header status as Posted (P).
Note: If you have added the Date/Timestamp status field (for example, DTTM_STAMP_SEC) on the Source Transactions - Status Fields page, the Date/Timestamp for the current system date is applied upon saving the budget journal (online journal), or whenever the Budget Processor has completed processing.
If there are errors in this round of edits, the budget header status becomes E (error).
If unposting, creates reversing journal entries, posts them to the budget ledger, and marks the original entries as Unposted (U).
Unposting entries go through all applicable budget checking edits.
If entry events processing is enabled for the Commitment Control ledger group, the posting process calls the Entry Event Processor (FS_EVENTGEN) (only for budget journals) if the applicable Skip entry events generator flag is not set.
(See the section discussing batch and user preferences for online.) to generate entry event lines.
Validates cumulative begin and end dates.
If cumulative budgeting is enabled and the derived dates option is not active and cumulative begin and end dates are not yet defined, then cumulative begin and end dates on budget journal lines become required.
If any cumulative begin and end dates are changed in journal entry, the process updates the budget attributes table.
Note: Only budget journals that have no errors are posted.
If entries fail edits, you can access the applicable errors page, correct the errors, and process the journal again. Budget posting errors are viewed from the budget journal exceptions page.
Combination editing errors are viewed using both the budget journal exceptions page and using the budget errors tab on the budget journal page.
The budget journal exceptions page displays at a high-level indicating that ChartField errors exist. To see the detail regarding the errors, such as which ChartFields are involved, use the error tab on the journal. If you call combination editing directly using the Edit ChartFields option, information about errors is only available using the budget error tab.
Avoiding Unanticipated Exceeds Budget Tolerance Error When Reducing Budget
If you attempt to post a budget journal to reduce a budget by its available budget balance including some or all of the budget tolerance, the Budget Processor might return an Exceeds Budget Tolerance error. The following is an example.
Assume you have a budget of 10000 with a tolerance of 10%. There is also an encumbrance of 5000 recorded against the budget. The available budget balance, including the tolerance, is 6000.
Budget Row |
Budget Amount |
Tolerance |
Tolerance Amount |
Enc |
Available Balance |
Avail Bal + Tolerance |
---|---|---|---|---|---|---|
Original |
10000 |
10% |
1000 |
5000 |
5000 |
6000 |
It would seem that you could enter a new budget journal in the amount of -5500 and that it should pass the budget checking component of the budget posting process. But when you attempt to post, the new budget journal fails posting, because budget posting correctly calculates the available budget balance and tolerance amount based on the budget amount after the budget is reduced by the new journal. In other words, reducing the budget by 5500 results in a new budget amount of 4500. The available budget balance is then -500 ( 4500 minus the encumbrance of 5000). Because the tolerance is calculated on the new budget amount, the available budget balance including tolerance is -50.
Budget Row |
Budget Amount |
Tolerance |
Tolerance Amount |
Enc |
Available Balance |
Avail Bal + Tolerance |
---|---|---|---|---|---|---|
Original |
10000 |
10% |
1000 |
5000 |
5000 |
6000 |
New |
4500 |
10% |
450 |
5000 |
-500 |
-50 |
Because the new budget amount, including tolerance, is 4950, and there is an encumbrance of 5000, the transaction fails.
This does not mean that budget posting fails any time you post a journal to reduce a budget by an amount higher than the available budget balance but within tolerance. Let's say, for example, that you had a budget of 10000 with a tolerance of 5% and an encumbrance of 5000, and you post a budget journal to reduce the budget amount by 5100. Your new budget amount will be 4900. Including tolerance—which, at 5% of 4900, is 245—your new budget amount is 5145, more than enough to cover the encumbrance, and the journal passes the budget checking component of the budget posting process.
Budget Row |
Budget Amount |
Tolerance |
Tolerance Amount |
Enc |
Available Balance |
Avail Bal + Tolerance |
---|---|---|---|---|---|---|
Original |
10000 |
5% |
500 |
5000 |
5000 |
5500 |
New |
4900 |
5% |
245 |
5000 |
-100 |
145 |
Commitment Control provides the flexibility to design complex multilayered budgeting structures to support your budgeting requirements. However, after you have set up your budgets and established the budget hierarchy, the manual creation, adjustment, and transfer of budgeted amounts can be a tedious and time-consuming task when multiple budget layers are involved.
Commitment Control provides for automatic generation of parent budget level activity to streamline the entry, adjustment, and transfer functions for multilevel budgeting with complex budget hierarchies. Using the parent budget automatic generation feature, the budgeting impact associated with child level budget journal entry can be automatically reflected at all levels above the specified originating child budget entry level. This functionality saves a significant amount of time because budget maintenance can be done at the lowest child level and the system automatically handles the budget impacts associated with each of the higher parent budget levels. This enables what might be referred to as bottom-up budgeting.
Automatic generation of parent budget impacts revolves around the originating journal. The originating journal is a child level budget, budget adjustment, or transfer budget journal, entered manually or by other means, such as journal import or allocations, on which the parent or multiple parent budget level impacts are generated.
The term impacts refers to the automatically generated parent entries created and other system-provided information depending on prior setup and budget definitions, such as entry event generation.
Note: The automatic generation of parent budgets from child budget journals does not create parent budget journal records. It creates the parent level impacts and post that generated activity to the KK_ACTIVITY_LOG record.
This diagram shows how a budget transfer initiated at the lowest level within a budget hierarchy is reflected at each level in the ledger groups hierarchy:
Parent budget impacts generated by child budget journal transfer
![Parent budget impacts generated by child budget journal transfer](img/i2a517932n-5d57.png)
In this example, 100 USD is transferred from the budget G Child A1 to budget G Child B2 within the same CC_GCHILD ledger group. Assuming that you previously set up the option to automatically generate the parent budget impacts, when the originating child journal is posted, the impact to the CC_CHILD and CC_PARENT ledger groups is automatically generated and posted to the budget ledgers for each successive ledger group in the hierarchy.
The functionality does not support the automatic generation of journals to transfer budget amounts directly between ledger groups. For example, it does not support directly transferring 100 USD from G Child A1 to Child A or Child B. The same is true for a transfer from Child A to G Child A2 or B2. Neither does it support transfers from G Child A1 to Child A or from G Child B1 to Child B.
Although originating entries are usually made at the lowest child level, your originating budget, budget adjustment, or budget transfer journal can be entered at any intermediate level within a budget hierarchy and during posting the system creates the budget impacts for all of the ledger groups that are at and above the originating budget journal level. No impact is automatically generated below the originating level.
Note: When you increase budget amount enter increases as positive amounts and enter decreases as negative amounts. This is true for both expenditure and revenue budgets.
Automatic generation is not available below an originating level and manual journal entries must be made to affect single levels within a budget hierarchy.
Originating budget journal entries made at intermediate budget group levels result in the total of the intermediate budget and its parent budgets exceeding the child budgets below that intermediate originating budget level. For example, if you are using automatic generation and you increase Child A by entering an originating budget adjustment for 500 USD, its Parent budget is increased to 1500 USD and the total of Child A and Child B equals the 1500 USD total for the Parent budget. However, the total of G Child A1 and A2, 500 USD does not equal their parent budget Child A total of 1000 USD.
You might want a condition where Child A exceeds the total budget for G Child A1 and A2 if you plan to budget certain expenditures at the higher budget level of Child A and do not want the budget detail or roll up of expenditures that could be afforded by G Child A1 and A2 for certain categories of expenditures. For example, you might want to budget for total office expense at the Child A level rather than at G Child A1 or A2 levels or have detail amounts for such things as office supplies, machine rental and maintenance for G Child A1 and A2 that rolls up to office expense.
The processing of the budget impacts to all of the ledger groups (including the impact to that of the originating journal entry for the originating child budget) is treated as a single unit of work, so that if an exception is encountered at any level during the posting process, none of the budget ledgers are updated. All levels must pass the posting edits for anything to be committed to the budget ledgers. The same is true when unposting automatically generated journals.
When you do an unpost, the budget processor does not directly remove the posted originating budget journal and the generated impact to other ledger groups. Instead, the budget processor creates a new journal that is a copy of the posted originating version, but with reversed signs for the amounts. After the new journal is created, the budget processor budget checks the newly system-generated journal and thereby reverses the impacts of the original journal.
This method of creating and processing the unpost journal is used in order to leave a complete audit trail. The unposting journal will be created with the same journal date as the original. Hence the same set of effective-dated budget definition rules will be used.
All automatically generated impacts are distinguished by the system from journal entries that you manually enter or from journals entered by other methods, such as journal import or allocations, and can be viewed by clicking the Posted link for the Budget Header Status on the Budget Lines page when the originating journals and their impacts for parent budgets have posted successfully. The link accesses the Commitment Control Activity Log criteria page where you provide inquiry criteria to view the activity created by the process.
Ledger groups that are system generated are visible from the Activity Log and Activity Log Drill-down inquiries.
The source transaction definition as delivered for budget journals specifies JOURNAL_DATE, and budget posting uses the originating journal date to perform effective date lookups on all setup related tables when creating journal impacts for parent budgets. Parent budgets mirror originating child budget dates.
Cumulative budgeting can be implemented in one of two ways:
Use a cumulative calendar, in which case the cumulative date range is programmatically determined by budget posting when the originating journal is posted.
Specify a cumulative date range at the budget attribute level.
This second method is typically used when using multiple year overlapping budgets.
The system cannot determine what the cumulative date range should be at the parent budget levels, when a cumulative date range has been specified on the originating budget journal. So, the cumulative dates on the originating journal will not be inherited by the generated parent budgets. Instead, you must manually specify these dates at the various parent budget levels within the Budget Attribute component after the parent budgets have been generated and posted.
After all entries are successfully posted, you can view the budget impacts for all affected budgets from within a single inquiry by clicking the Posted link for the Budget Header Status on the Budget Lines page.
If there are errors after running the budget posting process, click the Errors link for the Budget Header Status to access the Budget Journals Exceptions page to determine the nature of the errors and access the necessary corrections before running the process again. An error encountered at any level in the budget hierarchy errors out and prevents posting of both the originating child budgets as well as the parent impacts.
Note: If you do not activate security for the Budget Entry or Adjustment event and for the Budget Transfer event, anyone who has general security access to these pages is able to enter, adjust, and transfer budget amounts.
See Generating Parent Budgets, Budget Adjustments and Budget Transfers Automatically.
You can edit commitment control budget journals for ChartField combinations online separately from posting or during the batch posting processing as a part of the Budget Processor (FS_BP) Application Engine process, which edits and posts budget journal entries.
Even if you do not have adjustment security authorization, you can run combination editing online separately from posting to verify that a budget journal passes combination editing prior to posting. However, there is no separate batch request page to run the Edit ChartFields process to perform combination edits as a batch process separately from the posting batch process.
By running the Edit Chartfield process online before posting, you can resolve errors that might exist before they cause delay in the posting process. The process updates the line status to provide visibility to the lines that failed.
A budget entry that fails combination editing stops further processing during commitment control batch journal posting. If the ChartField combinations are not valid, any further processing for budget-related errors is irrelevant until the ChartField errors are corrected. Either all lines pass and the entire journal is posted, or if one or more lines fail, nothing is posted. You can view the Budget Errors page to see details about errors requiring correction.
If you automatically generate parent budget journals from child budget journals, no combination editing is performed by the system for the parent budget entries generated further up the budget hierarchy. When combination editing is performed for the originating journals that you make for the child budget and the combinations are found valid at this originating entry level, they are also considered valid for parent budget journals that are automatically generated by the system at the higher budget levels.
See Using Combination Editing with Budget, Transfer, and Adjustment Journals.
You can individually delete budget journal lines not yet posted on the Budget Lines page in both the Enter Budget Journals and Enter Budget Transfer components. You can also delete multiple journals not yet posted using the Delete Journals page.
To reverse posted journals, you mark the journals for unposting on the Mark Journals for Unposting page and request a run of the Commitment Control Posting process on the Budget Posting Request page. Commitment Control Posting then creates, budget checks, and posts reversing journal entries to the budget ledger.
Note: The reversal of automatically generated parent budget impacts occurs in the same way as that for the originating journal using the budget definition rules and translations.
This process is much like the flat file import process used for importing journals from flat files in General Ledger but uses a different run control page.
You do not have to manually enter budget journals in Commitment Control. You can also enter control budgets through Budgeting, Human Resources, and third-party applications.