SlideShare a Scribd company logo
1 of 22
ABAP Package Concept
Use Cases & Best Practices
 Tobias Trapp, AOK Systems GmbH
 Enterprise Architect, SAP Mentor
ABAP Developers and Reuse

 „In SAP Business Suite there‘s so much useful stuff.“

 „I can save 40 seconds of my life time by using data elements
   from SAP standard: CHAR04, CHAR130, BEZEI30…“

 „And for something more complicated I‘m looking for an
   function module.“
Is this how we should do reuse?

 Do you use a certain data element (BEZEI30) because it is
  part of SAP data model you want use?

 If not: don‘t you want to be able to define your own short
  and help texts?

 How do you know that this certain function module is
  appropriate? How do you know that it belongs to a
  public API?
An Architect‘s Answer

 Think in terms of applications and APIs - not in terms of data
  elements and function modules.
 If you work with a certain SAP data model use the
  corresponding data elements and domains. In your own
  applications don‘t be afraid to create your own DDIC elements
  and local data types.
 Use DDIC elements, classes… that are exposed in package
  interfaces. Within SAP Business Suite this is a development
  guideline. So you can be sure that you use appropriate
  functions that are stable according to release changes. The
  local integration engine infrastructure (package SAI) is a good
  example.
Development Classes vs. Packages

  Legacy R/3 consists of 800.000 development
   objects in 3000 development classes:
      Dependecies are not explicit visible
      Which set of packages build an application?
        Naming conventions will fail in the long run
      What is the API of a package? What is public and what
       is private?
      There are no „borders“ of applications. The system
       becomes a monolith - that makes evolution of the
       system and its applications difficult.
How can the Package Concept help?

 Packages can be ordered hierarchically. An application consists
  of a package hierarchy with a main or structure package on
  top.

 With package interfaces you can define (and document)
  dependencies between applications in an explicit way.

 Using package checks you can check violations of
  dependencies.
How can the Package Concept help
you in Custom Development Projects?
  Reduce dependencies: control impact of Ehps /
   switched Business Functions
  Use stable APIs
  Guarantee installability of software components at
   development time
  Structure your applications
  Maintain and evolve applications independently
  Define stable APIs using interfaces
  Need for privacy - don‘t expose everything to everyone!
Do you want to use elements of IS-U?

 
Explain Functionality

Software Components &
            Structure Packages
Software Components are artefacts from software logistics and no
development objects.


                    FS-CD                 FS-CM



Structure packages are development object having dependencies to
other structure packages: BASIS, ABA, BS_REUSE, APPL, APPL_TOOLS,
FI-CA, …

Dependencies between software components are expressed by
dependencies of the structure packages inside.
Properties of Structure Packages
There are special types of interfaces:
     Default-Interfaces
     Virtual Default Interfaces – a kind of carte blanche
     Filter Interfaces that restrict Virtual Default Interfaces
      to namespaces.

The use access to Filter Interfaces has to be declared only on the
level of structure packages.
How to implement
           ABAP Package Concept
 Fight for your rights: BASIS admins have to grant new
  authorizations:
      Developers/Architects have to change package properties
       to assign use accesses, packages interfaces
      To avoid activation errors you need a special authorization
       S_DEVELOP 94 („Overwrite“) for packages

 You have to find software architects who define /
  control dependencies

 Last but not least: explain the package concept to developers
Package Types & Properties
 Define Package Properties:
     structure, main and development packages
     package checks: client & server




Package Check neither as Server nor as Client will be sufficient at the
beginning. Get Experience with Package Check as Server with your own
packages.
Declare Use Accesses
Define Package Hierarchies

RESTRICTED vs. R3ENTERPRISE

 Modify an entry in table PAKPARAM (OSS 648898 / 792058) as
  system-wide switch

 Use RESTRICTED if you want to check against package interfaces

 Use R3ENTERPRISE if you want to control dependencies on the
  level of structure packages and on package interfaces
Define Interfaces

 Package interfaces can contain package interfaces from
 packages deeper in the hierarchy.
Fill Package Interfaces
Execution of Package Checks

Packages can be executed
 as part of SLIN
 using Code Inspector (SCI)
 using SE80 for all elements in a package (hierarchy)
 are part of SCI variant for transport

