29
ABAP RAP ABAP RESTful Application Programming Model (RAP) – 2. Teil Webinar, 25.6.2021, 10:00 Uhr

ABAP RESTful Application Programming Model (RAP) 2. Teil

  • Upload
    others

  • View
    16

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ABAP RESTful Application Programming Model (RAP) 2. Teil

ABAP RAP

ABAP RESTful Application Programming Model (RAP) – 2. TeilWebinar, 25.6.2021, 10:00 Uhr

Page 2: ABAP RESTful Application Programming Model (RAP) 2. Teil

ABAP RAPSören

Sören SchlegelManaging Consultant at j&s-soft gmbh

eMail: [email protected]: @SoSchlegel87

Themenschwerpunkte

• Konzeption & Management von Entwicklungsprojekten• SAP Architektur moderner Anwendungen• SAP Change Management and S/4HANA• SAP CDS, oData und Cloud

Page 3: ABAP RESTful Application Programming Model (RAP) 2. Teil

ABAP RAPFöß

Johann FößleitnerSenior Consultant at Cadaxo

eMail: [email protected]: @foessleitnerj

Beratungsschwerpunkte

• Konzeption & Management von Entwicklungsprojekten• Qualitymanagement & Performanceoptimierung• Clean Code• S/4HANA Custom Development

• SAP Champion

Page 4: ABAP RESTful Application Programming Model (RAP) 2. Teil

ABAP RAPDomi

Domi BiglSenior Consultant at Cadaxo

eMail: [email protected]: @DomiBiglSAP

Beratungsschwerpunkte

• Konzeption & Management von Entwicklungsprojekten• Qualitymanagement & Performanceoptimierung• ABAP Units• SAP Fiori, SAP UI5

Page 5: ABAP RESTful Application Programming Model (RAP) 2. Teil

ABAP RAP

RAP Details in der Implementierung◦ Multiselection Domi -> Verschoben aufs nächste Mal

◦ Projection – Tipps & Tricks Sören

◦ Actions, Feature Control, Parameter Backend Sören

◦ Save Sequence Föß

◦ Determinations & Validations Föß

◦ Commit Work in Standard BAPIs Föß

Page 6: ABAP RESTful Application Programming Model (RAP) 2. Teil

ABAP RAP

Ausblick Teil 3◦ DRAFT

◦ Custom Entity

◦ Numbering

◦ Authorization Control

◦ Etag & Lock Implementation

◦ STXH/STXL Langtexte

◦ RAP Generator

◦ …

Page 7: ABAP RESTful Application Programming Model (RAP) 2. Teil

ABAP RAP

Projection Tipps/Tricks

Page 8: ABAP RESTful Application Programming Model (RAP) 2. Teil

ABAP RAP

Action, Feature Control, Parameter

Page 9: ABAP RESTful Application Programming Model (RAP) 2. Teil

ABAP RAP

Save Sequence

Page 10: ABAP RESTful Application Programming Model (RAP) 2. Teil

ABAP RAPSave Sequence

MethodFINALIZE

MethodsFOR DETERMINATION

MethodsFOR VALIDATION

MethodCHECK_BEFORE_SAVE

MethodADJUST_NUMBERS

MethodSAVE

MethodCLEANUP

MethodCLEANUP

MethodCLEANUP_FINALIZE

MethodCLEANUP_FINALIZE

MethodSAVE_MODIFIED

FINALIZE

CHECK_BEFORE_SAVE

SAVE

Managed Unmanaged

COMMIT WORK

Page 11: ABAP RESTful Application Programming Model (RAP) 2. Teil

ABAP RAPSave Sequence

MethodFINALIZE

MethodsFOR DETERMINATION

FINALIZE

Managed Unmanaged

FINALIZE

Finalisieren der Daten. Letzte Möglichkeit den Transaktionsbuffer mit EML

zu bearbeiten.

Page 12: ABAP RESTful Application Programming Model (RAP) 2. Teil

ABAP RAPSave Sequence

MethodFINALIZE

MethodsFOR DETERMINATION

