This is a test message to test the length of the message box.
Login

ABAP Obsolet - GUID erzeugen

1226

Wie erzeugst du eine eindeutige Identifikation (ID) im System? Du wirst die Antwort wahrscheinlich kennen, doch ist sie noch aktuell?

Werbung


In den meisten Hilfen im Internet oder in Foren wirst du immer über die Verwendung eines Funktionsbausteins stolpern. Wenn du unsere Serie über Modernes ABAP verfolgt hast, weißt du aber bereits das die Verwendung von Funktionsbausteinen mittlerweile auf ein Minimum reduziert werden sollte. Nicht weil Funktionsbausteine obsolet sind, sondern eher zu anderen Zwecken verwendet werden sollten.

 

Was ist das?

GUID bedeutet "Globally Unique Identifiers", ist also ein eindeutiger Schlüssel im System der nicht zweimal vorkommen kann. Generiert wird dieser Schlüssel aus verschiedenen Informationen aus dem System, der Zeit und zufälligen Nummern, vergleichbar mit einem Hash in anderen Sprachen/Systemen.

Eine Nummer kann in drei Ausgabeformaten generiert werden:

  • 16-stellig vom Typ x (42D85ED56C0A1EE9A5CA741861FC924B)
  • 32-stellig vom Typ c (42D85ED56C0A1EE9A5CA741861FC924B)
  • 22-stellig vom Typ c (GjXUrMmA7kcbodGOOVoIIm)

Die ersten beiden Formate sind in der Ausgabe gleich, unterscheiden sich aber durch ihren Datentyp in dem sie gespeichert werden.

 

Funktionsbaustein

Beim Aufruf des Funktionsbausteins GUID_CREATE bekommst du mit einem Aufruf alle drei GUIDs zurückgeliefert. Über die Write Ausgabe, kannst du dir die Werte direkt anzeigen lassen.


DATA:
  ld_guid_16 TYPE guid_16,
  ld_guid_22 TYPE guid_22,
  ld_guid_32 TYPE guid_32.

CALL FUNCTION 'GUID_CREATE'
  IMPORTING
    ev_guid_16 = ld_guid_16
    ev_guid_22 = ld_guid_22
    ev_guid_32 = ld_guid_32.

WRITE: / ld_guid_16, ', ', ld_guid_22, ', ', ld_guid_32

 

Die Verwendung des Funktionsbausteines wurde bereits als obsolet gekennzeichnet und in den Kommentaren findet man die Nachfolgeklasse zur Generierung der IDs.

 

Klasse

Der Nachfolger für den Funktionsbaustein ist die Klasse CL_SYSTEM_UUID, mit ihr kannst du ebenfalls alle IDs generieren. SAP stellt an dieser Stelle für jeden Datentyp eine eigene Methode zur Verfügung. Der Vorteil bei der Verwendung ist natürlich auch die Inline-Deklaration im Programm, was den Code wieder übersichtlicher macht.


DATA(ld_new_16) = cl_system_uuid=>create_uuid_x16_static( ).
DATA(ld_new_22) = cl_system_uuid=>create_uuid_c22_static( ).
DATA(ld_new_32) = cl_system_uuid=>create_uuid_c32_static( ).

WRITE: / ld_new_16, ', ', ld_new_22, ', ', ld_new_32.

 

Neben der Verwendung von den statischen Methoden, werden auch noch Instanzmethoden bereitgestellt, die nach der Erzeugung des Objekts aufgerufen werden können. Für diese Methoden werden in der Klasse keine Interface Aliase bereitgestellt, was die Schreibweise leicht verlängert.


DATA(ld_new_16x) = NEW cl_system_uuid( )->if_system_uuid~create_uuid_x16( ).
DATA(ld_new_22x) = NEW cl_system_uuid( )->if_system_uuid~create_uuid_c22( ).
DATA(ld_new_32x) = NEW cl_system_uuid( )->if_system_uuid~create_uuid_c32( ).

WRITE: / ld_new_16x, ', ', ld_new_22x, ', ', ld_new_32x.

Fazit

Die Erzeugung von eindeutigen IDs hat sich damit etwas geändert, sollte für dich aber kein Problem darstellen. Mit den Methoden bist du auf jeden Fall etwas flexibler unterwegs, vor allem wenn es um die Verkettung von Funktionen geht. Falls dies für dich nichts Neues sein sollte, dann nur noch einmal zur Auffrischung des Wissens.

 

Quelle:
SAP Answers


Enthaltene Themen:
ObsoletGUIDEindeutige ID
Kommentare (0)



Und weiter ...

Bist du zufrieden mit dem Inhalt des Artikels? Wir posten jeden Freitag neuen Content im Bereich ABAP und unregelmäßig in allen anderen Bereichen. Schaue bei unseren Tools und Apps vorbei, diese stellen wir kostenlos zur Verfügung.


ABAP - Namenskonventionen

Kategorie - ABAP

Wie wichtig sind heutzutage noch die Einhaltung von Namenskonventionen oder überhaupt die Verwendung von Namenskonventionen im modernen ABAP Umfeld? Das wollen wir uns in diesem Artikel anschauen.

09.04.2021

ABAP - INSERT verwenden

Kategorie - ABAP

APPEND hat in ABAP bereits eine lange Geschichte, doch dieser wird in Zukunft immer weniger eine Rolle spielen. Wir zeigen dir wieso.

11.12.2020

ABAP Obsolet - Zuweisung und Berechnung

Kategorie - ABAP

Wie funktioniert das eigentlich mit den Zuweisungen und der Berechnung in ABAP? Hier erfährst du die aktuellen Sprachkonstrukte und was du vermeiden solltest.

26.06.2020

ABAP Obsolet - Range und Kopfzeilen

Kategorie - ABAP

Eine ordentliche Range zur Übergabe erzeugen? Tabellen mit oder ohne Kopfzeilen? Wir zeigen dir was noch geht und was du lieber sein lassen solltest.

12.06.2020

ABAP Obsolet - DESCRIBE

Kategorie - ABAP

Wieder haben wir für dich einen meist genutzten ABAP Begriff, für den es bereits eine neue Alternative gibt, dieses mal aber nicht nur Eine.

15.11.2019