Beruflich Dokumente
Kultur Dokumente
Development
CourseGuide
v3.1.0
20082013OpenbravoS.L.U.Allrightsreserved.Theinformationinthisdocumentisconfidentialandmaynotbe
disseminatedordisclosedtothirdparties(eitherindigitalformoronpaper)withoutthepriorwrittenconsentof
OpenbravoS.L.U.
Introduction
Audience
Content
Session1ConceptsandScenarioPresentation
Session2DevelopmentEnvironment
Session3Modularity&InitialClientSetup
Session4AdvancedApplicationDictionary
Session5CustomizationofCoreDatabaseArtefacts
Session6JavaProcessesandtheDataAccessLayer
Session7Callouts
Session8Events
Session9BackgroundProcesses
Session10Webservices
Session11ToolBarandNavigationBarCustomizations
Session12ManualWindow/View
Session13Packaging
Formats
OnlineElearningFormat
ClassroomFormat
Requirements
Knowledgeprerequisites
ComputerRequirements
Terms&Prices
Times,Prices&Registration
Language
Notes
Introduction
TechnicalTraininglevel2aimstoprovideanindepthknowledgeofhowOpenbravo3canbe
customized,extendedandpackagedintomodules.Clientandserversidedevelopmentisdiscussed
throughareallifescenarioandnumeroushandsonexercises.
Note:Thiscoursedoesnotcovertopicssuchasinstallation,basiccustomizationsthroughtheuseof
applicationdictionaryandreportdevelopment!Tolearnthose,pleaseconsiderparticipatinginourTechnical
Training1.
Audience
ThiscourseistargetedatexperiencedJavadeveloperswhowillbecustomizingorextendingOpenbravo
3withnewfunctionality.SeetheRequirementssectionbelowforamoredetailedlistofrequiredknowledge.
Content
Session1ConceptsandScenarioPresentation
Thisfirstsessionwillwelcomethestudenttothecourse,presentthescheduleandgiveanoverviewofthe
topicsandassignments.
Toresembleareallifescenarioahotelmanagementmodulewillbedevelopedwiththefollowing
requirements:
anewGuestentitythattiestoaBusinessPartnertowhomaninvoicecanbeissued
anewRoomentity
anewStayentityovernightstayofaparticularguestinaroom
anewGuest/Staywindowwherethecorrespondingentitiescanbemanagedandedited
anewRoomwindowwhereroomscanbemanagedandedited
customizedBusinessPartnerscreen
backgroundandondemandrecalculationofguestratesbasedonthehistoryofstays
webservicethatexposesalistofavailableroomstotheworldaccordingtosmoking/nonsmoking
criteria
automaticcheckoutfromtheoriginalroomuponswitchingrooms
customscreenshowingamonthlyoverviewofroomutilization
packagealldevelopmentsforthissolutionintoasingleOBXfilethatcanbeshared/distributed
Session2DevelopmentEnvironment
Beforeanycodingtakesplace,adevelopmentenvironmentwillbesetupandconfigured.
checkoutofthelateststablecode
installationandconfigurationofEclipse
Allexercisesandcustomizationswithinthiscoursemustbedoneinthislocalenvironment!AnOpenbravo
OnDemandinstanceownedbyeachstudentwillbeusedtosimulateatesting/preproduction
environmentwherealldevelopmentswillhavetobedeployedtoandverifiedbytheinstructor.
Session3Modularity&InitialClientSetup
DevelopmentofanyartifactMUSTbepartofamodule.AnewHotelManagementtemplate+modulewill
becreatedwhichallsubsequentcoursedevelopmentswillbelongto.
Wewillalsolearnhowtoinstallotherexistingexternalmodules.
Aninitialclient+organizationsetupwillbeperformedforafictitiouscustomerHotelGreenTerraceto
simulatetheapplicationsetupandatestingenvironment.
Session4AdvancedApplicationDictionary
ThestudentshouldbefamiliarwiththebasicconceptsofOpenbravo'sModelDrivenDevelopment(MDD)
approachbynow.ThismetadataisalsocalledtheApplicationDictionaryinOpenbravo3anditsadvanced
powerswillbediscussedwithtopicssuchas:
creatingnewtables,windows,tabsandfields
creatingnewreferences
makingfieldsconditionallyreadonly
makingfieldsdisplayundercertainconditions
changinglabelsanddescriptionsoffields
deriveddefaultvalues
documentsequences
makingandexportingchangestoacorewindow
Session5CustomizationofCoreDatabaseArtefacts
StoredProcedures:MostofOpenbravo3businesslogicislocatedwithinstoredproceduresinsidethe
database.Customizationofcertainmainstoredproceduresthroughextensionpointsisoftenrequiredand
willbeexplainedhere.
Triggers:AnotherportionofOpenbravo3businesslogicisimplementedusingdatabasetriggers.The
studentwilllearnhowtriggersarestructuredandhowtooverridecoretriggers.
DevelopmentofnewbusinesslogicshouldbedonethroughJavaprocessesandwillbediscussedinlater
chapters.
Session6JavaProcessesandtheDataAccessLayer
DataAccessLayer
InsteadofstoredproceduresandSQLstatements,Openbravo3offersObjectRelationalMappingthrough
plainJavaobjectsthatallowthedevelopertoperformalldatabaseoperations.InOpenbravo3itiscalledthe
DataAccessLayer(DAL,basedonHibernate)whichwillbediscussedhere.
ActionButtons
Extendingstandardwindowsdefinedinsidetheapplicationdictionarycanoftenbedonebyplacingaction
buttonsonthemwithaJavaprocessbehindit.Anactionbuttonwillbeintroducedtotheguestwindowthat
recalculatesaspecificguest'sratebasedonhisorherstaywithinthelastXmonths.
Session7Callouts
Doingvalidations,additionaldatabaselookupsorplaincalculationswithinautomaticwindowsispossible
usingcalloutsassociatedwithindividualcolumns.Anewcalloutwillbedevelopedthatuponenteringa
checkoutdateforaguest'sstay,automaticallycalculatesthefinalsumbasedonthenightsstayedandthe
roomrategiven.
Session8Events
EventsareJavaprocessesthatreplacethedatabasetriggerfunctionality.Aneweventwillbedeveloped
withinthissectionthatoperatesonourlistofstays,doinganautomaticcheckoutofaguestthatswitchesto
anotherroom.
Session9BackgroundProcesses
AnyJavaprocessinOpenbravocaneasilybedevelopedandscheduledasabackgroundjob.Thehotel
managementscenariorequirestheguestratetoberecalculatedautomaticallyusingabackgroundprocess
developedhere.
ProcessvsDALBaseProcess
Developashortbackgroundprocess
Scheduling
Monitoring
Session10Webservices
Webservicesareagreatwayofmakingapplicationsflexibleandopentointegrationwithothersystems.
OpenbravosupportsSOAPaswellasREST(XML&JSON)webserviceswhichwillbediscussedinthis
chapter.AnewRESTwebservicewillbedevelopedthatoffersalistofavailable(nonoccupied)rooms
accordingtothesmoking/nonsmokingcriteriapassed.
Session11ToolBarandNavigationBarCustomizations
CustombuttonsorwidgetscanbeaddedtotheToolbarortheNavigationbar.Bothwillbediscussedand
developedwithinthischapter.
Session12ManualWindow/View
Whenacertainfunctionalitycannotbesupportedbytheelementsdiscusseduntilthispointorwhena
differentUIisrequired,acustomscreencanbedevelopedfromscratchtofillthegap.Thisisthelastresort
whichshouldonlybetakenwhennootherframeworkartifactcanbeusedtoimplementthesolution.
Customwindowsofferlimitlessoptionsbutmakeyouthefullownerandmaintainerofit.Consequently,
thesedonotbenefitfromOpenbravobugfixesandupgrades.
TheuseoftheSmartClientRIAlibrarywillbeexplainedheretodevelopthefrontend,coupledbyabackend
Javaprocess.
Session13Packaging
Bythispoint,thestudentwillhavelotsofadditionaldevelopmentsdonecomparedtothecoreOpenbravo3.
Packagingthemtogetherinordertoinstallthematacustomer'ssiteorsharethemwiththecommunityis
crucial.Onewilllearnhowtodefinedatasetsandexportallmetadatatoaspecificmodule'sfolderand
packageittogetherintoasingle.OBXfile.
Formats
OnlineElearningFormat
Theonlineversionofthecoursedeliversthesamecontentastheclassroomonebutinaselfstudymanner
andoveralongerperiodoftime,4weeks.Theonlineformatofthistrainingisanalternativedesignedfor
participantswithfinancialand/orresourceconstraints.Tomakeupfortheclassroominteractivity,the
onlineelearningplatformcomeswiththefollowingcollaborationelements:
Newsblogwherelivesessionsandothernewswillbepublished
Documentationforeachtopicandassignmentsthatcanbeprintedout
LinkstoHowtoarticlesandadditionalreadings
Q&AforumsmonitoredandansweredbyOpenbravotrainingspecialists
Exercisesandassignments
EmbeddedIRClivechatsessions/supporttutoredbyaOpenbravotrainingspecialists
AnOpenbravoOnDemandvirtualinstanceofOpenbravo3applicationisprovidedwhere
exercisesaredeployed,executedandtroubleshotbytheinstructor
Thiscourserequiresroughly45hours(dependingonthestudentsbackgroundandproficiency)of
studentselfstudywhichheorshemayinvestastheyseefitacrossthe4weekavailability:
ClassroomFormat
ClassroomformatofthetrainingisaimedatthoseinneedtolearnhowtocustomizeandextendOpenbravo
3intheshortestandmostefficientmannerpossible.Whengivenassuchanddeliveredbyan
OpenbravoTrainingSpecialist,theAdvancedDevelopmentTrainingisa5daycoursewiththefollowing
schedule:
Day1
Day2
Day3
Day4
Day5
Concepts&
Scenario
Advanced
Application
Dictionary
JavaProcesses&
DataAccessLayer
Background
Processes
Custom
Window/View
Callouts
Webservices
Packagingthe
Solution
Events
Toolbarand
Navigationbar
customizations
Development
Environment
Modularity&Initial
ClientSetup
Customizationof
CoreDatabase
Artefacts
Resolvingleftissues
&Q&A
WithintheclassroomtrainingthestudentwillreceiveaUSBkeywith:
electronicmaterials
toolsandinstallersrequiredforthecourse
implementationsourceexamples
Requirements
Knowledgeprerequisites
knowledgeofbasicdevelopmentconceptsinOpenbravo3(masteredbytakingtheTechnical
Training1)
excellentseniorknowledgeofJava
goodknowledgeofJavascript
mastertheconceptsofwebapplications(preferablyJ2EE)
basicknowledgeofdatabaseconceptsandSQL(SELECT,storedprocedures,triggers)
knowledgeofsourcecontrol(Mercurial)isaplus
ComputerRequirements
dualcoreprocessor(2GHzorfaster)
4GbRAMormore
Acompatiblewebbrowser.DuetothefactthatOpenbravo3isarichinternetapplication,the
newestbrowserswithoptimizedJavascriptenginesarerecommendedforthebestuserexperience:
Firefox4
GoogleChrome9
InternetExplorer9
Safari5
Terms&Prices
Times,Prices&Registration
Pleasevisithttp://www.openbravo.com/trainingforalistofscheduleddatesandlocationsandtopurchase
seatsforattendingoneoftheupcomingcourses.
Language
AlltrainingmaterialsareavailableinEnglishonly.Classroomteachesandonlinecoursesupport
(forums&chats)howevercanalsobedeliveredinSpanish.
Notes
ThecourseisledandfollowedbyanOpenbravoTrainingSpecialist.
TrainingisbasedonOpenbravoversion3.
Pricesarequotedperstudentanddonotincludetaxes.
Thiscourseisopentoallparticipants,regardlessofaffiliationwithOpenbravo.
Thiscoursedoesnotcoverthefunctionalorbasictechnicalconfigurationtopicsrequiredto
completeanimplementationwhicharedeliveredduringtheFunctionalTraining1andTechnical
Training1.
FordetailedTermsandConditionsofOpenbravocoursewaredelivery,pleasevisitthefollowing
link:http://university.openbravo.com/universityterms.html