SAP BW 0CLM_INVOICE DataSource for Collections – Implementation Lessons Learned
A client I worked with recently chose to implement Collections while still on Netweaver 7.0 SP4 (SAP_APPL 7.0 SP04) in the ECC system. Instead of implementing the required service packs, the client chose to try to implement by SAP Note and Correction Instructions.
- Service Pack Upgrades are always easier than SAP Notes and Correction Instructions. (I knew this before, but now it’s tattooed on my forehead!)
- Starting in SAP_APPL SP07, a staging table FDM_INVOICE_MEM and program FDM_INVOICE_MEMORY were introduces to help performance.
- Unreleased SAP Note 1490416 provides the instructions on how to implement the required object for the table and program. This Note implements most of the Notes for SP07 through SP13. The SAP Customer will have to raise an Incident to get this Note.
- The Component for the extractor is FIN-FSCM-COL. Your SAP Incident will be routed to them, but they don’t know BW.
- Program FDM_INVOICE_MEMORY has three modes:
- “Selection for Customers” mode to support transactional processing within the ECC system.
- “Selection for Initial BI Extraction” , which fills the staging table FDM_INVOICE_MEM.
- “Selection for Initial BI Extraction (Delta Procedure)”, which gathers the records and stages them for the BW Delta InfoPackage.
- SAP Help and Notes will tell you execute “BI Initialization” with FDM_INVOICE_MEMORY in ECC followed by Initialization in BW through the InfoPackage. However, this approach will only work in “green field” conditions – a new SAP ECC installation. For SAP Clients implanting Collections on an existing ECC system, the job will “hang” , abort with a runtime error DBIF_RSQL_SQL_ERROR (ORA-0155 in Oracle), or time out.
- The BI Content version of DataSource 0CLM_INVOICE has no provision for “Initialization without data transfer”. The SAP Customer must open an SAP Incident to get unreleased SAP Note “1573544 – 0CLM_INVOICE:Delta Init without data transfer not possible” in order to do so.
- The BI Content version of DataSource 0CLM_INVOICE only enables selection by Company Code only – there is no time based selection. The SAP Customer must open an SAP Incident to get unreleased SAP Note “1803667 – 0CLM_INVOICE: Selection by fiscal year and customer”.
- Collections enabled Company Codes are found in ECC table UDM_COMP_CODE. Use the list as selection to limit the number of Company Codes in data extraction or selection.
- In some cases, adding the non-meaningful selection Customers 0000000001 – 99999999999 seems to accelerate the data transfer. My hypothesis is that the selection triggers a more efficient search along an indexed field in a table used by the extractor.
- Collections Company Codes may be grouped as complex or simple.
- Complex Company Codes have –
- Invoices with Inter-Company Code Clearing Documents
- Multiple invoices cleared by a single clearing document.
- Simple Company Codes have –
- One to one relationship from Invoice to Clearing Document.
- Complex Company Codes have –
- When a complex Company Code is selected for extraction, the selection applies to the FDM_INVOICE_MEM table only. The entire set of FI tables (BSEG, BSID) are searched for inter-company code clearing documents.
- SAP does not provide a transaction code or program to purge table FDM_INVOICE_MEM. However, if the SAP Customer raises an Incident, SAP may provide this code:
PARAMETERS: p_bukrs Like FDM_INVOICE_MEM-COMP_CODE.
Delete from fdm_invoice_mem
where comp_code = p_bukrs.
14. Initial data load. This is the process which we used. There is no claim here that this process is optimal, only that through trial and error we found that it worked:
- In ECC, execute program FDM_INVOICE_MEMORY in “Selection for Customers” mode selecting active Collections Company Codes and Customers 0000000001 – 99999999999.
- In BW, “ Initialize without data transfer” , selecting active Company Codes and Customers 0000000001 – 99999999999.
- In BW, execute “Full” loads by single Company Code, one at a time, InfoPackage by InfoPackage in a single treaded “daisy chain” process chain.
- Executing one at a time allows the ECC request of the Infopackage to release system resources at the end of each request/Company Code.
- Use non-meaningful selection Customers 0000000001 – 99999999999 to accelerate the search.
- In the BW “daisy chain” process chain, if the Company Code InfoPackage hangs or cancels, set the status to “Red” , skip the InfoPackage, and record the Company Code for later handling as complex.
- Complex Company Codes
- In ECC, use SE16 to sample data in table FDM_INVOICE_MEM.
- If data is found, record the company code numbers.
- In ECC, use SE38 to execute program Z_FDM_INVOICE_MEMORY_DEL to delete the recorded company codes.
- In ECC, use SE16 to sample data in table FDM_MEMORY_MEM again.
- v. Repeat steps until no more data is found.
- vi. In ECC, use SE38 to execute program FDM_INVOICE_MEM in “Selection for Initial BI Extraction” , selecting for a single Company Code and Customers 0000000001 – 99999999999
- vii. In BW, execute the InfoPackage in “full” mode, selecting for a single Company Code and Customers 0000000001 – 99999999999
- If the job times out or “hangs” in yellow status without update for over three hours, consider adding additional selections by Fiscal Year or ranges of Customers.
15, Schedule background jobs in ECC.
- Use SE38 to schedule program FDM_INVOICE_MEM to run periodically “Selection for Customers” mode selecting for Collections Company Codes and active Collections Company Codes and Customers 0000000001 – 99999999999.
- Use SE38 to schedule program FDM_INVOICE_MEM to run periodically “Selection for Initial BI Extraction (Delta Procedure)” mode selecting for Collections Company Codes and active Collections Company Codes and Customers 0000000001 – 99999999999.
- Ensure sufficient time is scheduled or event based scheduling is used to allow completion of the “Selection for Customers” job prior to start of “Selection for Initial BI Extraction (Delta Procedure)”
16. Schedule process chains with delta mode InfoPackage in BW.
- Ensure sufficient time is scheduled or event based scheduling is used to allow completion of the “Selection for Customers” and “Selection for Initial BI Extraction (Delta Procedure)” jobs in ECC before start of InfoPackages
17. SAP Note 2051721 – FDM_INVOICE_MEMORY: Performance improvement in the selection for BU extraction of the invoice memory/buffer was also recommended by SAP, but never implemented by the client. The Note required a Core Modification, which the ABAP team was reluctant to support. Instead, we limited scope to the three most recent Fiscal Years and deferred historic data loads until after upgrading to the current service pack.
Excellent post John! My 2 cents: Note 1573544 has already been released to all customers.