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

Chris Fidanidis

Geschrieben von: Chris Fidanidis - 25 März, 2021

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:

Master data table company code


Steigern Sie die Leistung Ihres BW mit SQLScript

SAP SQLScript Whitepaper


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.

Outtab debugger with a flag

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

List ausgabe mit Flag

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.

Erfahren Sie mehr über  SAP HANA SQLScript

Themen: SAP HANA, SAP BW/4HANA, SAP HANA SQL

Beitrag teilen

Sie haben eine Frage zum Blog?
Fragen Sie den/die Autor*in Chris Fidanidis