Case Study: Organization-Based Transaction Controls
The section demonstrates how to solve the business problem of implementing organization-based transaction controls.
Business Rule
The first step in the design process is to determine the business rule that you want to solve using client extensions.
Business Rule: Organization-Based Transaction Controls.
All administrative work must be charged to tasks that are managed by the employee's organization or the expenditure organization for transactions for which an employee is not specified.
Requirements
After you define the business rule you want to solve using client extensions, list the business requirements behind the business problem. This will help ensure that you are acknowledging all of the aspects of the business problem during the design stage.
- Tasks with a service type of Administration allow charges only for employees assigned to the same organization as the task-owning organization
- For usages not associated with a specific employee, the expenditure item must have been charged by the same expenditure organization as the task organization
- Display an error message when a user tries to enter an expenditure item that violates this rule
- Do not allow any exceptions to this business rule
You can easily implement an exception to this rule, in which this rule does not apply to any projects that are managed by the Executive office. This exception exists because the Executive office uses resources throughout the company to perform important administrative work. The Executive office does not want to set up projects with a task for every organization that may help with the project work.
Required Extension
To implement the business rule of organization-based transaction controls, use the Transaction Control Extension.
Suggestion: Review the sample PL/SQL code that corresponds to the implementation of this case study in the file named PAXTTCXB.pls in the Oracle Projects admin/sql directory.
Additional Implementation Data
You need to define a new task service type of Administration.
Design Considerations
Determining Incurred by Organization
Since the incurred by organization of each transaction being evaluated is passed to the transaction control extension procedure, you do not need to derive the organization.
Determining Task Organization
Task organization is not passed as a parameter to the transaction control extension. Therefore, you need to derive this value.
Determining Task Service Type
The task service type is not passed as a parameter to the transaction control extension. Therefore, you need to derive this value.
Defining an Error Message
If an item being charged to a task violates this rule, you want to display an error message to the user. The user can then change the task assignment to a different value.
You define an error message with the text, "Only the task-owning organization can charge to this task".