Skip to content

Changing Cost/Revenue Element Base (PROJ)

This page help you to change cost/revenue element base.

When to use this information:

Use this page when you want to consider additional options during upgrade to IFS Cloud.


In IFS Cloud, it is possible to use a different code part than Account as Base for deriving the Cost/Revenue Elements. This section is only relevant for existing customers that wish to utilize the possibility of changing the code part used as Base for deriving Project Cost/Revenue Elements (for example from Account to another code part).   

Preparing for the change

If an existing customer wishes to change the Base, some special consideration is needed as existing postings may not have a value for the new code part set as Base, which means it is not possible to derive a Cost/Revenue Element using the standard functionality. To help avoid this situation, it is recommended to plan the change of the cost/revenue base by bringing the new code part into use, well in advance before the actual change should occur. In this way, values for the code part will be included on the postings.


For some historical data, values may still be missing for this code part. To handle these transactions, data has to be set up in the Secondary Project Cost/Revenue Element page, where Accounts are mapped to Cost/Revenue Elements. The data in this secondary table will only be used to derive Cost/Revenue Elements for existing General Ledger Voucher Rows that lack a value for the new code part used as Base.

Cost/Revenue Elements for other types of project connections will generally be derived using a ‘simulated posting’ according to the current Posting Control set-up, an exception being manually entered Cost/Revenue Elements. This means there may be discrepancies in the Cost/Revenue Elements used for Planned/Committed Cost compared to Actual Cost for historical data if you decide to change the Base. These discrepancies are normal for an upgraded project and only represent historical records.


When upgrading from a previous version of IFS Cloud, it is recommended to first follow the entire standard upgrade process and verify that all Cost/Revenue Elements are correctly updated. Then at a later time, Base change can be done.


The process for changing the Base is as follows. Note that this process can be performed for one company at a time as the Base is company specific. Because the process involves deleting existing data, it is recommended that a backup is made of the database prior to performing this process.

Step 1 – Update all objects

Before changing the Cost/Revenue Element Base, all existing execution objects reporting cost or revenue to an activity have to be fully processed and any resulting vouchers updated to the General Ledger. Execution objects are objects with financial data which are project-connected. The business processes include (but are not limited to) finalizing all existing reporting on all projects, updating all transactions and creating vouchers, and updating all vouchers to the GL etc.

Step 2 – Copy Cost/Revenue Element mappings

Open the Project Cost/Revenue Element per Code Part Value page, and then select the record/s and click on the ‘Secondary Project Cost/Revenue Element’ command button. In the page that opens, click on the ‘Copy Cost/Revenue Elements to Secondary Mapping’. This will copy the existing mappings to this new page, which will be used when a Cost/Revenue Element cannot be derived for an existing GL Voucher Row due to missing a value for the new Base. Alternatively, mappings can be set up manually. After the copy has been performed, reload the page to verify that the data has been copied correctly.

When upgrading from an older version of IFS that did not use Project Cost Elements it is necessary to determine if there are any project transactions where a value for the code part that is going to be used as the base are missing. Once this is determined, the accounts that were used for these transactions must be manually added to the ‘Secondary Project Cost/Revenue Element’ table. A query that could be used to ascertain these accounts is:

SELECT DISTINCT company, account, IFSAPP.Account_API.Get_Description(company,account)  
FROM IFSAPP.gen_led_proj_voucher_row t  
AND project_activity_id IS NOT NULL  
ORDER BY company, account

Here we assume that IFSAPP is the application owner in the database, if not adjust the statement accordingly. Also enter the correct value of the code part that will be used as the new ‘Base’ in place of code_XX, for example Code_C or Code_D. This statement can be executed as an External Data query in Microsoft Excel, or be run in Oracle SQL*Plus or any other SQL tool.

Step 3 – Delete existing Cost/Revenue Element mappings

Go back to the Project Cost/Revenue Element per Code Part Value page and delete all existing mappings.

Step 4 – Change the Base and update Posting Control

Open the Define Code String page, select the Code Part you wish to use as Base for Cost/Revenue Elements and click on the ‘Set as Base for Project Cost/Revenue Element’ command button. As part of changing the Base you also have to update Posting Control so that any postings which include the Project code part also include a value for the new code part set as Base.

Step 5 – Define Cost/Revenue Element mappings

Open the Project Cost/Revenue Element per Code Part Value page from the Navigator (i.e. rather than from the Recent Screens option), and it will now show the new code part set as Base as the first column. Link the values for this code part to Cost/Revenue Elements as required.

Step 6 – Run the Project Connections Refresh function

Run the Project Connections Refresh function using the corresponding function in the application.

Step 7 – Verify data

Verify that all Project Connections have Cost/Revenue Elements as expected. Also verify that no errors have been given in the ‘Project Connections Refresh Details’ page.


Note that a ‘simulated posting’ is used to derive values for Planned/Committed Cost etc. for the Project Connections (which will consider Posting Control for the new code part used as Base), whereas the secondary mapping will be used for Actual Cost when there is no data for the new code part used as Base on the GL Voucher Row. This means there can be a mismatch between the Cost/Revenue Element used for Planned/Committed Cost compared to Actual Cost for historical objects after changing the Base.