This is a test message to test the length of the message box.
Login
|
ABAP Cloud Migration SM30
Erstellt von Software-Heroes

ABAP Cloud - Migration SM30

239

In diesem Tutorial schauen wir uns die Migration eines Pflegeviews nach ABAP Cloud an und wie du bestehende Objekte Schritt für Schritt migrieren kannst. Dabei schauen wir uns verschiedene Punkte der neuen Pflege an.

Werbung


In diesem Artikel migrieren wir einen bestehenden Pflegeview mit Daten nach ABAP Cloud und überführen diesen in die Business Configuration.

 

Einleitung

Wenn du bereits auf dem Weg Richtung ABAP Cloud bist, hast du aktuell wahrscheinlich auch Herausforderungen, wie du bestehende Tabellenpflegen und Customizing zusammenbringen kannst. Dabei stehen dem Anwender aktuell zwei unterschiedliche Ansätze und auch UIs zur Verfügung. Dabei kann die Pflege in der SAP GUI und gleichzeitig in SAP Fiori zur Herausforderung werden. Daher solltest du dir Gedanken machen, ob du nicht auch bestehende Tabellenpflegen mit migrierst.

 

Aktueller Stand

Aktuell haben wir im System eine kundeneigene Tabelle im Paket ZBS_SM30 die neben dem Buchungskreis als Schlüssel, noch ein Feld zur Konfiguration besitzt. Aktuell ist die Tabelle für Anwendungsdaten definiert und kann gepflegt werden.

@EndUserText.label : 'Configuration'
@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #A
@AbapCatalog.dataMaintenance : #ALLOWED
define table zbs_sm30_config {
  key client : mandt not null;
  key bukrs  : bukrs not null;
  setting    : zbs_setting;
}

 

Darüber haben wir eine entsprechende Tabellenpflege generiert, die eine Berechtigungsgruppe hat und eine eigene Funktionsgruppe. In der Funktionsgruppe befinden sich alle generierten Artefakte, damit wir die Tabelle pflegen können.

 

In der Tabelle befinden sich bereits einige Daten, die wir zu Testzwecken gepflegt haben. Hierbei handelt es sich um den Standard zur Pflege von Tabelleninhalten in der SAP GUI.

 

Migration

Unser Ziel ist in diesem Fall die Migration des aktuellen Pflegeviews nach ABAP Cloud, ohne dabei die Daten zu löschen. Damit wollen wir von der SAP GUI auf die Business Configuration umstellen. Die Umstellung machen wir auf einem S/4HANA 2023 On-Prem System mit FPS3.

 

Vorbereitung

Damit wir mit dem Umzug starten können, benötigen wir eine neue oder bestehende Software Komponente im System. In diesem Szenario legen wir eine neue SWC an. Weitere Details zur Anlage findest du in diesem Artikel. Entsprechend legen wir eine Struktur für die Migration an. Eine eigene App legen wir jeweils pro Tabelle an, da die Business Configuration bzw. der komplette RAP Stack viele Objekte erzeugt und wir damit die Objekte voneinander trennen können.

 

Tabelle

Im nächsten Schritt ändern wir die Sprachversion der Tabelle auf ABAP Cloud und verschieben die Tabelle in die Software Komponente. Dazu öffnen wir die Tabelle und gehen in den "Properties" View in Eclipse. Dort findest du die Sprachversion im Tab "General" und kannst diese bearbeiten.

 

Nach der Aktivierung der Tabelle können wir diese dann in die Software Komponente verschieben. Dazu per Rechtsklick auf die Tabelle und die Option "Change Package Assignment ..." im Dropdown wählen. Als Zeil definieren wir unser neues Paket.

 

Der Umzug der Tabelle klappt, allerdings solltest du nun eine Fehlermeldung in der Tabelle haben, wenn du auf "Prüfen" gehst. Das Datenelement ZBS_SETTING sollte eigentlich auch umgezogen werden, solange bleibt die Tabelle aber aktiv. Um unsere Konsistenz wieder herzustellen, verschieben wir auch das Datenelement in das neue Paket zur Tabelle. Nicht vergessen das Objekt in der Sprachversion umzustellen. Nach dem Verschieben des Objekts sollte nach einer erneuten Prüfung der Fehler verschwunden sein.

 

Generierung

Im nächsten Schritt wollen wir den Generator auf der Tabelle starten, der uns die Business Configuration im System anlegt. Allerdings müssen wir noch die Auslieferungsklasse auf C wie Customizing stellen, sonst erhalten wir eine Fehlermeldung beim Start des Generators. Auf der Tabelle kannst du dann per Rechtsklick den Wizard über "Generate ABAP Repository Objects ..." starten und dort den Generator für "Maintenance Object" wählen.

 

Im nächsten Bild konfigurieren wir die verschiedenen Objekte und lassen uns den Preview anzeigen. Bist du so weit mit den Namen der Objekte zufrieden, startest du die Generierung im System. Die Erzeugung dauert einige Minuten und am Ende können wir in das neue Business Configuration Maintenance Object abspringen.

 

Service

Nach der Generierung muss auch der OData Service im System aktiviert werden. In dem von uns verwendeten Release funktioniert das mittlerweile auch über das ADT UI über den Button "Publish". Hast du ein älteres Release, dann kann es sein, dass du dies über die Transaktion /IWFND/V4_ADMIN machen musst.

 

Berechtigung

Um nun den Service in der Business Configuration zu sehen, brauchst du Berechtigungen auf den Service. Grundsätzlich ist die Business Configuration in der Tabelle SMBC_CONFIG vorhanden, allerdings wird der Eintrag in der App über das Berechtigungsobjekt S_START im Core Data Service herausgefiltert. Daher brauchst du die entsprechende Berechtigung, ansonsten bleibt die App leer und es werden keine Pflegedialoge angezeigt. Damit kannst du auch im Detail steuern, wer welchen Pflegedialog sieht.

 