A violation will not prevent you from CTS transportation. This
may change but today you have to include the checks as CTS
BAdI implementation.
API for package checks as part of
       ABAP Classification Toolset
DATA lr_obj_badi       TYPE REF TO   pak_object_properties.
DATA ls_pak_object_key TYPE          pak_object_key.

GET BADI lr_obj_badi
      FILTERS object_type = ls_tpobject-object.

CALL BADI lr_obj_badi->get_object_from_e071_entry
  EXPORTING
    im_e071    = ls_tpobject
  IMPORTING
    ex_object = ls_pak_object_key.

CALL BADI lr_obj_badi->package_check
  EXPORTING
    im_object         = ls_pak_object_key
  IMPORTING
    ex_package_errors = lt_errors
    ex_severity       = lv_severity.
SAP NetWeaver 7.30

 ABAP package concept gets more complex: access control list…

 Some interface types will vanish

 Migration reports (have a look at OSS):
    RS_MIGRATE_PACKAGES
    RS_MIGRATE_PACKAGEINTERFACES
    SPAK_CREATE_HYBRID_PACK_DATA

 Packages checks not (yet) part of ABAP runtime
Questions? Criticism? Comments?


  I would like to get into discussion!

  I‘ll blog on SCN about this topic.

More Related Content

What's hot

Sap abap interview questions
Sap abap interview questionsSap abap interview questions
Sap abap interview questionskssr99
 
SAP ABAP - Needed Notes
SAP   ABAP - Needed NotesSAP   ABAP - Needed Notes
SAP ABAP - Needed NotesAkash Bhavsar
 
Smartforms interview questions with answers
Smartforms interview questions with answersSmartforms interview questions with answers
Smartforms interview questions with answersUttam Agrawal
 
Zebra sap-smartforms-solution
Zebra sap-smartforms-solutionZebra sap-smartforms-solution
Zebra sap-smartforms-solutionmartin_josep
 
ABAP Programming Overview
ABAP Programming OverviewABAP Programming Overview
ABAP Programming Overviewsapdocs. info
 
Maximizing SAP ABAP Performance
Maximizing SAP ABAP PerformanceMaximizing SAP ABAP Performance
Maximizing SAP ABAP PerformancePeterHBrown
 
SAP Modularization techniques
SAP Modularization techniquesSAP Modularization techniques
SAP Modularization techniquesJugul Crasta
 
ABAP Event-driven Programming &Selection Screen
ABAP Event-driven Programming &Selection ScreenABAP Event-driven Programming &Selection Screen
ABAP Event-driven Programming &Selection Screensapdocs. info
 
Sap abap real time questions
Sap abap real time questionsSap abap real time questions
Sap abap real time questionstechie_gautam
 
1000 solved questions
1000 solved questions1000 solved questions
1000 solved questionsKranthi Kumar
 
Chapter 01 user exits
Chapter 01 user exitsChapter 01 user exits
Chapter 01 user exitsKranthi Kumar
 

What's hot (20)

Sap abap interview questions
Sap abap interview questionsSap abap interview questions
Sap abap interview questions
 
SAP ABAP - Needed Notes
SAP   ABAP - Needed NotesSAP   ABAP - Needed Notes
SAP ABAP - Needed Notes
 
Index in SAP ABAP
Index in SAP ABAPIndex in SAP ABAP
Index in SAP ABAP
 
Smartforms interview questions with answers
Smartforms interview questions with answersSmartforms interview questions with answers
Smartforms interview questions with answers
 
Abap reports
Abap reportsAbap reports
Abap reports
 
Sapscript
SapscriptSapscript
Sapscript
 
ABAP Advanced List
ABAP Advanced ListABAP Advanced List
ABAP Advanced List
 
Bapi step-by-step
Bapi step-by-stepBapi step-by-step
Bapi step-by-step
 
Field symbols
Field symbolsField symbols
Field symbols
 
Sap Adobe Form
Sap Adobe FormSap Adobe Form
Sap Adobe Form
 
Zebra sap-smartforms-solution
Zebra sap-smartforms-solutionZebra sap-smartforms-solution
Zebra sap-smartforms-solution
 
Module pool programming
Module pool programmingModule pool programming
Module pool programming
 
Badis
Badis Badis
Badis
 
ABAP Programming Overview
ABAP Programming OverviewABAP Programming Overview
ABAP Programming Overview
 
