Webinar – RAP endlich checken

Vielen Dank für Ihre Teilnahme an unserem Webinar!

Vielen Dank an alle TeilnehmerInnen unseres Webinars zum Thema RAP endlich checken.

Unterlagen/Links zum Webinar

Hands-on Webinar

Links

LinkedIn Kontakte

ABAPConf 2024

ABAP Webinar – ABAP Cloud Teil 2

Vielen Dank für Ihre Teilnahme an unserem Webinar!

Vielen Dank an alle TeilnehmerInnen unseres Webinars zum Thema ABAP Cloud.

Unterlagen/Links zum Webinar

Links

LinkedIn Kontakte

Unser nächstes Webinar

ABAPConf 2024

ABAP Webinar – ABAP Cloud

Vielen Dank für Ihre Teilnahme an unserem Webinar!

Vielen Dank an alle TeilnehmerInnen unseres Webinars zum Thema ABAP Cloud.

Unterlagen/Links zum Webinar

ABAP Cloud Teil 2

Links

LinkedIn Kontakte

ABAP_Dynamische Programmierung

ABAP Webinar – Dynamische Programmierung

Vielen Dank für Ihre Teilnahme an unserem Webinar!

Vielen Dank an alle Teilnehmer unseres Webinars zum Thema ABAP Dynamische Programmierung.

Unterlagen/Links zum Webinar

Links

LinkedIn Kontakte

ABAPConf 2023

Findet heuer am 7. Dezember von 09:00 – 18:00 Uhr statt. Registrieren, um keine Updates zu verpassen:

SAP CodeJam Mannheim 2023

Findet am 08. Dezember von 09:00 – 16:00 im Mafinex Technologiezentrum bei Brandeis Consulting statt. Ein Überblick über alle Infos:

ABAP 756_757

ABAP Webinar – ABAP 7.56/7.57 Releaseabhängige Änderungen

Vielen Dank für Ihre Teilnahme an unserem Webinar!

Vielen Dank an alle Teilnehmer unseres Webinars zum Thema ABAP 7.56/7.57 Releaseabhängige Änderungen.

Unterlagen/Links zum Webinar

Links

Twitteraccounts

ABAPConf 2023

Findet heuer am 7. Dezember von 09:00 – 18:00 Uhr statt. Registrieren, um keine Updates zu verpassen:

Unser nächstes Webinar

  • 29. September 10:00 – 11:00 Uhr. Einladung folgt noch rechtzeitig
ABAP RAP Nummernvergabe

ABAP RAP Nummernvergabe

Die Nummernvergabe ist ein wesentlicher Bestandteil von ABAP RAP Anwendungen. Konkret geht es bei der Nummernvergabe darum, wie die Schlüsselfelder der Entität mit Werten versorgt werden. RAP bietet uns hier verschieden Lösungsansätze, welche jedoch manchmal auch zur Verwirrung führen und ich deshalb hier kurz erläutern möchte.

Zuerst müssen wir einmal klären, was Früh/Spät und Managed/Unmanaged bei der Nummernvergabe bedeutet.

Frühe- und Späte Nummernvergabe

Bei der frühen Nummerierung geht es darum, dass die Nummer bereits durch den Consumer oder durch das RAP-Framework zu einem frühen Zeitpunkt erzeugt wird. Bei der späten Nummerierung werden die eigentlichen Keys erst zum SAVE-Zeitpunkt vergeben, wodurch eine lückenlose Nummerierung realisiert werden kann.

Managed und Unmanaged

Wenn man als Key-Feld eine Guid hat, kann man sich für eine automatische (=managed) Nummerierung entscheiden. Bei der unmanaged Nummerierung wird die Nummernvergabe durch entsprechende ABAP Codes realisiert.

Folgende Kombinationsmöglichkeiten sind vorhanden:

Frühe NummernvergabeSpäte Nummernvergabe
ExternX
ManagedXX
UnmanagedXX

Frühe externe Nummernvergabe

