Ansicht
Dokumentation

ABENEML_CALCULATOR_ABEXA - EML CALCULATOR ABEXA

ABENEML_CALCULATOR_ABEXA - EML CALCULATOR ABEXA

Addresses (Business Address Services)   PERFORM Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- RAP Calculator (Unmanaged)

Das Beispiel demonstriert einen Calculator, der mithilfe eines einfachen nicht verwalteten RAP BOs in einen RAP-Kontext implementiert wird. Hier beansprucht eine Create-Operation mit einer -MODIFY ENTITY-Anweisung Benutzereingaben (Zahlen und einen Operand), auf deren Grundlage eine Berechtigung durchgeführt wird.

Datenmodell

Das CDS-Datenmodell besteht nur aus der Wurzelentität DEMO_UNMANAGED_CALC.



Verhaltensdefinition

Die CDS-Verhaltensdefinition DEMO_UNMANAGED_CALC wird in CDS BDL wie folgt definiert:

Verhaltensimplementierung

Für die oben genannte CDS-Verhaltensdefinition wird ein ABP angelegt. Die globale Klasse des Behavior-Pools ist BP_DEMO_UNMANAGED_CALC. Die eigentliche Verhaltensimplementierung findet in lokalen Klassens statt, die im BP_DEMO_UNMANAGED_CALC========CCIMP des Behavior-Pools definiert und implementiert werden.

Die Klasse lcl_var enthält die Spezifikation des Transaktionspuffers. Der Transaktionspuffer in diesem Beispiel ist eine interne Tabelle buffer_tab, die mit einem abgeleiteten BDEF-Typ typisiert wird. Des Weiteren wird die Struktur request für die Anweisung GET PERMISSIONS definiert, die in der Methode create verwendet wird.

Die folgenden Methoden sind in diesem Beispiel relevant:

  • create
Als initialer Schritt wird der Transaktionspuffer (d.h. die interne Tabelle buffer_tab) mit den Einträgen, die über das Eingabebild bereitgestellt wurden, befüllt. Als nächster Schritt folgt eine GET PERMISSIONS-Anweisung, die Informationen darüber abruft, ob die Berechnung erlaubt ist oder nicht. Als Voraussetzung werden %field-Elemente in der request-Struktur markiert, um anzugeben, dass das bestimmte Element bei der Beschaffung von Berechtigungen berücksichtigt werden sollte. Während des Ausführung der Anweisung GET PERMISSIONS wird die Methode get_instance_features aufgerufen. Nach diesem Methodenaufruf wird die Berechnung abhängig vom Ergebnis der Anweisung GET PERMISSIONS ausgeführt oder nicht. Wenn die Berechnung erlaubt ist, erhält das Feld calc_result das Ergebnis der Berechnung gemäß den bereitgestellten Zahlen und dem Operand. Mögliche Kurzdumps werden abgefangen. Wenn die Berechnung nicht erlaubt ist und Fehlermeldungen vorhanden sind (die Fehlermeldungen werden im Laufe des Methodenaufrufs get_instance_features angelegt), erhält der Parameter reported diese Meldungen.
  • read
Die read-Methode liest die eingegebenen Einträge. Sie wird in der Methode get_instance_features verwendet.
  • get_instance_features
Zuerst werden die eingegebenen Einträge gelesen. Im nächsten Schritt werden die Berechtigungen für die Berechnung abgerufen und in result gespeichert. Die Berechnung wird erlaubt, wenn keine der folgenden Bedingungen erfüllt ist: Der in Feld number1 bereitgestellte Wert muss befüllt werden und darf nur Zahlen erhalten. Dasselbe gilt für den in number2 bereitgestellten Wert. Zusätzlich darf das Feld number2 nicht 0 enthalten, wenn der Operand / ist (Division durch Null). Dar Operand darf nur +, -, *, / or P sein. Nach der Befüllung von result,werden Fehlermeldung zu reported hinzugefügt, wenn Fehler vorhanden sind.
  • save
Mit der Methode save werden die Einträge im Transaktionspuffer in der Datenbanktabelle gesichert.

Quelltext

Ausführen

Beschreibung

Zugriff mit ABAP über EML

Der obige Quellcode verwendet EML, um auf das RAP Business-Objekt aus einem ABAP-Programm zuzugreifen:

Das gesamte Szenario wird so implementiert, dass die Datenbanktabelle nur eine Zeile, bestehend aus der Benutzereingabe (Zahlen und Operand), dem Gleichheitszeichen und dem Berechnungsergebnis, enthält. Der Fokus liegt auf der Implementierung der RAP-Methoden und deren Interaktion in einem vereinfachten, nicht verwalteten RAP-Kontext.

Das Programm verwendet die Klasse CL_DEMO_INPUT für die Benutzereingabe. Diese Benutzereingabe wird aufgenommen, um eine Instanz mit einer MODIFY ENTITY-Anweisung anzulegen.

Das Schlüsselwort CREATE löst als Teil der MODIFY ENTITY-Anweisung den Aufruf der Methode create im Behavior-Pool aus. Wie in Abschnitt Verhaltensimplementierung beschrieben, kümmert sich die Methode create um die Berechnung, wenn diese erlaubt ist (siehe Methode get_instance_features, die durch die in Methode create enthaltene die Anweisung GET PERMISSIONS ausgelöst wird). Ist die Berechnung nicht erlaubt, zum Beispiel, wenn die Zeichen als Eingabe bereitsgestellt werden oder eine Division durch Null ausgeführt wird, werden Fehlermeldungen in den Parameter reported eingefügt. Wenn Fehlermeldungen vorhanden sind und die Berechnung fehlschlägt, werden die Fehlermeldungen im Ausgabebild angezeigt.

Die Anweisung COMMIT ENTITIES löst die Sicherung der Einträge in der Datenbanktabelle aus. Wenn die Berechnung erfolgreich ausgeführt werden kann, wird das Ergebnis der Berechnung einschließlich der Benutzereingabe und dem Gleichheitszeichen im Ausgabebild angezeigt.






ABAP Short Reference   BAL_S_LOG - Application Log: Log header data  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 6925 Date: 20240523 Time: 184250     sap01-206 ( 133 ms )