Maximizing SAP ABAP Performance
Maximizing SAP ABAP PerformanceMaximizing SAP ABAP Performance
Maximizing SAP ABAP Performance
 
SAP Modularization techniques
SAP Modularization techniquesSAP Modularization techniques
SAP Modularization techniques
 
ABAP Event-driven Programming &Selection Screen
ABAP Event-driven Programming &Selection ScreenABAP Event-driven Programming &Selection Screen
ABAP Event-driven Programming &Selection Screen
 
Sap abap real time questions
Sap abap real time questionsSap abap real time questions
Sap abap real time questions
 
1000 solved questions
1000 solved questions1000 solved questions
1000 solved questions
 
Chapter 01 user exits
Chapter 01 user exitsChapter 01 user exits
Chapter 01 user exits
 

Viewers also liked

SAP Transport System; Step-by-step guide from concept to practical
SAP Transport System; Step-by-step guide from concept to practicalSAP Transport System; Step-by-step guide from concept to practical
SAP Transport System; Step-by-step guide from concept to practicalNasir Gondal
 
Introduction to ABAP
Introduction to ABAPIntroduction to ABAP
Introduction to ABAPsapdocs. info
 
Workbench and customising request
Workbench and customising requestWorkbench and customising request
Workbench and customising requestlakshmi rajkumar
 
SAP WEBDYNPRO ABAP TRAINING
SAP WEBDYNPRO ABAP TRAININGSAP WEBDYNPRO ABAP TRAINING
SAP WEBDYNPRO ABAP TRAININGSanthosh Sap
 

Viewers also liked (10)

SAP Transport System; Step-by-step guide from concept to practical
SAP Transport System; Step-by-step guide from concept to practicalSAP Transport System; Step-by-step guide from concept to practical
SAP Transport System; Step-by-step guide from concept to practical
 
Introduction to ABAP
Introduction to ABAPIntroduction to ABAP
Introduction to ABAP
 
Clients in sap
Clients in sapClients in sap
Clients in sap
 
Workbench and customising request
Workbench and customising requestWorkbench and customising request
Workbench and customising request
 
SAP ABAP data dictionary
SAP ABAP data dictionarySAP ABAP data dictionary
SAP ABAP data dictionary
 
SAP WEBDYNPRO ABAP TRAINING
SAP WEBDYNPRO ABAP TRAININGSAP WEBDYNPRO ABAP TRAINING
SAP WEBDYNPRO ABAP TRAINING
 
SAP Landscape 2014
SAP Landscape 2014SAP Landscape 2014
SAP Landscape 2014
 
sap script overview
sap script overviewsap script overview
sap script overview
 
Sap workflow training
Sap workflow trainingSap workflow training
Sap workflow training
 
Sap system landscape best practice
Sap system landscape best practiceSap system landscape best practice
Sap system landscape best practice
 

Similar to Abap package concept

IBM API Connect - overview
IBM API Connect - overviewIBM API Connect - overview
IBM API Connect - overviewRamy Bassem
 
Understanding and extending p2 for fun and profit
Understanding and extending p2 for fun and profitUnderstanding and extending p2 for fun and profit
Understanding and extending p2 for fun and profitPascal Rapicault
 
Microservices&ap imanagement
Microservices&ap imanagementMicroservices&ap imanagement
Microservices&ap imanagementpramodkumards
 
Introducing enhancement framework.doc
Introducing enhancement framework.docIntroducing enhancement framework.doc
Introducing enhancement framework.docKranthi Kumar
 
Java Tech & Tools | OSGi Best Practices | Emily Jiang
Java Tech & Tools | OSGi Best Practices | Emily JiangJava Tech & Tools | OSGi Best Practices | Emily Jiang
Java Tech & Tools | OSGi Best Practices | Emily JiangJAX London
 
Evolutionary Design Solid
Evolutionary Design SolidEvolutionary Design Solid
Evolutionary Design SolidSai Venkat
 
SAP ABAP Latest Interview Questions
SAP ABAP Latest  Interview Questions SAP ABAP Latest  Interview Questions
SAP ABAP Latest Interview Questions piyushchawala
 
Abap interview questions and answers
Abap interview questions and answersAbap interview questions and answers
Abap interview questions and answersKaustav Pyne
 
Android application structure
Android application structureAndroid application structure
Android application structureAlexey Ustenko
 
