Hallo,
ich habe eine Frage bezüglich des oben erwähnten Buches und allgemeinem S4hana in App extensibility dingen.
In dem oben erwähnten Buch, wird beschrieben das man in der Fiori Web Oberfläche in der App "Benutzerdefinierte wiederverwendbare Elemente eine Codelist angelegt wird names messages. In den Benutzerdefinierten Business Objekten, habe ich ein neues namens "Event" angelegt und Felder hinzugefügt. Die Felder haben "Bezeichner", "Typ" und "Identifikator" als parameter um ein neues zu definieren. Nach Anleitung aus dem Buch, habe ich eine CodeList mit den benötigten Parametern angelegt und als Identifikator "ReleaseStatus" gewählt.
In dem Buch wird immer wieder folgender Code snipped abgeändert verwendet:
Code: Alles auswählen.
* Meldungen erzeugen
message-severity = co_severity-success.
SELECT SINGLE FROM yy1_message FIELDS description
WHERE code = '010' INTO @message-text.
ELSE. "keine Statusänderung"
mein haupt Problem ist der
Aufruf. Aus meinem anfangs erläutertem vorgehen, ist es nach meinem Verständnis notwendig, bei einem solchen Aufruf den Code (010) auch genau so wie er in der Codelist hinterlegt ist aufzurufen. In dem buch wird allerdings oft zwischen verschiedenen Code Schreibweisen wie 01 (für einfach 1) oder dann tatsächlich 1 verwendet. Ich bekomme auch immer wenn ich es so schreibe und nicht meine angelegten Code werte die tatsächlich in der Liste stehen verwende, die Meldung das genau dass das Problem ist und der Wert in der Liste nicht gefunden werden konnte. Da es in dem Buch oft vorkommt das auf nicht vorhanden Werte in der CodeList zugegriffen wird oder wie oben beschrieben zwischen den zahlen schreibweisen gesprungen wird, ich mir nicht sicher bin ob ich etwas übersehe oder in dem Buch irreführende Anleitungen und Beispiele sind.
Wegen dem
, verstehe ich es so, dass eine inline Variable erzeugt wird die auch gleichzeitig, falls das Szenario eintritt, die aus der Codelist aufgerufene Fehlermeldung ausgibt (sofern vorhanden).
Habe ich es außerdem richtig verstanden, das folgendes vorgehen ein anderer Ansatz für den selben fall von Message Ausgaben ist, allerdings ich hier den Schritt des Anlegen und zugreifen auf eine Benutzerdefinierte Codelist überspringe und es stattdessen immer von Hand eintrage?
Code: Alles auswählen.
if event-ConsistencyStatus ='2' and event-releaseStatus = '1' or event-releaseStatus ='3'.
event-ReleaseStatus ='3'. "freigegeben"
message = VALUE #(
severity = co_severity-success
text = 'Action Release executed erfolgreich'
).