As per the Address Base Implementation Project requirement, the address table "ADRC" needs to be updated for around 6 million records for the Connection Objects (A special type of Functional location) in SAP ECC system. The current system configuration is such that, if we make any changes to Connection Object, it automatically replicates to SAP CRM system. The implementation approach we chose is to create a BDC program and scheduled it in batch. The batch job is scheduled to execute 5000 records per batch uploading from text file. Hence, as we changed all the Connection Objects' address data through batch in 3 weeks time, it has been replicated to CRM.
Issue:
Along with standard data associated with Connection Objects, there are some custom fields also that are replicated to CRM and is stored in a Z table in CRM system. Due to our load, an issue is identified that the data in Z table for Custom fields or Characteristic data (to be more specific) are wiped out for the entire 6 million records.
RCA:
After an initial analysis, what I have found that, there is a BADI implementation in SAP ECC system to add characteristic data to the standard data structure "BAPIMTCS" for Download to CRM. The code is such that it checks for request type 'D' (Delta load) and 'I' (Initial load) and fetches characteristics data from Screen Fields and Database tables respectively. I think, since, we are have not touched characteristic details, and ours is a Delta load, it is unable to find anything from screen field and therefore, it sent blank data.
In CRM system, the affected Z table has a Z-History table as well, where it keeps all the History details for each record with Key field as GUID.
Resolution Approach:
At present, the following resolution we can think of to restore data in the Z-table:
1. Fetching previous records from Z-History table and using that data, the Z table can be restored at database level.
2. Running request load for all the affected Connection Objects
Advise required:
If we go for resolution 1, the issue is, we are still unaware, if directly changing the table can impact other associated tables or not. This is because, till now, we have found that changing anything to the Z-table changes Z-History table as well to maintain the versions. Hence, we are not sure how to find out any other table associated with the Z-table. Also, based on the current analysis, I am unable to find out the link between Z-table and Ibase tables. The Z-table has only 1 key field, GUID but this GUID value is entirely different in Ibase tables IBIB and IBIN. Hence, could not find any link among the tables.
I think, the resolution 2 would be safer, as it would take care of all these complexities automatically. But, it is out of scope of my skill set and I am unable to understand through documents found on google, how to run a request load.
Also, what would be the request type in this case, whether 'D' or 'I' so that the characteristic data can be checked from BADI implementation at ECC end.