SAP ABAP Interview questions
SAP ABAP Interview questionsSAP ABAP Interview questions
SAP ABAP Interview questionsIT LearnMore
 
Z abap coding_standards_v2_0_t
Z abap coding_standards_v2_0_tZ abap coding_standards_v2_0_t
Z abap coding_standards_v2_0_tRasika Jayawardana
 
ABAP Coding Standards Reference Guide
ABAP Coding Standards Reference GuideABAP Coding Standards Reference Guide
ABAP Coding Standards Reference GuideStacy Taylor
 
Enterprise Library 2.0
Enterprise Library 2.0Enterprise Library 2.0
Enterprise Library 2.0Raju Permandla
 

Similar to Abap package concept (20)

IBM API Connect - overview
IBM API Connect - overviewIBM API Connect - overview
IBM API Connect - overview
 
Functional module
Functional moduleFunctional module
Functional module
 
Understanding and extending p2 for fun and profit
Understanding and extending p2 for fun and profitUnderstanding and extending p2 for fun and profit
Understanding and extending p2 for fun and profit
 
Microservices&ap imanagement
Microservices&ap imanagementMicroservices&ap imanagement
Microservices&ap imanagement
 
Introducing enhancement framework.doc
Introducing enhancement framework.docIntroducing enhancement framework.doc
Introducing enhancement framework.doc
 
Java Tech & Tools | OSGi Best Practices | Emily Jiang
Java Tech & Tools | OSGi Best Practices | Emily JiangJava Tech & Tools | OSGi Best Practices | Emily Jiang
Java Tech & Tools | OSGi Best Practices | Emily Jiang
 
Evolutionary Design Solid
Evolutionary Design SolidEvolutionary Design Solid
Evolutionary Design Solid
 
SAP ABAP Latest Interview Questions
SAP ABAP Latest  Interview Questions SAP ABAP Latest  Interview Questions
SAP ABAP Latest Interview Questions
 
Plugin style EA
Plugin style EAPlugin style EA
Plugin style EA
 
Abap interview questions and answers
Abap interview questions and answersAbap interview questions and answers
Abap interview questions and answers
 
SAP Reuse Tools
SAP Reuse Tools SAP Reuse Tools
SAP Reuse Tools
 
Android application structure
Android application structureAndroid application structure
Android application structure
 
C question
C questionC question
C question
 
Badi
BadiBadi
Badi
 
SAP ABAP Interview questions
SAP ABAP Interview questionsSAP ABAP Interview questions
SAP ABAP Interview questions
 
Z abap coding_standards_v2_0_t
Z abap coding_standards_v2_0_tZ abap coding_standards_v2_0_t
Z abap coding_standards_v2_0_t
 
ABAP Coding Standards Reference Guide
ABAP Coding Standards Reference GuideABAP Coding Standards Reference Guide
ABAP Coding Standards Reference Guide
 
Ecc ad ldap
Ecc ad ldapEcc ad ldap
Ecc ad ldap
 
Readme
ReadmeReadme
Readme
 
Enterprise Library 2.0
Enterprise Library 2.0Enterprise Library 2.0
Enterprise Library 2.0
 

More from Tobias Trapp

Is your ABAP Code Ready for the Cloud?
Is your ABAP Code Ready for the Cloud?Is your ABAP Code Ready for the Cloud?
Is your ABAP Code Ready for the Cloud?Tobias Trapp
 
ABAP State of the Art
ABAP State of the ArtABAP State of the Art
ABAP State of the ArtTobias Trapp
 
Bitter sweet lessons - out way to Fiori
Bitter sweet lessons - out way to FioriBitter sweet lessons - out way to Fiori
Bitter sweet lessons - out way to FioriTobias Trapp
 
Analytics & Fiori with the Analysis Path Framework
Analytics & Fiori with the Analysis Path FrameworkAnalytics & Fiori with the Analysis Path Framework
Analytics & Fiori with the Analysis Path FrameworkTobias Trapp
 
Logical Abduction and an Application on Business Rules Management
Logical Abduction and an Application on Business Rules ManagementLogical Abduction and an Application on Business Rules Management
Logical Abduction and an Application on Business Rules ManagementTobias Trapp
 
Coolcats don't Use Customzing
Coolcats don't Use CustomzingCoolcats don't Use Customzing
Coolcats don't Use CustomzingTobias Trapp
 
