SlideShare a Scribd company logo
CustomCustom DevelopmentDevelopment of Enterprise Servicesof Enterprise Services --
WhatWhat doesdoes an Softwarean Software ArchitectArchitect needneed toto knowknow??
Tobias Trapp
© Tobias Trapp 2010 2
Table ofTable of ContentContent
Implementation Details
Standardization of Web Services
Summary
Component Architecture
© Tobias Trapp 2010 3
WhichWhich SAP technologySAP technology isis thethe mostmost appropriateappropriate forfor specificspecific purposespurposes??
lightweight interfaces: REST are very useful for integration of output and
document management systems
application integration: A2A services outside-in using PI
commerce transactions between businesses : B2B services generated
outside-in, propably using PI
integration using arbitrary clients: A2X services generated outside in
exposing BOL classes on the fly: CRM Web Service framework
mobile apps: Sybase CRM Mobile Sales and Mobility for SAP
coming soon: project Gateway
exposing function modules on thy fly: inside out generation
WelcomeWelcome to ABAP Web Serviceto ABAP Web Service JungleJungle!!
© Tobias Trapp 2010 4
„„InsideInside OutOut““ isis aa DeadDead End StreetEnd Street
„Inside Out“ means poor man‘s SOA
no standardized data types
we can‘t control mandatory and
non-mandatory elements
no standardized naming conventions
no standardized communication patterns
no patterns for asynchronous scenarios
no standardized change strategies: first one wins vs. last one wins
complicated & database–like because of TABLES parameters
important frameworks are missing
- idempotency
- forward error handling
- no enhancement concept for customers
© Tobias Trapp 2010 5
Enterprise ServicesEnterprise Services
Build your SOA on standards and best practices
use global data types according UN/CEFACT standards
develop enterprise „outside in“: generate ABAP proxies from a WSDL (file, URL,
ESR) using transaction SPROXY / SE80
follow ESR modelling guidelines and create ESR certified content
from SAP Guidelines for Best-Built Applications that Integrate with
SAP Business Suite:
© Tobias Trapp 2010 6
NearlyNearly everythingeverything youyou needneed toto knowknow isis writtenwritten downdown
There are lots of resources on SCN and SAP Press
many tutorials about ESR on SDN
SOA 300 training
everything about modelling & implementation is written down
in SAP Press Book „Developing Enterprise Services for SAP“
„How To… Develop, Monitor and Debug WS Consumer
and Provider“
Enterprise SOA Development Handbook 1.1
chapter about SOA & loose coupling of
applications in SAP Guidelines for
Best-Built Applications that Integrate
with SAP Business Suite
© Tobias Trapp 2010 7
Enterprise ServicesEnterprise Services havehave wellwell--defineddefined SemanticsSemantics
Use naming conventions and communication patterns
naming convention is: <business object view> <action> <message type>
Sales Order Create Request
actions are Create, Read, Update (first one wins), Change (last one wins),
Cancel and Check: Purchase Order Cancel Check Query Request
there are well-defined semantics described below:
© Tobias Trapp 2010 8
Table ofTable of ContentContent
Implementation Details
Standardization of Web Services
Summary
Component Architecture
© Tobias Trapp 2010 9
SOASOA byby „„ControlledControlled EvolutionEvolution““
SOA by Design vs. SOA by Evolution
SAP‘s SOMAID methodology is heavy weight – you need a list of all processes
whether they are IT-based or not
whenever you can use Enterprise Services of SAP Business Suite - you‘ll find them
on ES work place http://www.sdn.sap.com/irj/bpx/esworkplace
if necessary enhance SAP standard services as described in
Enterprise Service Enhancement Guide
create custom Enterprise Services using SAP‘s
modelling approach - construct them from business
objects of your ABAP app.
© Tobias Trapp 2010 10
ABAPABAP AppsApps, ESR, ESR SWCVsSWCVs and XMLand XML NamespacesNamespaces
How to structure ESR development
SWVCs in ESR correspond to ABAP SCs
an ABAP application corresponds to an repository namespace
define data types for reuse in separate namespaces
create repository namespace for each application containing business objects
this leads to a hierarchy of repository namespaces
http://tempuri.org/xi/flightmanagement/CRM
http://tempuri.org/xi/flightmanagement/CRM/Global
http://tempuri.org/xi/flightmanagement/BP
http://tempuri.org/xi/flightmanagement/BP/Global
http://tempuri.org/xi/flightmanagement/Global
hint: avoid special characters in XML names because package names of generated
classes consumers tend to get complicated – this is a problem of many non-SAP
frameworks
© Tobias Trapp 2010 11
ABAPABAP ComponentComponent StructureStructure
How to structure server proxies according to your ABAP component hierarchy?
in NW 7.01 there can be only one proxy element per system (and ABAP
namespace).
ESR dependencies lead to dependencies in ABAP: proxy elements will be reused -
so be careful if the proxies are in different ABAP components:
http://tempuri.org/xi/flightmanagement/CRM
http://tempuri.org/xi/flightmanagement/CRM/Global
http://tempuri.org/xi/flightmanagement/BP
http://tempuri.org/xi/flightmanagement/BP/Global
http://tempuri.org/xi/flightmanagement/Global
create packages that contain only ABAP proxies
}
}
CUSTBP
CUSTCRM
SCs in an
ABAP system
© Tobias Trapp 2010 12
Table ofTable of ContentContent
Implementation Details
Standardization of Web Services
Summary
Component Architecture
© Tobias Trapp 2010 13
BestBest PracticesPractices forfor Creating Enterprise ServicesCreating Enterprise Services
Common mistakes and how to avoid them
specify error handling: system errors, wrong input parameters, missing
authorities…
consider compensation scenarios: what happens if a web service call fails?
use forward error handling in asynchronous scenarios
consider reviews for ESR development – developers tend to break every rule
because they can do anything in XML
keep code in generated classes small – delegate to classes
containing business logic for each method
use naming conventions for data types, parameters,
message types and message data types in generated classes
develop in a test driven way: check ABAP classes using unit tests,
test Enterprise Services using ABAP test tool resp. eCATT
study best practices in SAP guidelines esp. the SAP Press book
don‘t follow guidelines for SAP Business Suite blindly: asually an ES doesn‘t
need to be XI 3.0 conform and contain more than 1 operation.
© Tobias Trapp 2010 14
AbsolutelyAbsolutely necessarynecessary toto knowknow:: ExtendedExtended XML HandlingXML Handling
Empty values vs. Null values
NULL values have different semantics compared to initial values:
- NULL values in an update service mean that they should not be changed
- NULL values in a query mean that a data element is not relevant in a search
Initial values can be coded as empty XML elements
NULL values can be coded using xsi:nil and missing elements
In the constructor of a server proxy switch extended XML handling on:
set_extended_xml_handling( i_switch_on = abap_true ).
Then you get the information about every data element (omitted, xsi:nil, initial) in
an structure PRXCTRLTAB
© Tobias Trapp 2010 15
AA hiddenhidden gemgem:: GenericGeneric Code List Provider FrameworkCode List Provider Framework
Codes can be defined an ABAP backend system
define code lists as XML schema enumeration types
only if the values are well-defined & do not change
In most cases code lists are defined in ABAP backend in
customizing tables
you can bind domain values, (text) tables to server
proxy data elements and read them using the
generic Enterprise Service QueryCodeList
the framework is extensible – think of time depended
customizing, subsets of customizing sets…
© Tobias Trapp 2010 16
Table ofTable of ContentContent
Implementation Details
Standardization of Web Services
Summary
Component Architecture
© Tobias Trapp 2010 17
ExplainExplain toto developersdevelopers thethe conceptconcept of Enterprise Servicesof Enterprise Services
As software architect now you are well prepared for a SOA project, but don‘t
forget:
keep yourself informed - ABAP frameworks are rapidly evolved by SAP
learn about eventing, service groups, forward error handling…
What do developers of Enterprise Services need to know?
a prototype implementation will help developers to understand the concepts
teach developers the transactional behaviour esp. in update/change services: SET
UPDATE TASK LOCAL, cl_soap_commit_rollback and that enterprise
services are stateless – no DB cursor!
don‘t forget to test the enterprise services with user with different authorization
profiles in the ABAP backend.