MethodsFOR VALIDATION

MethodCHECK_BEFORE_SAVE

FINALIZE

CHECK_BEFORE_SAVE

Managed Unmanaged

CHECK_BEFORE_SAVE

Letzter Zeitpunkt vor „point-of-no-return“ um Prüfungen vorzunehmen und ein SAVE zu verhindern.

Nach diesem Zeitpunkt (wenn positiv) muss ein SAVE garantiert werden.

Page 13: ABAP RESTful Application Programming Model (RAP) 2. Teil

ABAP RAPSave Sequence

MethodFINALIZE

MethodsFOR DETERMINATION

MethodsFOR VALIDATION

MethodCHECK_BEFORE_SAVE

MethodADJUST_NUMBERS

FINALIZE

CHECK_BEFORE_SAVE

Managed Unmanaged

ADJUST_NUMBERS

Bei late numberingScenarien wird an dieser Stelle die Nummer vergeben.

Derzeit ist dies nur für unmanaged scenariosmöglich.

Page 14: ABAP RESTful Application Programming Model (RAP) 2. Teil

ABAP RAPSave Sequence

MethodFINALIZE

MethodsFOR DETERMINATION

MethodsFOR VALIDATION

MethodCHECK_BEFORE_SAVE

MethodADJUST_NUMBERS

MethodSAVE

MethodSAVE_MODIFIED

FINALIZE

CHECK_BEFORE_SAVE

SAVE

Managed Unmanaged

SAVE

Speichert die Daten aus dem Buffer auf die Datenbank.

Page 15: ABAP RESTful Application Programming Model (RAP) 2. Teil

ABAP RAPSave Sequence

MethodFINALIZE

MethodsFOR DETERMINATION

MethodsFOR VALIDATION

MethodCHECK_BEFORE_SAVE

MethodADJUST_NUMBERS

MethodSAVE

MethodSAVE_MODIFIED

FINALIZE

CHECK_BEFORE_SAVE

SAVE

Managed Unmanaged

COMMIT WORK

COMMIT WORK

Das Commit Work wird durch das Framework ausgelöst.

Page 16: ABAP RESTful Application Programming Model (RAP) 2. Teil

ABAP RAPSave Sequence

MethodFINALIZE

MethodsFOR DETERMINATION

MethodsFOR VALIDATION

MethodCHECK_BEFORE_SAVE

MethodADJUST_NUMBERS

MethodSAVE

MethodCLEANUP

MethodCLEANUP

MethodCLEANUP_FINALIZE

MethodCLEANUP_FINALIZE

MethodSAVE_MODIFIED

FINALIZE

CHECK_BEFORE_SAVE

SAVE

Managed Unmanaged

COMMIT WORK

CLEANUP

Am Ende eines erfolgreichen Save Prozesses wird CLEANUP aufgerufen.

Im Fall von Fehlern in FINALIZE oder CHECK_BEFORE_SAVE wird CLEANUP_FINALIZE aufgerufen

Page 17: ABAP RESTful Application Programming Model (RAP) 2. Teil

ABAP RAPSave Sequence

MethodFINALIZE

MethodsFOR DETERMINATION

MethodsFOR VALIDATION

MethodCHECK_BEFORE_SAVE

MethodADJUST_NUMBERS

MethodSAVE

MethodCLEANUP

MethodCLEANUP

MethodCLEANUP_FINALIZE

MethodCLEANUP_FINALIZE

MethodSAVE_MODIFIED

FINALIZE

CHECK_BEFORE_SAVE

SAVE

Managed Unmanaged

COMMIT WORK

Page 18: ABAP RESTful Application Programming Model (RAP) 2. Teil

ABAP RAP

Determinations

Page 19: ABAP RESTful Application Programming Model (RAP) 2. Teil

ABAP RAPDetermination - Trigger

Trigger: Time & Conditions◦ Trigger Time

on modify◦ Wird verwendet, um bereits vor einem SAVE zusätzliche Berechnungen vorzunehmen

on save◦ Wird verwendet, um nach einem SAVE zusätzliche Berechnungen durchzuführen