Da in vielen Systemen die Berechtigungen eingeschränkt sind oder in der Vergangenheit vor allem S_TABU_DIS für die Pflegeberechtigungen vergeben wurden, kann es sein, dass wir aktuell keine Berechtigungen zur Bearbeitung haben. Das erkennst du recht einfach, wenn der "Bearbeiten" Button in der Anwendung deaktiviert ist.

 

Grundsätzlich benötigt der Bearbeiter später die Berechtigungen auf Basis von S_TABU_NAM, um mit der Tabelle und den Daten arbeiten zu können. Je nach internem Prozess kann das etwas dauern, bis diese Berechtigungen vorhanden sind. Daher können wir aktuell auch die Prüfung in der Implementierung anpassen. Dazu gehen wir in die Methode GET_GLOBAL_AUTHORIZATIONS und fügen nach dem Setzen der Variable IS_AUTHORIZED die folgende Zeile ein. Damit haben wir immer die Berechtigungen und die Bearbeitung wird aktiviert.

is_authorized = if_abap_behv=>auth-allowed.

 

Hinweis: Siehst du keine Daten im Core Data Service, dann solltest du auch das Access Control prüfen und dort die Prüfung deaktivieren. Grundsätzlich ist das eine kurze Lösung und es sollten immer saubere Berechtigungen vergeben werden.

 

Wertehilfe

Aktuell funktioniert die Wertehilfe nicht, obwohl im Datenelement BUKRS eine klassische Wertehilfe hinterlegt ist. Allerdings ist diese auch nur für die SAP GUI unterstützt. Daher müssen wir per Annotation eine eigene Suchhilfe im Consumption View definieren. Hier kannst du eigentlich immer nach "I_*VH" suchen und wirst die meisten Standard-Suchhilfen im System finden, die auch freigegeben sind.

    @Consumption.valueHelpDefinition: [{ entity: { name: 'I_CompanyCodeVH', element: 'CompanyCode' } }]
key bukrs   as Bukrs,

 

Transport

Je nach Generator und Release musst du im Nachgang noch den Transportmechanismus entfernen, wenn du diesen nicht benötigst. Wie du das in einem aktuellen Release machen kannst, findest du in diesem YouTube Video als Beispiel. Grundsätzlich solltest du die folgenden Objekte prüfen und bereinigen:

  • Verhaltensdefinition - Hier sind Actions und Validierungen für den Transport definiert. Alles mit dem Namen "Transport" kann ohne große Probleme entfernt werden.
  • Verhaltensimplementierung - Nach der Definition findest du einige Fehlermeldungen in der Implementierung. Hier kannst du alle Methoden mit Fehler und alle Informationen mit Transport entfernen.
  • Metadata Extension - In den Metadaten der Root Entität kann noch die Facet und der Button für den Transport entfernt werden.

 

Hinweis: Denke bei der Anpassung des Verhaltens auch auf die Projektion.

 

Cleanup

Nachdem wir die Tabelle nun umgezogen haben, können wir die letzten Bestandteile der Tabellenpflege aufräumen. Dazu öffnen wir die Transaktion SE11 oder SE54 und können die generierten Objekte löschen.

 

Nach dem Klick auf "Löschen" bestätigen wir alle Objekte und entfernen die verschiedenen Bestandteile aus dem System, damit die Tabelle nur noch über die Fiori App gepflegt werden kann.

 

Ergebnis

Die Migration ist abgeschlossen und die Pflege kann nun über die Business Configuration durchgeführt werden. Über das BC Maintenance Object kannst du noch weitere Einstellungen in der Pflege machen.

 

Fazit

Die Migration von bestehenden Pflegeviews ist recht einfach und schnell gemacht. Vor allem die Umstellung der Berechtigungen wird hier etwas mehr Zeit kosten, erlaubt aber eine bessere Steuerung der zu pflegenden Objekte und Tabellen.


Enthaltene Themen:
ABAP CloudABAPMigrationSM30
Kommentare (2)



Und weiter ...

Bist du zufrieden mit dem Inhalt des Artikels? Wir posten jeden Dienstag und 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 Cloud - Änderungsbelege

Kategorie - ABAP

Schauen wir uns einmal an, wie wir eigentlich im ABAP Cloud Umfeld Änderungsbelege für unsere Tabellen anlegen können und welchen Prozess wir dafür einhalten müssen. Dazu erweitern wir unsere RAP Anwendung.

10.04.2026

ABAP Cloud - Hashes

Kategorie - ABAP

Du möchtest einen Hash in ABAP Cloud erstellen? Welche Klassen gibt es eigentlich dafür und wie kannst du sie sinnvoll nutzen?

03.03.2026

ABAP Cloud - Eigene Einheit

Kategorie - ABAP

In diesem Artikel schauen wir uns an, wie wir eigene Einheiten im System definieren können und diese dann in unserer RAP Anwendung anbinden.

06.02.2026

ABAP Tipp - Logging Performance

Kategorie - ABAP

Wie sieht es eigentlich mit der Performance des BAL Logs in der ABAP Cloud Welt aus? Schauen wir uns dazu drei Lösungen an und messen die Performance in verschiedenen Szenarien.

19.12.2025

ABAP Cloud - Zugriff auf Komponenten

Kategorie - ABAP

Wie verhält es sich eigentlich bei ABAP Cloud mit den unterschiedlichen Zugriffswegen auf Komponenten? In diesem Artikel schauen wir uns die verschiedenen Ebenen an und was wir mit den Informationen machen können.

18.10.2025