Table Of ContentKendo UI Builder by
®
Progress :
®
Modernizing OpenEdge Applications
Notices
©2016ProgressSoftwareCorporationand/oroneofitssubsidiariesoraffiliates.Allrightsreserved.
ThesematerialsandallProgress®softwareproductsarecopyrightedandallrightsarereservedbyProgressSoftwareCorporation.Theinformationinthesematerialsissubject
tochangewithoutnotice,andProgressSoftwareCorporationassumesnoresponsibilityforanyerrorsthatmayappeartherein.Thereferencesinthesematerialstospecific
platformssupportedaresubjecttochange.
BusinessMakingProgress,Corticon,DataDirect(anddesign),DataDirectCloud,DataDirectConnect,DataDirectConnect64,DataDirectXMLConverters,DataDirectXQuery,
DeliverMoreThanExpected,Icenium,KendoUI,MakingSoftwareWorkTogether,NativeScript,OpenEdge,PoweredbyProgress,Progress,ProgressSoftwareDevelopers
Network,Rollbase,RulesCloud,RulesWorld,SequeLink,Sitefinity(andDesign),SpeedScript,StylusStudio,TeamPulse,Telerik,Telerik(andDesign),TestStudio,and
WebSpeedareregisteredtrademarksofProgressSoftwareCorporationoroneofitsaffiliatesorsubsidiariesintheU.S.and/orothercountries.AccelEvent,Analytics360,
AppsAlive,AppServer,Arcade,BravePoint,BusinessEdge,DataDirectSpy,DataDirectSupportLink,DevCraft,DigitalFactory,Fiddler,FutureProof,HighPerformanceIntegration,
JustCode,JustDecompile,JustMock,JustTrace,OpenAccess,ProDataSet,ProgressArcade,ProgressProfiles,ProgressResults,ProgressRFID,ProgressSoftware,ProVision,
PSEPro,SectorAlliance,Sitefinity,SmartBrowser,SmartComponent,SmartDataBrowser,SmartDataObjects,SmartDataView,SmartDialog,SmartFolder,SmartFrame,
SmartObjects,SmartPanel,SmartQuery,SmartViewer,SmartWindow,WebClient,WhoMakesProgress,andXervoaretrademarksorservicemarksofProgressSoftware
Corporationand/oritssubsidiariesoraffiliatesintheU.S.andothercountries.JavaisaregisteredtrademarkofOracleand/oritsaffiliates.Anyothermarkscontainedherein
maybetrademarksoftheirrespectiveowners.
PleaserefertotheReleaseNotesapplicabletotheparticularProgressproductreleaseforanythird-partyacknowledgementsrequiredtobeprovidedinthedocumentation
associatedwiththeProgressproduct.
September2016
Lastupdatedwithnewcontent:Version1.0
KendoUIBuilderbyProgress:ModernizingOpenEdgeApplications:Version1.0 3
Notices
4 KendoUIBuilderbyProgress:ModernizingOpenEdgeApplications:Version1.0
Contents
Table of Contents
Chapter 1: Overview and Architecture.........................................................7
StepstomodernizeanOpenEdgeapplication........................................................................................7
Architecture and components.................................................................................................................9
Chapter 2: Kendo UI Designer Overview...................................................11
App layout and components.................................................................................................................12
Creating and designing an app.............................................................................................................14
Data providers and data sources..........................................................................................................19
Adding and editing a data provider............................................................................................20
Addingandeditingadatasource...............................................................................................22
Editor and semantic types..........................................................................................................25
Modules and views...............................................................................................................................30
Editing the login view.................................................................................................................31
AddingandeditingaData-Gridview..........................................................................................34
Adding and editing a Data-Grid-Formview................................................................................39
Adding and editing a Data-Grid-Separate-Form view................................................................46
App generation and deployment...........................................................................................................53
Chapter 3: Extension Points and Source Code Customization...............55
Static files..............................................................................................................................................56
Custom assets...........................................................................................................................57
HTML code.................................................................................................................................57
JavaScript code..........................................................................................................................57
Company logo.......................................................................................................................................58
Customize the view templates..............................................................................................................58
Customsemantictypes.........................................................................................................................59
OpenEdge Data Object Services...............................................................................................59
Kendo UI Builder........................................................................................................................59
Custom UI editor types.........................................................................................................................60
General view events.............................................................................................................................60
View-specificevents..............................................................................................................................62
CustomHTMLsections.........................................................................................................................64
Row templates......................................................................................................................................65
Row template format..................................................................................................................65
RowtemplateID.........................................................................................................................66
Rowtemplatefunction................................................................................................................66
Column templates.................................................................................................................................67
KendoUIBuilderbyProgress:ModernizingOpenEdgeApplications:Version1.0 5
Contents
6 KendoUIBuilderbyProgress:ModernizingOpenEdgeApplications:Version1.0
1
Overview and Architecture
TheKendoUI®BuilderbyProgress®facilitatesthemodernizationofexistingProgress®OpenEdge®desktop
businessapplicationsbymovingtheapplicationuserinterface(UI)tothewebusingKendoUI.TheseOpenEdge
applicationscanbesimpletomorecomplexapplicationscontainingmultiple,feature-specificmodules.
ApplicationsthatalreadyconformtotheOpenEdgeReferenceArchitecture(OERA)areespeciallywellsuited
formodernizationusingtheKendoUIBuilder.However,youcanmodernizeanyOpenEdgeapplicationwith
itsUIseparatedfromitsbusinesslogicrunningonanOpenEdgeapplicationserver,whichcanbeeitheran
instanceofProgressApplicationServerforOpenEdgeortheclassicOpenEdge®AppServer®.
KendoUIBuildertoolingsupportsthedesignanddevelopmentofamodernandresponsivewebUIintheform
ofadeployableOpenEdgewebappthataccessesoneormoreABLapplicationservicesimplementedas
OpenEdgeDataObjectServices.ThistoolingsupportsUIupgradesforfutureversionsoftheinitialwebapp
overtime,withlittleornoadditionalcoding,usingcustomizabletemplatesandmeta-datafromwhichthe
deployablewebappisgenerated.
Fordetails,seethefollowingtopics:
• StepstomodernizeanOpenEdgeapplication
• Architectureandcomponents
Steps to modernize an OpenEdge application
ForOpenEdge,theKendoUIBuilderincludescomponentsfromseveralProgressproductsthatyouuseinan
iterativefashiontomodernizeanOpenEdgeapplicationasfollows:
1. EnsurethatyourapplicationUIisseparatefromitsbusinesslogic,withtheABLbusinesslogictailoredto
runonanOpenEdgeapplicationserver.TheOpenEdgeReferenceArchitectureprovidesamethodology
KendoUIBuilderbyProgress:ModernizingOpenEdgeApplications:Version1.0 7
Chapter1:OverviewandArchitecture
foraccomplishingthis.FormoreinformationontheOERA,seeOpenEdgeGettingStarted:GuideforNew
Developers.
FormoreinformationontailoringABLbusinesslogictorunonyourchoiceofOpenEdgeapplicationserver,
seetheoverviewandapplicationdevelopmentdocumentationfor:
• ProgressApplicationServerforOpenEdge—ProgressApplicationServerforOpenEdge:Introducing
PASforOpenEdgeandProgressApplicationServerforOpenEdge:ApplicationMigrationand
DevelopmentGuide
• OpenEdgeAppServer—OpenEdgeGettingStarted:ApplicationandIntegrationServicesandOpenEdge
ApplicationServer:DevelopingAppServerApplications
YoucanthendeployandrunyourABLapplicationwithitsUIrunninginaseparateABLclientthataccesses
itsbusinesslogicasanABLapplicationservice.
2. ImplementanewserviceinterfaceforyourbusinesslogicintheformofanOpenEdgeDataObjectService.
AnOpenEdgeDataObjectServiceprovideswebaccesstoyourABLbusinesslogicthroughoneormore
OpenEdgeDataObjectsimplementedasABLBusinessEntities.ABLBusinessEntitiesareannotatedABL
classorprocedure-basedobjectsthatprovideastandardwebinterfacetoyourdataandbusinesslogic.
AnOpenEdgewebappcanthenaccessthisstandardinterfaceusingaJavaScriptDataObject(JSDO)
thathidestheunderlyingdetailsofthenetworkrequestandresponseprotocolfromtheapp.ADataObject
ServicethenmanagesallwebaccessbetweenaninstanceoftheJSDOinthewebappandagivenData
ObjectrunningontheOpenEdgeapplicationserver.
ForanoverviewofOpenEdgeDataObjectServicesandhowtoimplementABLBusinessEntitiesasData
Objects,seetheinformationonDataObjectServicesinOpenEdgeDevelopment:WebServices.
Forinformationoncreating,editing,testing,anddeployingDataObjectServicesforbothPASforOpenEdge
andtheclassicOpenEdgeAppServer,seetheProgressDeveloperStudioforOpenEdgeOnlineHelpand
theadministrationdocumentationforeachOpenEdgeapplicationserver.
Note: AlsoseetheNewInformationdocumentationforrecentservicepacksofyourOpenEdgeRelease
11.6(startingwithServicePack11.6.3).
ForinformationontheJSDOandhowitcanbeusedinwebappstoaccessDataObjectServices,seethe
ProgressDataObjects:GuideandReference
3. DesignandbuildtheOpenEdgewebappthatcontainsthewebUIforyourOpenEdgeapplicationusingthe
KendoUIDesigner.ThisisaNode.js-based,KendoUIBuildertoolthatcaninstallintoyourOpenEdge
environment.TheKendoUIDesigneristhusanon-premise,visualdesigntoolthataccelerateswebapp
developmentbasedonselectedDataObjectServicemeta-dataandUItemplatesforsupportedKendoUI
components.
TheinitialresultisasetofUImeta-datathatyoucancustomizeinaprescribedfashion.Youcantheninvoke
theintegratedKendoUIGeneratortobuildandpreviewthewebappfromthismeta-data,allowingyouto
testtheUIanditsdataaccessfromwithintheKendoUIDesigneritself.
ThepresentdocumentationprovidesanoverviewoftheKendoUIDesignerandhowtoworkwithittobuild
andtestawebappwithaccesstoOpenEdgedataandbusinesslogic.Formoredetailedinformationon
usingtheoptionsoftheKendoUIDesigner,seeKendoUIBuilderbyProgress:UsingtheKendoUIDesigner.
4. Optionally,useProgressDeveloperStudioforOpenEdgetodeployeachstageofcompletionforbothData
ObjectServicesandtheclientOpenEdgewebapp.InKendoUIDesigner,youcanconfigurethewebapp
locationsotheKendoUIGeneratorautomaticallybuildsthewebappwithinaWebUIprojectofDeveloper
Studio.Fromthisproject,youcandeploytheapptoadevelopmentinstanceofPASforOpenEdgetotest
generalwebaccess.Ultimately,youcandeploythecompletedwebappforreleaseonanyproductionweb
serverofyourchoice.
8 KendoUIBuilderbyProgress:ModernizingOpenEdgeApplications:Version1.0
Architectureandcomponents
Forabriefwalk-throughofbuildinganOpenEdgeapplication,end-to-end,withthemodernwebUIprovided
byanOpenEdgewebapp,seeKendoUIBuilderbyProgress:SampleWorkflow.
Architecture and components
ThefollowingfigureshowstheoverallarchitectureoftheKendoUIBuildercomponentsandtheirrelationship
formodernizingOpenEdgeapplications:
Figure1:KendoUIBuildercomponents
Refertothenumberedcalloutsinthefollowingdescription:
KendoUIBuilderbyProgress:ModernizingOpenEdgeApplications:Version1.0 9
Chapter1:OverviewandArchitecture
1. UseanappropriateprojectinProgressDeveloperStudioforOpenEdgetodevelopDataObjectsfrom
BusinessEntitiesthatyoucreateandpackagetogetherasoneormoreDataObjectServicesfordeployment
toanOpenEdgeApplicationServer.UseanABLWebAppprojecttobuildanddeployDataObject
ServicestoaninstanceoftheProgressApplicationServerforOpenEdge.UseaDataObjectprojectto
buildanddeployDataObjectServicestotheclassicOpenEdgeAppServer.
2. ThedeploymentofDataObjectServicesincludesDataServiceCatalogs.EachDataObjectServiceis
definedbyanassociatedDataServiceCatalog.ThisCatalogisaJSONfilethatcontainsmeta-datadescribing
theschemaandoperationssupportedbyeachDataObjectmanagedbytheDataObjectService.The
JavaScriptDataObjects(JSDOs)thattheKendoUIDesigneranditsgeneratedwebappscreatetoaccess
DataObjectresourcesrelyontheCatalogforeachDataObjectServicethatprovidestheseresourcesto
manageaccesstothedataacrossthenetwork.
3. TheKendoUIDesignerrunsasaNode.jsapplicationinstalledonyourlocalsystemusingyoursupported
defaultbrowser(forexample,ChromeorFirefox)todisplayitsUI.UsetheDesignertocreateanOpenEdge
webapp,forwhichyouspecifyanameandfolderlocationforthefiles.AnOpenEdgewebappintheKendo
UIBuilderisbuiltfromatemplatethatconsistsofoneormoduleswithaccesstotableresourcesprovided
byoneormoreDataObjectServices.Youcreateeachmodulefromoneormoreviewsthatyouspecify
usingselectedUITemplateswithapredefinedKendoUIconfiguration,suchasagridandform.Youbind
datatoeachviewbyassociatingaDataObjectresourcetableasadatasource.Youcandefineappfunction
andpresentationbysettingpropertiesontheapp,eachmodule,anditsviews,thenpreviewtheresultwith
realdatafromthedatasourcesthatareboundtotheviews.Atanypointinyourdesign,youcansavethe
currentstateofthewebapptoJSONUIMeta-Datathat,togetherwiththeselectedUITemplates,define
theUIandbehavioroftheapp.NotethattheUImeta-dataisitselfindependentoftheKendoUI
implementation,andisusedtogenerateaKendoUI-basedwebappbasedontheUITemplatesthatyou
select.
4. Atanystagethatyouarereadytopreviewandtesttheapp,youcanbuildtheappbyinvokingtheKendo
UIGenerator.ThisisaYeoman-basedcodegeneratorthattakesthesavedJSONUIMeta-Dataand
referencedUITemplatesasinput,andgeneratesadeployableOpenEdgewebappcontainingthe
functionalityyouhavedesigned.Inaddition,theGeneratorbuildsyourwebappinthecontextofBootstrap
andAngularJS,whichprovidesaresponsiveUIforyourapp.ThegeneratedHTML5/CSSandJavaScript
filesarethensavedtotheapplocationyouhavespecified,whichcanbeaWebUIProjectofProgress
DeveloperStudioforOpenEdge.
5. BycreatingaWebUIProjectinDeveloperStudio,youcansaveyourgeneratedWebAppforDeployment
eitherasadevelopmentbuildforroundtriptestingonadevelopmentinstanceofPASforOpenEdgeoras
areleasebuildfordeliveryonaproductioninstanceofPASforOpenEdge.Inaddition,youcanexportthe
WebUIProjectasaWebUIApplication,whichcreatesaWARfileforyourwebappthatyoucandeploy
toanycompatiblewebserverofyourchoice.
10 KendoUIBuilderbyProgress:ModernizingOpenEdgeApplications:Version1.0
Description:These materials and all Progress® software products are copyrighted and all rights are .. UI based on Kendo UI, Bootstrap, and AngularJS and with access to .. the selected module (see App layout and components on page 12).