0% found this document useful (0 votes)
415 views9 pages

Navigating The BOPF - Part 1 - Getting Started - SAP Blogs

SAP BOPF

Uploaded by

sudh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
415 views9 pages

Navigating The BOPF - Part 1 - Getting Started - SAP Blogs

SAP BOPF

Uploaded by

sudh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 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