Building Next Generation Apps using DSAM - session at sitHH 2014
Building Next Generation Apps using DSAM - session at sitHH 2014Building Next Generation Apps using DSAM - session at sitHH 2014
Building Next Generation Apps using DSAM - session at sitHH 2014Tobias Trapp
 
BRFplus in der Prozessautomatisierung
BRFplus in der ProzessautomatisierungBRFplus in der Prozessautomatisierung
BRFplus in der ProzessautomatisierungTobias Trapp
 
Lecture about SAP HANA and Enterprise Comupting at University of Halle
Lecture about SAP HANA and Enterprise Comupting at University of HalleLecture about SAP HANA and Enterprise Comupting at University of Halle
Lecture about SAP HANA and Enterprise Comupting at University of HalleTobias Trapp
 
Custom Development of Enterprise Services
Custom Development of Enterprise ServicesCustom Development of Enterprise Services
Custom Development of Enterprise ServicesTobias Trapp
 
SAP Test automation - fully automatic test of complex business processes incl...
SAP Test automation - fully automatic test of complex business processes incl...SAP Test automation - fully automatic test of complex business processes incl...
SAP Test automation - fully automatic test of complex business processes incl...Tobias Trapp
 

More from Tobias Trapp (11)

Is your ABAP Code Ready for the Cloud?
Is your ABAP Code Ready for the Cloud?Is your ABAP Code Ready for the Cloud?
Is your ABAP Code Ready for the Cloud?
 
ABAP State of the Art
ABAP State of the ArtABAP State of the Art
ABAP State of the Art
 
Bitter sweet lessons - out way to Fiori
Bitter sweet lessons - out way to FioriBitter sweet lessons - out way to Fiori
Bitter sweet lessons - out way to Fiori
 
Analytics & Fiori with the Analysis Path Framework
Analytics & Fiori with the Analysis Path FrameworkAnalytics & Fiori with the Analysis Path Framework
Analytics & Fiori with the Analysis Path Framework
 
Logical Abduction and an Application on Business Rules Management
Logical Abduction and an Application on Business Rules ManagementLogical Abduction and an Application on Business Rules Management
Logical Abduction and an Application on Business Rules Management
 
Coolcats don't Use Customzing
Coolcats don't Use CustomzingCoolcats don't Use Customzing
Coolcats don't Use Customzing
 
Building Next Generation Apps using DSAM - session at sitHH 2014
Building Next Generation Apps using DSAM - session at sitHH 2014Building Next Generation Apps using DSAM - session at sitHH 2014
Building Next Generation Apps using DSAM - session at sitHH 2014
 
BRFplus in der Prozessautomatisierung
BRFplus in der ProzessautomatisierungBRFplus in der Prozessautomatisierung
BRFplus in der Prozessautomatisierung
 
Lecture about SAP HANA and Enterprise Comupting at University of Halle
Lecture about SAP HANA and Enterprise Comupting at University of HalleLecture about SAP HANA and Enterprise Comupting at University of Halle
Lecture about SAP HANA and Enterprise Comupting at University of Halle
 
Custom Development of Enterprise Services
Custom Development of Enterprise ServicesCustom Development of Enterprise Services
Custom Development of Enterprise Services
 
SAP Test automation - fully automatic test of complex business processes incl...
SAP Test automation - fully automatic test of complex business processes incl...SAP Test automation - fully automatic test of complex business processes incl...
SAP Test automation - fully automatic test of complex business processes incl...
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 

Recently uploaded (20)

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

