You are on page 1of 9

5/5/2017 NavigatingtheBOPF:Part1GettingStarted|SAPBlogs

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

Share & Follow


Privacy TermsofUse LegalDisclosure Copyright Trademark Sitemap Newsletter

https://blogs.sap.com/2013/01/04/navigatingthebopfpart1gettingstarted/ 9/9

You might also like