More Related Content

What's hot

Erp sap r3 overview introduction
Erp  sap r3 overview introductionErp  sap r3 overview introduction
Erp sap r3 overview introductionBunty Jain
 
Basics of sap
Basics of  sapBasics of  sap
SAP Systems Integration by SAP PI (XI)
SAP Systems Integration by SAP PI (XI)SAP Systems Integration by SAP PI (XI)
SAP Systems Integration by SAP PI (XI)
alpercelk
 
SAP INTRO
SAP INTROSAP INTRO
SAP INTRO
Dr.Ravi
 
Introduction to sap
Introduction to sapIntroduction to sap
Introduction to sap
ReshmaGovindan
 
SAP ERP IMPLEMENTATION AND Sap migration
SAP ERP IMPLEMENTATION AND Sap migrationSAP ERP IMPLEMENTATION AND Sap migration
SAP ERP IMPLEMENTATION AND Sap migration
Arig
 
SAP PI
SAP PISAP PI
Sap abap ppt
Sap abap pptSap abap ppt
Sap abap pptvonline
 
Sap Process Integration
Sap Process Integration Sap Process Integration
Sap Process Integration
Tauhidul Islam
 
My saperp technology facts -22_11_2011
My saperp   technology facts -22_11_2011My saperp   technology facts -22_11_2011
My saperp technology facts -22_11_2011
Didem Gundogdu
 