Abap package concept

  • 1. ABAP Package Concept Use Cases & Best Practices Tobias Trapp, AOK Systems GmbH Enterprise Architect, SAP Mentor
  • 2. ABAP Developers and Reuse  „In SAP Business Suite there‘s so much useful stuff.“  „I can save 40 seconds of my life time by using data elements from SAP standard: CHAR04, CHAR130, BEZEI30…“  „And for something more complicated I‘m looking for an function module.“
  • 3. Is this how we should do reuse?  Do you use a certain data element (BEZEI30) because it is part of SAP data model you want use?  If not: don‘t you want to be able to define your own short and help texts?  How do you know that this certain function module is appropriate? How do you know that it belongs to a public API?
  • 4. An Architect‘s Answer  Think in terms of applications and APIs - not in terms of data elements and function modules.  If you work with a certain SAP data model use the corresponding data elements and domains. In your own applications don‘t be afraid to create your own DDIC elements and local data types.  Use DDIC elements, classes… that are exposed in package interfaces. Within SAP Business Suite this is a development guideline. So you can be sure that you use appropriate functions that are stable according to release changes. The local integration engine infrastructure (package SAI) is a good example.
  • 5. Development Classes vs. Packages  Legacy R/3 consists of 800.000 development objects in 3000 development classes:  Dependecies are not explicit visible  Which set of packages build an application? Naming conventions will fail in the long run  What is the API of a package? What is public and what is private?  There are no „borders“ of applications. The system becomes a monolith - that makes evolution of the system and its applications difficult.
  • 6. How can the Package Concept help?  Packages can be ordered hierarchically. An application consists of a package hierarchy with a main or structure package on top.  With package interfaces you can define (and document) dependencies between applications in an explicit way.  Using package checks you can check violations of dependencies.
  • 7. How can the Package Concept help you in Custom Development Projects?  Reduce dependencies: control impact of Ehps / switched Business Functions  Use stable APIs  Guarantee installability of software components at development time  Structure your applications  Maintain and evolve applications independently  Define stable APIs using interfaces  Need for privacy - don‘t expose everything to everyone!
  • 8. Do you want to use elements of IS-U? 
  • 10. Software Components & Structure Packages Software Components are artefacts from software logistics and no development objects. FS-CD FS-CM Structure packages are development object having dependencies to other structure packages: BASIS, ABA, BS_REUSE, APPL, APPL_TOOLS, FI-CA, … Dependencies between software components are expressed by dependencies of the structure packages inside.
  • 11. Properties of Structure Packages There are special types of interfaces:  Default-Interfaces  Virtual Default Interfaces – a kind of carte blanche  Filter Interfaces that restrict Virtual Default Interfaces to namespaces. The use access to Filter Interfaces has to be declared only on the level of structure packages.
  • 12. How to implement ABAP Package Concept  Fight for your rights: BASIS admins have to grant new authorizations:  Developers/Architects have to change package properties to assign use accesses, packages interfaces  To avoid activation errors you need a special authorization S_DEVELOP 94 („Overwrite“) for packages  You have to find software architects who define / control dependencies  Last but not least: explain the package concept to developers
  • 13. Package Types & Properties  Define Package Properties:  structure, main and development packages  package checks: client & server Package Check neither as Server nor as Client will be sufficient at the beginning. Get Experience with Package Check as Server with your own packages.
  • 16. RESTRICTED vs. R3ENTERPRISE  Modify an entry in table PAKPARAM (OSS 648898 / 792058) as system-wide switch  Use RESTRICTED if you want to check against package interfaces  Use R3ENTERPRISE if you want to control dependencies on the level of structure packages and on package interfaces
  • 17. Define Interfaces  Package interfaces can contain package interfaces from packages deeper in the hierarchy.
  • 19. Execution of Package Checks Packages can be executed  as part of SLIN  using Code Inspector (SCI)  using SE80 for all elements in a package (hierarchy)  are part of SCI variant for transport A violation will not prevent you from CTS transportation. This may change but today you have to include the checks as CTS BAdI implementation.
  • 20. API for package checks as part of ABAP Classification Toolset DATA lr_obj_badi TYPE REF TO pak_object_properties. DATA ls_pak_object_key TYPE pak_object_key. GET BADI lr_obj_badi FILTERS object_type = ls_tpobject-object. CALL BADI lr_obj_badi->get_object_from_e071_entry EXPORTING im_e071 = ls_tpobject IMPORTING ex_object = ls_pak_object_key. CALL BADI lr_obj_badi->package_check EXPORTING im_object = ls_pak_object_key IMPORTING ex_package_errors = lt_errors ex_severity = lv_severity.
  • 21. SAP NetWeaver 7.30  ABAP package concept gets more complex: access control list…  Some interface types will vanish  Migration reports (have a look at OSS):  RS_MIGRATE_PACKAGES  RS_MIGRATE_PACKAGEINTERFACES  SPAK_CREATE_HYBRID_PACK_DATA  Packages checks not (yet) part of ABAP runtime
  • 22. Questions? Criticism? Comments? I would like to get into discussion! I‘ll blog on SCN about this topic.