Neue Exportmöglichkeiten im RRG: Mehr Flexibilität für Ihre Reports
Mit dem aktuellen Release 2025.2 des Rapid Report Generator (RRG) erweitern wir die Möglichkeiten, Reportergebnisse bereitzustellen und weiterzuverarbeiten.…
Die SAP HANA Datenbank bietet mit der FUZZY Funktion eine fehlertolerante Textsuche. Während diese Suche für Fiori Applikationen relativ einfach über CDS-Annotations aktiviert werden kann, muss man für ABAP SQL oder ABAP ein paar Objekte anlegen und ein wenig programmieren.
@Search.searchable : true
define …
{
@Search.defaultSearchElement : true
@Search.fuzzinessThreshold : 0.7
@Search.ranking : #HIGH
...
}Der Rapid Report Generator – RRG – kann neben ALV Reports auch CDS Views und ABAP Klassen als Datenquelle verwenden. Damit ergeben sich zwei Möglichkeiten eine Fuzzy Suche in RRG Reports anzubieten. In diesem Post schauen wir uns die AMDP Variante an.
AMDP bieten die Möglichkeit, SAP HANA Features zu verwenden, die nicht über openSQL/ABAP SQL bereitgestellt werden (z.B. Fuzzy-Suche). Sie sind also eine Erweiterung des bekannten EXEC_SQL. Da AMDP als Methoden in globalen Klassen implementiert sind, können sie auch aus jedem ABAP Coding aufgerufen werden.
Was man für AMDP braucht und wie man die Fuzzy-Suche nutzt steht hier in einem unseren älteren Beiträgen: AMDP – Fuzzy Search im ABAP® mit SAP HANA®
Im RRG kann man ABAP Coding über den Report Typ ABAPCLASS einbinden.

Bei diesem Report Typ erfolgt die Datenbeschaffung über das Interface /CADAXO/IF_UI38_TYPE_ABAPCLASS. Wir erstellen also eine Klasse mit diesem Interface und legen den Report an.
Wir verwenden dafür die vorhandene Klasse aus dem Post, ergänzen sie um das Interface und implementieren die Methode /cadaxo/if_ui38_type_abapclass~execute_query.
CLASS /cadaxo/cl_ui38_dmo_order_amdp DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES /cadaxo/if_ui38_type_abapclass.
INTERFACES if_amdp_marker_hdb.
TYPES: ty_orders TYPE STANDARD TABLE OF /CADAXO/UI38D_Demo_Orders WITH DEFAULT KEY.
METHODS search_orders IMPORTING VALUE(i_search_term) TYPE string
EXPORTING VALUE(e_orders) TYPE ty_orders.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS /cadaxo/cl_ui38_dmo_order_amdp IMPLEMENTATION.
...
...
METHOD /cadaxo/if_ui38_type_abapclass~execute_query.
FIELD-SYMBOLS: <result> TYPE ANY TABLE.
TRY.
DATA(search_term) = i_filter_select_options[ property = 'NAME' ]-select_options[ 1 ]-low.
me->search_orders( EXPORTING i_search_term = search_term
IMPORTING e_orders = DATA(orders) ).
e_count = lines( orders ).
ASSIGN e_result->* TO <result>.
<result> = CORRESPONDING #( orders ).
CATCH cx_sy_itab_line_not_found.
e_count = 0.
ENDTRY.
ENDMETHOD.
ENDCLASS.Wir holen uns den eingegebenen Suchbegriff aus dem Filterfeld für Name, rufen die AMDP Methode search_orders( ) auf und liefern das Ergebnis an das RRG Framework.
Mit der Transaktion /CADAXO/UI§(_ADMIN legen wir den RRG Report SEARCH_ORDERS_FUZZY mit dem Typ ABAPCLASS an. Als Result Structure verwenden wir /CADAXO/UI38D_Demo_Orders und als ABAP Klasse natürlich /CADAXO/CL_UI38_DMO_ORDER_AMDP.

Die wichtigsten Einstellungen erfolgen bei den Feldern. Hier muss im Bereich Filter Fields der Feld Name als filterbar gekennzeichnet werden. Weiters macht es Sinn den Filter als Pflichtfeld zu definieren und nur einen Einzelwert zuzulassen.

Wir haben jetzt einen Fiori List Report mit fehlertoleranter Suche nach Kundennamen – implementiert in einer ABAP Managed Database Procedure.

Mit CDS Table Functions können AMDPs als Datenquelle von CDS Views dienen. Diese können dann in openSQL/ABAP SQL Queries verwendet werden. Ein Post hierzu folgt demnächst! Stay tuned 😉
Hier eine kleine Sammlung an relevanten und nützlichen Links zu diesem Thema:
SAP HANA Fuzzy Search https://help.sap.com/docs/SAP_HANA_PLATFORM/691cb949c1034198800afde3e5be6570/cc602780bb5710148aa2bf6cab3c015b.html?&locale=en-US
Fuzzy Search für Fiori Anwendung https://help.sap.com/docs/ABAP_PLATFORM_BW4HANA/cc0c305d2fab47bd808adcad3ca7ee9d/6f9212bbaf5e4d598c774b96d93f7b79.html?locale=en-US
AMDP https://help.sap.com/doc/abapdocu_753_index_htm/7.53/de-DE/abenamdp.htm