NextLytics Blog

Wie Sie fehlerhafte Datensätze mit SQLScript in SAP BW markieren

Geschrieben von Chris Fidanidis | 25.03.2021 13:04:24

Nachdem wir im Beitrag “Zwei Möglichkeiten zur Fehlerbehandlung mit SAP BW und SQLScript” die möglichen Alternativen evaluiert haben, stellen wir fest, dass der Weg über den Fehlerstack nicht immer praktikabel ist. So funktioniert es erst ab SAP BW/4HANA Version 2.0. Aber auch da kann dieses Szenario gegebenenfalls zu Performanceproblemen führen.

Im Beitrag “Fehlerhafte Datensätze mit SQLScript in SAP BW automatisch korrigieren” haben wir bereits eine Alternative vorgestellt. Ein anderer Ansatz wäre, die fehlerhaften Datensätze zunächst in das Ziel fortzuschreiben und mit einem Flag zu versehen.

So können Sie die fehlerhaften Daten kennzeichnen und anschließend über ein geeignetes User Interface korrigieren. Sie könnten aber auch diese Daten in Ihren Berichten nutzen und die fehlerhaften Daten über den Flag hinzuziehen oder herausfiltern.

Dieses Vorgehen erläutere ich nachfolgend anhand eines Beispiels. In diesem wollen wir alle Datensätze, bei denen der Buchungskreis nicht in Stammdaten enthalten ist, als fehlerhaft markieren. So können wir trotzdem alle Daten verbuchen und anschließend die Stammdaten validieren.

Unsere Stammdatentabelle beinhaltet folgende Einträge:

Steigern Sie die Leistung Ihres BW mit SQLScript

Demnach gelten nur die Buchungskreise 1000 und 2000 als valide. Mit dem folgenden Coding werden alle anderen Buchungskreise, die nicht in den Stammdaten enthalten sind, mit dem Flag X markiert.

METHOD PROCEDURE BY DATABASE PROCEDURE FOR HDB LANGUAGE SQLSCRIPT OPTIONS READ-ONLY USING /BI0/MCOMP_CODE.

outTab =
SELECT comp_code,
CASE
WHEN comp_code NOT IN (SELECT comp_code FROM "/BI0/MCOMP_CODE") THEN 'X'
ELSE ''
END AS flag,
currency, '' as recordmode, amount, record, SQL__PROCEDURE__SOURCE__RECORD
FROM :inTab;

errorTab= SELECT * FROM :errorTab;

ENDMETHOD.

Unsere Daten enthalten neben den Buchungskreisen 1000 und 2000 auch den Buchungskreis 3000. Dieser ist nicht in den Stammdaten enthalten und wird deshalb markiert.

Alle Datensätze werden jedoch in den Ziel-InfoProvider verbucht und stehen dort zur Verfügung.

Planen Sie einen Umstieg auf SQLScript und benötigen Sie Unterstützung bei der Planung der richtigen Strategie? Oder benötigen Sie erfahrene Entwickler zur Umsetzung Ihrer Anforderungen? Zögern Sie nicht, uns zu kontaktieren - wir beraten Sie gerne.