Professional Documents
Culture Documents
GetStarted
Solutions Support Training Community Developer Partner
About
Community / Blogs
NavigatingtheBOPF:Part1
GettingStarted
January4,2013 | 3,049Views |
JamesWood
morebythisauthor
ABAPDevelopment
abap | bopf | floorplanmanager | WebDynpro | webdynproabap
share
1 share
0 tweet share
0
Follow
Lastyear,Ibeganworkingonaprojectwhichwasrollingoutthenew
SAPEnvironmentHealthandSafetyManagement(EHSM)module.This
moduleutilizessomeofthemorecuttingedgetechnologiesintheABAP
space:FloorplanManager,WebDynproABAP,AdobeInteractiveForms,
andsoon.Inadditiontothesestandardtechnologies,EHSMalso
utilizesatechnologyframeworkthatIhadnotencounteredpreviously:
theBusinessObjectProcessingFramework(orBOPF).
https://blogs.sap.com/2013/01/04/navigatingthebopfpart1gettingstarted/ 1/9
5/5/2017 NavigatingtheBOPF:Part1GettingStarted|SAPBlogs
WheneverIstartedinvestigatingtheBOPF,thefirstplaceIwenttolook
wasnaturallyrighthereattheSDN.However,betweenSDNand
Google,Ifoundverylittleinformationtogoonwhenitcomestoworking
withtheBOPF.Indeed,abouttheonlyusefuldocumentationIfoundwas
anenhancementguideentitledBOPFEnhancementWorkbench.WhatI
wasreallylookingforthoughwasanindepthdescriptionofthe
architectureoftheBOPF,itsAPI,andmostimportantly,someexamples
demonstratingitsusage.Shortofthat,Iwaslefttomuddlemyway
throughmuchoftheSAPstandardcodeuntilIbegantounderstandhow
thedifferentpiecesfittogether.
Afterworkingwiththetechnologyforthebetterpartofayear,IthoughtI
wouldlaunchablogseriesdocumentingmyfindingsforotherswho
shareasimilarplight.ThisincludesotherEHSMdevelopersaswellas
developersworkinginothernewdimensionmodulessuchasSAP
TransportationManagement(TM),etc.Ihopeyouwillfindituseful.
WhatistheBOPF?
Asthenamesuggests,theBOPFprovidesaframeworkforworkingwith
businessobjects(BOs).Thisframeworkprovidestoolsandservices
whichspantheentireBOlifecycle:
DesignTime
Atdesigntime,BOsaremodeledusingtheBOPF
Workbenchtool(Transaction/BOBF/CONF_UI).Thistool
makesitpossibletomodelaBOsnodes/attributes,
behaviors,associations,andsoon.Ifyourecomfortable
withOOPconcepts,thenthiswillseemvaguelyfamiliarto
modelingclassesintheClassBuildertool.(Note:Sofar,it
seemsthatthistoolislockeddownforcustomeruse.This
impliesthatwecannotcreatenewBOsofourownyet.As
perTheaHillenbrandscommentsbelow,theBOPFhas
beenopenedupforgeneralcustomeruse.Thishappened
withSAPBusinessSuiteEHP5SP11andSAPBusiness
SuiteEHP6SP05.Therelatednoteis1760610.Thanks
Thea!)
Behindthescenes,theBOmetadataisstoredinsucha
waythatitcanbeintrospectedandleveragedbyruntime
APIs.
https://blogs.sap.com/2013/01/04/navigatingthebopfpart1gettingstarted/ 2/9
5/5/2017 NavigatingtheBOPF:Part1GettingStarted|SAPBlogs
CustomerscanenhanceexistingBOsusingtheBOPF
EnhancementWorkbenchtool(Transaction
/BOBF/CUST_UI).Here,wehavetheoptionofdefining
newnodesandattributes,definingadditionalbehaviors,
andsoon.Wellseehowthisworksupcloseinan
upcomingblogentry.
Runtime
Atruntime,BOsareinstantiatedandcontrolledviaa
standardAPIdefinedusingABAPObjectsclasses.
Transactionsaremanagedbyacentraltransaction
managerclass.
Servicelevelinteractionsarebrokeredviaastandard
servicemanagerclass.
Tosomeextent,muchofthiswillfeelsimilartoABAP
ObjectServices.However,asyoullsoonsee,theBOPF
affordsusalotmorepower.
Thefigurebelowillustrateshowthesedifferentpiecesfittogetherwithin
anapplication.Asyoucansee,theBOPFarchitectureutilizesalayered
approach:
ConsumerLayer
Attheconsumerlayer,wecanutilizetheBOPFAPI
methodstocreatenewBOs,searchforexistingBOs,
updateselectedBOs,andsoon.
Frequently,BOPFBOswillbeconsumedbyUIapplications
suchasWDAapplications,etc.
Ofcourse,thatsnottosaythatgenericconsumerscannot
getinonthefunaswell.
TransactionLayer
InteractionswithBOswithintheBOPFarebrokered
throughacentralizedtransactionlayerwhichhandleslow
leveltransactionhandlingdetailssuchasobjectlocking,
etc.
Fromtheperspectiveoftheconsumerlayer,interactions
withthetransactionlayerconsistoflittlemorethana
handfulofintuitiveAPIcalls.
BOPFRuntimeLayer
https://blogs.sap.com/2013/01/04/navigatingthebopfpart1gettingstarted/ 3/9
5/5/2017 NavigatingtheBOPF:Part1GettingStarted|SAPBlogs
ThecoreoftheBOPFfunctionalitylieswithintheBOPF
runtime.Thislayercontainsallofthefunctionalityrequired
toinstantiateBOs,triggertheirfunctionality,andsoon.
Asyoucanseeinthefigure,theBOPFruntimeutilizesthe
BOPFmodeldefinitionscreatedatdesigntimeasmetadata
forinstantiatingBOinstances,navigatingBOassociations,
etc.
PersistenceLayer
OneofthenicethingsabouttheBOPFisthatitisrather
flexibleatthepersistencelayer.Thoughtheendgoalis
normallytostoreBOdatawithinthedatabase,the
frameworkalsosupportsdatabufferingviasharedmemory
aswellasthedefinitionoftransientnodesandattributes
thatareloadedondemand.
ThoughtheBOPFsharescertainsimilaritiestopreviousbusinessobject
models(e.g.businessobjectsdefinedinTransactionSWO1,GENIL,
andBOL),itisquiteabitmoreevolvedthananypriorbusinessobject
modeldefinedbySAP.Thiswillbecomeobviousaswedelveinto
specifictopicsintheupcomingblogentries.
WhydoweneedtheBOPF?
Wheneveranewdevelopmentframeworkcomesout,itisonlynatural
fordeveloperstowonderiftheframeworkistrulyneeded.ThoughIwill
notendeavortosellanyoneonthemeritsoftheBOPFwithinthisblog
https://blogs.sap.com/2013/01/04/navigatingthebopfpart1gettingstarted/ 4/9
5/5/2017 NavigatingtheBOPF:Part1GettingStarted|SAPBlogs
series,Ithinkitisusefultocompareandcontrastthescopeofa
developmentprojectwithandwithouttheBOPF.Then,youcandecide
foryourselfiftheBOPFprovidesvalue.
Toputthisinperspective,letsimaginethatweretaskedwithdeveloping
anewmodulearoundsomecustomdefinedbusinessentity.Aminimal
billofmaterialsintermsofdevelopmentobjectsforthismoduleareas
follows:
TheentitydatawillbestoredwithinaseriesofABAPDictionary
tables.Ifdesired,wecanuseABAPObjectServicestocreatean
ORMwrapperaroundthesetableaccesses.
Inordertosynchronizeaccesstotheentitydata,wellneedto
defineoneormorelockobjects.Plus,wellneedamechanismto
ensurethatthelockobjectsareusedtocontrolaccesstothe
data.
Tosecureaccesstotheentitydata,wemustcreateoneormore
authorizationobjectssothatwecandefinegranularauthorization
control.
Now,inananidealworld,wewouldattempttoencapsulateaccessto
theentitydatabycreatingaseriesofABAPObjectclasses(e.g.entity
classesandthelike).TheseclasseswouldofferbasicCRUD(Create,
Remove,Update,andDisplay)operationsthatprovideuserswithaone
stopshopforaccessingandupdatingtheentitydata.
Withthesebasiccomponentsinplace,wecanthenbuildthecore
applicationfunctionality.Here,wellfindanumberof
producers/consumersoftheentitydata:
UIapplicationsbasedonWDA,BSP,orevenclassicDynpro
technology.
BIextractorsusedtoexportthedataforreportingpurposes
SAPBusinessWorkflowprocesses
Customaccessormodulesusedtosupplydatatohomegrown
reports(e.g.ALV),AdobeInteractiveForms,andsoon
Interfaceandconversionprograms(or,inSOAinitiatives,Web
servicewrappers)
Othersasneeded
https://blogs.sap.com/2013/01/04/navigatingthebopfpart1gettingstarted/ 5/9
5/5/2017 NavigatingtheBOPF:Part1GettingStarted|SAPBlogs
Overall,thesekindsofdevelopmentobjectsareprettystandardfarefor
theaverageABAPdeveloper.However,withinthecontextofyourtypical
SAPproject,thesetasksareoftendistributedacrossalarge
developmentteam.Here,itcanbedifficulttoenforcebestpracticesand
ensurethateachdeveloperaccessestheentitydataproperly.
Frequently,thisisasaresultofdevelopersnotunderstandinghowto
accessthedataviaacustomAPI(providedthereisone).Inshort,
theresnooverarchingobjectmodelwhichensuresthatbusinessobjects
areaccessedconsistently.
ItisherethattheBOPFshines.WithintheBOPF,everythinghasits
place.BusinessdataismodeledconsistentlyinBOnodesandattributes.
Behaviorsaredefinedasactions.Validationsareperformed
automaticallyviavalidationmodules.Triggerscanbedefinedusing
determinations.TherelationshipsbetweenBOsisdefinedstaticallyvia
associations.Onceadeveloperbecomescomfortablewiththe
framework,theBOPFtakesalloftheguessingoutofbusinessobject
development.TheBOencapsulatesallofthefunctionalityandprovides
consistentaccesstoalloftheproducers/consumersoutlinedabove.
Intime,thissortofconsistencycangiverisetoadditionalframeworks
whichsitontopoftheBOPF.AnexampleofthisistheFloorplan
ManagerBOPFIntegration(FBI)frameworkwhichsimplifiestheway
thatFPMfeederclassesaccessBOPFnodes.Muchofthiswillbecome
cleareraswemoveon.Fornow,sufficeitsosaythattheBOPF
providesuswithatremendousspringboardfordevelopingbusiness
objects.
NextSteps
NowthatyouhaveabasicfeelforwhattheBOPFisallabout,well
moveontosomemorespecifictopicsofinterest.Inmynextblog,Ill
tackleBOsfromadesignperspective.
AlertModerator
https://blogs.sap.com/2013/01/04/navigatingthebopfpart1gettingstarted/ 6/9
5/5/2017 NavigatingtheBOPF:Part1GettingStarted|SAPBlogs
9Comments
YoumustbeLoggedontocommentorreplytoapost.
MandarSathe
January26,2013at12:53pm
goodinfo
FelipeHernandezPlazas
January30,2013at2:42pm
HiJames,
excellentpost!
AliaksandrShchurko
May2,2013at12:58pm
Thanks.
TheaHillenbrand
June4,2013at4:57pm
HiJames,
CongratulationsonthisexcellentseriesonBOPF.Wefeelabitashamednot
havingdeliveredtheseinformationsbyourown.
BOPFwasaninternaltooltoeaseandgovernourapplicationdevelopment.
Lastyearwesawanincreasinginterestfrompartnersandcustomersandwe
https://blogs.sap.com/2013/01/04/navigatingthebopfpart1gettingstarted/ 7/9
5/5/2017 NavigatingtheBOPF:Part1GettingStarted|SAPBlogs
decidedtoopenitalsoforcustomerusage.Notthe/BOPF/CONF_UI
transactiongoodenoughforinternalusagebuttheenrichedenhancement
workbenchwhichwerenamedtoBusinessObjectBuilder(transactionBOB).
ThistransactioncanbeusedtocreatenewBOsandenhanceexistingones.
ThishappendwithSAPBusinessSuiteEHP5SP11andSAPBusinessSuite
EHP6SP05.Therelatednoteis1760610.
Regards
Thea
FredVerheul
October12,2013at6:38pm
HiJames,
Alwaysabitslow,ImjuststartingtoexploretheBOPFviayourblogseries.
Thanksfortakingthetimetocompilethis,excellentjob!
Cheers,Fred
TudorRiscutia
March5,2014at8:00pm
HelloJames,
ExcellentintroductionintoBOPF,Ivesharedthisinmyteamandrecommended
ittoanyonecuriousaboutthistopic.Please,besokindandcontinuewriting
articlesaboutBOPF.
GreetingsfromRomania!
Tudor
RohitMahajan
August18,2014at11:57am
verygooddocument,,,
https://blogs.sap.com/2013/01/04/navigatingthebopfpart1gettingstarted/ 8/9
5/5/2017 NavigatingtheBOPF:Part1GettingStarted|SAPBlogs
JeenaGeorge
April20,2015at10:20am
HelloJames,
Thanksalotforthedetaileddocument.
Cheers,
JeenaGeorge
davidhurtado
October20,2016at7:08pm
learnisgood
https://blogs.sap.com/2013/01/04/navigatingthebopfpart1gettingstarted/ 9/9