AutoAccounting, the Account Generator, and Subledger Accounting

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:

AutoAccounting in Oracle Projects

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:

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

Overview of AutoAccounting

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.

How AutoAccounting works

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.

AutoAccounting Functions for Revenue and Billing

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

AutoAccounting Functions for Costing

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

Implementing AutoAccounting

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.

To implement AutoAccounting:

  1. Design your AutoAccounting setup based on your implementation data.

  2. Define lookup sets. See: Define Lookup Sets.

  3. Define rules. See: Define Rules.

  4. Assign rules for each function. See: Assign Rules.

Related Topics

AutoAccounting Sample Implementation: Fremont Corporation

Defining AutoAccounting Rules

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 Parameters

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

Note: 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

Selecting an Intermediate Value Source

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.

AutoAccounting Rule Mapping

the picture is described in the document text

Using a Predefined Parameter

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.

SQL statements to derive new parameters

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.

Using a SQL Select Statement in AutoAccounting Rules

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.

Note: SQL statements over 250 characters are truncated if not formatted in generally accepted SQL format.

Notation of SQL Statement Rule

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.

Selecting a Segment Value Source

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.

AutoAccounting Rules Window Reference

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.

Intermediate Value Region

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:

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.

Segment Value Region

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:

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.

Rule Parameters Region

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.

Defining a Lookup Set

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:

Segment Value Lookups

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.

AutoAccounting Lookup Sets Window Reference

Use this form to define, view, and maintain AutoAccounting lookup sets.

Name. Enter a unique, descriptive name for this lookup set.

Segment Value Lookup Region

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.

Assigning Rules to Transactions

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:

Enabling AutoAccounting Transactions

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:

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:

Defining segment rule pairings

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.

Assign AutoAccounting Rules Window Reference

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.

Function Transactions Region

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.

Segment Rule Pairings Region

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.

AutoAccounting Functions

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.

AutoAccounting Sample Implementation: Fremont Corporation

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

Fremont Corporation: AutoAccounting Rules with a SQL Select Statement

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.

Example 1: Indirect Cost Center

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

Example 2: Descriptive Flexfield Segment

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.

AutoAccounting and the Account Generator

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.

Implementing Accounting for Project-Related Supplier Costs and Expense Reports

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:

Using the Account Generator in Oracle Projects

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:

As you read this chapter, youwill also want to refer to the Oracle Applications Flexfields Guide and Oracle Workflow User's Guide.

Generating Accounts for Oracle Purchasing

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:

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.

Using a Lookup Set for Oracle Purchasing Rules

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.

Generating Accounts for Oracle Payables

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:

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.

Prerequisites

Before using an account generator process with a production database in Oracle Projects, you must:

  1. Define your Accounting Flexfield structure for each ledger. See: Oracle Applications Flexfields Guide.

  2. Define the flexfield segment values and validation rules. See: Oracle Applications Flexfields Guide.

  3. 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.

  4. 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.

  5. Test the customizations. See: Testing a Customized Process.

  6. Choose the process for a flexfield structure, if necessary. See: Assigning a Process to a Flexfield Structure.

  7. Set the Account Generator: Purge Runtime Data profile option. See: Setting the Profile Option.

  8. Save the process in the Oracle Projects database.

Setting Up the Account Generator Processes

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.

Workflow: Project Supplier Invoice Account Generation

The Project Supplier Invoice Account Generation workflow (item type) contains these processes:

Process: Generate Account Using FlexBuilder Rules

Purpose: This process generates accounts for payables invoices.

Workflow: Project Supplier Invoice Account Generation

If you used FlexBuilder in a previous release 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.

Process: Generate Default Account

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 picture is described in the document text

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.

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.

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.

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.

Process: Sample Process for Account Generation

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

the picture is described in the document text

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 Applications 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.

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.

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.

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.

Workflow: Project Expense Report Account Generator

This workflow contains two processes:

Process: Default 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 picture is described in the document text

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.

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.

Process: Sample Account Generator for Expense Reports

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

the picture is described in the document text

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 Applications 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.

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.

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.

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.

Process Attributes

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).

To view the attribute characteristics in Workflow Builder:

  1. Use the Oracle Workflow Builder to open the workflow (item type) whose attributes you want to view.

  2. In the Navigator window, expand the directory tree for the workflow.

  3. Expand the Attributes directory for the workflow.

  4. Double-click the icon for the attribute whose characteristics you want to see.

  5. In the property window, select the Attributes or Access tab to view different aspects of the attribute.

