Optimierte Adresssuche in S/4HANA 2023

Die Idee zu diesem Artikel entstand während der Überprüfung unserer neuesten SAP Fiori-Element-Entwicklung in der regulären Testphase des S/4HANA-Upgrades unseres Kunden. Dieses bemerkenswerte Release bringt bedeutende Verbesserungen bei der Adresssuche mit sich.

Ein Bild, das Text, Screenshot, Schrift, Zahl enthält.Automatisch generierte Beschreibung, Bild

Abbildung 1: Übersicht über das SAP Support Package Stack (Quelle: SAP Support Portal)

Hintergrund

Eine häufige Herausforderung ist die Duplizierung von Geschäftspartnern, die auch in Ihrem System auftreten kann und nachträglich oft Workarounds erfordert, um Dopplungen zu vermeiden. Unser Ansatz konzentrierte sich auf die Verbesserung des Adressabgleichs bei Massendatenimporten. Das herkömmliche ABAP-Toolset stößt hierbei an Grenzen, da die Kombination von logischen Anweisungen oder Regelwerken häufig zu komplexem Code führt, der viele Ressourcen und Zeit in Anspruch nimmt.

Da S/4HANA auf einer In-Memory-Datenbank (HANA) basiert, war es unser Ziel, die bestmögliche Lösung zu entwickeln. Eine kurze Recherche führte uns zum SAP HANA Search Developer Guide.

Es schien die ideale Lösung zu sein, um das Problem der Duplizierung zu lösen.

Die Fuzzy-Suchfunktionen in Kombination mit Term-Mappings (siehe documentation on fuzzy search und term mappings) stellten einen vielversprechenden Ansatz dar.

Abbildung 2: Codeausschnitt für eine HANA-DB-Prozedur

Technisches Konzept


Das Grundkonzept lässt sich wie folgt zusammenfassen:
HANA unterstützt Prozeduraufrufe, die direkt auf Datenbankebene mittels nativer SQLScript-Anweisungen ausgeführt werden – anstelle von nativem oder Open SQL innerhalb der ABAP-Umgebung. Daher ist zur Implementierung dieser Lösung die Eclipse-IDE erforderlich.

Mit diesem Setup können zusätzliche Anweisungen integriert werden, um die Suchprozedur zu optimieren. In unserem Fall wurde eine bereichsübergreifende Suche nach Namen und Straßen umgesetzt.

Gemäss den fachlichen Anforderungen enthält die erste Spalte typischerweise den Firmennamen, während die zweite und dritte Spalte Erweiterungen, Kontaktpersonen, Abteilungsnamen oder andere relevante Bezeichner umfassen können.

Darüber hinaus ist es aufgrund der mehrsprachigen Gegebenheiten in der Schweiz notwendig, semantisch gleichwertige Bezeichnungen in verschiedenen Sprachen abzugleichen – etwa AG (DE), Ltd (EN) und SA (FR).

Ein Bild, das Text, Screenshot, Schrift, Zahl enthält.Automatisch generierte Beschreibung, Bild

Abbildung 3: Term-Mapping für juristische Bezeichnungen

Darüber hinaus stellt die 40-Zeichen-Beschränkung im Datenbankschema eine Herausforderung dar, insbesondere bei der spaltenübergreifenden Suche.

Unsere Lösung bestand darin, die Anweisung „enthält“ (engl. contains) mit demselben Eingabeparameter über mehrere Namensspalten in der ADRC-Tabelle hinweg zu verwenden.

Der folgende Codeausschnitt veranschaulicht diesen Ansatz:

Abbildung 4: Dieses SQLScript zeigt, wie Fuzzy-Matching über mehrere Spalten hinweg unter Einbeziehung von Term-Mapping angewendet wird.

Durch diesen Ansatz führt das System eine Fuzzy-Suche über mehrere Datenbankspalten hinweg durch, einschließlich Term-Mapping. Dies führt zu einer erweiterten Datenmenge und erleichtert die Identifikation potenzieller Duplikate.

