SlideShare a Scribd company logo
1 of 40
Blackvard Management Consulting
Understanding Persistence
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
Blackvard Management Consultants
www.blackvard.comCopyright © Blackvard Management Consulting – All rights reserved
Erin Lett is the Operations Manager for Blackvard
Management Consulting. She holds a Bachelor’s Degree
from Stetson University in Communications and has been
working in the SAP, eLearning, and Software Development
industries for the past 6 years.
For further information please visit:
www.blackvard.com
elett@blackvard.com
Copyright © Blackvard Management Consulting- All rights reserved www.blackvard.com
Your Host
Erin Lett
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
Agenda
What Will Be Covered:
1. SAP Persistence Overview
1. Concepts Used In Persistence
2. Transient vs. Persistent Data
3. Data In Object-oriented Programming
4. Persistence Service/Persistent Classes/Managed Objects
2. Components of Persistence
1. Get A Flight Object
2. Create A Flight Object
3. About Us
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
What is SAP Persistence Service?
 SAP Persistence Service forms a bridge between relational
databases & ABAP Objects.
 SAP Persistence Service allows ABAP Programmers to work
w/ relational database data in an object-oriented way.
Databases
Persistent Object Services
Create & Initialize Objects Save & Delete Data In The Object
ABAP Programs
Persistence Service as a Logical Layer
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 SAP Persistence Service isn’t exactly like ORM.
 New database tables, database
views or object model structures
are not automatically created by
the system.
What is SAP Persistence Service?
 SAP Persistence Service is
more an application
architecture layer.
 Enables users to work w/ relational
database as ABAP Objects.
 Object-Relational Mapping (ORM) tools allow for classes w/ attributes.
 Used in other programming languages such as Java or C#.
 Framework automatically generates corresponding database tables in databases &
represents the data like objects.
JAVA code to deliver a complex query, written in SQL
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 The nature & longevity of data found in ABAP programs gives
that data a unique name.
Transient Data
 Transient Data – The data lives only as long as its context.
 That is, as long as its associated procedure (for local procedure data).
 Or as long as its object (for attributes of classes).
 Or its program (for global program data).
 Once the data is out of the context, the value no longer exists.
 Example:
 If you click SAVE -> the document will be persisted to a folder on your hard drive.
 Click Don’t Save or Cancel -> the transient data (e.g. in memory) is gone, but currently you can edit the file.
 ABAP programs work w/ local program data in the program’s internal session.
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
Persistent Data
 Persistent Data - If the data can be preserved beyond the context
or runtime of the program.
 Persistent data generally occurs as the content of database tables.
 Can also occur as content of files on applications & presentation servers.
 Hard drive or flash memory (c.p. the example from previous slide – if you store the
file on a hard drive or in a database, the transient data will be persisted. Else the
transient data is gone).
“Save”
“Don’t Save” or
“Cancel”
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
Transient & Persistent Data
 The system loads persistent data into transient data objects belonging
to the ABAP program, while the program is being executed.
 Once processed, the system stores the data in persistent form again.
 Once in the ABAP program (transiently)/Once in the appropriate storage medium (persistently)
 A typical example would be
obtaining data from a database
table using SELECT statement
in a transient work area,
modifying the work area &
updating the database table
(UPDATE).
 The contents of transient &
persistent data are different in the
interim of this process. JAVA code to deliver a complex query, written in SQL
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 In Object-oriented Applications, data occurs only as object attributes.
Data In Object-oriented Programming
 Objects are a collection of functions (in methods) & data (in attributes).
 Object descriptions occur persistently as a piece of source code.
 Attributes exist only as long as the object.
 ABAP Objects are transient by nature & alive from the time of creation,
via “CREATE OBJECT”, until deleted by the “Garbage Collector”.
 To work w/ persistent data in objects, access must be programmed to
where those objects are stored w/in the class methods.
?
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 In Object-oriented Business Application programming, it is pointless
to transfer the classical separation of data & functions to the methods.
Data In Object-oriented Programming
 Instead, save the data & functions persistently w/in the object.
 A program can then leave an object in a specific state.
 Second program could continue working w/ the object in that state.
 Classes of objects are persistent already, but saving the attributes of an object
persistently & then referencing them to the appropriate class is possible.
 Example:
Saved original file on the hard drive Open & unsaved document with changes
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
Persistence Service For Persistent Objects
 Persistent Object Services (POS) are
considered to be logical software layers
between the database & the ABAP program.
 Save object attributes w/ a unique identity & then
reload them when needed.
 Like data objects in ABAP programs, ABAP Objects are always transient.
 No persistent objects exist in ABAP objects.
 The Object Services Persistence Service allows application
developers to work w/ persistent objects.
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 Persistent Service ensures an object is initialized in a specific state &
saves that state when needed.
 Similar to that of transient & persistent data.
Concepts Used In Persistence
 Object state, when instantiated, reflects the state of the current database data.
 Object state changes in the ABAP Program are not immediately written to the database.
 This is done after the appropriate request has been made (COMMIT WORK).
 Persistent object exists as original & copy in 1+ ABAP programs.
 If several programs use the Persistence Service to instantiate objects of the same class before
one of the programs has changed the state, all objects will have the same initial state.
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 Object Classes must be created as Persistent Classes in the Class Builder.
Persistent Classes
 The term Persistent Class means that the objects of that class & their
state are managed by the Persistence Service.
 The objects of these classes are instantiated in the ABAP program
w/ a method of the service, ensuring the initialization is correct.
 When a Persistent Class is created, it generates a Class Actor or Class Agent.
 Manages the objects of Persistent Classes.
 Persistent Classes can contain key attributes & identity.
 Persistence Service ensures that persistent objects contain unique content
(e.g. Primary Keys of database tables or unique object IDs like GUID).
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 Persistent Class Objects are managed by the Persistence Service.
 These objects are instantiated w/ a method of class actor.
 Managed objects are either persistent or transient.
Managed Objects
 Persistent Objects must be managed by the Persistence Service.
 Connects the object w/ the database.
 Transient Objects of Persistent Classes are also managed by the service.
 Example: Persistence Service ensures an object is unique w/in a program.
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 SAP Persistence Service is made up of global classes & interfaces.
Components Of Persistence
 The upper four interfaces consist of Persistent Classes.
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 The lower three classes are specific & generated automatically
for each Persistent Class created.
Components Of Persistence
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 ZCL_MY_FLIGHT Persistent Class must implement IF_OS_STATE interface.
 Ensures access to all persistent objects.
 This class has numerous GET/SET methods & attributes,
as many fields exist in its connected persistent structure.
 Generated by the Class Builder.
.
Components Of Persistence
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 Two Agent Classes are generated by Class Builder for each Persistent Class.
 Those two agent classes are Abstract & Final.
 ZCA_MY_FLIGHT is one of the agent classes & it’s responsible for managing
the ZCL_MY_FLIGHT persistent object and serves as a data repository.
Components Of Persistence
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 ZCB_MY_FLIGHT, the Super Class of ZCA_MY_FLIGHT, is also
generated by the Class Builder & implements the following interfaces:
 IF_OS_FACTORY/ IF_OS_CA_PERSISTENCY/ IF_OS_CA_INSTANCE.
Components Of Persistence
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 Begin by using the SE24 transaction, in Class Builder, to create
a new Class with the name ZCL_MY_FLIGHT.
 Since it will be in the Persistent Class of the database table called SFLIGHT.
 Fill in all required fields and then select the Class Type
Persistent Class & click Save.
 Select where you wish to store the new class & click Save again.
Create Persistent Class
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 After saving the new class, verify your Persistent Class,
by clicking the Interfaces tab.
 It implements the interface IF_OS_STATE.
Interfaces
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 Under the Friends tab, it also displays as a friend of the abstract
agent class, ZCB_MY_FLIGHT.
Friends
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 Now connect the Persistent Class to an ABAP Dictionary object.
 Set the Persistence Mapping by clicking the Persistence button.
Set Persistence Representation
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 Now assign a Table/View/Structure to the Class.
 Select the database table that consists of flights, called SFLIGHT.
 Click the Continue icon to confirm.
Assign Table
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 After assigning the table, Class Builder loads metadata into the lower
Table/Fields section.
 Double-click on any one of the fields to load it into the Maintain Area.
Maintain Properties of Attributes
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 Using the Maintain Area, you can now modify the ID, Description,
Field Visibility, etc.
 After completing the maintenance, simply press Enter to assign it to