SAP Basics and Overview
SAP Basics and OverviewSAP Basics and Overview
SAP Basics and Overview
SapFico Training
 
SAP An Introduction
SAP An IntroductionSAP An Introduction
SAP An Introduction
sh_neha252
 
SAP PI and SOA Overview
SAP PI and SOA OverviewSAP PI and SOA Overview
SAP PI and SOA Overview
Sascha Wenninger
 
sap nw bw7.3 on sap hana ramp up project approach (2)
sap nw bw7.3 on sap hana ramp up project approach (2)sap nw bw7.3 on sap hana ramp up project approach (2)
sap nw bw7.3 on sap hana ramp up project approach (2)
Prof Dr Mehmed ERDAS
 
CRM Service
CRM ServiceCRM Service
CRM Service
Srini Vasan
 
SAP BASIS Training in Chennai
SAP BASIS Training  in ChennaiSAP BASIS Training  in Chennai
SAP BASIS Training in Chennai
Thecreating Experts
 
What is sap an introduction - maxsoftsolutions.com
What is sap   an introduction - maxsoftsolutions.comWhat is sap   an introduction - maxsoftsolutions.com
What is sap an introduction - maxsoftsolutions.com
maxsoftsolutions
 
Lecture01 abap on line
Lecture01 abap on lineLecture01 abap on line
Lecture01 abap on lineMilind Patil
 

What's hot (18)

Erp sap r3 overview introduction
Erp  sap r3 overview introductionErp  sap r3 overview introduction
Erp sap r3 overview introduction
 
Basics of sap
Basics of  sapBasics of  sap
Basics of sap
 
SAP Systems Integration by SAP PI (XI)
SAP Systems Integration by SAP PI (XI)SAP Systems Integration by SAP PI (XI)
SAP Systems Integration by SAP PI (XI)
 
SAP INTRO
SAP INTROSAP INTRO
SAP INTRO
 
Introduction to sap
Introduction to sapIntroduction to sap
Introduction to sap
 
SAP ERP IMPLEMENTATION AND Sap migration
SAP ERP IMPLEMENTATION AND Sap migrationSAP ERP IMPLEMENTATION AND Sap migration
SAP ERP IMPLEMENTATION AND Sap migration
 
SAP PI
SAP PISAP PI
SAP PI
 
Sap abap ppt
Sap abap pptSap abap ppt
Sap abap ppt
 
Sap Process Integration
Sap Process Integration Sap Process Integration
Sap Process Integration
 
My saperp technology facts -22_11_2011
My saperp   technology facts -22_11_2011My saperp   technology facts -22_11_2011
My saperp technology facts -22_11_2011
 
SAP Basics and Overview
SAP Basics and OverviewSAP Basics and Overview
SAP Basics and Overview
 
SAP An Introduction
SAP An IntroductionSAP An Introduction
SAP An Introduction
 
SAP PI and SOA Overview
SAP PI and SOA OverviewSAP PI and SOA Overview
SAP PI and SOA Overview
 
sap nw bw7.3 on sap hana ramp up project approach (2)
sap nw bw7.3 on sap hana ramp up project approach (2)sap nw bw7.3 on sap hana ramp up project approach (2)
sap nw bw7.3 on sap hana ramp up project approach (2)
 
