DEV Community

Cover image for Controlling Project Costs in Oracle Fusion PPM: Project and Task Transaction Controls
Himanshu
Himanshu

Posted on

Controlling Project Costs in Oracle Fusion PPM: Project and Task Transaction Controls

Controlling what can and cannot be charged to a project is an important part of project cost governance.

Oracle Fusion PPM provides Transaction Controls that allow organizations to define which transactions are chargeable or nonchargeable for specific projects and tasks.

Instead of relying on users to remember where certain costs should be charged, Transaction Controls allow these business rules to be enforced directly within Oracle Fusion.

In this post, we'll explore how Transaction Controls work and walk through a simple example where a specific Task + Expenditure Type combination is configured as nonchargeable.


What Are Transaction Controls?

Transaction Controls allow you to specify the types of transactions that can or cannot be charged to projects and tasks.

They can be used to configure projects and tasks so that only the charges expected or planned by the business are allowed.

Transaction Controls can also be used for additional purposes:

  • For billing-enabled projects, transactions can be defined as billable or nonbillable.
  • For capital projects, transactions can be defined as capitalizable or noncapitalizable.

This makes Transaction Controls useful not only for restricting project costs, but also for supporting billing and capitalization requirements.


What Can Be Controlled?

Oracle Fusion provides several attributes that can be used when defining Transaction Controls.

Transaction Control Component Purpose
Expenditure Category Control transactions for an expenditure category
Expenditure Type Control a specific expenditure type
Nonlabor Resource Restrict transactions for a nonlabor resource
Person Control transactions for a specific person
Job and Organization Apply controls based on a person's job and organization
Person Type Control transactions based on person type
Chargeable Status Define whether the transaction is chargeable
Billable / Capitalizable Status Control billing or capitalization treatment
From and To Dates Define when the transaction control is effective

These attributes can be used individually or in combination.

For example, a Transaction Control could be created for:

Person + Expenditure Type

or a more specific combination such as:

Person + Expenditure Type + Nonlabor Resource

This gives organizations flexibility to create controls based on their project governance requirements.


The Business Scenario

Let's use a simple example.

Assume we have the following project:

Project: Test_Transaction_Control

Below mentioned tasks will be considered:

Task Pre-Implementation

Task Change Management

We also have:

Expenditure Type: Expenditure Type Airfare

The business requirement is:

Expenditure Type Airfare should not be charged to Task Pre-Implementation

However, the same expenditure type can still be charged to other Task like Change Management.

The expected result is:

Task Pre-Implementation + Expenditure Type Airfare → Not Chargeable

Task Change Management + Expenditure Type Airfare → Chargeable

This is where a Task-level Transaction Control can be used.


Step 1 — Identify the Transaction to Restrict

The first step is to identify exactly what the business wants to prevent.

In our example:

Project: Test_Transaction_Control

Task: Pre-Implementation

Expenditure Type: Airfare

The requirement isn't to prevent Airfare from being used throughout the entire project.

We only want to prevent it from being charged to Task Pre-Implementation.

This is an important distinction because Transaction Controls can provide granular control at the task level.

Project Financial Management

Project Creation

Task Details


Step 2 — Create the Task Transaction Control

Navigate to the appropriate Transaction Controls area for the project/task and create the required control.

For our example, the control would conceptually look like this:

Attribute Value
Task Pre-Implementation
Expenditure Type Airfare
Type Exclusive
From Date As applicable
To Date As applicable

The business rule is now represented within Oracle as:

Task Pre-Implementation

+

Expenditure Type Airfare

↓

Transaction Control

↓

Nonchargeable

This means Oracle can evaluate transactions against the control instead of relying solely on users to remember the restriction.

Task Transaction Control

Transaction Control Configuration


Step 3 — Attempt the Restricted Transaction

Now let's test the control.

A user attempts to create a project transaction using:

Project: Test_Transaction_Control

Task: Task Pre-Implementation

Expenditure Type: Expenditure Type Airfare

Oracle evaluates the transaction against the applicable Transaction Controls.

Because this specific combination has been configured as Exclusive Transaction Control, the transaction isn't permitted.

Payables Invoice with POET

Upon validating the POET payables invoice, the invoice gets on system hold

Transaction Control Validation

Transaction Control Failure

Result: Transaction Not Allowed

Conceptually:

Transaction_Control_In_Place


Step 4 — Test an Allowed Transaction

Now let's change the task while keeping the same expenditure type.

Project: Test_Transaction_Control

Task: Task Change Management

Expenditure Type: Expenditure Type Airfare

No applicable Transaction Control prevents this combination, the expenditure can be charged to Task Change Management.