the Persistent Class as an attribute.
Add Attribute To Persistent Class
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 After pressing Enter, the field appears under the Class as an Attribute &
loads the next field into the Maintain Area accordingly.
 Select each column/field you want to add to your class.
 Double-click on the name, then click the black arrow icon to add it to the class.
Add Attribute To Persistent Class
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 If all fields are not required, the unused columns can remain in the
lower area and be added later as needed.
 After applying the workflow to each field, the following appears:
Add Attribute To Persistent Class
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 After Saving the Persistence
Mapping, return to the Class
Definition using SE80 or SE24.
 Verify the Attributes & Methods.
New Attributes
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 Along with the new attributes, GET & SET methods are also generated.
 Class Builder will activate the Actor Classes, along with the Persistent Class.
 Save your work! The Persistent Class is complete & can now be used.
New GET/SET Methods
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 In the core of the TRY-CATCH block, reference the Agent Class & Save it in
the reference variable lo_flight_agent by querying the class attribute of the
zca_my_flight called agent.
Get A Flight Object
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 Ask the agent to retrieve a persistent from
the database using the “BA” business key.
 Save the receiving reference
of the flight instance in the
reference variable, in the
local object called “lo_flight”.
 You now have an initialized
instance of the zcl_my_flight
& can call its GET- and
SET methods, e.g. such as
GET_CARRNAME().
Get A Flight Object
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 This process is very effective & reusable between various clients such as:
 ABAP classes,
 ABAP programs,
 Function Modules,
 etc.
 Now verify the results:
Get A Flight Object
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 Create a flight object using the Persistent Class by referencing the Agent
Class & Saving it in the variable lo_flight_agent.
 Ask the agent to create a
persistent in the database
with the key parameters of:
 i_CARRID,
 i_CONNID and
 i_FLDATE
(the key values of the
database table SFLIGHT)
 Set a new price (set_price)
 Call the COMMIT statement.
 Save your work & Activate.
 Run the report.
Create A Flight Object
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 Here you can see the results of the coding in the first line:
 Our newly created entry appears in database table SFLIGHT (check by using transaction SE11 or SE16n).
Create A Flight Object
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 Using Persistent Classes, you can take steps towards more transparent
& well separated classes based on responsibilities such as:
 Data Layers/Data Access Layers/Business Layers/UI Layers & Application Layers
Summary
 Classes are reusable & you only need to implement them once in order
to reuse them as required.
 Although there are missing features, this initiative proves that the ABAP
language is evolving & moving forward.
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
Have Additional Questions?
Want To get trained?
Please Set Up A Consultation.
Email: info@blackvard.com
Require A Consultation?
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
 Technical project lead and ABAP architect responsible for quality in technical scope and budget in a global
roll-out of SAP Logistics applications (SAP LE / LO)
 Conducting multiple SAP ABAP and SAP HANA® trainings for various US companies
 Implementation of a standard SAP software solution for Spend Management within SAP AG & ARIBA (annual
spend volume 3 Bill. EUR) which can be used in all SAP systems
 Improved claims management using SAP FS-CM which is generating annual savings of 15 Mio € for a huge
German public healthcare organization
 Implemented a global solution for procurement processes at BMW AG using SAP SRM / B2B
 Blueprinting and implementation of SAP software for banking credit cancelations for VOLKSWAGEN
Key Achievements of Blackvard Management Consulting in Previous Projects
What We’ve Accomplished
Blackvard Management Consultants
www.blackvard.comCopyright © Blackvard Management Consulting – All rights reserved
Short Bio:
Lukas M. Dietzsch is managing director at Blackvard
Management Consulting, LLC. He is holding a Master’s
degree in Information Technology and is an experienced IT
solution architect and project lead.
His strong background in adapting to requirements and
standards in different industries and on various platforms are
valuable assets for Blackvard customers.
He is repeatedly commended by customers for driving
efficient solutions for complex problems in globally
distributed team environments and meeting tough deadlines.
For further information please visit:
www.blackvard.com
Lukas M. Dietzsch
lukas@blackvard.com
Copyright © Blackvard Management Consulting- All rights reserved www.blackvard.com
Managing Director
Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
An overview of current and previous customers:
Customers That Recommend Blackvard