CRM Service
CRM ServiceCRM Service
CRM Service
 
SAP BASIS Training in Chennai
SAP BASIS Training  in ChennaiSAP BASIS Training  in Chennai
SAP BASIS Training in Chennai
 
What is sap an introduction - maxsoftsolutions.com
What is sap   an introduction - maxsoftsolutions.comWhat is sap   an introduction - maxsoftsolutions.com
What is sap an introduction - maxsoftsolutions.com
 
Lecture01 abap on line
Lecture01 abap on lineLecture01 abap on line
Lecture01 abap on line
 

Similar to Custom Development of Enterprise Services

MuleSoft London Community October 2017 - Hybrid and SAP Integration
MuleSoft London Community October 2017 - Hybrid and SAP IntegrationMuleSoft London Community October 2017 - Hybrid and SAP Integration
MuleSoft London Community October 2017 - Hybrid and SAP Integration
Pace Integration
 
SAP performance testing & engineering courseware v01
SAP performance testing & engineering courseware v01SAP performance testing & engineering courseware v01
SAP performance testing & engineering courseware v01
Argos
 
SAP NetWeaver.ppt
SAP NetWeaver.pptSAP NetWeaver.ppt
SAP NetWeaver.ppt
ssuserff1f40
 
Ppt00000
Ppt00000Ppt00000
Ppt00000
bunty2074
 
OSA03 Pourquoi choisir IBM pour vos projets BPM ?
OSA03 Pourquoi choisir IBM pour vos projets BPM ?OSA03 Pourquoi choisir IBM pour vos projets BPM ?
OSA03 Pourquoi choisir IBM pour vos projets BPM ?
Nicolas Desachy
 
Composite Apps using SCA (Service Component Architecture)
Composite Apps using SCA (Service Component Architecture)Composite Apps using SCA (Service Component Architecture)
Composite Apps using SCA (Service Component Architecture)
Shameer Thaha Koya
 
Pega systems vs siebel CRM capabilities - A first look
Pega systems vs siebel CRM capabilities - A first lookPega systems vs siebel CRM capabilities - A first look
Pega systems vs siebel CRM capabilities - A first look
Anjan Sarma
 
Practical guide to building public APIs
Practical guide to building public APIsPractical guide to building public APIs
Practical guide to building public APIs
Reda Hmeid MBCS
 
Sap Interview Questions - Part 1
Sap Interview Questions - Part 1Sap Interview Questions - Part 1
Sap Interview Questions - Part 1
ReKruiTIn.com
 
Biztalk Server 2006
Biztalk Server 2006Biztalk Server 2006
Biztalk Server 2006
ipaciti
 
Integration with SAP using Mule ESB
Integration with SAP using Mule ESBIntegration with SAP using Mule ESB
Integration with SAP using Mule ESB
Sanjeet Pandey
 
Software as Service
Software as ServiceSoftware as Service
Software as Service
abhigad
 
Atos Ibm Sap Event 22 06 2012v2 Shekhar
Atos Ibm Sap Event 22 06 2012v2 ShekharAtos Ibm Sap Event 22 06 2012v2 Shekhar
Atos Ibm Sap Event 22 06 2012v2 Shekhar
Shekhar Bhartiya
 
Technology Overview
Technology OverviewTechnology Overview
Technology Overview
Liran Zelkha
 
Integrating SAP and Low-Code Plaforms
Integrating SAP and Low-Code PlaformsIntegrating SAP and Low-Code Plaforms
Integrating SAP and Low-Code Plaforms
Warren Eiserman
 
Introduction to OData and SAP NetWeaver Gateway.pptx
Introduction to OData and SAP NetWeaver Gateway.pptxIntroduction to OData and SAP NetWeaver Gateway.pptx
Introduction to OData and SAP NetWeaver Gateway.pptx
Richard314186
 
Introduction to SAP Gateway and OData
Introduction to SAP Gateway and ODataIntroduction to SAP Gateway and OData
Introduction to SAP Gateway and OData
Chris Whealy
 
DRM Webinar Series, PART 3: Will DRM Integrate With Our Applications?
DRM Webinar Series, PART 3: Will DRM Integrate With Our Applications?DRM Webinar Series, PART 3: Will DRM Integrate With Our Applications?
DRM Webinar Series, PART 3: Will DRM Integrate With Our Applications?
US-Analytics
 
REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)Sascha Wenninger
 
Api enablement-mainframe
Api enablement-mainframeApi enablement-mainframe
Api enablement-mainframe
Maran Gothandaraman
 

Similar to Custom Development of Enterprise Services (20)

MuleSoft London Community October 2017 - Hybrid and SAP Integration
MuleSoft London Community October 2017 - Hybrid and SAP IntegrationMuleSoft London Community October 2017 - Hybrid and SAP Integration
MuleSoft London Community October 2017 - Hybrid and SAP Integration
 
SAP performance testing & engineering courseware v01
SAP performance testing & engineering courseware v01SAP performance testing & engineering courseware v01
SAP performance testing & engineering courseware v01
 
SAP NetWeaver.ppt
SAP NetWeaver.pptSAP NetWeaver.ppt
SAP NetWeaver.ppt
 
Ppt00000
Ppt00000Ppt00000
Ppt00000
 
OSA03 Pourquoi choisir IBM pour vos projets BPM ?
OSA03 Pourquoi choisir IBM pour vos projets BPM ?OSA03 Pourquoi choisir IBM pour vos projets BPM ?
OSA03 Pourquoi choisir IBM pour vos projets BPM ?
 
Composite Apps using SCA (Service Component Architecture)
Composite Apps using SCA (Service Component Architecture)Composite Apps using SCA (Service Component Architecture)
Composite Apps using SCA (Service Component Architecture)
 
Pega systems vs siebel CRM capabilities - A first look
Pega systems vs siebel CRM capabilities - A first lookPega systems vs siebel CRM capabilities - A first look
Pega systems vs siebel CRM capabilities - A first look
 
Practical guide to building public APIs
Practical guide to building public APIsPractical guide to building public APIs
Practical guide to building public APIs
 
Sap Interview Questions - Part 1
Sap Interview Questions - Part 1Sap Interview Questions - Part 1
Sap Interview Questions - Part 1
 
Biztalk Server 2006
Biztalk Server 2006Biztalk Server 2006
Biztalk Server 2006
 
Integration with SAP using Mule ESB
Integration with SAP using Mule ESBIntegration with SAP using Mule ESB
Integration with SAP using Mule ESB
 
Software as Service
Software as ServiceSoftware as Service
Software as Service
 
Atos Ibm Sap Event 22 06 2012v2 Shekhar
Atos Ibm Sap Event 22 06 2012v2 ShekharAtos Ibm Sap Event 22 06 2012v2 Shekhar
Atos Ibm Sap Event 22 06 2012v2 Shekhar
 
Technology Overview
Technology OverviewTechnology Overview
Technology Overview
 
Integrating SAP and Low-Code Plaforms
Integrating SAP and Low-Code PlaformsIntegrating SAP and Low-Code Plaforms
Integrating SAP and Low-Code Plaforms
 
Introduction to OData and SAP NetWeaver Gateway.pptx
Introduction to OData and SAP NetWeaver Gateway.pptxIntroduction to OData and SAP NetWeaver Gateway.pptx
Introduction to OData and SAP NetWeaver Gateway.pptx
 
Introduction to SAP Gateway and OData
Introduction to SAP Gateway and ODataIntroduction to SAP Gateway and OData
Introduction to SAP Gateway and OData
 
DRM Webinar Series, PART 3: Will DRM Integrate With Our Applications?
DRM Webinar Series, PART 3: Will DRM Integrate With Our Applications?DRM Webinar Series, PART 3: Will DRM Integrate With Our Applications?
DRM Webinar Series, PART 3: Will DRM Integrate With Our Applications?
 
REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)
 
Api enablement-mainframe
Api enablement-mainframeApi enablement-mainframe
Api enablement-mainframe
 

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 Art
Tobias 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 Fiori
Tobias 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 Framework
Tobias 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 Management
Tobias Trapp
 
Coolcats don't Use Customzing
Coolcats don't Use CustomzingCoolcats don't Use Customzing
Coolcats don't Use Customzing
Tobias Trapp
 
BRFplus in der Prozessautomatisierung
BRFplus in der ProzessautomatisierungBRFplus in der Prozessautomatisierung
BRFplus in der Prozessautomatisierung
Tobias 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 Halle
Tobias Trapp
 
