Vielen Dank für Ihre Teilnahme an unserem Webinar!
Vielen Dank an alle Teilnehmer unseres Webinars zum Thema ABAP RAP in Action. Bei dem Webinar ging es um Aktionen bzw. Funktionen und wie man diese in RAP implementiert.
Unterlagen/Links zum Webinar „ABAP® RAP in Action“
Vielen Dank für Ihre Teilnahme an unserem Webinar!
Vielen Dank an alle Teilnehmer unseres Webinars zum Thema ABAP CDS. Ohne ABAP CDS geht in Zukunft in der ABAP Entwicklung nichts mehr. Dass diese aber gar nicht so kompliziert sind, haben wir in diesem Webinar gezeigt.
Das Thema und der Termin stehen noch nicht fest werden wir aber Zeitnah bekannt geben. Unser Fokus liegt nun ganz auf die ABAPConf 2022 die am 7. Dezember über die Bühne gehen wird.
In Cadaxo SQL Cockpit Version 3.8 (Releaseinfos), it is now possible to generate an SAP® Gateway OData Service out of an ABAP Open-SQL Select Statement.
Due to the newly added /CADAXO/ODATA Template, which is from now on available in Select Template wizard, the user can generate the OData Service based on the Select Statement, which the user previously displayed in the Cockpit.
In the next steps, the User is guided through OData Template Wizard. In here some important information about the Service must be added. Like Project Name (SEGW) and name of generated Entities. Filter, Order by, Skip, Top and Count features are optional.
After all steps of the OData Template Wizard are done successfully, the OData Service is activated automatically.
Given ‚Project Name‘ can be opened in SAP Gateway Service Builder (T-Code SEGW) and generated Entity Type and Set can be extended if needed.
Lets try the generated Service in practice!
Thanks to the SAP Fiori® Tools Visual Studio Code Extension I am able to quickly generate new SAP Fiori® elements Application – Worklist.
Without any lines of code, my Service has been used as a Data source and following App has been generated. Filter options are working out-of-the box as well.
Die SQL Cockpit Version 3.8 ist fertig und bietet wieder ein paar Korrekturen/Verbesserungen und einige interessante neue Features. Nachfolgend ein Überblick über die wichtigsten Neuerungen.
Value Download
Tabelleninhalte die länger als 128 Zeichen sind, können im ALV nicht dargestellt werden. Im SQL Cockpit gibt es die Möglichkeit, den Wert als Text oder HTML/XML anzuzeigen.
gesamten Inhalt als Text darstellen
HTML oder XML Darstellung
Der Text kann nun direkt als Datei gespeichert werden.
Text mit Download-Funktion
Beschreibung / *&%HEADER
Das Header Text Kommentar kann man jetzt über das Kontextmenü einfügen
Der Header Text wird dann als Beschreibung der Ergebnislisten angezeigt.
OData Service Generierung (Gatewayservice)
Über das neue Template OData Generierung kann ein SAP® Gateway OData Service generiert werden. Wahlweise kann Coding für $filter, Paging $top/$skip, $orderby und $count generiert werden. Die Service-Klassen können danach individuell erweitert werden.
Template
Atlassian Jira® als Ticketsystem in der Premium Version
Neben dem SAP® Solution Manager kann jetzt auch Atlassian Jira® als Ticketsystem in der Premium Version genutzt werden.
Je nach Customzing werden Kommentartext, Feldwerte und ZIP-Dateien mit PDF oder TXT Formularen der durchgeführten Änderungen zu Ticket hochgeladen.
Customizing
Das Ticket wird über die ID gesucht und der Text im Update-Popup angezeigt. Das Kommentar und die weiteren Daten werden beim Speicher in das Ticket geschrieben.
Feldänderung im SQL Cockpit Update
Die Dateien und der Tickettext sind im Jira Ticket ersichtlich.
Wir haben die Abende im Lockdown genutzt und ein neues Produkt an den Start gebracht. Am Freitag dem 13. Mai werden wir eine Sneak Preview zum Rapid Report Generator liefern. Wer werden aber nicht nur das Produkt kurz vorstellen, sondern auch ein paar Hintergrundinformationen zur Entwicklung, Architektur (UI5, Gateway) und unseren „Learnings“ liefern.
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.
ABAP CDS Fuzzy Search Annotations
ABAP
1
2
3
4
5
6
7
8
@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.
AMDPs – ABAP Managed Database Procedures
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.
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.
Methode EXECUTE_QUERY
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.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
CLASS/cadaxo/cl_ui38_dmo_order_amdp DEFINITION
PUBLIC
FINAL
CREATE PUBLIC.
PUBLICSECTION.
INTERFACES/cadaxo/if_ui38_type_abapclass.
INTERFACES if_amdp_marker_hdb.
TYPES:ty_orders TYPE STANDARD TABLE OF/CADAXO/UI38D_Demo_Orders WITH DEFAULTKEY.
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.
RRG Report
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.
Ergebnisliste
Wir haben jetzt einen Fiori List Report mit fehlertoleranter Suche nach Kundennamen – implementiert in einer ABAP Managed Database Procedure.
ABAP CDS Table Functions – AMDPs für CDS
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 😉
Links
Hier eine kleine Sammlung an relevanten und nützlichen Links zu diesem Thema:
Im vorangegangenen Post AMDP – Fuzzy Search im ABAP® mit SAP HANA® verwenden wir eine AMDP, um mit ABAP Coding eine Fuzzy Suche durchzuführen. Um diese Suche auch in SQL Statements verwenden zu können – z.B. bei INSERT brauchen wir ABAP CDS Table Functions. Dieser Beitrag bietet hierfür einen Leitfaden und erläutert die Thematik Schritt-für-Schritt.
ABAP CDS Table Function
Hier ist der Ausgangspunkt eine Data Definition – mittels DDL wird die Table Funktion als Datasource definiert und über die Felder die Struktur festgelegt. Table Functions können auch Parameter besitzen.
Auffallend ist das returns vor der Feldlist. Damit wird die Struktur der Datensource festgelegt. Wichtiger ist aber der implemented by method Teil, hier /cadaxo/cl_ui38_dmo_order_amdp=>search_orders_CDS
Wenn die Klasse schon existiert, kann die Methode einfach per Quick-Fix angelegt werden!
AMDP Klasse und Methode anlegen
Auch Table Function AMDP werden als spezielle Methode in einer ABAP Klasse implementiert – die Definition erfolgt wie bei jeder anderen Klasse.
Durch das Interface IF_AMDP_MARKER_HDB wird die Klasse besonders, was bei der Schnittstellendefinition der statischen Methode search_orders_CDS erkennbar ist: „Verwende alle Parameter der Table Function als Importing Parameter und die Feldliste als Struktur der Return Tabelle“. Aber auch im Implementierungs-Teil erkennt man den Sonderstatus.
Derzeit nur „HDB“ – Kommen auch andere Datenbanken?!?!
LANGUAGE SQLSCRIPT
Wir nehmen SQLSCRIPT.
OPTIONS READ-ONLY
Wir lesen nur, geändert wird nicht!
USING /cadaxo/ui38d_demo_orders
Wir wollen die Bestellungen aus /cadaxo/ui38d_demo_orders
Details zur Fuzzy Search findet man hier: https://help.sap.com/docs/SAP_HANA_PLATFORM/691cb949c1034198800afde3e5be6570/ce619608bb5710148a42ebb92208b5cd.html?locale=en-US
Daten selektieren
Auf Table Functions wird ganz normal mittels ABAP SQL zugegriffen
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit "Cookie Settings" to provide a controlled consent.
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
Cookie
Dauer
Beschreibung
cookielawinfo-checkbox-analytics
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional
11 months
The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy
11 months
The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.