My name is Carla Bussolo and I work for SAP in Product Support area.
Among other things I like in my work environment, I really like my workplace and I selected one nice picture to give you an idea on how it is:
Over the last years, after so many trainings, lots of customer interactions and handling different scenarios, I developed a large expertise in SAP Business Suite (ERP) – Materials Management Logistics Invoice Verification area – known simple as MM-IV.
Performance issues in MIRO transaction are mainly caused by 3 factors:
1) Long PO History
2) ‘Check for duplicate invoices’ functionality active
3) MIRO selection
Let’s explore each case and solutions.
1) Long PO History:
Purchase orders get old and, for some cases, will present a considerable history that includes different types of subsequent documents: goods receipt, invoice receipt, service entry sheets, down payment documents, delivery cost documents, etc.
Purchase order history documents are saved in 2 main tables: EKBE and EKBZ.
Once these tables present a considerable number of entries, each time you access MIRO and enter a document as reference, system will need to search in all the historic documents and this will seriously affect performance.
How to find out how many entries I have in EKBE and EKBZ tables?
Go to SE17 transaction > enter the table name > fill EBELN with the document number > Execute
How to solve?
It is necessary to aggregate Purchase order history using ME87 transaction (RM06EKBE report).
With this action the purchase order history is aggregated and older data is removed (reversibly).
Details are described in SAP Notes below:
311089 – Performance problems because of long PO history
574494 – Explosion the aggregated purchase order history via report
756292 – Consulting: Performance MIRO Enter invoice
756293 – ME87 Aggregation duration purchase order history
2) ‘Check for duplicate invoices’ functionality active:
If ‘Check for duplicate invoices’ is active for Company Code and Vendor, you may face performance issues while executing simple actions in MIRO, as transitioning between Header tabs.
This happens because affected tables are RBKP and BSIP, as system needs to perform several searches in these tables.
You might be wondering now… what is this functionality and how can I see if this is active in my system? Easy! Check out this SAP Help link with all the details:
If you are facing a similar performance issue, use this hint to find out what is the affected table causing the bad performance:
1. Access ST12 transaction.
2. In ‘Trace for’ choose ‘Current Mode’.
3. Enter a comment and enter MIRO in Transaction field.
4. Then, choose ‘Execute/start trace’ button.
5. Now, it is just a matter of perform a test where Users are facing the performance issue.
6. As soon as test has finished, do not post the invoice. Choose ‘Back’ button in the top of MIRO screen and do not post the invoice. You will be redirected to ST12 screen with a message saying ‘Trace finished’.
7. Wait a few minutes while the trace gets organized. Then, under ‘Trace analyses’ just click in the trace line and then choose ‘Performance traces’ button.
8. In the trace details, an important hint: go to menu ‘Trace List’ > and choose ‘Summarize Trace by SQL Statement’. Now you will be able to see the table with higher impact in the performance.
Once you find the affected table, solutions for the performance are very simple! It is necessary to create new indexes.
If affected table is RBKP, it is necessary to create a new index for this table.
SAP recommends that you create an index with the following fields in table RBKP:
For more details read: SAP Note 134660 – Logistics Invoice Verification: Performance (RBKP)
And, if the affected table is BSIP, it is necessary to create a new index for this table, with these fields:
For this index, read the details as SAP Note 389359 explains:
“Here, it is a non-unique index.
(*) You should include field ‘BLDAT’into the index only when flag ‘Check invoice date’ (T169P-XBLDAT) has been set for ALL company codes in the Customizing under ‘Check for duplicate invoices’ .
(*) Similarly, it applies for field XBLNR: only include if ‘Check reference’ (T169P-XXBLNR) has always been set.
For the manual installation, make sure that you save and activate the index.
Since this index should be particularly adjusted to the given Customizing settings, it will not be delivered in an R/3 Support Package.”
3) MIRO selection:
Lets say you have an User and he/she needs to post an Invoice using as reference just a Vendor number and Delivery Dates.
This is common, right?
Issue is that, if the Vendor number used as reference has a considerable number of posted documents, even with the delimited Delivery Dates, you will encounter performance issues.
There are cases where system will need to search entries with multiple account assignment, so, one item line may have 20 multiple account assignment lines. And if you have 560 item lines, imagine what system will need to search for! This will cause even more line item entries in the invoice, taking always time, as the system has to access huge amount of data.
And, other point is that if there are unplanned delivery costs in your invoice to be distributed among different items, this can lead to slow performance as well.
So, for cases like this, there is only one option: change the reference used.
In the PO reference tab, use a Purchase number or other document as reference.
If even using Purchase order numbers as reference lead to performance issues, split the invoice! Post more than one invoice using different references.
Let me advise you that it is very important to verify these 3 causes in your SAP system before any other step in direction to the solution! I have already solved several performance cases just by checking these points in customer systems. So, ask a little hand of your Basis if you need some help and check these points 😉
And, there are SAP Notes related to performance that you may check if it is applied to your system.
Follow some SAP Notes:
2065299 – MIRO/MIR7: Performance when entering an invoice document
2061442 – Getting TIME_OUT dump by using ‘Show PO structure’ button in MIR4
1926384 – MIRO: Runtime problem with bill of lading number
1796455 – MM-IV: Performance improvement
1783492 – Performance issue after upgrade to SAP ERP EHP5 during invoice creation
1755674 – MIRO: Performance issue with BAdI MRM_PARTNER_CHECK active
569086 – MIRO: Long response times for assignment
Hope you have enjoyed this post!