Company Name or Billing Currency cannot be changed after transactions have been posted.
I have not posted any financial transactions for this project; why do I get this error message? How can I enter in the Company Code?
Steps to Reproduce:
- Create a project
- Select a financial department on the project
- Create some timesheets, submit, approve, post
- Try to enter a 'Company Code' on the project financial properties page. (it has not been entered yet)
Expected: I should be able to enter a company code on the financial properties page.
Actual: I get a message 'Company Name or Billing Currency cannot be changed after transactions have been posted'.
If you receive this error even without attempting any change on the Financial properties page, make sure that BOTH fields are visible on this page: Company Code; and Billing Currency Code. If they are not visible on the page, you can modify the view from Administration, Studio: Objects on the Project object.
If these two fields are already there, and you only receive the error when trying to enter or change the value for Company Code, the reason is that there have been transactions posted into the financial module when the timesheets were posted; new transactions appear in the Administration, Invalid Transactions log page. The 'Post Timesheets' job looks for the Project Financial 'status' attribute to be set to 'Open' to create any records in the Financial Module.
The functionality in the application changed to allow end users the ability to quickly create projects and transactions without too much set up so that actual units and costs can be reported on quickly. The Company Code is only needed if you want to generate invoices for external billing. Since the project was created, the action of posting the timesheets automatically generated financial transactions into the financial module and therefore the application now prevents the end-user from updating the Company Name or Billing Currency.
For best practices, the customer should not create a project with the ability to log timesheets until all the financial setup has been configured. (Set the Project Tracking Mode to None until all financial properties have been configured).
If you want to start tracking time, another way to prevent financial transactions from being created is to set the 'Financial Status' attribute to 'On Hold' or 'Closed'. Resources can proceed with tracking time entries in the application. When the financial status is set to 'Hold' or 'Closed' the Post Timesheets job will not create the financial transactions when the timesheet is posted. At a later date, when the financial status is set to 'Open' the 'Post Timesheets' job will then re-evaluate all existing timesheets that have already been post and generate the financial transactions.
Note: The 'Post Timesheets' job will calculate and update the Task Assignment Actual Cost Curve (blob field) with a total cost value from the Rate Matrix associated with the project. Therefore, it is very important that the 'Rate Matrix' Extraction job is executed successfully with a 'Full Run' (Options: Extract, Prepare and Update selected). If the project is not associated with a Rate Matrix and is not tied to an Entity yet, the costs will come from the Rate Matrix associated with the System Default Transaction Entry Matrix.
The 'Project Financial Properties' or the 'NPIO Financial Properties' Studio Object allows you to configure a default value other than 'Open', thus when new projects are created, the financial status can use a different default value such as 'Hold' or 'Closed'. Also, BPM Process Definitions can be created to control the application in a manner that will suit your business needs.
Consult your CA Technologies Services representative for advice on how to configure your implementation to suit your business needs.