SAP Reuse Tools
SAP Reuse Tools SAP Reuse Tools
SAP Reuse Tools
Tobias Trapp
 
Abap package concept
Abap package conceptAbap package concept
Abap package concept
Tobias 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
 
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
 
SAP Reuse Tools
SAP Reuse Tools SAP Reuse Tools
SAP Reuse Tools
 
Abap package concept
Abap package conceptAbap package concept
Abap package concept
 
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

FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 

Custom Development of Enterprise Services

  • 1. CustomCustom DevelopmentDevelopment of Enterprise Servicesof Enterprise Services -- WhatWhat doesdoes an Softwarean Software ArchitectArchitect needneed toto knowknow?? Tobias Trapp
  • 2. © Tobias Trapp 2010 2 Table ofTable of ContentContent Implementation Details Standardization of Web Services Summary Component Architecture
  • 3. © Tobias Trapp 2010 3 WhichWhich SAP technologySAP technology isis thethe mostmost appropriateappropriate forfor specificspecific purposespurposes?? lightweight interfaces: REST are very useful for integration of output and document management systems application integration: A2A services outside-in using PI commerce transactions between businesses : B2B services generated outside-in, propably using PI integration using arbitrary clients: A2X services generated outside in exposing BOL classes on the fly: CRM Web Service framework mobile apps: Sybase CRM Mobile Sales and Mobility for SAP coming soon: project Gateway exposing function modules on thy fly: inside out generation WelcomeWelcome to ABAP Web Serviceto ABAP Web Service JungleJungle!!
  • 4. © Tobias Trapp 2010 4 „„InsideInside OutOut““ isis aa DeadDead End StreetEnd Street „Inside Out“ means poor man‘s SOA no standardized data types we can‘t control mandatory and non-mandatory elements no standardized naming conventions no standardized communication patterns no patterns for asynchronous scenarios no standardized change strategies: first one wins vs. last one wins complicated & database–like because of TABLES parameters important frameworks are missing - idempotency - forward error handling - no enhancement concept for customers
  • 5. © Tobias Trapp 2010 5 Enterprise ServicesEnterprise Services Build your SOA on standards and best practices use global data types according UN/CEFACT standards develop enterprise „outside in“: generate ABAP proxies from a WSDL (file, URL, ESR) using transaction SPROXY / SE80 follow ESR modelling guidelines and create ESR certified content from SAP Guidelines for Best-Built Applications that Integrate with SAP Business Suite:
  • 6. © Tobias Trapp 2010 6 NearlyNearly everythingeverything youyou needneed toto knowknow isis writtenwritten downdown There are lots of resources on SCN and SAP Press many tutorials about ESR on SDN SOA 300 training everything about modelling & implementation is written down in SAP Press Book „Developing Enterprise Services for SAP“ „How To… Develop, Monitor and Debug WS Consumer and Provider“ Enterprise SOA Development Handbook 1.1 chapter about SOA & loose coupling of applications in SAP Guidelines for Best-Built Applications that Integrate with SAP Business Suite
  • 7. © Tobias Trapp 2010 7 Enterprise ServicesEnterprise Services havehave wellwell--defineddefined SemanticsSemantics Use naming conventions and communication patterns naming convention is: <business object view> <action> <message type> Sales Order Create Request actions are Create, Read, Update (first one wins), Change (last one wins), Cancel and Check: Purchase Order Cancel Check Query Request there are well-defined semantics described below:
  • 8. © Tobias Trapp 2010 8 Table ofTable of ContentContent Implementation Details Standardization of Web Services Summary Component Architecture
  • 9. © Tobias Trapp 2010 9 SOASOA byby „„ControlledControlled EvolutionEvolution““ SOA by Design vs. SOA by Evolution SAP‘s SOMAID methodology is heavy weight – you need a list of all processes whether they are IT-based or not whenever you can use Enterprise Services of SAP Business Suite - you‘ll find them on ES work place http://www.sdn.sap.com/irj/bpx/esworkplace if necessary enhance SAP standard services as described in Enterprise Service Enhancement Guide create custom Enterprise Services using SAP‘s modelling approach - construct them from business objects of your ABAP app.
  • 10. © Tobias Trapp 2010 10 ABAPABAP AppsApps, ESR, ESR SWCVsSWCVs and XMLand XML NamespacesNamespaces How to structure ESR development SWVCs in ESR correspond to ABAP SCs an ABAP application corresponds to an repository namespace define data types for reuse in separate namespaces create repository namespace for each application containing business objects this leads to a hierarchy of repository namespaces http://tempuri.org/xi/flightmanagement/CRM http://tempuri.org/xi/flightmanagement/CRM/Global http://tempuri.org/xi/flightmanagement/BP http://tempuri.org/xi/flightmanagement/BP/Global http://tempuri.org/xi/flightmanagement/Global hint: avoid special characters in XML names because package names of generated classes consumers tend to get complicated – this is a problem of many non-SAP frameworks
  • 11. © Tobias Trapp 2010 11 ABAPABAP ComponentComponent StructureStructure How to structure server proxies according to your ABAP component hierarchy? in NW 7.01 there can be only one proxy element per system (and ABAP namespace). ESR dependencies lead to dependencies in ABAP: proxy elements will be reused - so be careful if the proxies are in different ABAP components: http://tempuri.org/xi/flightmanagement/CRM http://tempuri.org/xi/flightmanagement/CRM/Global http://tempuri.org/xi/flightmanagement/BP http://tempuri.org/xi/flightmanagement/BP/Global http://tempuri.org/xi/flightmanagement/Global create packages that contain only ABAP proxies } } CUSTBP CUSTCRM SCs in an ABAP system
  • 12. © Tobias Trapp 2010 12 Table ofTable of ContentContent Implementation Details Standardization of Web Services Summary Component Architecture
  • 13. © Tobias Trapp 2010 13 BestBest PracticesPractices forfor Creating Enterprise ServicesCreating Enterprise Services Common mistakes and how to avoid them specify error handling: system errors, wrong input parameters, missing authorities… consider compensation scenarios: what happens if a web service call fails? use forward error handling in asynchronous scenarios consider reviews for ESR development – developers tend to break every rule because they can do anything in XML keep code in generated classes small – delegate to classes containing business logic for each method use naming conventions for data types, parameters, message types and message data types in generated classes develop in a test driven way: check ABAP classes using unit tests, test Enterprise Services using ABAP test tool resp. eCATT study best practices in SAP guidelines esp. the SAP Press book don‘t follow guidelines for SAP Business Suite blindly: asually an ES doesn‘t need to be XI 3.0 conform and contain more than 1 operation.
  • 14. © Tobias Trapp 2010 14 AbsolutelyAbsolutely necessarynecessary toto knowknow:: ExtendedExtended XML HandlingXML Handling Empty values vs. Null values NULL values have different semantics compared to initial values: - NULL values in an update service mean that they should not be changed - NULL values in a query mean that a data element is not relevant in a search Initial values can be coded as empty XML elements NULL values can be coded using xsi:nil and missing elements In the constructor of a server proxy switch extended XML handling on: set_extended_xml_handling( i_switch_on = abap_true ). Then you get the information about every data element (omitted, xsi:nil, initial) in an structure PRXCTRLTAB
  • 15. © Tobias Trapp 2010 15 AA hiddenhidden gemgem:: GenericGeneric Code List Provider FrameworkCode List Provider Framework Codes can be defined an ABAP backend system define code lists as XML schema enumeration types only if the values are well-defined & do not change In most cases code lists are defined in ABAP backend in customizing tables you can bind domain values, (text) tables to server proxy data elements and read them using the generic Enterprise Service QueryCodeList the framework is extensible – think of time depended customizing, subsets of customizing sets…
  • 16. © Tobias Trapp 2010 16 Table ofTable of ContentContent Implementation Details Standardization of Web Services Summary Component Architecture
  • 17. © Tobias Trapp 2010 17 ExplainExplain toto developersdevelopers thethe conceptconcept of Enterprise Servicesof Enterprise Services As software architect now you are well prepared for a SOA project, but don‘t forget: keep yourself informed - ABAP frameworks are rapidly evolved by SAP learn about eventing, service groups, forward error handling… What do developers of Enterprise Services need to know? a prototype implementation will help developers to understand the concepts teach developers the transactional behaviour esp. in update/change services: SET UPDATE TASK LOCAL, cl_soap_commit_rollback and that enterprise services are stateless – no DB cursor! don‘t forget to test the enterprise services with user with different authorization profiles in the ABAP backend.