This appendix describes the use of AutoAccounting, the Account Generator, and Oracle Subledger Accounting to determine accounting in Oracle Projects.
This appendix covers the following topics:
Oracle Projects creates many different accounting transactions throughout its business cycle. You can use AutoAccounting to specify how to determine the correct account for each transaction.
Examples of accounting practices you can implement using AutoAccounting include:
Charge central headquarters with all advertising costs regardless of which region those advertisements benefit.
Credit payroll costs to the payroll liability account belonging to the division for which an employee works.
Assign revenue from subcontractors to the company and cost center managing the project.
Oracle Projects generates accounting events and creates accounting for the accounting events in Oracle Subledger Accounting. Oracle Projects predefines setup in Oracle Subledger Accounting so that the create accounting process accepts default accounts from AutoAccounting without change. If you define your own detailed accounting rules in Oracle Subledger Accounting, then Oracle Subledger Accounting overwrites default accounts, or individual segments of accounts, that Oracle Projects derives using AutoAccounting.
Oracle Projects interfaces the accounting that AutoAccounting creates for billing to Oracle Receivables along with the associated customer invoice. In turn, Oracle Receivables creates accounting for the invoices in Oracle Subledger Accounting.
Related Topics
AutoAccounting and Subledger Accounting
When you implement AutoAccounting, you define the rules governing which general ledger accounts Oracle Projects uses under which circumstances. Oracle Projects uses the rules you define whenever it performs an accounting transaction.
For each accounting transaction, you define rules to determine the appropriate account to charge. Each accounting transaction is identified by an AutoAccounting function. AutoAccounting functions are components of programs that you submit to generate accounting entries.
The following table lists each AutoAccounting function for revenue and billing and the associated business activities.
AutoAccounting Function | Business Activity |
---|---|
Burden Cost Revenue Account | Determines revenue account for burden costs |
Event Revenue Account | Determines revenue account for revenue events |
Expense Report Revenue Account | Determines revenue account for expense report items |
Intercompany Revenue Account | Determines revenue account for cross-charged transactions requiring intercompany billing processing |
Labor Revenue Account | Determines revenue account for labor items |
Miscellaneous Transaction Revenue Account | Determines revenue account for miscellaneous transactions |
Revenue and Invoice Accounts | Determines accounts to track revenue and receivables |
Supplier Invoice Revenue Account | Determines revenue account for supplier cost items |
Usage Revenue Account | Determines revenue account for usage items |
The following table lists each AutoAccounting function for costing and the associated business activities.
AutoAccounting Function | Business Activity |
---|---|
Borrowed and Lent Credit Account | Determines borrowed account, which is the credit side of the borrowed and lent transaction |
Burden Cost Account | Determines cost account for burden costs |
Burden Cost Clearing Account | Determines clearing account for burden costs |
Expense Report Cost Account | Determines cost account for expense report items |
Intercompany Invoice Accounts | Determines receivables and rounding accounts for cross-charged transactions requiring intercompany billing processing |
Labor Cost Account | Determines cost account for all labor items, including straight time and overtime |
Labor Cost Clearing Account | Determines clearing account for labor costs |
Borrowed and Lent Account Debit Account | Determines lent account, which is the debit side of the borrowed and lent transaction |
Miscellaneous Transaction Clearing Account | Determines clearing account for miscellaneous transactions |
Miscellaneous Transaction Cost Account | Determines cost account for miscellaneous transactions |
Provider Cost Reclass Cr | Determines credit amount for cross-charged costs reclassified by the provider operating unit |
Provider Cost Reclass Dr | Determines debit amount for cross-charged costs reclassified by the provider operating unit |
Supplier Invoice Cost Account | Determines cost account for adjusted supplier cost items |
Total Burdened Cost Credit | Determines credit account for total burdened costs for all items on burdened projects |
Total Burdened Cost Debit | Determines debit account for total burdened costs for all items on burdened projects |
Usage Cost Account | Determines cost account for usage items |
Usage Cost Clearing Account | Determines clearing account for usage costs |
To implement AutoAccounting, you define AutoAccounting rules to generate account combinations, then assign a set of rules to each AutoAccounting transaction you want to use for your company. You do not define AutoAccounting rules for each project or contract.
Implement your Oracle Projects system with your AutoAccounting plan in mind. AutoAccounting derives values for account combinations based on project information for all accounting transactions in Oracle Projects. Consequently, the way you organize your chart of accounts affects your implementation data. You can use most of the implementation data that you define for Oracle Projects as inputs to the AutoAccounting rules that you define.
Design your AutoAccounting setup based on your implementation data.
Define lookup sets. See: Define Lookup Sets.
Define rules. See: Define Rules.
Assign rules for each function. See: Assign Rules.
Related Topics
AutoAccounting Sample Implementation: Fremont Corporation
Each AutoAccounting rule you define supplies one Accounting Flexfield segment value at a time. Thus, you need to specify one AutoAccounting rule for each segment in your Accounting Flexfield for each AutoAccounting transaction you want to use.
Some of the AutoAccounting rules you define can be quite simple, such as always supplying a constant company code or natural account. Others can draw upon context information (parameters), such as the revenue category for a particular posting or the organization that owns a particular asset. You can even use multiple parameters to provide a segment value.
You can reuse the same AutoAccounting rules for many different functions and their transactions.
You define rules based on project information that you enter. You can use these AutoAccounting parameters as input values to your rules.
Note: AutoAccounting does not use Flexfield security rules when determining a valid account combination. You must define your AutoAccounting rules to determine the appropriate account based on the rules required by your company.
AutoAccounting allows you to use the AutoAccounting parameters as inputs for your AutoAccounting rules. The following table lists these parameters.
Note: Not all of the parameters in the table are available for all functions. The Customer ID and the Customer Name parameters are available for cross charge functions only. Submit the AutoAccounting Functions Listing for a complete listing of all of the parameters available for each function.
AutoAccounting Parameter | Meaning |
---|---|
Class Code | AutoAccounting class code on the project. Note: Since you can define many project classification categories, the Class Code parameter always corresponds to the one classification category that you specified as the AutoAccounting classification category. |
Labor Costing Rule | Labor Costing rule of the employee who incurs the expenditure |
Customer ID | Internal ID of the internal customer you define for the receiver operating unit |
Customer Name | Internal customer you define for the receiver operating unit |
Employee Number | Employee number of the employee who incurs the expenditure |
Event Num | Event number of the event |
Event Organization | Organization for the event |
Event Organization ID | Internal identifier of the organization for the Event |
Event Type | The classification of the event |
Expenditure Category | Expenditure category of the expenditure item |
Expenditure Item ID | Internal identifier that identifies each expenditure item |
Expenditure Operating Unit | Operating unit that incurs the expenditure |
Expenditure Operating Unit ID | Internal identifier of the operating unit that incurs the expenditure |
Expenditure Organization | Organization that incurs the expenditure |
Expenditure Organization ID | Internal identifier of the organization that incurs the expenditure |
Expenditure Type | Expenditure type of the expenditure item |
Labor Cost Multiplier | Labor cost multiplier of the task charged |
Non-Labor Resource | Non-labor resource utilized for the expenditure |
Non-Labor Resource Org. | Non-labor resource-owning organization |
Non-Labor Resource Org. ID | Internal identifier of the non-labor resource-owning organization |
Person ID | Internal identifier of the person who incurs the expenditure |
Person Type | Identifies whether a person is an employee or a contingent worker
Additional Information: If transactions have no Person Type parameter, use a SQL statement to derive your AutoAccounting rules. |
Project ID | Internal identifier of the project being charged |
Project Number | The number of the project being charged |
Project Operating Unit | Project-managing operating unit |
Project Operating Unit ID | Internal identifier of the project-managing operating unit |
Project Organization | Project-managing organization |
Project Organization ID | Internal identifier of the project-managing organization |
Project Type | Project type of the project charged |
Provider Organization | Organization incurring the cross-charged transaction |
Provider Organization ID | Internal identifier of the organization incurring the cross-charged transaction |
Receiver Organization | Organization whose project receives the cross-charged transaction |
Receiver Organization ID | Internal identifier of the organization whose project receives the cross-charged transaction |
Revenue Category | Revenue category of the expenditure item |
Task ID | Internal identifier of the task charged |
Task Number | Task number of task charged |
Task Organization | Task-managing organization |
Task Organization ID | Internal identifier of the task-managing organization |
Task Service Type | Service type of the task charged |
Top Task ID | Internal identifier of the highest level parent task of the task charged |
Top Task Number | Task number of the highest level parent task of the task charged |
Supplier Type | Supplier type of the supplier on the invoice |
To define an AutoAccounting rule, you first specify an intermediate value (an "input" for the rule). You can draw an intermediate value from one of three intermediate value sources:
Variable | Description |
---|---|
Constant | Always supply a particular intermediate value (usually an Accounting Flexfield segment code) |
Parameter | Use a predefined parameter as an intermediate value; make the rule context-sensitive based on one value |
SQL Select Statement | Execute a SQL select statement to retrieve an intermediate value; make the rule dependent on multiple values and/or conditional statements The following diagram illustrates the AutoAccounting Rule Mapping process. To define an AutoAccounting rule, you first specify an intermediate value (an "input" for the rule). You select your intermediate value from one of the following sources: Constant, Parameter and SQL Select Statement. After you specify an intermediate value, you indicate whether the intermediate value is already a valid segment value or whether AutoAccounting needs to translate it into a segment value using a lookup set. AutoAccounting then uses the segment value determined above to derive an account code from your chart of accounts. |
For example, suppose you want to define an AutoAccounting rule that provides a region code based upon the organization that is managing a project. You specify an intermediate value source of Parameter, since the project-managing organization is a predefined parameter; you specify Project Organization as the parameter name.
AutoAccounting rules with SQL statements are intended to process rules that are dependent on more than one parameter. They are not intended to derive additional parameters using SQL which accesses application tables.
This type of use may affect processing performance and may not be supported based on the AutoAccounting function. If you determine that you need rules that reference application tables to derive additional values not provided by the AutoAccounting parameters, please contact your Oracle technical support representative before proceeding.
You can define rules to read any value by using a SQL select statement. You should consider the performance implications of using SQL statements. Although many companies have implemented AutoAccounting SQL statement rules in a production environment, you should tune your SQL statement and test the AutoAccounting setup against volume data to check their performance quality before implementation.
Additional Information: SQL statements over 250 characters are truncated if not formatted in generally accepted SQL format.
You reference parameters in the SQL Statement with a colon followed by a number; for example as :1. You then map the parameter number in the SQL statement to the appropriate parameter number and parameter in the Rule Parameters for the rule. In the example above, :1 maps to the Project Type parameter which is listed as parameter 1 under Rule Parameters.
You must use SQL statement rules to define rule parameters. Reference each parameter in the rule with a different number, even if you are using the same parameter many times in a SQL statement. You can use up to 19 rule parameters per rule. Reference the rule parameter sequence numbers in numerical order. For example, do not reference :3 before :2.
Do not add a semicolon at the end of the SQL statement.
After you specify an intermediate value, you specify one of the following segment value sources to indicate whether the intermediate value is already a valid segment value or whether AutoAccounting needs to translate it into a segment value using a lookup set:
Variable | Description |
---|---|
Intermediate Value | Supply the intermediate value as a segment value; do not use a lookup set |
Segment Value Lookup Set | Look up the intermediate value in a lookup set; translate the intermediate value into the corresponding segment value |
You do not always need to use a lookup set when you write an AutoAccounting rule. If you define a simple constant rule, you probably do not need to use a lookup set to supply a segment value, since you generally supply a valid segment value as the constant.
For example, if you use a constant intermediate value, such as account number 4100, the intermediate value is already a segment value and therefore needs no translation. Or, if the value of a parameter already is a suitable segment value (as might be the case if you use the project number as part of your chart of accounts), you do not need a lookup set to translate it into a segment value.
However, if you use a parameter-based intermediate value such as an organization name, you need to specify the name of a lookup set that maps the names of organizations to the corresponding segment value.
You need to define a lookup set before you can use it in a rule. However, if you prefer to define your rules before completing your lookup sets, you can define each lookup set's name and description, then define the intermediate values and segment values later.
Use this window to define and maintain AutoAccounting rules. You define AutoAccounting rules to generate account combinations. After you define rules, use the Assign Rules window to assign a set of rules to each AutoAccounting transaction you want to use.
Rule Name. Enter a unique, descriptive name for this AutoAccounting rule.
Use this region to define an AutoAccounting rule and its attributes such as whether it is based on a constant value, a predefined parameter, or a SQL select statement. Depending on a rule's intermediate value source, you also use this region to enter its constant value, parameter, or SQL select statement.
Source. Enter the source from which you want to determine an intermediate value for this rule. Oracle Projects provides the following intermediate value sources:
Constant. Use a particular intermediate value which is not context sensitive (usually an Accounting Flexfield segment code).
Parameter. Use a predefined parameter as an intermediate value; make rule context-sensitive based on one value.
SQL Select Statement. Execute a SQL select statement to retrieve an intermediate value; make rule context sensitive based on more than one value.
Value. If you specified Constant as this rule's intermediate value source, enter the value you want Oracle Projects to supply as the intermediate value.
If you specified Parameter as this rule's intermediate value source, enter the parameter you want Oracle Projects to supply as the intermediate value.
If you specified SQL Select Statement the SQL Editor appears when you enter this field. Enter the statement you want Oracle Projects to use to retrieve an intermediate value.
Source. Select the segment value source that you want Oracle Projects to use to derive an Accounting Flexfield segment value from the intermediate value. Oracle Projects provides the following segment value sources:
Intermediate Value. Choose this source if this rule's intermediate value is already a valid segment value.
Segment Value Lookup Set. Choose this source if this rule's intermediate value is not a valid segment value and must be mapped to a segment value through a lookup set.
Lookup Set. Select the lookup set that you want Oracle Projects to use to derive an Accounting Flexfield segment value. If you specified Intermediate Value as this rule's segment value source, Oracle Projects skips this field.
Lookup Sets button. This button navigates to the AutoAccounting Lookup Sets window.
If you specified SQL Select Statement as this rule's intermediate value source, use this zone to define each parameter included in the SQL select statement this AutoAccounting rule uses.
If you specified either Constant or Parameter as this rule's intermediate value source, Oracle Projects skips this region.
Sequence. Enter the numeric value that corresponds to a parameter in the SQL select statement this AutoAccounting rule uses.
Parameter Name. Select the parameter that corresponds to the sequence number you entered in the previous field. You can choose any AutoAccounting parameter.
To define a lookup set, you specify pairs of values. For each intermediate value, you specify a corresponding account segment value. One or more related pairs of intermediate values and segment values form a lookup set.
For example, if the phrase "World Headquarters" corresponds to a Company segment value of 01, use World Headquarters as the intermediate value and 01 as the segment value.
Or, suppose your business has five major regions (Northeast, South, Middle States, Southwest, and West), and you have a Region segment in your Accounting Flexfield. You probably need to create a lookup set that maps region names to the corresponding region code:
Name: Region Code
Description: Map region names to the corresponding Accounting Flexfield region segment code
The lookup set would contain the segment value lookups shown in the following table:
Intermediate Value | Segment Value |
---|---|
Northeast | 01 |
South | 02 |
Middle States | 03 |
Southwest | 04 |
West | 05 |
You may need several lookup sets to map organizations to cost centers, expenditure types to account codes, event types to account codes, or for other situations where the segment value depends upon a particular predefined parameter.
You can use a lookup set more than once; several AutoAccounting rules can use the same lookup set.
You define and modify lookup sets using the AutoAccounting Lookup Sets window.
Use this form to define, view, and maintain AutoAccounting lookup sets.
Name. Enter a unique, descriptive name for this lookup set.
Use this zone to specify an intermediate value, and then map that intermediate value to a specific segment value of your Accounting Flexfield.
AutoAccounting matches an intermediate value derived from an AutoAccounting rule with an intermediate value in the lookup set and determines the corresponding segment value you specify to derive an account code from your chart of accounts.
Intermediate Value. Enter the intermediate value that you want to map to an Accounting Flexfield segment value.
Ensure that you have enter a valid intermediate value. Valid intermediate values are those that match intermediate values that may be derived from AutoAccounting rules. Specify the values in the base language and ensure that the case and spelling match exactly. (For more information about the base language, see: Multilingual Support in Oracle Projects, Oracle Projects Fundamentals.) For example, if you are mapping organization intermediate values to cost center segment values, you cannot enter 'RISK ANALYSIS' for an organization with the name of 'Risk Analysis'.
If AutoAccounting does not find a matching intermediate value in the lookup set, AutoAccounting provides an error message (Incomplete AutoAccounting Rules) notifying you that it could not build an Accounting Flexfield combination. You must correct your AutoAccounting setup and resubmit the process that triggered the AutoAccounting error.
Segment Value. Enter the Accounting Flexfield segment value that you want to map to with this intermediate value.
Ensure that you have entered a valid segment value. Valid segment values are those that are defined for your Accounting Flexfield segments. Values must match exactly numerically.
If AutoAccounting does not find a matching segment value in the lookup set, AutoAccounting provides an error message (Invalid Accounting Flexfield) notifying you that it could not build a valid Accounting Flexfield combination. You must correct your AutoAccounting setup and resubmit the process that triggered the AutoAccounting error.
When you are assigning rules to an AutoAccounting function, you may want to assign different rules to different conditions. For example, you may want to account for indirect projects using one set of rules, and use two different sets of rules for billable items and non-billable items on contract projects.
To make it easy to do this, Oracle Projects provides function transactions to each function, which identifies commonly used conditions in which you may want to assign different rules.
The following table lists examples of function transactions under the Labor Cost Account function:
Function Transactions | Meaning |
---|---|
Indirect, Private Labor | All items on indirect, private projects |
Indirect, Public Labor | All items on indirect, public projects |
Indirect, All | All labor items on indirect projects |
Capital, Private, Capital | Capitalizable labor items on capital, private projects |
Capital, Private, Non-Capital | Non-capitalizable labor items on capital, private projects |
Capital, All | All labor items on capital projects |
Contract, All | All labor items on a contract project |
You can assign rules to function transactions for each AutoAccounting function.
You complete the following steps to assign AutoAccounting rules to AutoAccounting functions and transactions:
Enable each transaction you want to use
For each transaction you enable, you specify an AutoAccounting rule for each segment of your Accounting Flexfield
You tell Oracle Projects which AutoAccounting rules to use, under which circumstances, by assigning rules to transactions. In cases where an AutoAccounting function consists of several distinct transactions, you assign rules to each transaction you want to use. These rule assignments then determine which general ledger account AutoAccounting uses to process that transaction. Oracle Projects attempts to use the most appropriate transaction; if you have not enabled that transaction, it tries to use the fallback transaction.
For example, the Labor Revenue Account function, which Oracle Projects uses to credit a revenue account for labor revenue, consists of three transactions:
Public Labor Revenue
Private Labor Revenue
All Labor Revenue
When Oracle Projects needs to credit a revenue account for labor performed on a public project, it first checks whether you have enabled the Public Labor Revenue transaction. If the transaction is enabled, Oracle Projects uses the AutoAccounting rules you assigned to the transaction to determine which account to credit.
If you have not enabled the Public Labor Revenue transaction, Oracle Projects checks the "fallback" transaction All Labor Revenue.
Tip: If your accounting practices do not distinguish between the contexts, you can simplify your AutoAccounting implementation by not enabling transactions; instead, you could implement only the All transaction.
You enable a transaction using the Assign AutoAccounting Rules window:
After you enable a transaction, you match each segment in your Accounting Flexfield with the appropriate AutoAccounting rule. For example, if you have a two-segment Accounting Flexfield containing a Company segment and an Account segment, you assign one rule to the Company segment and one rule to the Account segment.
You use the Assign AutoAccounting Rules window to enable AutoAccounting transactions and assign rules to them.
Use this window to assign an AutoAccounting rule to each segment of your Accounting Flexfield for the AutoAccounting transactions you want to use.
Name. Select the name of the AutoAccounting function for which you want to enable one or more transactions and assign rules. If you do not want to limit your search to a particular function, leave this field blank.
Operating Unit.Select the operating unit to which the AutoAccounting function belongs.
Oracle Projects predefines AutoAccounting functions; you cannot modify them, or define additional transactions.
Use this region to view the AutoAccounting transactions associated with this AutoAccounting function, and to enable each transaction you want to use.
Oracle Projects predefines AutoAccounting transactions; you cannot modify them, or define additional transactions.
Name. Oracle Projects displays each AutoAccounting transaction available for this AutoAccounting function.
Enabled. Check on this option if you want to enable this AutoAccounting transaction. Do not check the option if you do not want to enable this AutoAccounting transaction.
You can assign AutoAccounting rules to your Accounting Flexfield segments for this transaction regardless of whether you check or don't check this option. However, if you do not check the option, AutoAccounting does not recognize the associated rule assignment.
Tip: If your business does not distinguish between each kind of transaction, enable the ALL transaction.
If you do not enable any transactions, Oracle Projects automatically uses the ALL transaction.
Use this region to assign an AutoAccounting rule to each segment of your Accounting Flexfield for each transaction you want to use.
Number. Enter the number that corresponds to the Accounting Flexfield segment to which you want to assign an AutoAccounting rule for this transaction. You need to enter either a number or a segment name to identify an Accounting Flexfield segment.
Note: You need to start your numbering sequence with the number zero (0).
Segment Name. Select the name of the segment to which you want to assign an AutoAccounting rule for this transaction. If you have already selected a number, Oracle Projects automatically displays the corresponding segment name.
Rule Name. Enter the AutoAccounting rule that you want to assign to this Accounting Flexfield segment for this transaction.
Rule Button. You can choose this button to navigate to the Define Rules window.
In this section, we describe the AutoAccounting functions that you must implement to process accounting transactions for each of the following areas:
Note: AutoAccounting rules are set up once for each chart of accounts. However, accounting rule assignments are operating unit-specific. In a multi-organization environment, you can use the multi-organization Replicate Seed Data process to replicate system-defined function transactions in each operating unit you set up. For each operating unit, you must enable cost function transactions or revenue and billing function transactions and assign proper accounting rules for Oracle Projects to use when automatically generating your accounting entries.
Labor
Expense Reports
Usages
Supplier Costs
Events
Revenue and Invoices
The following sample AutoAccounting Implementation table illustrates Fremont Corporation's implementation of AutoAccounting. Each rule assigned to an AutoAccounting function appears under the appropriate Accounting Flexfield segment column.
AutoAccounting Function | AutoAccounting Rules: Company Segment | AutoAccounting Rules: Cost Center Segment | AutoAccounting Rules: Account Segment |
---|---|---|---|
Expense Report Costs Account | - Project Company | - Project Cost Center | - Expense Report Cost |
Supplier Invoice Costs Account | - Project Company | - Project Cost Center | - Supplier Invoice Costs |
Labor Cost Account | - Employee Company - Project Company |
- Employee Cost Center - Project Cost Center |
- Gov Marketing Labor - Indirect, Private Labor - Private, Billable Labor - Private, Non-Billable Labor - Public, Billable Labor - Public, Non-Billable Labor - Inventory - Transfer Out to Inventory |
Usage Cost Account | - Resource Company | - Resource Cost Center | - Usage Costs |
Event Revenue Account | - Project Company | - Project Cost Center | - Write-Off - Bonus |
Expense Report Revenue Account | - Project Company | - Project Cost Center | - Expense Report Revenue |
Supplier Invoice Revenue Account | - Project Company | - Project Cost Center | - Subcontractor Revenue |
Labor Revenue Account | - Employee Company | - Employee Cost Center | - Private Fee Revenue - Public Fee Revenue |
Usage Revenue Account | - Resource Company | - Resource Cost Center | - Usage Revenue |
Total Burdened Cost Debit | - Employee Company | - Employee Cost Center | - Inventory |
Total Burdened Cost Credit | - Employee Company | - Employee Cost Center | - Transfer Out to Inventory |
Labor Cost Clearing Account | - Employee Company | - Division Cost Center | - Payroll Clearing |
Revenue and Invoice Accounts | - Project Company | - Project Cost Center | - Write-Off - Accounts Receivable - Unbilled Receivables - Unearned Revenue |
Usage Cost Clearing Account | - Resource Company | - Resource Cost Center | - Usage Clearing |
The following examples show how Fremont Corporation uses a SQL select statement in AutoAccounting rules. Two AutoAccounting rules with a SQL statement are illustrated in these examples.
The business rule governing this AutoAccounting rule translates to the following logic:
If Project Type is 'Overhead' then use Expenditure Organization else use Project Organization
The details of the Indirect Cost Center AutoAccounting rule are shown in the following table:
AutoAccounting Rule Field Name | Value |
---|---|
Name | Indirect Cost Center |
Description | Determine the cost center for indirect costs, using Expenditure Organization for Overhead projects and Project Organization for all other indirect projects |
Intermediate Value Source | SQL Statement |
SQL Select Statement | select decode(:1, 'Overhead', :2, :3) from sys.dual |
Segment Value Source | Segment Value Lookup Set |
Lookup Set | Organization to Cost Center |
The rule parameters for this AutoAccounting rule are shown in the following table:
Sequence | Parameter Name |
---|---|
1 | Project Type |
2 | Expenditure Organization |
3 | Project Organization |
In this example, the account segment value is based on the first descriptive flexfield segment for the expenditure item (PA_EXPENDITURE_ITEMS_ALL.ATTRIBUTE1).
The details of this AutoAccounting rule are shown in the following table:
AutoAccounting Rule Field Name | Value |
---|---|
Name | Descriptive flexfield segment |
Description | Populate the AutoAccounting account segment value with the first descriptive flexfield segment value in the expenditure item. |
Intermediate Value Source | SQL Statement |
SQL Select Statement | SELECT attribute1 FROM PA_EXPENDITURE_ITEMS_ALL WHERE EXPENDITURE_ITEM_ID = :1 |
The rule parameter for this AutoAccounting rule is shown in the following table:
Sequence | Parameter Name |
---|---|
1 | Expenditure Item ID |
The SQL statement in the first example uses the SQL function decode, which provides if/then logic. It compares values of an expression to determine a resulting value.
The decode statement refers the table sys.dual which always contains only one record.
For more information on the function decode, refer the SQL Language Reference Manual. For more information on the table dual, refer to the Oracle RDBMS Database Administrator's Guide.
The Account Generator uses Oracle Workflow to derive default account code combinations. Oracle Payables and Oracle Purchasing use the Account Generator to determine the default account code combinations for purchasing requisitions, purchase orders, supplier invoices, and expense reports based on the project information entered.
You define functions and processes to derive the Accounting Flexfield combinations. You can optionally customize the Account Generator for each set of defined ledgers.
AutoAccounting, the Account Generator, and Oracle Subledger Accounting each provide functionality to create accounting for project-related supplier costs and expense reports. When you implement Oracle Purchasing and Oracle Payables integration with Oracle Projects, you must carefully consider how to set up the account derivation logic in each location.
The following table describes the accounting setup for integrating Oracle Projects with Oracle Purchasing and Oracle Payables. The first column in the table identifies the accounting setup for project-related supplier cost documents and expense reports. The second column specifies whether the setup is required or optional. The third column provides a brief description about how the setup is used.
Accounting Setup | Required or Optional | Description |
---|---|---|
Oracle Purchasing Account Generator | Required | Oracle Purchasing uses the Account Generator to derive default debit accounts for project-related purchasing documents. |
Project Supplier Invoice Account Generator | Required | Oracle Payables uses the Account Generator to derive debit accounts for project-related supplier invoices that are not matched to a purchase order.
Note: Oracle Payables always uses the Account Generator for project-related invoices. You must set up the Account Generator to generate a default account, even if the profile option PA: Allow Override of PA Distributions in AP/PO. option is set to Yes in Oracle Payables. In addition, Oracle Projects uses the Account Generator to derive a default debit account for supplier cost and expense report adjustments that you perform in Oracle Projects. Oracle Projects uses this information to determine whether to allow the adjustment when you enable Automatic Offsets in Oracle Payables. Oracle Projects also uses this information to determine whether an adjustment can potentially affect tax recoverability. |
Project Expense Report Account Generator | Required | Oracle Internet Expenses and Oracle Payables (Invoices window) use the Account Generator to derive default debit accounts for project-related expense reports. You set up the Account Generator when you implement Oracle Payables. |
Supplier Invoice Cost Account AutoAccounting Function | Required | Oracle Projects uses this AutoAccounting function to derive default debit accounts for supplier cost adjustments that you perform in Oracle Projects. |
Expense Report Cost AutoAccounting Function | Required | Oracle Projects uses this AutoAccounting function to derive default debit accounts for expense report adjustments that you perform in Oracle Projects. |
Default Supplier Cost Credit Account Oracle Projects Implementation Option | Optional | The process PRC: Generate Cost Accounting Events uses the specified account as the default credit account for supplier cost and expense report adjustments that you perform in Oracle Projects. |
User-defined Setup in Oracle Subledger Accounting for Supplier Cost Adjustments | Optional | Oracle Projects predefines setup in Oracle Subledger Accounting so that the create accounting process accepts the accounting for supplier cost and expense report adjustments from Oracle Projects without change. You can optionally define your own detailed accounting rules in Oracle Subledger Accounting.
Note: If you allow adjustments to supplier costs in Oracle Projects and you do not define a default supplier cost credit account in Oracle Projects implementation options, then you must set up Oracle Subledger Accounting to derive the credit account for supplier cost adjustments. |
For additional information on the accounting setup, see the following topics:
When you enter project information in Purchasing and Payables, account generator processes create account code combinations for use in purchasing requisitions, purchase orders, and payables supplier invoices. This section:
Lists the accounts created by the Purchasing account generators. See: Generating Accounts for Oracle Purchasing.
Describes how to customize the account generator workflow processes used to integrate Oracle Projects with Payables. See: Setting up the Account Generator Processes.
Provides information on assigning and deriving values. See: Comparing AutoAccounting to the Workflow Account Generator.
As you read this chapter, you will also want to refer to the Oracle E-Business Suite Flexfields Guide and Oracle Workflow User's Guide.
Purchasing uses item types to generate account numbers for all requisitions and purchase orders, whether they are project-related or not. Purchasing provides a set of default account generator processes for the accounts it needs to build. You do not need to do anything within Oracle Projects to generate accounts for Purchasing.
The account generator workflows in Purchasing generate the following accounts:
Purchase Order Charge Account
Purchase Order Budget Account
Purchase Order Variance Account
Purchase Order Accrual Account
Requisition Charge Account
Requisition Budget Account
Requisition Variance Account
Requisition Accrual Account
Purchasing provides default account generator processes for these accounts. If you want to derive the accounts based on project information, you must change the default processes so that they use the project information. For more information, see: Using the Account Generator, Oracle Purchasing User's Guide.
If you want to use a lookup set for Oracle Purchasing rules, you must drag and drop the Lookup activity from Oracle Payables to the Oracle Purchasing Account Generator item type.
How charge accounts are derived for invoices and expense reports depends on whether you are entering an invoice or expense report that contains project and task information, as shown in the following table:
Application and Item | Method for Deriving the Charge Account |
---|---|
Oracle Payables invoices | Oracle Payables (Invoices window) calls the Project Supplier Invoice Account Generation workflow |
Oracle Internet Expenses and Oracle Payables expense reports | Oracle Internet Expenses or Oracle Payables (Invoices window) calls the Project Expense Report Account Generator workflow |
This section and the sections that follow describe how to use the account generation workflows to build account code combinations. You need:
An account number for each ledger that uses a unique accounting flexfield structure
An account generation process for each accounting flexfield structure and ledger
Each Account Generator is an item type within Oracle Workflow. Oracle Projects comes with the item types (workflows) and processes that are described in the following table:
Item Type (Workflow) | Processes |
---|---|
Project Supplier Invoice Account Generation | Generate Default Account; Generate Account Using FlexBuilder Rules; Sample Process for Account Generation |
Project Expense Report Account Generator | Default Account Generator for Expense Reports; Sample Account Generator for Expense Reports |
The Project Supplier Invoice Account Generation workflow generates accounts for supplier invoices.
The Project Expense Report Account Generator generates accounts for expense reports entered in Oracle Internet Expenses or the Invoices window in Oracle Payables.
The sample processes demonstrate how to use the item type to generate the account code combinations. See: Process: Sample Process for Account Generation and Process: Sample Account Generator for Expense Reports.
Before using an account generator process with a production database in Oracle Projects, you must:
Define your Accounting Flexfield structure for each ledger. See: Oracle E-Business Suite Flexfields Guide.
Define the flexfield segment values and validation rules. See: Oracle E-Business Suite Flexfields Guide.
Copy the workflow to a local hard disk or networked server to back up the workflow before you start to work with it. Because you cannot rename the workflow, plan to modify the original process.
Note: Do not save a backup workflow to the database. Workflows saved to the database overwrite the workflow of the same name in the database.
For each ledger, customize the default process.
To refer some sample customizations, see: Process: Sample Process for Account Generation, Process: Account Generator for Expense Reports, and Oracle Workflow User's Guide.
You can create all the components for workflow in the Oracle Workflow Builder except for the PL/SQL procedures called by the function activities. See: Using AutoAccounting with Account Generator Processes.
Test the customizations. See: Testing a Customized Process.
Choose the process for a flexfield structure, if necessary. See: Assigning a Process to a Flexfield Structure.
Set the Account Generator: Purge Runtime Data profile option. See: Setting the Profile Option.
Save the process in the Oracle Projects database.
This section describes the processes and attributes of the workflows supplied with Oracle Projects. It also provides information about implementing and testing your workflows.
All the workflows and processes in this section generate account numbers for use with Oracle Payables.
The Project Supplier Invoice Account Generation workflow (item type) contains these processes:
Generate Account using FlexBuilder Rules
Generate Default Account
Sample Process for Account Generation
Purpose: This process generates accounts for payables invoices.
Workflow: Project Supplier Invoice Account Generation
If you used FlexBuilder previously to generate account combinations, this process replicates your FlexBuilder setup. You do not have to change any of your predefined FlexBuilder rules or customize the process.
If you are upgrading from Release 10.7, follow the Oracle FlexBuilder and Account Generator guidelines and tasks in Upgrading Oracle Applications.
To change your FlexBuilder rules after you upgrade, you must start with the Generate Default Account process to define your rules.
Purpose: This process generates accounts for payables invoices.
Workflow: Project Supplier Invoice Account Generation
Note: Copy the workflow to a local hard disk or networked server to back up the workflow before you start to work with it. Because you cannot rename the workflow, plan to modify the original process. Do not save a backup workflow to the database. Workflows saved to the database overwrite the workflow of the same name in the database.
The Oracle Payables invoice entry windows call the Generate Default Account process for the invoice charge account. You must customize this process or create a new one, using the Oracle Workflow Builder. Otherwise, the process returns an error message.
To customize the process, replace the dummy activities (see nodes 3 and 5 in the figure Generate Default Account Process) with your customized procedure for account generation. Do not delete a node or change the node order.
If you prefer to create a new process, then copy the existing default process and change its internal name and display name. You can then modify the original default process and assign the process to the accounting flexfield structure. See: Assigning a Process to a Flexfield Structure.
About the process attributes The workflow attributes for the Project Supplier Invoice Account Generation workflow (item type) identify the supplier invoice for which the process is generating a charge account number. See: Process Attributes.
About the activity nodes The Generate Default Account process consists of nine activity nodes. The figure Generate Default Account Process illustrates the nodes. The numbered circles are not part of the process. The text following the figure describes each node.
Generate Default Account Process
The following information describes each activity in the Generate Default Account process, listed by function name:
Start generating Code Combination (Node 1): This standard activity node starts the process.
Compare Number (Node 2): This node checks whether the user entered code combinations or not.
If the user has not entered any code combinations, then the result is Equal and the process branches to node 3.
If the user has entered a code combination, then result is Default and the process branches to node 4.
Dummy default account generator (Node 3): In its original (shipped) configuration, this node returns an error message. You must replace this function with your customized procedure for the case when a user has NOT entered any code combination.
If the result is Success, then the process branches to node 6.
If the result is Failure, then the process branches to node 8.
Copy values from Code Combination (Node 4): This node copies the code combination identifier that a user has entered.
Dummy default account generator (Node 5): In its original (shipped) configuration, this node returns an error message. You must replace this function with your customized procedure for the case when a user has entered a code combination.
If the result is Success, then the process branches to node 6.
If the result is Failure, then the process branches to node 9.
Validate Code Combination (Node 6): This node contains the standard Flexfield function for validating a code combination. For this function to work, the attribute value New code combinations must be set to True.
End generating Code Combination (Success) (Node 7): This standard activity node ends the process.
Abort generating Code Combinations (Failure) (Nodes 8 and 9): This activity ends the code combination process.
Purpose: This sample process is an example only. It illustrates how to generate accounts for payables invoices.
Workflow: Project Supplier Invoice Account Generation
Note: You cannot use this sample process, even with modification, in your database. You must modify the default process.
The sample process shows how to use workflow functions and attributes to derive account code combinations. It also demonstrates several standard functions that you can use to generate account segments.
The sample also illustrates the use of SQL procedures, AutoAccounting lookup sets, workflow attributes, and constants for generating supplier invoice accounts.
About the process attributes The workflow attributes for the Project Supplier Invoice Account Generation workflow (item type) identify the supplier invoice for which the process is generating a charge account number. For more information, see: Process Attributes.
About the activity nodes The Sample Process for Account Generation consists of nineteen activity nodes. The figure Sample Process for Account Generation illustrates the nodes. The numbered circles are not part of the process. The text following the figure describes each node.
Sample Process for Account Generation
Note: In the sample process, list, nodes 3, 6, 7, 9, 11, 12 and 14 use the Assign Value to a Segment function, which is provided by the standard flexfield workflow. For detailed information about this function, see Oracle E-Business Suite Flexfields Guide.
The following information describes each activity in the Sample Process for Account Generation process, listed by function name:
Start generating code Combination (Node 1): This standard activity node starts the process.
Compare Number (Node 2): This node checks whether the user has entered any code combinations or not.
If the user has not entered any code combinations, then the result is Equal and the process branches to node 3.
If the user has entered a code combination, then result is Default and the process branches to node 10.
Assign Value to Segment (Node 3): This node assigns a constant value 01 to the Company segment.
Compare Text (Node 4): This node tests whether the project type is Overhead. The test value is set to the item attribute Project Type. The reference value is the constant Overhead.
If the project type is Overhead, then the result is Equal and the process branches to node 7.
If the project type is not Overhead, then the result is Default and the process branches to node 5.
Segment Lookup Set value (Node 5): This node looks up the Cost Center segment. The lookup uses an AutoAccounting lookup set and an intermediate value (expenditure organization).
This node uses pa_acc_gen_wf_pkg.pa_seg_lookup_set_value, a function that retrieves an intermediate value from an AutoAccounting lookup set. See: Using the Segment Lookup Set Value Function.
If the result is Success, then the process branches to node 6.
If the result is Failure, then the process branches to node 17.
Assign Value to Segment (Node 6): This node assigns the value found in node 5 to the cost center segment and then branches to node 8.
Assign Value to Segment (Node 7): If the project type is Overhead, then this node assigns the valid value from Invoice Descriptive Flexfield Attribute 4 to the Cost Center segment.
Sample SQL function (Node 8): This node uses a SQL procedure to derive the value for the Account segment. If the process encounters an error during any of the steps, the function branches to node 18.
The sample SQL package and procedure is in the file PAXTMPFB.pls (located in the $PA_TOP/admin/sql directory). The SQL procedure name is pa_wf_fb_sample_pkg.pa_wf_sample_sql_fn. The procedure contains detailed documentation.
The sample function derives and sets the segment value in the Lookup Set Value attribute. If you write your own functions, then you should create and set your own attributes.
Note: When you define a SQL function, you can define its attributes. The procedure reads the current values of the item attributes, then uses the attributes to derive the segment. However, the function in the sample process does not require attributes.
Assign Value to Segment (Node 9): This node assigns a the segment value derived in Node 8 to the Account segment.
Copy Values from Code Combination (Node 10): If the user has entered the code combination, then this node copies the user-entered code combination.
Assign Value to Segment (Node 11): This node assigns a constant value, 01, to the Company segment.
Note: The Replace Existing Value attribute for this node is set toTrue and the Value is set to 01. Therefore, the node replaces whatever value the user enters with 01.
Assign Value to Segment (Node 12): If the project type is Overhead, then this node assigns the valid value from Invoice Descriptive Flexfield Attribute 4 to the Cost Center segment.
Note: The Replace Existing Value attribute for this node is set to False. Therefore, this node retains whatever value the user enters.
Sample SQL function (Node 13): This node uses a SQL procedure to derive the value for the Account segment. If the process encounters an error during any of the steps, the function branches to node 19.
The sample SQL package and procedure is in the file PAXTMPFB.pls (located in the $PA_TOP/admin/sql directory). The SQL procedure name is pa_wf_fb_sample_pkg.pa_wf_sample_sql_fn. The procedure contains detailed documentation.
The sample function derives and sets the segment value in the Lookup Set Value attribute. If you write your own functions, then you should create and set your own attributes.
Note: When you define a SQL function, you can define its attributes. The procedure reads the current values of the item attributes, then uses the attributes to derive the segment. However, the function in the sample process does not require attributes.
Assign Value to Segment (Node 14): This node assigns the segment value derived in node 13 to the Account segment.
Note: The Replace Existing Value attribute for this node is set to False. Therefore, this node retains whatever value the user enters.
Validate Code Combination (Node 15): This node contains the standard flexfield function for validating a code combination. For this function to work correctly, you must set the attribute value New code combinations to True.
End generating Code Combination (Success) (Node 16): This standard activity node ends the process.
Abort generating Code Combinations (Nodes 17, 18, and 19): This standard flexfield function ends the process.
This workflow contains two processes:
Default Account Generator for Expense Reports
Sample Account Generator for Expense Reports
Purpose: This process generates account numbers for expense reports created in Oracle Internet Expenses and the Invoices window in Oracle Payables.
Workflow: Project Expense Report Account Generator
When a user enters a project and task in an expense report in Oracle Internet Expenses, Oracle Internet Expenses calls the Default Account Generator for Expense Reports. This process returns the default CCID (code combination identifier) defined for the employee in HR. If the employee does not have a default CCID, then you will receive an error. If you want to derive the account based on other criteria, then modify the default process.
Note: Copy the workflow to a local hard disk or networked server to back up the workflow before you start to work with it. Because you cannot rename the workflow, plan to modify the original process. Do not save a backup workflow to the database. Workflows saved to the database overwrite the workflow of the same name in the database.
To customize the process, replace the Copy Values from Code Combination nodes (see nodes 3 and 4 in the figure Default Account Generator for Expense Reports) with your customized procedure for account generation. Do not delete a node or change the node order. In addition, update your lookup set for information you will receive from Oracle Internet Expenses expense reports.
If you prefer to create a new process, then copy the existing default process and change its internal name and display name. You can then modify the original default process and assign the process to the accounting flexfield structure. See: Assigning a Process to a Flexfield Structure.
About the process attributes The workflow attributes for this workflow (item type) identify the expense report for which the process is generating a charge account number. See: Process Attributes.
About the activity nodes This process consists of six activity nodes. The figure Default Account Generator for Expense Reports illustrates the nodes. The numbered circles are not part of the process. The text following the figure describes each node.
Default Account Generator for Expense Reports
The following information describes each activity in the Default Account Generator for Expense Reports process, listed by function name:
Start generating Code Combination (Node 1): This standard activity node starts the process.
Compare Number (Node 2): This node checks whether the user has entered any code combinations or not.
If the user has not entered any code combinations, then the result is Equal and the process branches to node 3.
If the user has entered a code combination, then result is Default and the process branches to node 4.
Copy values from Code Combination (Node 3): This node must be customized. It generates employee account information from the employee code combination identifier.
Copy values from Code Combination (Node 4): This node copies the user-entered code combination identifier. You can customize this node.
Validate Code Combination (Node 5): This node contains the standard Flexfield function for validating a code combination. For this function to work, the attribute value New code combinations must be set to True.
End generating Code Combination (Success) (Node 6): This standard activity ends the process.
Purpose: This sample process is an example only. It illustrates how to generate accounts for expense reports created in Oracle Internet Expenses or the Invoices window in Oracle Payables.
Workflow: Project Expense Report Account Generator
Note: You cannot use this sample process, even with modification, in your database. You must modify the default process.
Expense reports created in Oracle Internet Expenses or the Invoices window in Oracle Payables may contain project or task numbers that you want to collect for Oracle Projects. This sample account generator routine generates account numbers for the projects and tasks in these expense reports.
Part of the process (the Segment Lookup Set value nodes) requires some setup in AutoAccounting.
About the process attributes The workflow attributes for the Project Expense Report Account Generator workflow (item type) identify the expense report for which the process is generating a charge account number. For more information, see: Process Attributes.
About the activity nodes This process consists of nineteen activity nodes. The figure Sample Account Generator for Expense Reports illustrates the nodes. The numbered circles are not part of the process. The text following the figure describes each node.
Sample Account Generator for Expense Reports
Note: In the sample process, list, nodes 3, 6, 7, 9, 11, 12 and 14 use the Assign Value to a Segment function, which is provided by the standard flexfield workflow. For detailed information about this function, see Oracle E-Business Suite Flexfields Guide.
The following information describes each activity in the Sample Account Generator for Expense Reports process, listed by function name:
Start generating code Combination (Node 1): This standard activity node starts the process.
Compare Number (Node 2): This node checks whether the user has entered any code combinations or not.
If the user has not entered any code combination, then the result is Equal and the process branches to node 3.
If the user has entered a code combination, then result is Default and the process branches to node 10.
Assign Value to Segment (Node 3): This node assigns a constant value 01 to the Company segment.
Compare Text (Node 4): This node tests whether the project type is Overhead. The test value is set to the item attribute Project Type. The reference value is the constant Overhead.
If the project type is Overhead, then the result is Equal and the process branches to node 7.
If the project type is not Overhead, then the result is Default and the process branches to node 5.
Segment Lookup Set value (Node 5): This node looks up the Cost Center segment. The lookup uses an AutoAccounting lookup set and an intermediate value (expenditure organization).
This node uses pa_acc_gen_wf_pkg.pa_seg_lookup_set_value, a function that retrieves an intermediate value from an AutoAccounting lookup set. See: Using the Segment Lookup Set Value Function.
If the result is Success, then the process branches to node 6.
If the result is Failure, then the process branches to node 17.
Assign Value to Segment (Node 6): This node assigns the value found in node 5 to the cost center segment and then branches to node 8.
Assign Value to Segment (Node 7): If the project type is Overhead, then this node assigns the valid value from Invoice Descriptive Flexfield Attribute 4 to the Cost Center segment.
Sample SQL function (Node 8): This node uses a SQL procedure to derive the value for the Account segment. If the process encounters an error during any of the steps, the function branches to node 18.
The sample SQL package and procedure is in the file PAXTMPFB.pls (located in the $PA_TOP/admin/sql directory). The SQL procedure name is pa_wf_fb_sample_pkg.pa_wf_sample_sql_fn. The procedure contains detailed documentation.
The sample function derives and sets the segment value in the Lookup Set Value attribute. If you write your own functions, then you should create and set your own attributes.
Note: When you define a SQL function, you can define its attributes. The procedure reads the current values of the item attributes, then uses the attributes to derive the segment. However, the function in the sample process does not require attributes.
Assign Value to Segment (Node 9): This node assigns the segment value derived in Node 8 to the Account segment.
Copy Values from Code Combination (Node 10): If the user has entered the code combination, then this node copies the user-entered code combination.
Assign Value to Segment (Node 11): This node assigns a constant value, 01, to the Company segment.
Note: The Replace Existing Value attribute for this node is set to True and the Value is set to 01. Therefore, the node replaces whatever value the user enters with 01.
Assign Value to Segment (Node 12): If the project type is Overhead, then this node assigns the valid value from Invoice Descriptive Flexfield Attribute 4 to the Cost Center segment.
Note: The Replace Existing Value attribute for this node is set to False. Therefore, this node retains whatever value the user enters.
Sample SQL function (Node 13): This node uses a SQL procedure to derive the value for the Account segment. If the process encounters an error during any of the steps, the function branches to node 19.
The sample SQL package and procedure is in the file PAXTMPFB.pls (located in the $PA_TOP/admin/sql directory). The SQL procedure name is pa_wf_fb_sample_pkg.pa_wf_sample_sql_fn. The procedure contains detailed documentation.
The sample function derives and sets the segment value in the Lookup Set Value attribute. If you write your own functions, then you should create and set your own attributes.
Note: When you define a SQL function, you can define its attributes. The procedure reads the current values of the item attributes, then uses the attributes to derive the segment. However, the function in the sample process does not require attributes.
Assign Value to Segment (Node 14): This node assigns the segment value derived in node 13 to the Account segment.
Note: The Replace Existing Value attribute for this node is set to False. Therefore, this node retains whatever value the user enters.
Validate Code Combination (Node 15): This node contains the standard flexfield function for validating a code combination. For this function to work correctly, you must set the attribute value New code combinations to True.
End generating Code Combination (Success) (Node 16): This standard activity node ends the process.
Abort generating Code Combinations (Nodes 17, 18, and 19): This standard flexfield function ends the process.
Attributes fully identify the supplier invoice or expense report for which a process generates an account number.
You can view the characteristics of each attribute and add new attributes, but you cannot modify existing attributes.
You can view the attributes and their characteristics in graphic format (in Oracle Workflow Builder) or in a text file (using a word processor).
Use the Oracle Workflow Builder to open the workflow (item type) whose attributes you want to view.
In the Navigator window, expand the directory tree for the workflow.
Expand the Attributes directory for the workflow.
Double-click the icon for the attribute whose characteristics you want to see.
In the property window, select the Attributes or Access tab to view different aspects of the attribute.
Use a word processor application to open the appropriate Oracle Workflow file.
Open PAAPINVW.wft to view the Project Supplier Invoice Account Generation workflow.
Open PAAPWEBX.wft to view the Project Expense Report Account Generator workflow.
Use the find command in the word processor to locate PROJECT_ID (the internal name of the first attribute).
The word processor goes to the PROJECT_ID text. The attributes for the Project ID attribute and subsequent attributes are listed there.
The table below summarizes the attributes for the two workflows described in this chapter.
Note: The Supplier Invoice column indicates if each attribute is included in the Project Supplier Invoice Account Generation workflow. The Expense Report column indicates if an attribute is included in the Project Expense Report Account Generation workflow.
Supplier Invoice | Expense Report | Display Name and INTERNAL NAME | Type | Length |
---|---|---|---|---|
yes | yes | Project ID PROJECT_ID |
Number | |
yes | yes | Task ID TASK_ID |
Number | |
yes | yes | Expenditure Type EXPENDITURE_TYPE |
Text | 30 |
yes | yes | Supplier Identifier VENDOR_ID |
Number | |
yes | yes | Billable Flag BILLIABLE_ID |
Text | 1 |
yes | yes | Project Class Code CLASS_CODE |
Text | 30 |
yes | yes | Expenditure Category EXPENDITURE_CATEGORY |
Text | 30 |
yes | yes | Direct Flag DIRECT_FLAG |
Text | 1 |
yes | yes | Expenditure Item Date EXPENDITURE_ITEM_DATE |
Date | |
yes | yes | Expenditure Organization Identifier EXPENDITURE_ORGANIZATION_ID |
Number | |
yes | yes | Expenditure Organization Name EXPENDITURE_ORG_NAME |
Text | 60 |
yes | yes | Project Number PROJECT_NUMBER |
Text | 25 |
yes | yes | Project Organization Name PROJECT_ORGANIZATION_NAME |
Text | 60 |
yes | yes | Project Organization Identifier PROJECT_ORGANIZATION_ID |
Number | |
yes | yes | Project Type PROJECT_TYPE |
Text | 20 |
yes | yes | Public Sector Flag PUBLIC_SECTOR_FLAG |
Text | 1 |
yes | yes | Revenue Category REVENUE_CATEGORY |
Text | 30 |
yes | yes | Task Number TASK_NUMBER |
Text | 25 |
yes | yes | Task Organization Name NAME |
Text | 60 |
yes | yes | Task Organization Identifier TASK_ORGANIZATION_ID |
Number | |
yes | yes | Task Service Type TASK_SERVICE_TYPE |
Text | 30 |
yes | yes | Top Task Identifier TOP_TASK_ID |
Number | |
yes | yes | Top Task Number TOP_TASK_NUMBER |
Text | 25 |
yes | Supplier Employee Number VENDOR_EMPLOYEE_NUMBER |
Text | 30 | |
yes | Supplier Person Identifier VENDOR_EMPLOYEE_ID |
Number | ||
yes | Employee Number EMPLOYEE_NUMBER |
Text | ||
yes | Employee Identifier EMPLOYEE_ID |
Text | ||
yes | yes | Supplier Type VENDOR_TYPE |
Text | 25 |
yes | yes | Chart of Accounts ID CHART_OF_ACCOUNTS_ID This attribute is present in all account generator item types. |
Number Default is 101 | |
yes | yes | Supplier Invoice Account Code Identifier DIST_CODE_COMBINATION_ID |
Number | |
yes | Employee Account Identifier EMPLOYEE_CCID |
Number | ||
yes | Expense Type EXPENSE_TYPE |
Number | ||
yes | Expense Cost Center EXPENSE_CC |
Text | 240 | |
yes | Calling Module CALLING_MODULE |
Text | 25 | |
yes | yes | Lookup Set Value LOOKUP_SET_VALUE Stores the result of a lookup. See Using the Segment Lookup Set Value Function. |
Text | 25 |
yes | Function Transaction Code TRANSACTION_CODE |
Text | 30 | |
yes | yes | Error Message ERROR_MESSAGE |
Text | 2000 |
yes | Attribute Category and Attribute 1-15 (Invoice Descriptive Flexfield) ATTRIBUTE_CATEGORY ATTRIBUTE1-15 These are the descriptive flexfield values entered in the Oracle Payables invoice header. |
Text | 150 | |
yes | Distribution Attr Category and Distribution Attribute 1-15 (Inv Distn Desc Flexfield) ATTRIBUTE_CATEGORY ATTRIBUTE1-15 These are descriptive flexfield values entered for each Oracle Payables invoice distribution. |
Text | 150 | |
yes | Attribute Category and Attribute 1-15 (Expense Report Descriptive Flexfield) ATTRIBUTE_CATEGORY ATTRIBUTE1-15 |
Text | 150 | |
yes | Expense Line Attr Category and Attribute 1-15 (Exp Line Desc Flexfield) ATTRIBUTE_CATEGORY ATTRIBUTE1-15 |
Text | 150 | |
yes | Accounting Date ACCOUNTING_DATE |
Date |
The Segment Lookup Set Value function retrieves an intermediate value from an AutoAccounting lookup set. The lookup set is defined in the Oracle Projects AutoAccounting windows.
The function uses two attributes, Lookup Set Name and Intermediate Value. The segment value that results from the combination of the Lookup Set and the Intermediate Value is defined using the AutoAccounting Lookup Sets window. The function derives the segment value and assigns it to the attribute Lookup Set Value, which you can then assign to a segment using the Assign Value to Segment function.
The Sample Process for Account Generation process uses this function in node 5 (Segment Lookup Set value). The Lookup Set Name attribute is set to SAMPLE_LOOKUP_SET. The Intermediate Value is the Expenditure Organization Name, which is an item attribute. The function sets the Lookup Set Value attribute, which is then assigned to the Cost Center segment in node 6.
You should test any process before using it on a production database. To test a process, call the appropriate function in a PL/SQL block. Two test processes exist:
pa_acc_gen_wf_pkg.pa_inv_generate_account for invoices
pa_acc_gen_wf_pkg.ap_er_generate_account for expense reports
For an example of how to test this function, see the procedure pa_wf_fb_sample_pkg.test_ap_inv_account in the file PAXTMPFB.pls in the $PA_TOP/admin/sql directory.
The return value is BOOLEAN. If the function returns the value FALSE, an error has occurred during account generation. Use the value in X_ERROR_MESSAGE to determine the error message.
If the value of X_RETURN_CCID is -1, the code combination that was created uses rules that do not yet exist.
The table below lists the function parameters.
Parameter Name | Type | Mode |
---|---|---|
P_PROJECT_ID | NUMBER(15) | IN |
P_TASK_ID | NUMBER(15) | IN |
P_EXPENDITURE_TYPE | VARCHAR2(30) | IN |
P_VENDOR_ID | NUMBER | IN |
P_EXPENDITURE_ORGANIZATION_ID | NUMBER(15) | IN |
P_EXPENDITURE_ITEM_DATE | DATE | IN |
P_BILLABLE_FLAG | VARCHAR2(1) | IN |
P_CHART_OF_ACCOUNTS_ID | NUMBER | IN |
P_ATTRIBUTE_CATEGORY (Note: Descriptive flexfield values from each Payables invoice header) |
VARCHAR2(150) | IN |
P_ATTRIBUTE1 through P_ATTRIBUTE15 (Note: Descriptive flexfield values from each Oracle Payables invoice header) |
VARCHAR2(150) | IN |
P_DIST_ATTRIBUTE_CATEGORY (Note: Descriptive flexfield values from each Oracle Payables invoice distribution) |
VARCHAR2(150) | IN |
P_DIST_ATTRIBUTE1 through P_DIST_ATTRIBUTE15 (Note: Descriptive flexfield values from each Oracle Payables invoice distribution) |
VARCHAR2(150) | IN |
X_RETURN_CCID | NUMBER(15) | OUT |
X_CONCAT_SEGS | VARCHAR2 | OUT |
X_CONCAT_IDS | VARCHAR2 | OUT |
X_CONCAT_DESCRS | VARCHAR2 | OUT |
X_ERROR_MESSAGE | VARCHAR2 | OUT |
If you changed the name of a default or sample account generator process, use the Account Generator Processes window (in the Flexfields application) to associate the new name with the appropriate flexfield structure and workflow (item type).
If you have not changed the name, you do not need to perform this step.
The Account Generator: Purge Runtime Data profile option indicates whether to purge the data used to build account combinations as soon as the account generator has completed.
For best performance, set this profile option to No and then purge the runtime data in a separate operation. Setting the profile option to No retains (in the Oracle Workflow tables) the data used by the account generator to generate code combinations. To purge the data, run the Purge Obsolete Workflow Runtime Data program after the account generator process has executed successfully. The system administrator can add this program to a request security group.
Setting this profile option to Yes purges the Oracle Workflow data as soon as the account generator has completed, but may slow the performance of the account generator.
Users can see and update this profile option.
This profile option is visible and can be updated at all levels.
This section describes how you can use AutoAccounting with Account Generator Processes, and provides directions for:
Assigning a constant or lookup value to a segment
Assigning an attribute parameter to a segment
Deriving a segment value
Learning more about SQL functions to generate account codes
See also Comparing AutoAccounting to the Account Generator.
You can use an account generator to assign either a constant or lookup set value to a segment.
Assigning a lookup set value to a segment uses an AutoAccounting rule that passes a parameter to a lookup set.
Select the Assign Value to Segment function in the Standard Flexfield workflow and then drag it to your account generation process.
Connect the function to the prior and subsequent steps.
With the Assign Value to Segment function still highlighted, choose Properties from the Edit menu.
In the Comment field, describe the action being performed (optional).
Select the Attribute Values tab and enter values for each attribute.
For the Value attribute, select Constant as the Value Type. Enter the constant under Value.
To assign a lookup set value to a segment:
Open the workflow (item type) and then open your process.
In the Navigator, open Functions for your workflow. Select the Segment Lookup Set Value function and drag it to your account generation process.
Connect the function to the prior and subsequent steps.
With the Segment Lookup Set Value function still highlighted, choose Properties from the Edit menu.
Choose the Attribute Value tab and then select Lookup Set Name.
In the Value field, type the name of the lookup set that you want to use.
Select Intermediate Value. Choose Item Attribute from the list of values in the pop-up list to the left of the Value field.
For Value, choose an item from the list of values.
Assign a value to the segment. For more information, see: Assigning an Attribute Parameter to a Segment.
For detailed information about assigning lookup set values, see Account Generator Oracle E-Business Suite Flexfields Guide.
This section describes how to use an account generator to assign an attribute parameter to a segment.
Select the Assign Value to Segment function from the Standard Flexfield workflow and then drag it to your account generation process.
Connect this function to prior and subsequent steps.
With the Assign Value to Segment function still selected, choose Properties from the Edit menu.
In the Comment field, describe the action being performed (optional).
Select the Attribute Values tab.
For the Value attribute, select Item Attribute as the Value Type. Then select the attribute whose value will be assigned to the segment.
For detailed information about this function, see: Account Generator Oracle E-Business Suite Flexfields Guide.
SQL statements derive segment values using if/then logic.
For more information, see: SQL Functions.
A SQL function is illustrated in nodes 8 and 13 of the sample process in the Project Supplier Invoice Account workflow. See: Sample Process for Account Generation.
Both the account generation processes in Oracle Workflow and AutoAccounting in Oracle Projects can create account numbers dynamically, based on transactions in Oracle Projects. This section compares the Account Generator to AutoAccounting, and provides directions for:
Assigning a constant or lookup value to a segment
Assigning an attribute parameter to a segment
Deriving a segment value
Learning more about SQL functions to generate account codes
The differences between the two methods are summarized in the following table:
Account Generator Terms or Functionality | Equivalent in AutoAccounting |
---|---|
Workflow or Item Type | Function |
Process | Defining and assigning rules to segments |
Attribute | Parameter |
Assigning a constant to a segment | Assigning a constant AutoAccounting rule to a segment |
Assigning an attribute parameter to a segment | Assigning an AutoAccounting rule that uses a parameter, which becomes the segment value (a lookup set is not used) |
Assigning a lookup set value to a segment | Assigning an AutoAccounting rule that passes a parameter to a lookup set to determine the segment value |
Deriving a segment value by using SQL statements or If conditions | Using an AutoAccounting rule that derives the intermediate value or segment value via a SQL statement. |
This section describes how to use the Account Generator to assign either a constant or lookup set value to a segment.
Select the Assign Value to Segment function in the Standard Flexfield workflow and then drag it to your account generation process.
Connect the function to the prior and subsequent steps.
With the Assign Value to Segment function still highlighted, choose Properties from the Edit menu.
In the Comment field, describe the action being performed (optional).
Select the Attribute Values tab and enter values for each attribute.
For the Value attribute, select Constant as the Value Type. Enter the constant under Value.
Assign an AutoAccounting rule that passes a parameter to a lookup set.
For detailed information about this function, see Account Generator, Oracle E-Business Suite Flexfields Guide.
This section describes how to use the Account Generator to assign an attribute parameter to a segment.
Select the Assign Value to Segment function from the Standard Flexfield workflow and then drag it to your account generation process.
Connect this function to prior and subsequent steps.
With the Assign Value to Segment function still selected, choose Properties from the Edit menu.
In the Comment field, describe the action being performed (optional).
Select the Attribute Values tab.
For the Value attribute, select Item Attribute as the Value Type. Then select the attribute whose value will be assigned to the segment.
SQL statements derive segment values using if/then logic. You can do this in an account generator process with either conditional nodes or SQL functions.
You must follow workflow standards when writing SQL procedures to generate account codes. Within the procedure code, use calls to the standard workflow functions to retrieve the required attributes. The final value determined by the procedure is copied into one of the attributes. The value can be then assigned to a segment.
Related Topics
Account Generator: Purge Runtime Data
Oracle E-Business Suite Flexfields Guide
Oracle Projects uses AutoAccounting to create default accounts for project transactions that it sends to Oracle Subledger Accounting. Oracle Projects predefines setup in Oracle Subledger Accounting to enable the create accounting process to accept default accounts from Oracle Projects without change. You can optionally define your own detailed accounting rules in Oracle Subledger Accounting. If you define your own detailed accounting rules in Oracle Subledger Accounting, then Oracle Subledger Accounting overwrites default accounts, or individual segments of accounts, that Oracle Projects derives using AutoAccounting.
Note: Oracle Subledger Accounting uses intracompany balancing rules to create balancing lines on journal entries between balancing segment values. You set up this functionality in the Oracle General Ledger Accounting Setup Manager. For additional information, see: Cross Entity Balancing Rules.
If you define your own detailed accounting rules in Oracle Subledger Accounting, then you must still set up basic rules in AutoAccounting. Oracle Projects cost distribution, revenue generation, and accounting event generation processes require AutoAccounting to create default accounts during processing.
Oracle Projects uses AutoAccounting for billing to create accounts that it interfaces to Oracle Receivables with customer invoices. In turn, Oracle Receivables creates accounting for invoices in Oracle Subledger Accounting. Oracle Subledger Accounting transfers the final accounting to Oracle General Ledger.
Related Topics
Integrating with Oracle Subledger Accounting, Oracle Projects Fundamentals
Subledger Accounting for Receivables, Oracle Receivables Implementation Guide
Oracle Subledger Accounting is an intermediate step between each of the subledger applications, such as Oracle Projects, Oracle Payables, Oracle Purchasing, and Oracle Receivables, and Oracle General Ledger. Oracle Subledger Accounting creates the final accounting for subledger journal entries and transfers the accounting to Oracle General Ledger. Oracle Subledger Accounting stores a complete and balanced subledger journal entry in a common data model for each business event that requires accounting. In addition, Oracle Subledger Accounting can create more than one accounting representation for each transaction.
Oracle Subledger Accounting provides accounting information for reports and inquiries. For example, you can drill down from Oracle General Ledger to view subledger journal entries or lines. In turn, you can drill down from the subledger journal lines to view the underlying transactions in the subledger application.
Related Topics
Subledger Accounting for Costs
Subledger Accounting for Revenue and Billing
Integrating with Oracle Subledger Accounting, Oracle Projects Fundamentals
Predefined Setup for Oracle Subledger Accounting, Oracle Projects Fundamentals
Oracle Subledger Accounting Implementation Guide
Oracle Projects AutoAccounting and Oracle Subledger Accounting both create accounting information based on transactions in Oracle Projects. The accounts that Oracle Projects AutoAccounting creates are default values. If you define your own detailed accounting rules in Oracle Subledger Accounting, then Oracle Subledger Accounting overwrites default accounts, or individual segments of accounts, that Oracle Projects derives using AutoAccounting.
The following table lists Oracle Projects AutoAccounting functionality and the equivalent functionality in Oracle Subledger Accounting.
Oracle Projects AutoAccounting Functionality | Equivalent in Oracle Subledger Accounting |
---|---|
Lookup sets | Mapping sets |
Intermediate value | Input value |
AutoAccounting rules | Account derivation rules |
Parameter | Source |
AutoAccounting function transactions | Conditions on account derivation rules |
AutoAccounting functions | Journal line types |
AutoAccounting rule assignment | Journal lines definitions: Assign account derivation rules to journal line types |
The following sections provide a comparison of AutoAccounting and Oracle Subledger Accounting.
AutoAccounting uses lookup sets to translate intermediate values to account segment values. For example, if you have a business with five major regions that you define as expenditure organizations, and region is a segment in your Accounting Flexfield, then you can create a lookup set to map each expenditure organization to a region segment value.
Note: Oracle Projects does not provide lists of values when you define lookup sets. Therefore, when you define a lookup set, you must manually enter the intermediate values and segment values.
In Oracle Subledger Accounting, you use mapping sets to translate intermediate values, which are called input values, to account segment values. When you enter input values for mapping sets, you can select input values from a list of values based on either an existing lookup set or value set. You also specify the Accounting Flexfield segment and select segment values from a list of values.
Oracle Projects also provides predefined lookup types that you can use to select input values for mapping sets. For example, predefined lookup types include: Cross Charge Distribution Line Type, Project Type Class, and Event Type Classification. You can define additional lookups if required.
You can also use a list of values that is based on the values stored in the database for a particular field. Oracle Projects also provides predefined value sets that you can use to select input values when you define mapping sets. For example, predefined value sets include: Agreement Type, Expenditure Category, and Expenditure Classification Code.
In AutoAccounting, you define AutoAccounting rules to specify how Oracle Projects generates accounts for transactions. You can define rules that use a constant value, parameters, or a SQL select statement. Each rule you define generates a value for one Accounting Flexfield segment. When you assign rules to an AutoAccounting function transaction, you must specify one rule for each segment in your Accounting Flexfield.
In Oracle Subledger Accounting, you define account derivation rules to determine how the create accounting process generates accounting for transactions. Oracle Subledger Accounting enables you to define rules that use a constant value, a mapping set, a source, or another account derivation rule as the method for deriving the account values.
You can define account derivation rules in Oracle Subledger Accounting that generate either a value for a single Accounting Flexfield segment or a complete Accounting Flexfield account code combination. If you define an account derivation rule by Accounting Flexfield, then the rule determines the entire Accounting Flexfield combination. If you define an account derivation rule by segment, then the rule determines the value of a single Accounting Flexfield segment. You can use both segment-based and flexfield-based rules to derive a single account. If you assign both types of account derivation rules to a single journal line definition, then Oracle Subledger Accounting uses segment-specific rules first and then takes the remaining values from a flexfield-based rule. This approach is different than in AutoAccounting, where each rule generates a value for only a single Accounting Flexfied segment.
Oracle Subledger Accounting does not support the definition of account derivation rules based on SQL select statements. However, you can create custom sources to define complex rules. To create a custom source, you write a PL/SQL function that uses existing sources as parameters. You can create custom sources for a particular application, such as Oracle Projects.
You specify conditions when you define rule details for an account derivation rule. Oracle Subledger Accounting uses conditions to return different values based on selected transaction attributes. You can use all sources and custom sources available to the application to create a condition. For example, you can create an account derivation rule that has two rule lines. The condition for the first line can state that it applies to transactions on capital projects. The second line can apply to all other transactions. As a result, when the create accounting process uses the rule, it can create accounting for transactions on capital projects that is different from the accounting it creates for all other transactions. This feature performs a similar role to that of AutoAccounting function transactions.
Note: When you define conditions for an account derivation rule, you must ensure that the conditions encompass all possible scenarios. Otherwise, the create accounting process generates an error. For example, if you define two conditions for an account derivation rule, one that applies to capital projects and a second that applies to contract projects, then the create accounting process generates an error when it attempts to use the account derivation rule to create accounting for a transaction charged to an indirect project.
In AutoAccounting, you assign rules to predefined AutoAccounting functions such as Labor Cost Account, Labor Cost Clearing Account, and Usage Revenue Account. Within each function, you can enable function transactions and assign rules to derive account segment values. For example, for the Labor Cost Account function, you can assign rules to the Capital, All function transaction that are different from the rules you assign to the All Labor function transaction. As a result, AutoAccounting can create accounting for transactions on capital projects that is different from the accounting it creates for all other transactions. AutoAccounting function transactions perform a similar role to that of conditions in Oracle Subledger Accounting. See: Defining Rules for Account Generation.
In Oracle Subledger Accounting, you assign account derivation rules when you define journal lines definitions. You define a journal lines definition for each event class and assign account derivation rules to each journal line type. Journal line types determine basic information about a subledger journal entry line, such as whether the line is debit or credit. Oracle Projects provides predefined journal line types in Oracle Subledger Accounting.
Journal lines definitions determine journal lines, line descriptions, and account derivation rules that are assigned to an event class or event type. For example, when you define a journal lines definition for the Labor Cost event class, you assign account derivation rules to both the Raw Cost and Raw Cost Clearing journal line types. The conditions for account derivation are part of the definition of each account derivation rule.
Oracle Subledger Accounting provides you with greater flexibility when compared to AutoAccounting. In AutoAccounting, you assign rules to each AutoAccounting function and you are limited to the AutoAccounting functions and function transactions that Oracle Projects provides. In Oracle Subledger Accounting, attributes such as project type class (indirect, contract, and capital), billable, and capitalizable are available as sources. You define conditions for account derivation rules using these sources and assign them to journal line types as part of the journal lines definition. For example, if you want to define separate accounts for billable and nonbillable labor costs, then you define two conditions for an account derivation rule and assign this rule to the labor raw cost journal line type on the journal lines definition. Oracle Projects predefines over 300 sources for you to use in Oracle Subledger Accounting and, in addition, you can define your own custom sources. This approach enables you to define separate accounts for a wide variety of conditions. Furthermore, you can define journal lines definitions to create multiple debit and credit accounting lines for the same transaction.
Related Topics
Assigning Rules to Transactions
Understanding Subledger Accounting Setup for Oracle Projects, Oracle Projects Fundamentals