Bei der frühen externen Nummernvergabe werden die Key-Felder bereits durch den Consumer gefüllt. In der Behavior-Definition müssen wir dafür sorgen, dass das Feld bei der Erstellung änderbar ist, bei Änderungen jedoch nicht mehr geändert werden kann.

In der Behavior Definition ist für diese Nummerierung keine spezielle Angabe zu machen. Jedoch sollten die Key-Felder bei Updates auf readonly gesetzt werden:

field ( readonly : update ) orderId;

Frühe interne Nummernvergabe

Die frühe interne Nummernvergabe kann nur angewendet werden, wenn es sich bei dem Key-Feld um eine Guid (Raw 16) handelt. In der Behavior Definition sind auch in diesem Scenario nur zwei kleine Definitionen für das Key-Feld vorzunehmen:

field ( readonly ) orderGuid;
field ( numbering : managed ) orderGuid;

Zuerst setzen wir die Guid auf readonly und in zweiten Zeile legen wir die automatische interne Nummerierung auf die Guid fest.

Unmanaged interne Nummernvergabe

Diese unmanaged interne Nummernvergabe kann sowohl für managed als auch unmanaged RAP Business Objekte verwendet werden. Auf Entity Level müssen wir eben in der Behavior Definition diese Nummerierung mit early numbering definieren. Ebenso sollten die Key-Felder auf readonly gesetzt werden.

Nun kann man entweder über Quick-Fix oder manuell eine Implementierung für die Nummerierung vornehmen. Die Methodensignatur sieht wie folgt aus:

METHODS earlyNumberingOrder method for NUMBERING
   [IMPORTING] entities FOR CREATE business_object_entity …

In der Methode ist nun die Nummernvergabe für die Objekte in entities umzusetzen. Wichtig ist, dass die erfolgreichen Nummernvergaben in die Exporttabelle mapped bekannt gegeben werden müssen.

Unmanaged späte Nummernvergabe

Auch die unmanaged späte Nummernvergabe kann für beide RAP Szenarien verwendet werden. Auf Entity Level wird dies durch late numbering definiert. Ebenso sollten die Key-Felder auf readonly gesetzt werden.

Die Implementierung der Nummernvergabe erfolgt in einer Methode adjust_numbering, welche im Zuge der save sequence – nach dem Point of no return – aufgerufen wird. Die Methode kann man sich wieder mit einem Quick-Fix erzeugen lassen.

Die erzeugte Nummer muss über den Export-Parameter mapped mit dem internen temporären Key zugeordnet werden.

Referenzen

Webinar - ABAP RAP in Action

Webinar – ABAP® RAP in Action

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“

Links

Twitteraccounts

Unser nächstes Webinar

Steht noch nicht fest, wird aber natürlich noch rechtzeitig bekannt gegeben.

Constants

Cadaxo UI5 Snippets #1 – How to define constants

During the work on some Freestyle UI5 Apps I always look for a way how to save constants in Frontend. I would like to share following practice with you, which I use currently.

Define JSON File with Constants

I am going to create a new File in my project root folder. In this file all constant and values will be stored as a JSON Object.

/webapp/model/constants.json

   

Define JSON Model in manifest.json file

I my project manifest.json, I am going to define a new JSON Model with created JSON file in URI

Using Constants in View

From now on it is possible to use the constant model in View:

Using Constants in Controller

And of course also in Controllers. For example like this:

Let me know how you save constants in Frontend or leave a comment if you found this blog post useful!

ABAP CDS

Webinar – ABAP® CDS

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.

Unterlagen/Links zum Webinar „ABAP® CDS“

Twitteraccounts

Unser nächstes Webinar

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.

https://www.abapconf.org

Wer nochmals die vielen Vorträge vom letzten Jahr sehen will, findet die Aufzeichnungen ebenfalls auf der ABAPConf Homepage.

ODATA Service

Cadaxo SQL Cockpit 3.8 – OData Service Generation into Worklist

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.