To view the attribute characteristics in a text file:

  1. Use a word processor application to open the appropriate Oracle Workflow file.

  2. Open PAAPINVW.wft to view the Project Supplier Invoice Account Generation workflow.

  3. Open PAAPWEBX.wft to view the Project Expense Report Account Generator workflow.

  4. 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  

Using the Segment Lookup Set Value Function

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.

Testing a Customized Process

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:

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

Assigning a Process to a Flexfield Structure

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.

Setting the Profile Option

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.

Using AutoAccounting with Account Generator Processes

This section describes how you can use AutoAccounting with Account Generator Processes, and provides directions for:

See also Comparing AutoAccounting to the Account Generator.

Assigning a Value to a Segment

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.

To Assign a Constant Value to a Segment:

  1. Select the Assign Value to Segment function in the Standard Flexfield workflow and then drag it to your account generation process.

  2. Connect the function to the prior and subsequent steps.

  3. With the Assign Value to Segment function still highlighted, choose Properties from the Edit menu.

  4. In the Comment field, describe the action being performed (optional).

  5. Select the Attribute Values tab and enter values for each attribute.

  6. For the Value attribute, select Constant as the Value Type. Enter the constant under Value.

To assign a lookup set value to a segment:

To Assign a Lookup Set Value to a Segment:

  1. Open the workflow (item type) and then open your process.

  2. In the Navigator, open Functions for your workflow. Select the Segment Lookup Set Value function and drag it to your account generation process.

  3. Connect the function to the prior and subsequent steps.

  4. With the Segment Lookup Set Value function still highlighted, choose Properties from the Edit menu.

  5. Choose the Attribute Value tab and then select Lookup Set Name.

  6. In the Value field, type the name of the lookup set that you want to use.

  7. Select Intermediate Value. Choose Item Attribute from the list of values in the pop-up list to the left of the Value field.

  8. For Value, choose an item from the list of values.

  9. 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 Applications Flexfields Guide.

Assigning an Attribute Parameter to a Segment

This section describes how to use an account generator to assign an attribute parameter to a segment.

To assign an attribute to a segment:

  1. Select the Assign Value to Segment function from the Standard Flexfield workflow and then drag it to your account generation process.

  2. Connect this function to prior and subsequent steps.

  3. With the Assign Value to Segment function still selected, choose Properties from the Edit menu.

  4. In the Comment field, describe the action being performed (optional).

  5. Select the Attribute Values tab.

  6. 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 Applications Flexfields Guide.

Deriving a Segment Value

SQL statements derive segment values using if/then logic.

For more information, see: SQL Functions.

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.

Comparing AutoAccounting to the Account Generator

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:

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.

Assigning a Value to a Segment

This section describes how to use the Account Generator to assign either a constant or lookup set value to a segment.

To Assign a Constant Value to a Segment:

  1. Select the Assign Value to Segment function in the Standard Flexfield workflow and then drag it to your account generation process.

  2. Connect the function to the prior and subsequent steps.

  3. With the Assign Value to Segment function still highlighted, choose Properties from the Edit menu.

  4. In the Comment field, describe the action being performed (optional).

  5. Select the Attribute Values tab and enter values for each attribute.

  6. For the Value attribute, select Constant as the Value Type. Enter the constant under Value.

To Assign a Lookup Set Value to a Segment:

Assign an AutoAccounting rule that passes a parameter to a lookup set.

For detailed information about this function, see Account Generator, Oracle Applications Flexfields Guide.

Assigning an Attribute Parameter to a Segment

This section describes how to use the Account Generator to assign an attribute parameter to a segment.

To Assign an Attribute to a Segment:

  1. Select the Assign Value to Segment function from the Standard Flexfield workflow and then drag it to your account generation process.

  2. Connect this function to prior and subsequent steps.

  3. With the Assign Value to Segment function still selected, choose Properties from the Edit menu.

  4. In the Comment field, describe the action being performed (optional).

  5. Select the Attribute Values tab.

  6. For the Value attribute, select Item Attribute as the Value Type. Then select the attribute whose value will be assigned to the segment.

Deriving a Segment Value

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.

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

Overview of AutoAccounting

Account Generator: Purge Runtime Data

Oracle Applications Flexfields Guide

AutoAccounting and Subledger Accounting

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

Overview of Subledger Accounting

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

Comparing AutoAccounting and Oracle Subledger Accounting

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.

Translating Intermediate Values to Account Segment Values

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.

Defining Rules for Account Generation

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.

Assigning Rules

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

Custom Sources

Account Derivation Rules

Assigning Rules to Transactions

Defining AutoAccounting Rules

Defining a Lookup Set

Journal Line Definitions

Journal Line Types

Mapping Sets

Understanding Subledger Accounting Setup for Oracle Projects, Oracle Projects Fundamentals