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 real time questions
Sap abap real time questionsSap abap real time questions
Sap abap real time questionstechie_gautam
 
SAP ABAP - Needed Notes
SAP   ABAP - Needed NotesSAP   ABAP - Needed Notes
SAP ABAP - Needed NotesAkash Bhavsar
 
Oops abap fundamental
Oops abap fundamentalOops abap fundamental
Oops abap fundamentalbiswajit2015
 
Dialog Programming Overview
Dialog Programming OverviewDialog Programming Overview
Dialog Programming Overviewsapdocs. info
 
List Processing in ABAP
List Processing in ABAPList Processing in ABAP
List Processing in ABAPsapdocs. info
 
Table maintenance generator and its modifications
Table maintenance generator and its modificationsTable maintenance generator and its modifications
Table maintenance generator and its modificationsscribid.download
 
Ab1011 module pool programming
Ab1011   module pool programmingAb1011   module pool programming
Ab1011 module pool programmingSatheesh Kanna
 
BATCH DATA COMMUNICATION
BATCH DATA COMMUNICATIONBATCH DATA COMMUNICATION
BATCH DATA COMMUNICATIONKranthi Kumar
 
abap list viewer (alv)
abap list viewer (alv)abap list viewer (alv)
abap list viewer (alv)Kranthi Kumar
 
Introducing enhancement framework.doc
Introducing enhancement framework.docIntroducing enhancement framework.doc
Introducing enhancement framework.docKranthi Kumar
 
Fiori for s4 hana troubleshooting tips and tricks
Fiori for s4 hana  troubleshooting tips and tricksFiori for s4 hana  troubleshooting tips and tricks
Fiori for s4 hana troubleshooting tips and tricksJasbir Khanuja
 
Step by step guide to basic web dynpro abap
Step by step guide to basic web dynpro abapStep by step guide to basic web dynpro abap
Step by step guide to basic web dynpro abapKranthi Kumar
 
How to use abap cds for data provisioning in bw
How to use abap cds for data provisioning in bwHow to use abap cds for data provisioning in bw
How to use abap cds for data provisioning in bwLuc Vanrobays
 
Ooabap notes with_programs
Ooabap notes with_programsOoabap notes with_programs
Ooabap notes with_programsKranthi Kumar
 

What's hot (20)

Sap abap real time questions
Sap abap real time questionsSap abap real time questions
Sap abap real time questions
 
SAP ABAP - Needed Notes
SAP   ABAP - Needed NotesSAP   ABAP - Needed Notes
SAP ABAP - Needed Notes
 
Oops abap fundamental
Oops abap fundamentalOops abap fundamental
Oops abap fundamental
 
Dialog Programming Overview
Dialog Programming OverviewDialog Programming Overview
Dialog Programming Overview
 
SAP Adobe forms
SAP Adobe formsSAP Adobe forms
SAP Adobe forms
 
sap script overview
sap script overviewsap script overview
sap script overview
 
07.Advanced Abap
07.Advanced Abap07.Advanced Abap
07.Advanced Abap
 
List Processing in ABAP
List Processing in ABAPList Processing in ABAP
List Processing in ABAP
 
Table maintenance generator and its modifications
Table maintenance generator and its modificationsTable maintenance generator and its modifications
Table maintenance generator and its modifications
 
ABAP Advanced List
ABAP Advanced ListABAP Advanced List
ABAP Advanced List
 
Ab1011 module pool programming
Ab1011   module pool programmingAb1011   module pool programming
Ab1011 module pool programming
 
BATCH DATA COMMUNICATION
BATCH DATA COMMUNICATIONBATCH DATA COMMUNICATION
BATCH DATA COMMUNICATION
 
abap list viewer (alv)
abap list viewer (alv)abap list viewer (alv)
abap list viewer (alv)
 
Sap scripts
Sap scriptsSap scripts
Sap scripts
 
Sap abap
Sap abapSap abap
Sap abap
 
Introducing enhancement framework.doc
Introducing enhancement framework.docIntroducing enhancement framework.doc
Introducing enhancement framework.doc
 
Fiori for s4 hana troubleshooting tips and tricks
Fiori for s4 hana  troubleshooting tips and tricksFiori for s4 hana  troubleshooting tips and tricks
Fiori for s4 hana troubleshooting tips and tricks
 
Step by step guide to basic web dynpro abap
Step by step guide to basic web dynpro abapStep by step guide to basic web dynpro abap
Step by step guide to basic web dynpro abap
 
How to use abap cds for data provisioning in bw
How to use abap cds for data provisioning in bwHow to use abap cds for data provisioning in bw
How to use abap cds for data provisioning in bw
 
Ooabap notes with_programs
Ooabap notes with_programsOoabap notes with_programs
Ooabap notes with_programs
 

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
 
Sapscript
SapscriptSapscript
Sapscript
 
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
 
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
 
Building Bridges: Merging RPA Processes, UiPath Apps, and Data Service to bu...
Building Bridges:  Merging RPA Processes, UiPath Apps, and Data Service to bu...Building Bridges:  Merging RPA Processes, UiPath Apps, and Data Service to bu...
Building Bridges: Merging RPA Processes, UiPath Apps, and Data Service to bu...DianaGray10
 

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
 
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
 
Building Bridges: Merging RPA Processes, UiPath Apps, and Data Service to bu...
Building Bridges:  Merging RPA Processes, UiPath Apps, and Data Service to bu...Building Bridges:  Merging RPA Processes, UiPath Apps, and Data Service to bu...
Building Bridges: Merging RPA Processes, UiPath Apps, and Data Service to bu...
 

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

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

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.