Case Study: New Charges Not Allowed
This section demonstrates how to solve the business problem of not allowing new charges to projects for which the work is complete.
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: New Charges Not Allowed
Projects for which the work is complete do not allow new transactions to be charged. These projects, however, allow new transactions resulting from transfers between projects to properly account for the project work performed.
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.
- Do not allow new expenditure items to be charged to projects having a project status of Processing Only
- Allow expenditure items to be transferred to projects having a project status of Processing Only
- Display an error message when a user tries to enter new expenditure items charged to projects having a project status of Processing Only
- Do not allow any exceptions to this business rule
You could easily implement an exception to this rule regarding new charges from transfers only. An exception to this rule is to also allow supplier invoice transactions, which are typically received after the project work is complete.
Required Extension
To implement the business rule of controlling new charges to projects for which the work is complete, 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 Oracle Projects admin/sql directory
Additional Implementation Data
You need to define a new project status of Processing Only.
Design Considerations
Identifying Transferred Items
You know if the item you are validating is a transfer from another project or task by looking at the value of the x_transferred_from_id parameter passed into your extension.
Determining Project Status
The project status is not passed as a parameter to the transaction control extension. Therefore, you need to derive this value from the project ID.
Defining an Error Message
If an item is a new item being charged to a project with a project type having the status of Processing Only, you want to display an error message to the user. The user can then change the project assignment of the new expenditure item to a different project.
You define an error message with the text, "You cannot create new items for Processing Only projects".