Scenario of Change in Currency of a Country necessitated by Macro Environment in SAP MM (Euro Crisis)
This document details the steps to be followed in case a change of currency is necessitated for a country due to Macro Environment situations. It would require the data in the system to be changed as the data should reflect the new currency of the country.
A brief overview of the Process
First of all, a requirement specification is prepared. This gives information about the scope of work involved and briefs the solutions to the various problems involved. This document is shared with the stakeholders of the project and is a reference document for the entire duration of the project. Should you need any clarifications regarding the scope or the solution proposed then FRS (Functional Requirement Specification) is the document to look into.
Before any currency conversion is carried out in the system, it is important to check the present transactional data for any inconsistency. The term inconsistency refers, basically, to the fact that there could be some orders which may have differences in the order value and the invoice value. These inconsistencies have to be evened out. This is called “Clean up Activity” and is usually the first step (pre step) in the currency conversion process.
The steps to perform Clean up activity are explained later in this document.
There are some checks that are required to be performed as part of preparation for currency conversion. That is to check if there are any forms which have any hard coding of currency. For example, if there is a form that has the currency hard coded then the problem is that even after the currency conversion this form will still print old currency. Hence, we check the forms for hard coding and note down if there is any hard coding and eventually change that too.
The next step is asking SAP to embed this new currency in the package if it is not already present. This is generally done by SAP which also provides some notes about how the changes should be done etc.
This is followed by the Functional support team updating all the relevant master data with the new currency. This could mean updating Vendor Master and Purchase Information Record. The steps to update the currency in these documents are detailed in this document later.
This follows updating the currency in Transactional Data (Purchase Orders, Contracts, & Scheduling Agreements etc.). Now, the point to remember is that master data is editable and the changes can be done readily. However, transactional data is something that has been created and is currently being used by depending programs or data. Hence, editing transactional data is a tedious process and comes with inherent risk of losing critical information.
So, once the transactional data is updated the testing process begins. All the possible scenarios are tested to determine if the currency conversion has been smooth and is running the way it should be.
Generally, there may be 2 to 3 levels of testing. For this, before the conversion and as part of requirement specification; test scripts are prepared and verified. These scripts detail the various scenarios that need to be tested to check for consistency.
Stage 1: Clean-Up Activity
For Cleanup Activity, please refer to SAP Note – 159770. It will give details of all the Z tables to be maintained.
The first step in cleanup activity is to check if there are any such orders that have a difference in MM & FI, alternately, orders that have a difference in their order value and the value for which the invoice is raised against this order.
This is checked by running a report called “EWSH”. Then click on Active Package -> Status (double click) -> Analyze (double click).
Now, that analyze tab should be colored Yellow. If it is Yellow then it’s a warning and can be ignored. But, if it is Red it’s an error and hence a SAP notes has to be applied which would render this error to be ignored. Note down all such Order numbers that are shown in red.
Now, go to T Code – SE38 and enter the program name as “ZAUSNEKPO”. Now, enter the following information:
And then click on Enter Automatically. Then go to SE16 and enter the table name “ZAUSNEKP” and check if these Order entries are there in that or not. If they are there then run the report “EWUMMPOA” and go to t code “EWSH” and check for the results, that is whether the orders that were previously shown in red are now converted to yellow color. This means that we have successfully applied SAP notes to ignore such differences.
Stage 2: Scope determination of the changes involved
In this stage we determine the scope of change involved. This includes activities like determining the number of master data that is to be changed, checking for consistency in the master data (for example, when the currency is changed, it is possible that after applying for the exchange rate the value of the material may overflow the allowed number of digits), number of open orders that would require to be changed, and how the open orders should be treated, that is will they be changed by the business users or there has to be some mass updation that needs to be done.
To check whether there are any forms that may have currency hard coded in them, we go to t code – “NACE” , then select the document for which we have to check the form and then click on “Output Types”.
You will get the name of the Smart Form. This form can then be checked for any hard coding (by an ABAPer).
- List of Vendors to be converted
For this go to t code – SE16 and then open the table “LFA1”. Here, give input as Country. Execute it. You will get the list of vendors that belong to this country.
- List of Purchase Information Records
For this go to t code – SE16 and then open the table “EINE” and give input as Purchase Organization and Plant. You will get the list of Purchase Information Record as the output. Then again through “SE16” go to table “EINA” and give these Purchase information record as input. You will get vendor and material numbers as outputs. Then again through “SE16” go to table “A017” and give vendor, Purchase Organization, and Plant as the input. You will get Condition Record numbers as the output. Then again through “SE16” go to table “KONP” and give these condition record numbers as the input and you will get vendor list as the output. This vendor list is used to update all the Purchase information Records.
This is done as the t code provided by SAP for updating Purchase info Record allows for updating only one vendor and Purchase organization combination at a time. You may have multiple vendors and multiple Purchase organizations. Doing this one at a time could be tedious. Hence, we copy the standard program to create a new Z program.
- List of Open Orders
Go to t code “ME2L” and give purchasing organization and plant as input and in the selection parameter field choose the appropriate entry (for example, WE101 for Open Goods Receipt orders etc.) and execute the report. You will get the list of Orders. This can then be downloaded and saved in spreadsheet format.
Stage 3: SAP Currency Conversion on System and updating the Exchange Rate
Once SAP makes the changes, then you will have to confirm for any errors etc.
Stage 4: Updating the Currency in Master Data
This process involves updating the currency in Vendor Master and Purchase Information Record
Vendor Master: The list of vendor is extracted from the LFA1 table by giving the country key and Deletion indicator not set. The Order currency for these Vendors will be changed by using the Standard T code MKVZE provided by SAP for the Mass Updation of Order Currency Field in the Vendor Master.
Purchase Information Record: The program that is in SAP for the Mass Updation of Currency in the Condition Records of an Info record has only two fields for selection i.e. Purchase Organization and Vendor. The Conditions for only one Vendor can be updated at a time. In case, if there are many vendors present and the currency is to be updated then a work around is possible. You just have to copy this program (RM06K080) and make a new Z Program. The new Z Program should have the functionality to upload many vendors at a time (as shown in figure – below). Also, this Z Program should have a TVARVC entry. In that TVARVC entry you need to maintain a variable which has all the plants present for that country. This will be useful as it will limit the currency updation to only those vendors who supply to these plants.
Stage 5: Updating the Currency in Transactional Data (Open Documents Handling):
In MM P2P (Procure to Pay), the transactional data could be Purchase Orders, whose currency will have to be converted. This basically means that any active or Open Purchase Order’s currency will have to be changed. So, open Purchase orders could be of following type:
- Purchase Order’s for which no delivery has taken place and no invoicing has started (No GR & no IR)
- Purchase Order’s for which partial delivery has taken place and partial invoicing has happened (GR for Partial quantity & IR for the GR happened)
- Purchase Order’s for which delivery is complete but Invoice is yet to be posted ( GR complete, IR yet to be posted)
- Purchase Order’s for which delivery as well as invoice is complete (Order closed)
There are different strategies that need to be followed to convert the currency in the above mentioned orders. We will see about that in the next section.
Post Conversion Testing Activities (Conversion from SAP)
Once SAP has converted the currency in the system (this involves converting all the z tables, standard tables with the new currency, material master etc.) we can go ahead with our process. But, there are times when SAP’s log will show some error. This could be because the material master could not be converted with the new currency. This could be because of overflowing fields while conversion.
For example, let’s assume that the old price in the Material master was US $1,00,000.00 and the exchange rate with the new currency (let’s say EUR) is 2000. Then the new price should be old price * exchange rate which in this case results in the value 20,00,00,000.00 EUR. Now, if allowed field length is say only 11 digits which includes 2 digits for decimal places, then in that case after conversion the new value exceeds the allowed field length, and hence the conversion will throw anerror. But, the currency alone will change to new currency. However, the price will remain as the same numerical value as the old.
In this case, you will have to first find out all those materials whose price before and after conversion is the same. Then analyze all those materials for their Price Control. If the material’s price control is “V” that is, moving average price control then you can manually change the price in the Material master accounting view. However, if the price control is “S” standard price then the value cannot be changed from MM02 (Material Master Edit). For this, you will have to ask the FICO consultant to run the costing for this material. Then this material will pick the new value from the Info Records.
To run costing for a material, you will have to go to t code –
Clean Up Activity – Detail Process
- First we need to run the report EWSH and note down all the transactional data that have some mismatch between FI & MM postings.
- Once we have the list of orders that have this mismatch then we try and apply a SAP Note so that these mismatches are avoided. It should only be avoided if these documents are closed.
- Once we apply the SAP Note (for this follow the procedure given by SAP – SAP Note 159770) then we needs to run the report again and check if these are ignored. This will complete the cleanup activity before the change and go live. How to run the program is mentioned below:
- T code – EWSH
- Click on “Activity Changes”
- Then open the particular program that concerns this project.
- Check for any red items or errors and note down those PO’s or documents
- Now, click on SE38 and enter the Program name “ZAUSNEKPO”. Enter the package number, company code, GL account number, and the program ID and click on enter automatically.
- Then go to SE16 and enter the table name “ZAUSNEKP” and check if these PO entries are still there or not.
- Also check in the other table that is mentioned in the SAP note. Once these things are there then run the program “EWUMMPOA” and go to t code “EWSH” and check for the results whether the errors in point 1 has changed to warnings.
Converting Currency in Transactional Data
1) 1. Purchase Orders for which no Goods Receipt or Invoice Receipt has been posted: In this case the currency in the Purchase Orders can be changed directly in the Purchase Order header as shown below
Or BAPI_PO_CHANGE program can be used and run to mass update the currency in all such Purchase Orders (PO’s).
1) 2. Purchase Orders for which a Goods Receipt (complete) has been posted in EUR but the Invoice Receipt is not done. For such Purchase Orders SAP provides the flexibility of changing the currency during Invoice Verification as shown below. The Condition is that the Currency field has to be entered before entering the PO number.
3. Purchase Orders for which both Goods Receipt and Invoice Receipt has been done for the full quantity: There is nothing that needs to be done in such cases. However after the currency conversion by SAP the Purchase Order history tab would display the Transaction amounts for GR/IR in the new local Currency (ITL).
4. Purchase Order’s for which partial Goods Receipt has happened but there are still open quantities to be delivered: For them the business users have to post the Invoices for the quantity for which Goods Receipt has been done. For the remaining open quantities we will run BAPI_PO_CREATE to create a new Purchase Order for the balance quantities.
For such Purchase Order’s we will automatically create new PO’s for the remaining quantities/value. For the value/quantity for which Goods Receipt has happened, invoice will be posted by the business manually in the old (if before conversion) or new currency (if after conversion).
Testing – Scripts Preparation
Testing process involves validation of all the changes made. We will have to create detailed steps that would have to be run to validate the changes that have been made.
Some of the scripts pertaining to currency change in MM could be:
- Procure to Pay Purchase Orders
- Procure to Pay Stock Transport Orders
- Procure to Pay Asset PO’s
- Checking the Stock Movements
- Scrap Movements
1. Procure to Pay Purchase Orders
a. Create a Purchase Requisition (ME51N)
b. Create a Purchase Order (ME21N)
c. Do Goods Receipt (MIGO)
d. Do Invoice Receipt (MIRO)
Check the currency in the material as well as the accounting document. It should have been changed to the new currency. This is because in the purchase order the currency comes from vendor master record which has already been updated. Material & Vendor combination price will come from Info Record which has also been updated.
2. Procure to Pay Stock Transport Orders
a. We create a stock transport order between two plants (this should be configured for the plants that we are doing) – (ME21N)
b. We manually enter the stock for this material in the supplying plant using MB1C
c. We do Outbound Delivery (VL10B)
d. Post Goods Issue with respect to Outbound Delivery (VL02)
e. Do Goods Receipt with respect to the Stock Transport Order (MIGO)
f. Check the stock in the Receiving Plant (MMBE)
3. Procure to Pay Asset PO’s
a. Create an Investment Order (you can ask your FICO consultant to help you with this)
b. Create Purchase Requisition (ME51N) – Use the Investment Order in this (Account Assignment will be “F”)
c. Create a Purchase Order (ME21N)
d. Do Goods Receipt (MIGO)
e. Do Invoice Receipt (MIRO)
4. Checking the Stock Movements
a. If you have any Z Reports that tracks the movement of stocks from one location to another, then you can run that z report and check if the stock is getting valuated at the company code currency or not (that is, it should be with the new currency)
5. Scrap Movements
This is done if there is a batch to be scrapped, so what happens to the currency then? What happens to the valuation?
a. We determine the batch number for which we can test this
b. We do transfer posting using movement type 344 – This will block the batch and will not allow any goods to be issued (MIGO)
c. We do Goods Issue using Movement type 957 – This will scrap the batch, you will have to mention the reason for scrap (MIGO)
d. Check the stock now – The batch should have been removed and will not be visible (MMBE)
• ME2L : Purchase order by Vendor
• SE16 : To check the data in Table
• ME23N : To display Purchase Order
• ME13 : To display Info Records
• MMPV : To open the Posting Dates
• NACE : To check the Forms
• EWSH : To run the report for Cleanup Activity
• SE37 : To run the Program/Function Module
• SE38 : To run the Program
• EINA: Purchasing Info Record by Vendor, Material, and Access Key etc.
• EINE: Purchasing Info Record detail by minimum purchase, currency etc.
• MBEW: Material Valuation
• MBEWH: Material Valuation
• LFA1: Vendor Master General Section Data
• LFB1: Vendor Master Company Code data
• EKPO: Purchasing Document Item details
• EKKO: Purchasing Document Header details
• EKBE: History as per Purchasing Document
Note: This is the entire scenario from SAP MM perspective. A Similar process exists for SAP SD. It would be nice if some FICO consultant throws light on the changes required from FICO perspective. This situation, if it arises, due to exit of some countries from Euro will require an urgent attention. I would be glad if someone throws light on changes required in SD & FICO.