◦ Trigger Conditions

Operation ◦ create, update, delete

Fields

determination <name> on modify/save { create; update; delete; field <field1>, <field2>; }

Page 20: ABAP RESTful Application Programming Model (RAP) 2. Teil

ABAP RAPDeterminations - Einschränkungen

Einschränkungen◦ In unmanaged Objekten können Determinations nur für DRAFT Instanzen

eingesetzt werden

◦ Die Ausführungsreihenfolge mehrerer Determinations ist nicht festgelegt

◦ Somit muss eine Determination unabhängig von anderen Determinationsdurchführbar sein

◦ Trigger Bedingungen können nur auf Felder der aktuellen Entity definiert werden

Es können aber natürlich Felder anderer Entitäten geändert werden

Page 21: ABAP RESTful Application Programming Model (RAP) 2. Teil

ABAP RAPDeterminations – Weitere Hinweise

Determinations – Weitere Hinweise◦ Vorsicht bei der Verwendung von Trigger Bedingungen auf Felder die selbst

durch Determinations berechnet werden

Gefahr von Endlosschleifen

◦ Weiterführende Infos: https://blogs.sap.com/2021/01/05/determinations-in-abap-restful-programming-model/

https://help.sap.com/viewer/923180ddb98240829d935862025004d6/Cloud/en-US/6edb0438d3e14d18b3c403c406fbe209.html

Page 22: ABAP RESTful Application Programming Model (RAP) 2. Teil

ABAP RAP

Validations

Page 23: ABAP RESTful Application Programming Model (RAP) 2. Teil

ABAP RAPValidations - Trigger

Trigger: Time & Conditions◦ Trigger Time

on save◦ Bei Validations ist als Trigger Time nur on save erlaubt

◦ Prüfung erfolgt in checkBeforeSave (siehe save sequence)

◦ Kann auch durch eine Action getriggert werden

◦ Trigger Conditions

Operation ◦ create, update, delete

Fields

validation <name> on save { create; update; delete; field <field1>, <field2>; }

Page 24: ABAP RESTful Application Programming Model (RAP) 2. Teil

ABAP RAPValidations – Einschränkungen

Einschränkungen◦ In unmanaged Objekten können Validations nur für DRAFT Instanzen eingesetzt

werden

◦ Die Ausführungsreihenfolge mehrerer Validations ist nicht festgelegt

◦ Es dürfen keine EML Modify Statements in Validations verwendet werden

Page 25: ABAP RESTful Application Programming Model (RAP) 2. Teil

ABAP RAPValidations – Weitere Hinweise

Validations – Weitere Hinweise◦ Validations ..

◦ Weiterführende Infos:

https://help.sap.com/viewer/923180ddb98240829d935862025004d6/Cloud/en-US/171e26c36cca42699976887b4c8a83bf.html

Page 26: ABAP RESTful Application Programming Model (RAP) 2. Teil

ABAP RAP

Commit Work in Standard BAPIs

Page 27: ABAP RESTful Application Programming Model (RAP) 2. Teil

ABAP RAPValidations – Einschränkungen

COMMIT WORK ist nicht erlaubt◦ Das Framework triggert COMMIT WORK

◦ Einige FUBAs/BAPIs haben „Steuerparameter“

◦ Alternative:

RFC fähiger Funktionsbaustein mit DESTINATION NONE

Page 28: ABAP RESTful Application Programming Model (RAP) 2. Teil

ABAP RAPUnsere vergangenen Webinare

http://www.cadaxo.com/blog/

Page 29: ABAP RESTful Application Programming Model (RAP) 2. Teil

ABAP RAPIf you want to stay in touch …

https://twitter.com/domibiglsap

https://www.linkedin.com/in/dominik-bigl-9b98b68b

https://www.xing.com/profile/dominik_bigl

[email protected]

See you again!Thank you for participating!

https://twitter.com/foessleitnerj

https://www.linkedin.com/in/johann-fößleitner-a9851b2a

https://www.xing.com/profile/johann_foessleitner

[email protected]