Index-Verbesserungen in SAP S/4HANA 2023

SAP S/4HANA 2023 führt bedeutende Verbesserungen im Bereich der Indexverwaltung ein, insbesondere für die Adresssuche. Eine zentrale Neuerung ist die Möglichkeit, Fuzzy- und Volltextindizes direkt in der Transaktion SE11 zu erstellen. Dies erleichtert die Implementierung von erweiterten Suchlogiken und erhöht die Upgrade-Sicherheit.

Standardmässig sind in der ADRC-Tabelle nur bestimmte Spalten wie NAME1, NAME2 und CITY für Fuzzy-Suchen indiziert. Um jedoch umfassendere Suchszenarien zu ermöglichen, können nun zusätzliche Indizes, beispielsweise auf den Spalten NAME3 und STREET, direkt im Data Dictionary definiert werden. In früheren Versionen mussten solche Indizes manuell über Skripte auf der HANA-Datenbank erstellt werden, was bei Systemupgrades zu Herausforderungen führte, da diese Indizes als lokale Objekte ($tmp) nicht automatisch übernommen wurden.

Mit der neuen Funktionalität in S/4HANA 2023 können Unternehmen nun effizientere und robustere Suchmechanismen implementieren, die insbesondere bei der Vermeidung von Dubletten in Geschäftspartnerdaten hilfreich sind. Die Integration dieser Indizes direkt in SE11 stellt sicher, dass sie systemübergreifend konsistent bleiben und nicht bei Upgrades verloren gehen.

Ein Bild, das Text, Screenshot, Software, Multimedia-Software enthält.Automatisch generierte Beschreibung, Bild

Abbildung 5: Beispiel für die Erstellung eines Fuzzy- oder Volltext-Index in S/4HANA 2023 über die Transaktion SE11.

Standardmässig stellt SAP keine vollständig indizierte Adresstabelle (ADRC) zur Verfügung. Die Fuzzy-Indizierung – und damit auch die Fuzzy-Suchfunktionalität – ist auf die Spalten NAME1, NAME2 und CITY beschränkt.

Ein Bild, das Text, Screenshot, Schrift, Software enthält.Automatisch generierte Beschreibung, Bild

Abbildung 6: Standardindizes der ADRC-Tabelle in SE11, mit Hervorhebung der Spalten mit Fuzzy-Suchfunktion.

Um erweiterte Suchszenarien umzusetzen, ist es erforderlich, zusätzliche Indizes zu definieren – zum Beispiel auf den Spalten NAME3 und STREET. In früheren Versionen wurden solche Indizes direkt auf der HANA-Datenbank mithilfe von Skripten erstellt, da innerhalb der Suite kein integriertes Tool zur Verfügung stand (siehe SAP HANA Documentation)

Wichtiger Hinweis: Indizes, die per Skript erstellt wurden, sind als lokale Objekte ($tmp) definiert und müssen auf jedem System, auf dem die Lösung eingesetzt wird, erneut angelegt werden. Das bedeutet, dass diese Indizes bei System-Upgrades verloren gehen. Die Möglichkeit, Indizes direkt im Data Dictionary zu definieren, stellt daher eine bedeutende Verbesserung dar.

Fazit

S/4HANA 2023 bringt eine wesentliche Verbesserung mit sich: Fuzzy und Volltextindizes können nun direkt in SE11 erstellt werden. Dies behebt bisherige Einschränkungen und ermöglicht eine upgradesichere Implementierung komplexer Suchlogiken auf HANA-Datenbankebene. Anwendungsfälle wie die mehrsprachige Namens und Adresssuche lassen sich nun einfacher umsetzen, sind robuster und besser skalierbar. Die Plattform unterstützt benutzerdefinierte Suchszenarien über eine Vielzahl von Feldern hinweg.

Wenn Sie Unterstützung benötigen oder Fragen haben, steht Ihnen unser Team gerne zur Verfügung.

Autor

Jan Walder

Senior Entwickler