Result: Transaction Allowed

Payables_Invoice

Successfully Validated and invoice ready for accounting

Transaction Allowed

This demonstrates an important point:

The Expenditure Type itself isn't necessarily restricted from the entire project. The control can determine where within the project that expenditure is chargeable.


How Oracle Evaluates the Business Rule

The functional logic can be visualized as:

Concept_Visualization

This allows the business rule to be enforced before an unwanted cost is charged to the project/task.


Using Multiple Transaction Control Attributes

The Task + Expenditure Type example is intentionally simple.

In practice, Transaction Controls can be much more specific.

For example, an organization could define a rule using:

Task + Expenditure Type + Person

or:

Expenditure Type + Person + Nonlabor Resource

The applicable From and To Dates can further determine when the control is effective.

This makes Transaction Controls useful when project charging rules vary by resource, expenditure classification, organization, or period.


Chargeable vs Billable vs Capitalizable

These concepts serve different purposes and shouldn't be confused.

Control What It Determines
Chargeable Whether the transaction can be charged to the project/task
Billable Whether the transaction can be considered for billing on billing-enabled projects
Capitalizable Whether the transaction can be considered for capitalization on capital projects

For our example, we're primarily concerned with Chargeable Status.

The question Oracle needs to answer is:

Can Expenditure Type Airfare be charged to Task Pre-Implementation?

Our Transaction Control says:

No.


What Happens If No Transaction Controls Are Defined?

This is an important behavior to understand.

If Transaction Controls aren't defined, expenditure items from applicable persons, expenditure categories, expenditure types, and nonlabor resources can be charged to the lowest-level tasks on the project.

Transaction Controls therefore provide an additional governance layer when the business needs to restrict what can be charged.

Without our Task Pre-Implementation restriction, there would be no Transaction Control specifically preventing Expenditure Type Airfare from being charged to that task.


Why Use Transaction Controls?

Transaction Controls help move project charging rules from user knowledge into system-enforced controls.

Without a Transaction Control, the business might tell users:

"Don't charge Expenditure Type Airfare to Task Pre-Implementation."

With a Transaction Control, Oracle can enforce:

Task Pre-Implementation + Expenditure Type Airfare = Nonchargeable

This can help:

  • Prevent incorrect project charges
  • Enforce project-specific business rules
  • Improve project cost accuracy
  • Reduce downstream corrections
  • Strengthen project cost governance
  • Control billing and capitalization treatment where applicable

Common Transaction Control Scenarios

Transaction Controls can support many practical business requirements.

Restrict an Expenditure Type

Prevent a particular expenditure type from being charged to a specific task.

Restrict a Person

Prevent or allow transactions for a particular person.

Restrict by Person and Expenditure Type

Allow or prevent a specific person from charging a particular type of expenditure.

Apply a Date-Based Restriction

Use From and To Dates so that the Transaction Control applies only during a defined period.

Control Billing

For billing-enabled projects, determine whether applicable transactions are billable or nonbillable.

Control Capitalization

For capital projects, determine whether applicable transactions are capitalizable or noncapitalizable.


Key Takeaways

  • Transaction Controls determine which transactions are chargeable or nonchargeable for projects and tasks.
  • Controls can use attributes such as Expenditure Category, Expenditure Type, Nonlabor Resource, Person, Job, Organization, Person Type, and effective dates.
  • Multiple attributes can be combined to create granular project charging rules.
  • For billing-enabled projects, controls can also determine billable or nonbillable treatment.
  • For capital projects, controls can determine capitalizable or noncapitalizable treatment.
  • Task-level controls can restrict an expenditure from one task without necessarily preventing it from being used elsewhere on the project.
  • In our example, Task Pre-Implementation + Expenditure Type Airfare is nonchargeable, while Task Change Management + Expenditure Type Airfare remains chargeable, assuming no other applicable control prevents it.
  • Transaction Controls allow business rules to be enforced within Oracle rather than relying only on user training.

Final Thoughts

Project and Task Transaction Controls provide a flexible way to strengthen project cost governance in Oracle Fusion PPM. By combining attributes such as Task, Expenditure Type, Person, Organization, and effective dates, organizations can control which transactions are permitted before incorrect costs reach the project.

Once you understand the relationship between the transaction attributes and the Chargeable, Billable, and Capitalizable statuses, Transaction Controls become a powerful tool for enforcing project-specific business rules.


Have you used Project or Task Transaction Controls in Oracle Fusion PPM? Drop a comment below or connect with me. I would love to hear how you're using Transaction Controls in your implementations.

Top comments (0)