More Related Content

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 

Featured

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Understanding Persistence

  • 1. Blackvard Management Consulting Understanding Persistence Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com
  • 2. Blackvard Management Consultants www.blackvard.comCopyright © Blackvard Management Consulting – All rights reserved Erin Lett is the Operations Manager for Blackvard Management Consulting. She holds a Bachelor’s Degree from Stetson University in Communications and has been working in the SAP, eLearning, and Software Development industries for the past 6 years. For further information please visit: www.blackvard.com elett@blackvard.com Copyright © Blackvard Management Consulting- All rights reserved www.blackvard.com Your Host Erin Lett
  • 3. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com Agenda What Will Be Covered: 1. SAP Persistence Overview 1. Concepts Used In Persistence 2. Transient vs. Persistent Data 3. Data In Object-oriented Programming 4. Persistence Service/Persistent Classes/Managed Objects 2. Components of Persistence 1. Get A Flight Object 2. Create A Flight Object 3. About Us
  • 4. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com What is SAP Persistence Service?  SAP Persistence Service forms a bridge between relational databases & ABAP Objects.  SAP Persistence Service allows ABAP Programmers to work w/ relational database data in an object-oriented way. Databases Persistent Object Services Create & Initialize Objects Save & Delete Data In The Object ABAP Programs Persistence Service as a Logical Layer
  • 5. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  SAP Persistence Service isn’t exactly like ORM.  New database tables, database views or object model structures are not automatically created by the system. What is SAP Persistence Service?  SAP Persistence Service is more an application architecture layer.  Enables users to work w/ relational database as ABAP Objects.  Object-Relational Mapping (ORM) tools allow for classes w/ attributes.  Used in other programming languages such as Java or C#.  Framework automatically generates corresponding database tables in databases & represents the data like objects. JAVA code to deliver a complex query, written in SQL
  • 6. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  The nature & longevity of data found in ABAP programs gives that data a unique name. Transient Data  Transient Data – The data lives only as long as its context.  That is, as long as its associated procedure (for local procedure data).  Or as long as its object (for attributes of classes).  Or its program (for global program data).  Once the data is out of the context, the value no longer exists.  Example:  If you click SAVE -> the document will be persisted to a folder on your hard drive.  Click Don’t Save or Cancel -> the transient data (e.g. in memory) is gone, but currently you can edit the file.  ABAP programs work w/ local program data in the program’s internal session.
  • 7. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com Persistent Data  Persistent Data - If the data can be preserved beyond the context or runtime of the program.  Persistent data generally occurs as the content of database tables.  Can also occur as content of files on applications & presentation servers.  Hard drive or flash memory (c.p. the example from previous slide – if you store the file on a hard drive or in a database, the transient data will be persisted. Else the transient data is gone). “Save” “Don’t Save” or “Cancel”
  • 8. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com Transient & Persistent Data  The system loads persistent data into transient data objects belonging to the ABAP program, while the program is being executed.  Once processed, the system stores the data in persistent form again.  Once in the ABAP program (transiently)/Once in the appropriate storage medium (persistently)  A typical example would be obtaining data from a database table using SELECT statement in a transient work area, modifying the work area & updating the database table (UPDATE).  The contents of transient & persistent data are different in the interim of this process. JAVA code to deliver a complex query, written in SQL
  • 9. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  In Object-oriented Applications, data occurs only as object attributes. Data In Object-oriented Programming  Objects are a collection of functions (in methods) & data (in attributes).  Object descriptions occur persistently as a piece of source code.  Attributes exist only as long as the object.  ABAP Objects are transient by nature & alive from the time of creation, via “CREATE OBJECT”, until deleted by the “Garbage Collector”.  To work w/ persistent data in objects, access must be programmed to where those objects are stored w/in the class methods. ?
  • 10. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  In Object-oriented Business Application programming, it is pointless to transfer the classical separation of data & functions to the methods. Data In Object-oriented Programming  Instead, save the data & functions persistently w/in the object.  A program can then leave an object in a specific state.  Second program could continue working w/ the object in that state.  Classes of objects are persistent already, but saving the attributes of an object persistently & then referencing them to the appropriate class is possible.  Example: Saved original file on the hard drive Open & unsaved document with changes
  • 11. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com Persistence Service For Persistent Objects  Persistent Object Services (POS) are considered to be logical software layers between the database & the ABAP program.  Save object attributes w/ a unique identity & then reload them when needed.  Like data objects in ABAP programs, ABAP Objects are always transient.  No persistent objects exist in ABAP objects.  The Object Services Persistence Service allows application developers to work w/ persistent objects.
  • 12. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  Persistent Service ensures an object is initialized in a specific state & saves that state when needed.  Similar to that of transient & persistent data. Concepts Used In Persistence  Object state, when instantiated, reflects the state of the current database data.  Object state changes in the ABAP Program are not immediately written to the database.  This is done after the appropriate request has been made (COMMIT WORK).  Persistent object exists as original & copy in 1+ ABAP programs.  If several programs use the Persistence Service to instantiate objects of the same class before one of the programs has changed the state, all objects will have the same initial state.
  • 13. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  Object Classes must be created as Persistent Classes in the Class Builder. Persistent Classes  The term Persistent Class means that the objects of that class & their state are managed by the Persistence Service.  The objects of these classes are instantiated in the ABAP program w/ a method of the service, ensuring the initialization is correct.  When a Persistent Class is created, it generates a Class Actor or Class Agent.  Manages the objects of Persistent Classes.  Persistent Classes can contain key attributes & identity.  Persistence Service ensures that persistent objects contain unique content (e.g. Primary Keys of database tables or unique object IDs like GUID).
  • 14. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  Persistent Class Objects are managed by the Persistence Service.  These objects are instantiated w/ a method of class actor.  Managed objects are either persistent or transient. Managed Objects  Persistent Objects must be managed by the Persistence Service.  Connects the object w/ the database.  Transient Objects of Persistent Classes are also managed by the service.  Example: Persistence Service ensures an object is unique w/in a program.
  • 15. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  SAP Persistence Service is made up of global classes & interfaces. Components Of Persistence  The upper four interfaces consist of Persistent Classes.
  • 16. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  The lower three classes are specific & generated automatically for each Persistent Class created. Components Of Persistence
  • 17. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  ZCL_MY_FLIGHT Persistent Class must implement IF_OS_STATE interface.  Ensures access to all persistent objects.  This class has numerous GET/SET methods & attributes, as many fields exist in its connected persistent structure.  Generated by the Class Builder. . Components Of Persistence
  • 18. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  Two Agent Classes are generated by Class Builder for each Persistent Class.  Those two agent classes are Abstract & Final.  ZCA_MY_FLIGHT is one of the agent classes & it’s responsible for managing the ZCL_MY_FLIGHT persistent object and serves as a data repository. Components Of Persistence
  • 19. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  ZCB_MY_FLIGHT, the Super Class of ZCA_MY_FLIGHT, is also generated by the Class Builder & implements the following interfaces:  IF_OS_FACTORY/ IF_OS_CA_PERSISTENCY/ IF_OS_CA_INSTANCE. Components Of Persistence
  • 20. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  Begin by using the SE24 transaction, in Class Builder, to create a new Class with the name ZCL_MY_FLIGHT.  Since it will be in the Persistent Class of the database table called SFLIGHT.  Fill in all required fields and then select the Class Type Persistent Class & click Save.  Select where you wish to store the new class & click Save again. Create Persistent Class
  • 21. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  After saving the new class, verify your Persistent Class, by clicking the Interfaces tab.  It implements the interface IF_OS_STATE. Interfaces
  • 22. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  Under the Friends tab, it also displays as a friend of the abstract agent class, ZCB_MY_FLIGHT. Friends
  • 23. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  Now connect the Persistent Class to an ABAP Dictionary object.  Set the Persistence Mapping by clicking the Persistence button. Set Persistence Representation
  • 24. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  Now assign a Table/View/Structure to the Class.  Select the database table that consists of flights, called SFLIGHT.  Click the Continue icon to confirm. Assign Table
  • 25. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  After assigning the table, Class Builder loads metadata into the lower Table/Fields section.  Double-click on any one of the fields to load it into the Maintain Area. Maintain Properties of Attributes
  • 26. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  Using the Maintain Area, you can now modify the ID, Description, Field Visibility, etc.  After completing the maintenance, simply press Enter to assign it to the Persistent Class as an attribute. Add Attribute To Persistent Class
  • 27. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  After pressing Enter, the field appears under the Class as an Attribute & loads the next field into the Maintain Area accordingly.  Select each column/field you want to add to your class.  Double-click on the name, then click the black arrow icon to add it to the class. Add Attribute To Persistent Class
  • 28. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  If all fields are not required, the unused columns can remain in the lower area and be added later as needed.  After applying the workflow to each field, the following appears: Add Attribute To Persistent Class
  • 29. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  After Saving the Persistence Mapping, return to the Class Definition using SE80 or SE24.  Verify the Attributes & Methods. New Attributes
  • 30. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  Along with the new attributes, GET & SET methods are also generated.  Class Builder will activate the Actor Classes, along with the Persistent Class.  Save your work! The Persistent Class is complete & can now be used. New GET/SET Methods
  • 31. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  In the core of the TRY-CATCH block, reference the Agent Class & Save it in the reference variable lo_flight_agent by querying the class attribute of the zca_my_flight called agent. Get A Flight Object
  • 32. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  Ask the agent to retrieve a persistent from the database using the “BA” business key.  Save the receiving reference of the flight instance in the reference variable, in the local object called “lo_flight”.  You now have an initialized instance of the zcl_my_flight & can call its GET- and SET methods, e.g. such as GET_CARRNAME(). Get A Flight Object
  • 33. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  This process is very effective & reusable between various clients such as:  ABAP classes,  ABAP programs,  Function Modules,  etc.  Now verify the results: Get A Flight Object
  • 34. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  Create a flight object using the Persistent Class by referencing the Agent Class & Saving it in the variable lo_flight_agent.  Ask the agent to create a persistent in the database with the key parameters of:  i_CARRID,  i_CONNID and  i_FLDATE (the key values of the database table SFLIGHT)  Set a new price (set_price)  Call the COMMIT statement.  Save your work & Activate.  Run the report. Create A Flight Object
  • 35. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  Here you can see the results of the coding in the first line:  Our newly created entry appears in database table SFLIGHT (check by using transaction SE11 or SE16n). Create A Flight Object
  • 36. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  Using Persistent Classes, you can take steps towards more transparent & well separated classes based on responsibilities such as:  Data Layers/Data Access Layers/Business Layers/UI Layers & Application Layers Summary  Classes are reusable & you only need to implement them once in order to reuse them as required.  Although there are missing features, this initiative proves that the ABAP language is evolving & moving forward.
  • 37. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com Have Additional Questions? Want To get trained? Please Set Up A Consultation. Email: info@blackvard.com Require A Consultation?
  • 38. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com  Technical project lead and ABAP architect responsible for quality in technical scope and budget in a global roll-out of SAP Logistics applications (SAP LE / LO)  Conducting multiple SAP ABAP and SAP HANA® trainings for various US companies  Implementation of a standard SAP software solution for Spend Management within SAP AG & ARIBA (annual spend volume 3 Bill. EUR) which can be used in all SAP systems  Improved claims management using SAP FS-CM which is generating annual savings of 15 Mio € for a huge German public healthcare organization  Implemented a global solution for procurement processes at BMW AG using SAP SRM / B2B  Blueprinting and implementation of SAP software for banking credit cancelations for VOLKSWAGEN Key Achievements of Blackvard Management Consulting in Previous Projects What We’ve Accomplished
  • 39. Blackvard Management Consultants www.blackvard.comCopyright © Blackvard Management Consulting – All rights reserved Short Bio: Lukas M. Dietzsch is managing director at Blackvard Management Consulting, LLC. He is holding a Master’s degree in Information Technology and is an experienced IT solution architect and project lead. His strong background in adapting to requirements and standards in different industries and on various platforms are valuable assets for Blackvard customers. He is repeatedly commended by customers for driving efficient solutions for complex problems in globally distributed team environments and meeting tough deadlines. For further information please visit: www.blackvard.com Lukas M. Dietzsch lukas@blackvard.com Copyright © Blackvard Management Consulting- All rights reserved www.blackvard.com Managing Director
  • 40. Copyright © Blackvard Management Consulting – All rights reserved www.blackvard.com An overview of current and previous customers: Customers That Recommend Blackvard