Wednesday, December 26, 2007

Avoid Data Inconsistency in SAP NetWeaver BI in Just 5 Steps

Failure to recognize data load dependencies between different data flows and objects can result in erroneous results and downtimes. Find out how you can address this using a five-step process.


Key Concept

Typical enterprise data warehouse scenarios involve a large amount of data consolidation, cleansing, and enrichment. These processes create dependencies on data load sequencing and modeling. These dependencies ensure that the dependent data load happens only after the previous data load has finished.

Consider an organization with multiple source systems feeding master and transactional data to an enterprise data warehouse based on SAP NetWeaver BI. During these data update stages, all the data targets that the system retrieves for consolidation, cleansing, and enrichment need the most current data. This is particularly critical in a single-source data warehouse. When you consolidate or enrich information, you must confirm that all the dependent loads succeeded.

If your enterprise has a single master data chain, the transactional loads can still progress even though the master data chain has failed for some of the master data. This allows inconsistent data to infiltrate your system. To avoid this, you need to set up dependencies in the data load process chain.

However, SAP NetWeaver BI 7.0 and earlier releases lack the infrastructure capabilities to set up these dependencies. We developed a five-step process that allows you to set up and track dependencies for critical loads:

Step 1. Become familiar with using the ABAP program process type in transaction RSPC

Step 2. Create a custom table in transaction SE11 to map and store the dependencies

Step 3. Create a custom program to get the dependencies for the data load

Step 4. Create a variant for each dependency you need

Step 5. Run the process chain with the variant you created in step 4

When implemented, the process automatically synchronizes the data loads — using dependencies that you maintain in a custom table — and checks for successful completion of these dependencies in the process chain execution. If a dependent process does not complete successfully, the process blocks the next data load and raises an error.

No comments:

Blog Archive