Upload
buiphuc
View
260
Download
0
Embed Size (px)
Citation preview
Simplify the future
BpmonlineDevelopmentGuide
Table of Contents
Gettingstartedwiththebpmonlineplatform 5
Architecture 5
Applicationinfrastructure 5-8
Components 9-10
Packages,schemas,modules 10-16
Applicationinterfaceandstructure 16
Mainmenu 16-17
Sections 17-18
Sectionlists 18-21
Sectionanalytics 21-22
Sectionactions 22
Filters 22-25
Tags 25-26
Recordeditpage 26
Details 26-29
Mini-page 29-30
Modalwindows 30
Communicationpanel 30-31
Commandline 31-32
Actiondashboard 32
Developmenttools 33
Howtostartdevelopment 33
Developmentprocessorganization 33-34
Deploybpm'onlineapplicationandsetinfrastructure 34-43
Deployingthebpm'online"cloud"application 43-45
Createuserandsetupworkspaces 45-47
CreaterepositoryinSVNserver 47-50
Createandinstallofthepackagefordevelopment 50-54
Developmentresources 54
Built-indevelopmenttools 54-55
Generalinformationaboutthe[Configuration]section 55
Sourcecodeandmetadataviewport 55-57
Transferofmodificationsbetweenconfigurations 57-59
Designersofconfigurationitems 59
WorkspaceoftheObjectDesigner 59-61
Processdesignerworkspace 61-62
Usertaskdesignerworkspace 62-63
Workspaceofimagelistdesigner 63-64
Workingareaofreportdesigner 64-66
WorkingwithIDE 66
WorkingwithclientmodulesinIDE 66-68
WorkingwiththeserversidesourcecodeinVisualStudio 68-78
Clientcodedebugging 78-82
Bpmonlinedevelopmentcases 83
Sectionbusinesslogic 83
Creatingnewsection 83-86
Addinganactiontothelist 86-88
Howtoaddasectionaction:handlingtheselectionofasinglerecord 88-91
Howtoaddasectionaction:handlingtheselectionofseveralrecords 91-95
Handlingtheselectionofseveralrecords.Examples 95-102
Howtoaddabuttontoasection 102-105
Howtohighlightarecordinthelistincolor 105-107
Howtoaddafixedfiltersblocktothesection 107-110
Pageconfiguration 110-111
Howtocreateapageorsectionreplacingpage 111-113
Settingtheeditpagefieldsusingbusinessrules 113-116
Addingthe[FILTRATION]ruletotheeditpage 116-119
Howtohidetheeditpagefieldbyaspecificcondition 119-126
Howtoblocktheeditpagefieldbyaspecificcondition 126-128
Howtomakethefieldrequiredbyaspecificcondition 128-131
Addinganactiontotheeditpage 131-136
Controlelements 136
Addinganewfieldtotheeditpage 136-140
Addingabuttontotheeditpage 140-142
Howtoaddabuttontoaneditpageinthenewrecordaddmode 142-145
Howtoaddabuttontoanexistingrecordeditpage 145-150
Howtoaddafieldwithanimagetotheeditpage 150-157
Howtoaddthecolorselectbuttontotheeditpage 157-160
Howtoaddmulti-currencyfield 160-167
Howtoaddacomputedfield 167-172
Howtosetadefaultvalueforafield 172-177
Howtoaddthefieldvalidation 177-184
Usingfiltrationforlookupfields.Examples 184-187
Addingdetails 187
Addinganeditpagedetail 187-195
Addingadetailwithaneditablelist 195-202
Addingadetailwithalookup 202-210
Businessprocesses 210
Howtoaddauto-numberingtotheeditpagefield 210-214
Howtorunaprocessfromclientmodule 214-218
Typicalcustomizations 218-219
Howtocreateamini-page 219-226
Addingpop-uphints 226-232
Analytics 232
HowtocreateownmacrosforaMSWordprintable 232-241
Workingwithdata 241
CRUD-operationsinconfiguration 241
TheuseofEntitySchemaQueryimplementationonclient 241
Buildingofpathstocolumnsrelativetorootschema 241-243
Addingcolumnstoaquery 243-246
Gettingqueryresult 246-247
EntitySchemaQueryfiltershandling 247-250
CRUD-operationsonserverside 250-251
Composingadddataqueries 251-252
TheuseofEntitySchemaQueryforcreationofqueriesindatabase 252-262
Composingmodifydataqueries 262-263
Composingdeletedataqueries 264
Web-servicesinconfiguration 264
Howtocreateownconfigurationservice 264-265
Howtocallaconfigurationservice 265-268
Mobileapplication 268
Mobileapplicationarchitecture 268-269
Mobileapplicationdebugging 269-272
Mobileapplicationmanifest 272-273
Manifest.Applicationinterfaceproperties 273-276
Manifest.Dataandbusinesslogicproperties 276-278
Manifest.Applicationsynchronizationproperties 278-282
Howtoaddacustomsectioninthemobileapp 282-291
Recommendedintegrationoptions 292
Authenticatingexternalrequeststobpm'onlineweb-services 292-293
DataServicewebservice 293-295
DataService.Addingrecords 295-302
DataService.Readingrecords 302-312
DataService.Datafiltering 312-319
DataService.Usingmacros 319-323
DataService.Updatingrecords 323-328
DataServie.Deletingrecords 328-332
DataService.Batchqueries 332-336
OData 336
Possibilitiesforthebpm'onlineintegrationovertheODataprotocol 336-338
Workingwithbpm'onlineobjectsovertheODataprotocolusingHttprequest
338-346
Workingwithbpm'onlineobjectsovertheODataprotocolWCF-client 346-352
Examplesofrequestsforfilterselection 352-356
Getting started with the bpmonline platform
ArchitectureApplication interface and structure
Architecture
Application infrastructureComponentsPackages, schemas, modules
Application infrastructure
Fromtheserverinfrastructurepointofview,bpm'onlinehasathree-tieredarchitecturewithanumberofmodifications.Figure1showstheinfrastructurediagramoftheapplication.
Fig.1.Applicationinfrastructure
AtthecenterofthearchitectureistheapplicationserverthatismanagedbyInternetInformationServices(IIS)version7.0.andhigher.Thereare2applicationsdeployedontheapplicationserver.
Thesecondarchitecturetierisaclassicdatabaseserver.MSSQLServer2008SP3orhighercanbeusedasaDBMS.
Thedatabasestoresboththedatathattheusersneedandthedatathatisrequiredfortheoperationofthesystemitself.Thedatabasealsostoresallconfigurationsettingsthatdetermineproductfunctions.
Clientworkplacescanbebasedonanyofthefollowingtypesofdevices:
desktopPCtabletmobilephone
Allclientqueriestotheserveraremadethroughawebbrowser.Thesystemsupportsthefollowingwebbrowsers:
InternetExplorer11.0+FireFox(latestversion)hrome(latestversion)Safari.
Bpmonline developer guide 5
Inadditiontothethreeprimarycomponents,thesystemarchitecturecontainstwoadditionalcomponents:
sessionstorageserver(RedisDBMS);versioncontrolsystemserver.
Redis session storage server
Theprimaryfuctionsofthiscomponentare:
storingusersessiondatastoringcacheddatadataexchangebetweenwebfarmnodes.
Redisadvantages:
dataisstoredinRAM,whichincreasessystemproductivity;servercanoperateunderUnix.
Version control system server
Thisisanoptionalcomponent,whichcanbeaddedtothesystemarchitectureifitisrequiredtoconductdevelopmentofacustomconfigurationwhileuserscontinueworkingwiththesystem.
Functions:
Transferringchangesbetweenconfigurations.Changesaretransferredbetweenpackagesusingtheversioncontrolsystem.Storingconfigurationstatusesaspackagesofacertainversion.Allchangesmadetopackagesarestoredintheversioncontrolsystem.
Application server
Theapplicationserverconsistsoftwoparts:
1.LoaderWebAppLoader.
Itsprimarypurposeisuserauthorizationandauthenticationandredirectinguserstothemainapplication.
Thisserverisresponsiblefor:
userauthorizationuserlicensingandauthenticationinitiatingplanner
2.ConfigurationpartWebApp.
Afterallincomingquerieshavebeenprocessedintheloader,theyareredirectedtoWebApp.
Theconfigurationpartisresponsibleforsystembusinesslogic.Thisistheapplicationthatimplementsaspecificconfiguration(workspace)inthesystem.
Thus,abpm'onlineapplicationrequiresoneloaderapplicationandanumberofprimaryWebAppapplications,eachofwhichimplementstheirownworkspace.
IntermsofIIS,thislookslikefig.2:
Fig.2.Applicationserverstructure
Bpmonline developer guide 6
Withinthebpm'onlinewebsitethereareanumberofapplications,whosenamesaresequentialnumbers,startingfrom0.Eachapplicationisresponsibleforaseparateworkspace.
Anybpm'onlineapplicationmusthaveonesubordinateapplication"0",whichrepresentsthedefaultworkspace.
System deployment schemes
Figure3showstwopossiblebpm'onlinedeploymentschemes.
Fig.3.Deploymentschemes
Systemdeploymentwithoutfaulttoleranceoptionsassumesoneapplicationserver,oneRedisserver,onedatabaseserverandoptionalSVN(versioncontrol)serverfordevelopment.
Thesystemcanbedeployedwithfaulttolerancesupport,including:
severalloadbalancersseveralwebfarmnodes
Bpmonline developer guide 7
severaldatabaseclusternodesseveralRedisclusternodes
AnSVNservercanbeusedforthisdeploymentschemeaswell,butcomplexsystemswithfaulttoleranceareusuallydeployedintestingorproductionenvironmentsonly.
There are 2 deployment options (fig. 4):
1.On-site.
2.Cloud.
Fig.4.Applicationdeploymentoptions
On-site deployment
Withtheon-sitedeploymentoption,allserverexpenses(setup,configuration,supportandadministration)arecoveredbythecustomer.
OneoftheadvantagesofthistypeofdeploymentisamuchmoresimpleintegrationwithanActivedirectory,sincethedomaincontrollerisusuallylocatedintheenterpriselocalnetwork.Inaddition,thedevelopmentprocessismuchmoreconvenientforlocallydeployedapplications.
Themaindisadvantageoftheon-sitedeploymentoptionisthatthecustomerwillhavetodealwithconstantexpensesforsupportingtheserverinfrastructure,periodicupdates,administration,etc.
Cloud deployment
Withclouddeployment,theapplicationisdeployedonAmazonserversmanagedbybpm'online.Therefore,allissueswithadministration,performanceandscalabilityareaddressedbybpm'online,whilecustomersonlyusetheclientpartoftheapplication.
Advantages:
AdequateserverhardwareHighperformanceIndustrystandardsofaccessibilityanddataprotection.
Bpmonline developer guide 8
Components
Thebpm'onlinearchitectureiscomprisedofthefollowingcomponents(Fig.1):
Fig.1.Components
1. Database
Databasestoresuserdata,applicationsettingsandaccessrightssettingsatthephysicaldatastoragelevel.
Databaseprimaryfunctions:
datastoragedatamanagement
Databaseobjects:
tablesviewsstoredproceduresindexestriggersintables
Thereisusuallynoneedtoworkdirectlywiththedatabaseobjectsduringbpm'onlinedevelopmentprocess.ThesystemhastoolsthatenableworkingwithdatadirectlyfromtheUI.
Custombusinesslogiccanbeimplementedatthedatabaselevel,withthehelpofviewsandstoredprocedures.
Itmaybefasterandmorerationaltoimplementcertaintasksatthedatabaselevel.Anexampleofsuchataskisthesetupofcustomduplicatesearchrules.
2. Server core
ServerlibrariesarewritteninC#withtheuseof.NETFrameworkclasses.
Theservercoreisamodifiablesystemcomponent.Developerscancreateinstancesofserverclassesanduseserverlibraries.Changestotheseclassesandlibrariesarerestricted.
Servercoreprimarycomponents:
ORMdatamodelanditsmethods.Itisrecommendedtousetheobjectmodelforaccessingdata,althoughdirectdatabaseaccessisalsoimplementedintheservercorecomponents.Packagesandreplacementmechanism.Servercontrolelementlibraries.TheseelementsincludepagescreatedusingASP.NETtechnology,forexample,[Configuration]sectionpages.
Bpmonline developer guide 9
Systemwebservices.Functionalityofprimarydesignersandprimarysections.Librariesforintegrationwithexternalservices.Businessprocessengine(ProcessEngine).Thissystemcomponentcanexecutealgorithmsthataresetupasprocessdiagrams.
3. Client core
Theprimarytaskofthislevelistoensurethefunctioningofclientmodules.TheclientcoreclassesarewritteninJavaScriptwiththeuseofvariousframeworks.TheyimplementtheUIandotherbusinesstasksonthebrowserside.
Clientcoreprimarycomponents:
Clientframeworkexternallibraries.Forexample,theRequireJSlibraryimplementsthemechanismforasynchronousloadingoftheclientmodules;theExtJslibraryimplementstheUI.Sandboxisaspecialclientcorecomponentthatensuresinteractionbetweenvariousclientmodulesthroughmessageexchange.ClientmodulesareJavaScriptfilesthatimplementthefunctionalityofprimarysystemobjects.
4. Configuration
Aconfigurationisasetoffunctionalitiesavailabletousersofacertainworkspace.Thisincludes:
serverlogicauto-generatedclasses,whichareaproductofsystemsettingsclientlogic,whichincludespages,buttons,actions,reports,businessprocessesandothercustomizableconfigurationelements.
Configurationsareeasilymodifiablesystemcomponents.Configurationsconsistofthefollowingelements:
businessobjectsentitiesthatstoredataandconnectadatabasetabletoaclassontheserverside;businessprocessescustomizableelementsthatarevisualalgorithmsofuseractivities;clientmodules;serverpages,whicharesometimesusedasrecordeditpagesinthelookups(thisisalegacyfunctionality).
Allconfigurationelementsaregroupedinpackages.
Packagesarefinitesetsoffunctionsthatcanbeinstalledoruninstalledinconfigurations.
Thefinalsystemfunctionalityisformedbasedonthesetofinstalledpackages(Fig.2).
Fig.2.Bpm'onlineconfiguration
Bpmonline developer guide 10
Packages, schemas, modules
Packages
Apackageisacombinationofconfigurationelements(schemas,data,scripts,additionallibraries)thatimplementsspecificfunctions.
Thebpm'onlinepackagemechanismisbasedontheopen/closedprincipleofobject-orientedprogramming.Accordingtothisprinciple,allentities(classes,modules,functions)mustbeopenforextensionbutclosedformodification.Thismeansthatnewfunctionsmustbeimplementedbyaddingnewentities,ratherthanmodifyingtheexistingones.
Eachbpm'onlineproductisasetofpackages.Toextendormodifysystemfunctions,apackagewiththecorrespondingchangesmustbeinstalled.
There are two types of bpm'online packages:
Base(pre-installed)packagesincludebasefunctionality(suchasCore,Base,Productpackages),packagesthatextendsystemfunctions(suchasphoneintegrationpackages)andpackagescreatedbythird-partydevelopers.Basepackagesaresuppliedwiththesystemandareinstalledbydefault.Custompackagesarepackagescreatedbysystemusers.
Configurationelementsfrombasepackagescannotbemodified.Anydevelopmentofnewfunctionsandchangestoexistingfunctionsaremadeinthecustompackagesonly.Aspecialreplacementmechanismisusedforthis.
Package replacement mechanism
Themechanismreplacessystemobjectsinpackages.Ifthebehaviorofanelementfromabasepackagemustbemodified,anewinheritedelementiscreatedinacustompackage.Thiscustomelementisidentifiedasareplacingoneforitsparentelementfromthebasepackage.Thereplacementofelementsishierarchical.Allchangesthatmustbeappliedtothepre-installedelementareimplementedinareplacingcustompackage.Asaresult,thesystemwillexecutethelogicofthereplacingelementinsteadofitsparentbaseelement.
NOTE
Thereplacementofasinglebaseelementcanbeimplementedinseveralcustompackages.Thefinalimplementationofareplacingelementinacompiledconfigurationisdeterminedbythehierarchyofallpackagesthatcontainreplacingelementsforthebasepackage.
Package hierarchy
Tousefunctionalityfromadifferentpackage,specifythedependencyofthedifferentpackage.
Adependentpackageextendsormodifiesthefunctionalityofthepackagethatitdependson.Asaresult,packagedependencyhierarchyisbuilt.Inthehierarchy,lowerlevelpackagescansupplementormodifythefunctionalityofanypackagethatishigherinthehierarchy(Fig.1).
Fig.1.Packagedependencies
Bpmonline developer guide 11
Acompletelistofallpackagesthatareinstalledinaworkspaceisdisplayedonthe[Packages]tabofthe[Configuration]section.
PackagescanbeinstalledfromaZIParchive(usually,thosearepre-installedbasepackages)andversioncontrolsystemrepository.The[Packages]tabalsodisplayscustompackagesthatwereaddedinthecurrentworkspace.
Package composition:
1. Schemasconfigurationelementsofthesystemthatdefinesystemfunctions.2. Externalassembliesthird-partylibrariesthatarerequiredfordevelopmentandintegrationwithexternal
systems.Afterinstallation,thelibrariescanbeusedinsourcecodeschemas.3. SQLscriptscustomSQLscriptsthatareexecutedinthedatabaseduringthepackageinstallation.SQL
scriptsmayberequiredfortransferringpackagestootherconfigurationsifthepackagetransferrequiresdatabasechanges.
4. Datasectionrecords,lookupsandsystemsettingvaluesthatareimplementedinthecurrentpackagemayberequiredfortransferringthepackagetootherconfigurationsifcertaindatabaserecordsandvaluesareconnectedtothecurrentpackage.
Formoreinformationonworkingwithpackages,pleaserefertothe"Development tools"articles.
Schema
Abpm'onlineconfigurationisasetofobjects,processes,pagesandmodules.
Thebaseelementofaconfigurationisaschema.Configurationelementsareschemasofdifferenttypes.Fromtheprogrammingpointofview,aschemaisacoreclassinheritedfromthebaseSchemaclass.
Schema types:
Schema Class Purpose
Objectschema EntitySchema Theseschemascanbeusedtomanagedatabasestructurewithoutneedingtoworkwiththedatabasedirectly..
Clientmoduleschema
ClientUnitSchema Theseschemasimplementapplicationclient.
Sourcecodeschema
SourceCodeSchema Theseschemasimplementadditionalserverlogicoftheapplication.
Businessprocessschema
ProcessSchema Theseschemasimplementcustombusinessprocesses.
Bpmonline developer guide 12
Pageschema PageSchema TheseschemasimplementASP.NETpages.
Businessprocesstaskschema
ProcessUserTaskSchema Thereschemasgeneratecustomusertasksforbusinessprocesses.
Reportschema ReportSchema TheseschemasgenerateDevExpressreports.
Imagelistschema ImageListSchema
Schemasarestoredinthedatabaseasmetadata.Toeditschemas,variousdesignersinthe[Configuration]sectionareused:objectdesigner,processdesigner,moduledesigner,sourcecodedesigner,etc.
BeinginheritedfromthebaseSchemaclass,schemasofalltypeshaveanumberofrequiredpropertiesandmethods.
Required properties of schemas:
1. UIduniqueidentifier.Whenanewconfigurationelementisadded,itsschemaiscreatedandassignedauniqueidentifier.
2. Nameschemanameusedforidentificationoftheschemainprogramcode.3. Captionschematitleusedforidentificationoftheschemainthesysteminterface.
Schema primary methods:
1. ReadMetaDatareadsschemametadatafromthedatabase.2. WriteMetaDatawritesschemametadataintothedatabase.3. GetLocalizableValuesmethodthatreturnsacollectionoflocalizedschemaresources.Theseresourcesare
usedforstoringanddisplayingnames,captions,etc.
Collectionsofschemainstancesofdifferenttypesaremanagedbyspecialclassescalledschemamanagers.
Separateschemamanagersareusedfordifferentschematypes.
Formoreinformationaboutschemaandmanagertypes,pleaserefertothePlatformdescriptionsection.Propertiesandmethodsofdifferentclassesaredocumentedinthelibrary of classes ('Terrasoft.CoreNamespace' in the on-line documentation).
Object
Thebpm'onlinedatamodelisbasedonobjects.AnobjectisabusinessentitythatdeclaresanewORM-modelclassontheservercorelevel.Onthedatabaselevel,creatinganobjectimpliesthecreationofanewtablewiththesamenameandcolumncompositionasthecreatedobject.Thismeansthatinmostcaseseachobjectisarepresentationofaactualtableinthedatabase.
Therearebaseobjectsandcustomobjects.
Baseobjectsarenon-editableandarestoredinthebasepackages.
Customobjectsareobjectscreatedaspartofconfigurationssavedincustompackages.
There are 3 types of objects in bpm'online:
1. Objectsconnectedtodatabasetables.2. Objectsconnectedtodatabaseviews.3. Virtualobjectsusedforcreatinghierarchiesandimplementingtheinheritancemechanism(suchasthe
BaseEntityentity).
Objecttypeissetintheobjectdesigner(Fig.2).
Fig.2.Objecttypes
Bpmonline developer guide 13
A system object has three primary components:
1.Objectschemadatabasetablestructureandproperties.Objectschemaincludestablecolumns(namesanddatatypes),indexes,accessrightstoobjectschema.SchemaofanobjectisaninstanceoftheEntitySchemaclass.
2.Objectdataadatarowofatableandmethodsforitsprocessing.EachdatarowisaninstanceoftheEntityclass.
3.Embeddedobjectprocess.Eventmodelisimplementedforeachsystemobject.Handlingofobjecteventsisimplementedthroughanembeddedobjectprocess.
Moredetailsonthebpm'onlinedatamodelcanbefoundinthePlatformdescriptionsection.
Module
Startingwithversion7.0,thebpm'onlineclientsidehasamodulestructure,whichmeansthatitisimplementedasasetoffunctionalblocks,eachofwhichisimplementedinaseparatemodule.Aspartoftheapplicationoperationprocess,loadingofmodulesandtheirdependenciesisdoneaccordingtotheAsynchronousModuleDefinition(AMD)approach.
TheAMDapproachdeclaresthemechanismfordeterminingandasynchronousloadingofmodulesandtheirdependencies,whichallowsloadingonlythecurrentlyrequireddatawhenworkingwiththesystem.TheAMDconceptsupportsvariousJSframeworks.Inbpm'online,theRequireJSloaderisusedforworkingwithmodules.
Amoduleisacodefragmentencapsulatedinaseparateblockthatcanbeloadedandexecutedindependently.
TheRequireJSloaderprovidesthemechanismfordeclaringandloadingmodules,basedontheAMDconcept.GeneraloperationalprinciplesoftheRequireJSloadermechanism:
1. Modulesaredeclaredinaspecialdefine()function,whichregistersfabricfunctionforinstantiatingmodulesbutdoesnotimmediatelyloadthedeclaredmodulewhencalled.
2. Moduledependenciesarepassedasanarrayofstringvaluesandnotthroughthepropertiesoftheglobalobject.
3. Theloaderloadsallmoduledependenciespassedasargumentstodefine().Modulesareloadedasynchronously,theloadorderisdeterminedbytheloader.
4. Afterallspecifiedmoduledependenciesareloaded,thefactoryfunction,whichreturnsthemodulevalue,is
Bpmonline developer guide 14
http://en.wikipedia.org/wiki/Asynchronous_module_definitionhttp://en.wikipedia.org/wiki/Asynchronous_module_definitionhttp://requirejs.org/https://github.com/amdjs/amdjs-api/wiki/AMD#define-function-
called.Loadeddependencymoduleswillbepassedtothefactoryfunctionasarguments.
Eachclientschemainbpm'online7.xischaracterizedbyatleastoneclientmodule.
Clientcoreprovidesmechanismsforworkingwithmodules:
provideAPIforaccessingclientmodules;determinethemechanismformessageexchangeandmoduleloading;provideaccesstobaselibraries,systemenumerationsandconstants;implementclientmechanismtoworkwithdata.
Client module types
Thefollowingclientmoduletypesareusedinbpm'online:
1) Non-visual module
Non-visualmodulesimplementatesystemfunctionality,which,asarule,isnotconnectedtodatabindingordisplayingdataintheUI.Examplesofnon-visualmodelsarebusinessrules(BusinessRuleModule)andutilitymodules,whichimplementservicefunctions.Inthebaseversion,non-visualmoduleshave*Utilities,or*UtilitiesModuleintheirnames.
Tocreateanon-visualmodule,gotothe[Configuration]sectionandexecutethemenucommandAdd>Module(Fig.3).
Fig.3.Creatinganon-visualmodule
2) View schema (visual module)
VisualmodulesimplementtheView models(ViewModel)accordingtoMVVMtemplate.ThesemodulesencapsulatedatathatisdisplayedinGUIcontrolelements,aswellasmethodsforworkingwiththem.Examplesofvisualmodulesaresection,detailandpagemodules.
3) Extension module (replacing client module)
Thistypeofmoduleisdesignedforextendingthefunctionalityofbasemodules.Themechanismforworkingwithreplacingclientmoduleswillbecoveredinaseparatearticle.
Tocreateareplacingclientmodule,inthe[Configuration]sectionexecutethemenucommandsAdd>ReplacingClientModule(Fig.4).
Fig.4.Creatingareplacingclientmodule
Bpmonline developer guide 15
http://en.wikipedia.org/wiki/Model_View_ViewModel
Application interface and structure
Main menuSectionsRecord edit pageDetailsMini-pageModal windowsCommunication panelCommand lineAction dashboard
Main menu
Themainmenuisdisplayedintheworkingarea(1)oftheUIaftertheapplicationhasbeenloaded(Fig.1).Themainmenucanbeopenedusingthe"Menu"buttonlocatedatthetop(3)ofthesidepanel(2).
Fig.1.Mainmenu
Mainmenucommandsusedforopeningsystemsectionsarealsoavailableinthesectionarea(5)ofthesidepanel(2).Thelistofavailablesectionnavigationcommandsdependsontheselectedworkplace.
Bpmonline developer guide 16
Twoschemascorrespondtothemainmenu:thebaseschemaoftheApplicationMainMenubusinessobjectandtheproductmainmenuschemainheritedfromthebaseproductmainmenuschemaSimpleIntro.FortheSalesEnterpriseproduct,themainmenuschemaisnamedEnterpriseIntro.
TheelementcompositionofthemainmenuUIdependsontheproduct.Allelementsareplacedincorrespondingcontainersthataresetupinthebaseorinheritedschemaofthemainmenu.TheprimarycontainersoftheSalesEnterpriseproductinclude:
Menu main container(MainContainer),whichcontainsallmainmenuelements.Section and setting container(LeftContainer),whichcontainsareasforcommandsthatopensectionsandsettings.Resource container(RightContainer),whichcontainsareaswithlinkstovariousresources.Base functionality container(BasicTile),whichcontainscommandsforopeningsectionsthatareavailableinallproducts.Sales container(SalesTile),whichcontainscommandsforopeningsectionsoftheSalesproductfamily.Analytics container(AnalyticsTile),whichcontainscommandforopeningthe[Dashboards]section.Settings container(SettingsTile),whichcontainscommandsforopeningthesettingssections.Video container(VideoPanel),whichcontainsvideoplayerandnameofthelinkedvideo.Link container(LinksContainer),whichcontainslinkstotrainingwebresourcesandsocialnetworks.Mobile app links container(MobileAppLinksPanel),whichcontainslinkstobpm'onlinemobileappinvariousappstores.
Sections
The"Section"elementisdisplayedintheworkspaceoftheuserinterfaceafterselectingtheappropriatemenuiteminthesidebaroronthemainapplicationpage(Fig.1).
Fig.1.The[Contacts]sectioninterfaceelements
Asarule,asectionhastwoviews:sectionlistdatadisplay(Fig.1)andsectionanalyticsdisplay(Fig.2).
Fig.2.The[Contacts]sectioninterfaceelementsinthe"Analytics"view
Bpmonline developer guide 17
Eachsectioncorrespondstoacertainschema.Forexample,the[Contacts]sectionisconfiguredbytheContactSectionV2schema.AllsectionsareinheritedfromtheparentBaseSectionV2schema.Moredetailedinformationaboutschemata,theirpurposeandstructurecanbefoundinthe"Schemata"article.
Theuserinterfaceelementsoftheapplicationrelatingtothesectionareplacedinappropriatecontainersthatareconfiguredinthebaseorinheritedsectionscheme.Themaincontainersare:
Actionbuttonscontainerwithasectionactionbutton(1)andadrop-downlist(2)Filterscontainerwithfilters(3)andtags(4)Sectionlistdataviewcontainer(GridDataView)withactionbuttonstoedit(5),copy(6),anddelete(7)thecurrentrecordSectionanalyticsdataviewcontainer(AnalyticsDataView)
Theorderandcontentofthemainsectioncontainersdependingonthedatadisplay(Fig.1)(Fig.2)
Themaininterfaceelementsandsectionfunctionalelementsare:list,sectionanalytics,actions,filtersandtags.
Section listdisplaysrecordsintileorlistview.SectionlistisdisplayedintheGridDataViewcontainer(Fig.1).Moreinformationaboutlistscanbefoundinthe"Section lists"article.
Section analyticsisusedtodisplaystatisticaldatausingdiagrams,metricsordrop-downlists.DashboardsandusercustomwidgetsaredisplayedintheinthecontaineroftheAnalyticsDataViewanalyticssection(Fig.2).Moreinformationaboutdashboardscanbefoundinthe"Section analytics"article.
Actionsarefunctionalsectionelementsthatareusedtoperformvariousoperationswithanactivesectionlist.Actionscanbeinvokedwithbuttons(Fig.1)intheActionsButtonscontainerortheactiverecordcontainer(Fig.1).Moreinformationaboutactionscanbefoundinthe"Section actions"article.
Filterisusedtosearchandfilterrecordsinthesection.Therearequick,standard,advancedfiltersandfilterfolders.The[Filter]buttonsarelocatedinthefilterscontainer(Fig.1andFig.2).Moredetailedinformationaboutfilterscanbefoundinthe"Filters"article.
Tagisusedtoquicklysearchforsectionrecordsbykeywords.The[Tag]buttonsarelocatedinthetagscontainer(Fig.1andFig.2).Moredetailedinformationabouttagscanbefoundinthe"Tags"article.
Section lists
Sectionlistisalistofrecordsthatcanbedisplayedinoneoftwoviews.
Atile viewdisplaysthefieldsofeachrecordinmultiplelines.Thisisthedefaultlistview.Inthe[Contacts]sectionthefollowingfieldsaredisplayed(Fig.1)
Name(1)Position(2)Businessphone(3)
Bpmonline developer guide 18
Account(4)Email(5)Mobilephone(6)
Fig.1.The[Contacts]sectionlistelementsinthetileview
Atile viewdisplaysrecordsasasimpletableinwhicheachrecordcorrespondstooneline(Fig.2).Thesequenceoffieldsinthelistviewmaynotcoincidewiththesequenceoffieldsinthetileview.
Fig.2.The[Contacts]sectioninterfaceelementsinthelistview
Toavoidredundancyofthereporteddata,thelistsectiondisplaysonlythemostsignificanttablecolumns.Alldataaredisplayedandeditedonthesectioneditpages.Learnmoreabouttheminthe"Editpage"article.
Eachsectionhasitsownbusinessobjectschemathatdescribesthestructureofadatabasetable,whichstoresthedatarecords.Italsoprovidesspecificinstructionsforprocessingthesedata.Fromthesedatathelistsectionisformed.Eachtablelinecorrespondstoasectionrecord.Forexample,the[Contacts]sectioncorrespondstotheContactbusinessobjectschema(Fig.3)thatcontainsContacttableproperties(Fig.4).Thefulllistofmodelschemacolumnsandtheirpropertiescanbefoundusingtheobjectdesignerwhichisdescribedinthe"Workspace of theObject Designer".
Fig.3.Contactobjectschemaintheobjectsdesigner
Bpmonline developer guide 19
Fig.4.Contacttable
Thelayoutandcontentofthedisplayedfieldscanbemodifiedusingthesectionwizard,orthedrop-downlistwizardavailableinthe[View]buttonmenu.Moreinformationonthesectionwizardcanbefoundinthe"Sectionwizard"article.
Ifyouwanttoaddacustomcolumninthebusinessobjectschemaanddisplayitinthelist,itcanbedoneintwoways.
Thefirstwayistousethesectionwizard.CreateareplacingContactobjectInthecurrentcustompackage,whichwillinheritallthecolumnsofthebaseContactobjectfromtheBasepackage,towhichanewcustomcolumnwillbeadded.Moreinformationaboutthesectionwizardcanbefoundinthe"Howtocreateanewsection"article.
Thesecondwayis,usingtheobjectwizard,createareplacingContactobjectinthecustompackage,whichwillinheritallthecolumnsofthebaseContactobjectfromtheBasepackage.Then,addtherequiredcolumnstothereplacingobjectandsetuptheirproperties.Next,usingthesectionwizardorthedrop-downlistwizard,setupthe
Bpmonline developer guide 20
https://academy.bpmonline.com/documents/sales-enterprise/7-8-0/section-wizard
addedcolumnsdisplayinthelist.Moreinformationabouttheobjectwizardcanbefoundinthe"Workspace ofthe Object Designer".
Section analytics
Bpm'onlineanalyticselementsareusedforgatherstatisticsonsectiondata.Toopensectionanalytics,gototheanalytics(dashboards)view(Fig.1)byclickingthecorrespondingbutton(1).Toviewanalyticsforallsystemsections,usethe[Dashboards]section.
Analyticselementsdisplayinformationinspecialblockscalled"dashboardblocks".Thesectionareawherethedashboardblocksaredisplayediscalledthe"dashboardpanel".Formoreinformationoncreatingcustomdashboardpanels,pleaserefertothe"Dashboardsetup"article.
Thebpm'onlineapplicationusesthefollowingdashboardblocks(Fig.1):
Chart(2).Chartsareusedtovisuallydisplaydataasgraphsofvarioustypesorasalistofrecords.Formoreinformationonsettingupcharts,pleaserefertothe"SettinguptheChartdashboardcomponent"articleintheUserGuide.
Metric(3).Ametricisusedtodisplaysinglenumericvalues,forexample,thetotalnumberofcurrentcustomers.Formoreinformationonsettingupmetrics,pleaserefertothe"SettinguptheIndicatordashboardcomponent"articleintheUserGuide.
Gauge(4).Agaugedisplaysdatainrelationtoascale.Formoreinformationonsettingupgauges,pleaserefertothe"SettinguptheGaugedashboardcomponent"articleintheUserGuide.
List(5).Alistdisplaysfilteredrecords.Formoreinformationonsettinguplists,pleaserefertothe"SettinguptheListdashboardcomponent"articleintheUserGuide.
Webpage(6).Thisdashboardcomponentdisplayswebpages.Thiscanbeasearchengine,currencyconverterpage,corporatewebsite,etc.Formoreinformationonsettingupwebpagedashboardcomponents,pleaserefertothe"SettinguptheWebpagedashboardcomponent"articleintheUserGuide.
Salespipeline(7).Thisdashboardcomponentisusedforsalesstagedynamicsanalysis.Formoreinformationonsettingupsalespipelines,pleaserefertothe"SettinguptheWebpagedashboardcomponent"articleintheUserGuide.
Bpmonline developer guide 21
https://academy.bpmonline.com/documents/sales-enterprise/7-8-0/setting-dashboardshttps://academy.bpmonline.com/documents/sales-enterprise/7-8-0/setting-chart-dashboard-componenthttps://academy.bpmonline.com/documents/sales-enterprise/7-8-0/setting-indicator-dashboard-componenthttps://academy.bpmonline.com/documents/sales-enterprise/7-8-0/speedometer-dashboard-componenthttps://academy.bpmonline.com/documents/sales-enterprise/7-8-0/setting-list-dashboard-componenthttps://academy.bpmonline.com/documents/sales-enterprise/7-8-0/setting-list-dashboard-componenthttps://academy.bpmonline.com/documents/sales-enterprise/7-8-0/web-page-dashboard-componenthttps://academy.bpmonline.com/documents/sales-enterprise/7-8-0/sales-pipeline-dashboard-component
Thewidgetdashboardcomponentdisplaysadditionalcustomwidgets.
Formoreinformationoncustomizinganalytics,pleaserefertothe"Analyticssetup"article.
Section actions
Actionsarefunctionalsectionelementsthatoperatewithoneormultipleactivelistrecords.Actionscanbeinvokedwithbuttonsofdifferenttypes,locatedintheactioncontainerofthecurrentsectionandintheactiverecordcontainer(Fig.1).
Fig.1Actioninterfaceelementsofthe[Contacts]section
Useractioninterfaceelementsare(Fig.1):
actionbuttons(1),(7)...(9);buttonwithdrop-downmenu(2);actionmenuoptions(3)...(6).
Therearestandardsectionactionsandadditionalactionsthatareuniqueforeachsection.
Thestandardactionsare:
Add(1)openstheeditpageofasectionandcreatesanewrecord.
Open(7)opensthesectioneditpageandpopulatesitwiththedatafromanactiverecord.
Copy(8)opensthesectioneditpage,copiesthedatafromanactiverecordandcreatesanewrecord.
Delete(9)deletestheactiverecord.
Select multiple records(3)setsthemultipleselectionmodeoftheregistryentries.
Export list to file(4)exportsalllistrecordsofthecurrentsectiontothe*.csvfile.
Additionalactionsareuniqueforeachsectionoftheapplication.Forexample,forthe[Contacts]section,additionalactionsare:
Showonmap(5).Gotocontactduplicates(6).
Readmoreaboutadditionalactionsinthe"Bpm'onlinesalessections".
Youcanalsocreatecustomactionsinbpm'online.Learnhowtoaddcustomactionsinthe"Adding an action tothe list"article.
Filters
Bpmonline developer guide 22
https://academy.bpmonline.com/documents/sales-enterprise/7-8-0/dashboard-components-setuphttps://academy.bpmonline.com/documents/sales-enterprise/7-8-0/bpmonline-sales-sections
Filtersareusedtosearchandfilterrecordsinthesections.Therearequick,standardandadvancedfiltersandfilterfoldersinbpm'online.
Filtermanagementelementsaredisplayedabovethesystemsectionslist(pic1).Youcanmanagequickfiltersonthe"Quickfilter"dashboard,andstandardandadvancedfiltersandfilterfoldersaresetupinthe"Filter"menu.
Fig.1Quickandstandardfiltersofthe[Activities]section
Quick filterisusedtofilterdatabasedonmostfrequentlyusedparameters.Forexample,activitiesofasingleemployeeforaspecifiedperiodoftimearemostoftenviewedinthe[Activities]section.Thefollowingquickfiltersaredesignedexactlyforthispurpose(Pic1):
Today(1)filterdisplaysrecordsofthecurrentday.Current week(2)filterdisplaysrecordsofthecurrentweek.Select period(3)filterdisplaysrecordsoftheselectedperiod,forexample,"Yesterday","Currentweek",etc.Youcanalsosetacustomperiodspecifyingthedatesofitsstartandfinishintheembeddedcalendar.Select owner(4)filterdisplaystheactivitiesofasingleormultipleemployees.
Moredetailedinformationaboutthefiltersisavailableinthe"Quickfilter"article.
Astandard filterisusedtosearchforrecordsinthesystemsectionsbasedonspecifiedvaluesofoneormorecolumns.Forexample,ifyouwanttofindallemployeesinthesection(Pic.2),youneedtosetup[Account](5)and[Position](6)filterfields.
Fig.2[Contacts]sectionfilter
Bpmonline developer guide 23
https://academy.bpmonline.com/documents/sales-enterprise/7-8-0/quick-filter
Youcansetupstandardfiltersbyrunningthe[Setcondition](7)commandinthe"Filter"menu.Moredetailedinformationaboutstandardfiltersetupisavailableinthe"Standardfilter"article.
Anadvanced filterisusedwhenyouneedtoapplymorecomplexfilterconsistingofseveralparametersandsearchcriteria.Forexample,ifyouwantallspecialiststodisplayonlythosewhoworkinthedepartments"Development"and"Administration"(Fig.3).
Fig.3Advanced[Contacts]sectionfilter
Tosetuptheadvancedfilter,youmustrunthe[Switchtoextendedmode]command(8,Fig.2).Moredetailedinformationaboutadvancedfiltersetupisavailableinthe"Advancedfilter"article.
Filter foldersareusedtosegmentrecordsbasedonthespecifiedfilteringcriteria.Whenselectingafolder,thesectionwilldisplayonlythoserecordsthatmeetthefilterfolderconditions.
Youcannotmanuallyincludeorexcluderecordsfromfilterfolders.Arecordisautomaticallydisplayedinthefolderifitmeetsthefilterfolderconditions.Ifarecordnolongermeetsthefilterfoldercriteria,itisexcludedfromthefolderautomatically.
Todisplayfilteredfoldersyouneedtorunthe[Showfolders]command(8,Fig.2).Theexistingfolderswillbedisplayed(Fig.4)Ifnecessary,youcancreatetherequiredfolderstructureanddefinerulesfortheircontent.
Fig.4Filterfolderofthe[Contacts]section
Bpmonline developer guide 24
https://academy.bpmonline.com/documents/sales-enterprise/7-8-0/standard-filterhttps://academy.bpmonline.com/documents/sales-enterprise/7-8-0/advanced-filter
Moredetailedinformationaboutfilterfoldersisavailableinthe"Workingwithfolders"article.
Inbpm'onlineyoucanadduserfilters.Moreinformationaboutuserquickfiltersisavailableinthe"How to add afixed filters block to the section"article.
Tags
Tagsareusedtoquicklysearchforinformationbykeywords.Whenyoufilterrecordsbytags,thesectionwilldisplayonlythoserecordsthathavetheselectedtag.
Fig.1The[Contacts]sectiontags
Recordsaretaggedmanually.Eachsectionofbpm'onlinesaleshasaseparatelistoftags.
Bpm'onlinesalescontainsthefollowingtagtypes:
Personaltagscanbeseenandusedonlybyuserswhocreatedthem.Neithersystemadministratorsnormanagerscanseethepersonaltagsofemployees.Personaltagsaredisplayedingreen.Corporatetagsdisplayedforallemployeesofthecompany.Anyemployeecansetorclearacorporatetag.Anyemployee/rolewithaccessrightstoperform"Corporatetagmanagement"operationcancreatenewcorporatetagsCorporatetagsaredisplayedinblue.Publictagsdisplayedforallemployeesandforself-serviceusers.Anyemployeecansetorremoveapublictag.Anyemployee/rolewithaccessrightstoperform"Publictagmanagement"operationcancreate
Bpmonline developer guide 25
https://academy.bpmonline.com/documents/sales-enterprise/7-8-0/working-folders
newcorporatetagsPublictagsaredisplayedinred.
Moreinformationaboutcreatingandconfiguringtagscanbefoundinthe"Workingwithtags"article.
Record edit page
p>Aneditpageisacontainerwithasetoffieldsforenteringandeditingthecolumnsinthesectionobjectschema(see"Section list").Aneditpageopenswhenyoucreateoreditasectionlistrecord.Everysectioncontainsoneormoreeditpages.
Fig.1The[Contacts]sectioneditpageinterface
Everyeditpagehasitsownclientmoduleschema.Forexample,the[Contacts]sectionsetupisperformedintheContactPageV2schemaoftheUIv2package.AlleditpageschemasareinheritedfromtheparentBasePageV2schemaoftheNUIpackage.Moreinformationaboutpackages,objects,andmodulescanbefoundinthe"Packages, schemas, modules"article.
Theuserinterfaceelementsrelatedtotheeditpagearelocatedinthecorrespondingcontainersthatareconfiguredinthebaseorinheritedtheeditpageschema.Themaineditpagecontainersinclude(Fig.1):
thecontainerfortheactionbuttons(ActionButtonsContainer);thecontainerfortheleftsideoftheeditpage(LeftModulesContainer),whichcontainsthemaininputfields;theactiondashboardcontainer(ActionDashboardContainer)withtheactionpanelandworkflowbar;thetabscontainer(TabsContainer)withinputfields,groupedbyanyattribute(Fig.1).
Ifyouneedtoaddcustominputfieldstoaneditpage,ithastobereplacedwithacustomeditpage.Readmoreaboutschemasreplacementandinheritanceinthearticle"Creatingcustomschemas.Replacementandinheritance".Youcanlearnhowtoaddvariousinterfaceelementstotheeditpageinaseriesofarticlesinthe"Pageconfiguration"section.
Details
Thepurposeofdetailsistodisplaysupplementaldataforaprimarysectionobject.Thesectiondetailsaredisplayedonthesectioneditpagetabsinthetabsfolder.
Bpmonline developer guide 26
https://academy.bpmonline.com/documents/sales-enterprise/7-8-0/working-tags
Dependingonthemethodofenteringanddisplayingdata,therearefollowingtypesofdetails.
Adetail with edit fieldsdataarefilledinandeditedinthedetaildatafields(Fig.1).Ifnecessary,youcanaddanewfieldtoadetail(1).Forexample,the[Contactcommunicationoptions]detail.
Fig.1.Thedetailswitheditfieldsandthe[Contacts]sectiondataaddingpage
Adetail with adding pagedataareenteredandeditedonthedetaileditpage.Forexample,the[Contactaddress]detail(Fig.1)eachaddressisenteredandeditedonthe"Contactaddress"page(Fig.2).
Fig.2.The"Contactaddress"detailaddingpage
Adetail with editable listdataaredisplayedasalistandareenteredandediteddirectlyinthelist.Forexample,the[Orderproduct]detail(Fig.3)
Fig.3.The[Productinorder]detailwitheditablelist
Bpmonline developer guide 27
Adetail with selection from lookupdataareselectedfromalookupdisplayedinthemodalwindow.Forexample,the[Leadproduct]detail(Fig.4)dataareselectedfromalookupinthemodaldialogbox"Select:Product"(Fig.5).
Fig.4.The[Leadproduct]detailwithselectionfromlookup
Fig.5.Selectingproductsfromthe[Leadproduct]detail
Eachdetailcorrespondstoabusinessobjectschemaconnectedtotheobjectofthecurrentsection.Forexample,[Contactaddresses]detailcorrespondsto"Contactaddresses"(ContactAddress)objectschemaoftheBasepackage.Theconnectionissetupbasedonthemandatory[Contact]columnofthedetailobject.
Thecontent,locationandbehaviouroftheuserinterfacedetailelementsareconfiguredbythedetailschema.Forexample,the[ContactAddresses]detailisconfiguredbythe"Contactaddressesdetail"schema(ContactAddressDetailV2),thatinherit"Basedetailschemewithalist"(BaseAddressDetailV2)oftheUIv2package.Applicationdetailsschemataareinheritedfromthebasedetailschemawithalist(BaseGridDetailV2)andbasedetailschema(BaseDetailV2)oftheNUIpackage.
Bpmonline developer guide 28
Adetaileditpageisconfiguredbytheeditpageschema.Forexample,the[Contactaddresses]detaileditpagepropertiesareconfiguredbythe"Contactaddresspage"schema(ContactAddressPageV2),whichisinheritedfromthe"Baseaddresspage"(BaseAddressPageV2)oftheUIv2package.
Inbpm'onlineyoucancreatecustomdetails.Moreinformationaboutcustomdetailcreationdependingonitstypecanbefoundinthe"Detailwitheditfields","Detailwithaddingpage","Detailwitheditablelist","Detailwithselectionfromlookup"articles.
Mini-page
Amini-pageisdesignedtoquicklyviewandaddinformationaboutasectionrecordwithoutopeningtheeditpage.Mini-pagecanbedisplayedbyhoveringthecursoroverhyperlinksthatleadto,forexample,thecontacteditpage(Fig.1)andaccounteditpage(Fig.2).
Fig.1Contactmini-page
Fig.2Accountmini-page
Usingthemini-page,youcanmakecalls,writeandsendemails,andcreatetasksorcontacts.Youcanalsoviewalocationonthemap.Moreinformationaboutmini-pagescanbefoundinthe"Mini-page"article.
Thecontents,locationandbehaviorofuserinterfaceelementsareconfiguredintheschemaofthemini-pageviewmodelschema.Forexample,thecontactmini-pageisconfiguredthroughtheContactMiniPageschema,andtheaccountmini-pagethroughtheAccountMiniPageschemaoftheUIv2package.Theparentschemaforallmini-pagesschemasistheBaseMiniPageschema,partoftheNUIschema.
Bpmonline developer guide 29
https://academy.bpmonline.com/documents/sales-enterprise/7-8-0/mini-pages
Ifnecessary,youcancreateacustommini-page.Anexampleofcreatingacustommini-pageforrecordsinthe[KnowledgeBase]sectionisdescribedinthe"How to create a mini-page"article.
Modal windows
Modalwindowsdisplaydatainapop-updialogbox.Whenamodalwindowopens,thepagefromwhichthemodalwindowwasopeneddoesnotclose,andnonewpagesareopenedintheprocess.Thus,thepagethatthemodalwindowdisplaysisnotshowninthebrowserhistory.
Themodalwindowsareusedtodisplayandselectdatafromvariouslookups,forexample,whenselectinganactivityassigneefromthecontactlookup(fig.1).
Fig.1.Modalwindowforselectingactivityassigneefromthecontactslookup
GeneralpropertiesandbehaviorofmodalwindowsarespecifiedintheModalBoxandModalBoxSchemaModulemodulesoftheNUIpackage.ThemodalwindowforselectingdatafromlookupsiscalledintheLookupUtilitiesV2module.
Communication panel
Thecommunicationpanelisdesignedforuserinteractionwithclientsandcolleagueswithoutinterruptingexecutionofthecurrenttask.Usingthecommunicationpanel,youcanmakecalls,processunreadmailsandpostintheenterprisesocialnetwork.
Thecommunicationpanelcontainsthefollowingtabs(Fig.1):
Calls(1)enablesyoutoacceptandmakecallsdirectlyintheapplication.Readmoreaboutthepossibilitiesoftelephonyinthe"Managingcallsinbpm'online"article.Email(2)designedtoworkwithemail.Featuresofconfigurationandintegrationwithemailservicesaredescribedinthe"Workingwithemail"article.Feed(3)displaysmessagesofthe[Feed]sectionandisusedtoviewmessagesinsubscribedchannelsandtoaddnewpostsandcomments.Moreinformationcanbefoundinthe"[Feed]section"article.Thenotificationcenterdisplaysnotificationsaboutvariouseventsinthesystem.Itisdescribedindetailinthe"Notificationcenter"article.
Fig.1Communicationpanel
Bpmonline developer guide 30
https://academy.bpmonline.com/documents/sales-enterprise/7-8-0/phone-integrationhttps://academy.bpmonline.com/documents/sales-enterprise/7-8-0/working-emailshttps://academy.bpmonline.com/documents/sales-enterprise/7-8-0/feed-sectionhttps://academy.bpmonline.com/documents/sales-enterprise/7-8-0/notification-center#HT_chapter_notifications_center
ThecommunicationpanelisconfiguredintheCommunicationPanelschemeoftheUIv2package.The"Calls"tabisconfiguredintheinheritedCommunicationPanelschemeoftheCTIBasepackage.Thecommunicationpaneltabbuttons(1...4)arelocatedinthecommunicationPanelcontainer,andthetabsintherightPanelcontainer(Fig.1).
Command line
Thecommandlineenablesquickaccesstothemostfrequentlyperformedoperations.
Torunacommand,typeitinthecommandlineandclick"Executecommand"(Fig.1)orpress[Enter]onthekeyboard.Ifyouenteranincompletecommand,thesystemwillofferalistofpossiblecommandsinthedrop-downlist.
Fig.1Commandline
Thefeaturesofthecommandlineare:
Navigation"GotoasectionSearchforrecords"Search..."forcontacts,accountsorrecordsCreatingrecords"Create..."arecordStartbusinessprocess"Startprocess..."Createcustomcommandswiththe"Createcustomcommand".
Bpmonline developer guide 31
Readmoreaboutthepossibilitiesofthecommandlineinthe"Commandline"article.
ThecommandlineinputfieldislocatedinthemainHeaderContainerconatiner(Fig.1).
Totrackcommandsandtheirexecutioninthesystem,usetheCommandLineServiceservice.Tostorecommandsinthesystem,adatabasetableisused.ThestructureofdatabasetableisdescribedbytheCommandobjectschema.ThecommandparametersaredescribedbyusingtheCommandParamsobjectschema.Todisplaythelistofavailablecommandsforautocompletionandotherfunctionalitiesofthecommandline,theCommandLineModulemoduleisused.
Action dashboard
Theactiondashboardisdesignedtodisplayinformationaboutthecurrentstateofarecordandconsistsoftwoparts(Fig.1):
TheWorkflow bar(1)showsthebusinessprocessstagestatus.TheAction panel(2)enablesyoutomoveontotheactivity,workwithemailorfeed,withoutleavingthesection.Theactiondashboarddisplaysbusinessprocessactivitiesthatareconnectedtothesectionobjectbythecorrespondingfield.Theactionpanelcanalsodisplayanauto-generatedpage,pre-configuredpage,questionorobjectpage.
Fig.1Actiondashboardinthe[Leads]section.
TheactiondashboardislocatedintheActionDashboardContainercontainerofthesectionrecordeditpage.TheworkflowbarislocatedintheattachedHeaderContainercontainer,andtheactionpanelintheContentContainer.
ThearrangementoftheelementsoftheactiondashboardisconfiguredbytheBaseActionsDashboardviewmodelschemaandtheSectionActionsDashboardinheritedschemaoftheActionsDashboardpackage.
Bpmonline developer guide 32
https://academy.bpmonline.com/documents/sales-enterprise/7-8-0/command-line
Development tools
How to start developmentDevelopment resources
How to start development
Tostartdevelopmentinbpm'onlineitisnecessarytotakethefollowingactions:
Development process organizationDeploy bpm'online application and set infrastructureCreate user and setup workspacesCreate repository in SVN serverCreate and install of the package for developmentWorking with client modules in IDE
Development process organization
Whenaddinganewcomplexcustomfunctionalitytobpm'online,besuretofollowtheproperdevelopmentprocess.Werecommenddeployingthreeseparateenvironments:development,testingandoperational.
The Development Environmentisaseparateapplication(oranumberofapplications)whereanewfunctionalityisdeveloped.Theseapplicationsmustbedeployedonlocalcomputers(on-site),whichgivestheabilitytoexportschemastothefilesystemandcreateanewprogramcodeusingdifferentIDE.SVNversioncontrolisalsohighlyrecommended.Useaseparateapplicationanddatabasefordevelopingnewfunctions.
The testing (Pre-Production) environmentcanbeaseparateapplicationwherethenewfunctionsareinstalledandtested.Usually,thetestingisdonebyasystemanalystfromthedevelopmentteamorthecustomerwhoorderedthedevelopmentofthenewfunctionality.Ifneeded,theapplicationcanbedeployedinthecloudoron-site.
The production environmentisaseparatebpm'onlineapplication,inwhichallcurrentuserbusinessprocessesareexecuted.Ifneeded,theapplicationcanbedeployedinthecloudoron-sitemode,oncustomerservers.
Formoreinformationaboutdeploymentoptions,pleaserefertothe"Deploy bpm'online application and setinfrastructure"and"Deploying the bpm'online "cloud" application".
ATTENTION
Theproductiondatabasemustneverbeusedindevelopmentorpre-productionenvironments.Developmentactivitiescannotbeperformedintheproductionenvironment.
ThegeneraldevelopmentprocessisshowninFig.1.
1. Alldevelopmentactivitiesareperformedinaspeciallypreparedenvironment.2. Afterdevelopmentiscomplete,thedeveloperspreparepackageswiththenewfunctionsandinstallthemin
thepre-productionenvironment.3. Thenewfunctionsarethentestedinapre-productionapplication.4. Anyerrorsfoundduringtestingarecorrectedinthedevelopmentenvironment(stage1).Whenthetestingis
completeandallerrorsarecorrected,thepackageswiththenewfunctionalityareinstalledintheproductionenvironment.
Fig.1.Generalworkflowofthedevelopmentprocess
Bpmonline developer guide 33
ItisrecommendedtousetheWorkspaceConsoleutilitytotransferpackagesbetweenapplications.FormoreinformationontheWorkspaceConsole,pleaserefertoaseparatearticle.Formoreinformationabouttransferringchangesbetweenapplications,pleaserefertothe"Transferringchangesontheconfiguration,databaseandpackagelevels"article.
Ifyouneedtotransferpackageswithschemasthatbetweendifferentdevelopmentenvironments,itisrecommendedtouseSVNversioncontrol.FormoreinformationonworkingwithSVNversioncontrol,pleaserefertothe"Createrepository in SVN server"article.
Deploy bpm'online application and set infrastructure
Todeploythebpmonlineapplicationon-site,theserver-sideandtheclient-sidemustmeetcertaintechnicalrequirements.Pleaserefertothefollowingarticlesforbpm'onlinesystemrequirements:
Server-sidesystemrequirementsClient-sidesystemrequirements
Complyingwiththesetechnicalrequirementswillensureoptimalsystemperformance.
To install bpmonline on DBMS, MS SQL, you need to perform the following steps:
Bpmonline developer guide 34
https://academy.bpmonline.com/documents/sales-enterprise/7-8-0/server-side-system-requirementshttps://academy.bpmonline.com/documents/sales-enterprise/7-8-0/client-side-system-requirements
1. DeployMSSQLServer2008onthedatabaseservercomputer.2. DeployRedisdatabaseontheusersessionstorageserver.3. DeploySVNserveronthepackagerepositorycomputer.4. Installthebpmonlineapplicationontheapplicationserver.
NOTE
DeploymentproceduresforMSSQLServerandSVNiscoveredintheofficialdocumentationforeachproduct.
Belowisthestep-by-stepbpm'onlinedeploymentprocess.
1. Unzip the bpm'online archive to a folder on the application server
2. Copy the database backup file (located in the [db] folder) to the database server, thenrestore the database from the backup
Todothis,runMicrosoftSQLManagementStudio,right-clicktheDatabasenode,thenselect[RestoreDatabase...]inthecontextmenu(Fig.1).
Fig.1Deployingdatabasefromabackupfile
Intheopenedwindow,select[Device]asasourceandspecifythepathtothebackupfile.
3. Set up the ConnectionStrings.config file
TheConnectionStrings.configfileislocatedinthecopyoftheapplicationfolder.Specifythefollowinginformationinit:
1. Thesectiona)DataSourcedatabaseserverwherethebackupwasrestored.b)InitialCatalognameoftherestoreddatabase.c)Ifyouwillbeconnectingtothedatabaseasaspecificuser(asopposedtothedomainuser),clear"IntegratedSecurity=SSPI"andspecify"UserID="USER_NAME"Password="USER_PASSWORD""instead.
2. Thesection:a)hostspecifythenameofthehostusedfortheRedisserverdeployment.
Bpmonline developer guide 35
ATTENTION!
Itisrecommendedtospecifythenetworknameoftheserver,insteadof"localhost".Usingsettingswith"localhost"maycauseperformanceissues.
b)dbenterthenumberofthedatabasethatwillbeusedforstoringsessions(thenumberofavailabledatabasesissetupintheRedisconfigurationfileandcanbeupto999basesintotal).
3. Thesection.a)DataSourcedatabaseserverwherethetatabaseisdeployed,b)InitialCatalognameoftherestoreddatabase.
ATTENTION!
Thedatabaseserver,userandpasswordinthesectionmustmatchtheonesinthesection.
4. ThedefWorkingCopyPathanddefPackagesWorkingCopyPathparametersmustpointtoaspecificpathonthelocalcomputer.
5. TheclientUnitContentPathparametermustpointtoaspecificpathonthelocalcomputer.Applicationclientmoduleswillbeexportedhereasasetof*.jsfiles.
6. ThesourceControlAuthPathparametermustpointtospecificpathonthelocalcomputer.Clientidentificationinformationforrepositoryauthenticationwillbesavedhere.
BelowisanexampleofsettingConnectionStrings.config:
4. Set up internal and external Web.config
Theexternal Web.configislocatedintheapplicationrootfolderandcontainsthefollowingsettings:
Groupofsections
1. SectionuseFileContent:indicates,whethertheapplicationwillreadclientmodulesfromthedatabaseorfromfilesondisk.Ifthedevelopmentisdoneintheadministrator'spanel,thisparametershouldbesetto"false".Ifclientmoduleswillbeexported,andanintegrateddevelopmentenvironmentwillbeused,thevalueoftheparametershouldbe"true".Inthiscaseclientmoduleswillbeexportedintothefolder,specifiedintheclientUnitContentPathparameteroftheConnectionStrings.configfile.
BelowisanexampleofconfiguredexternalWeb.config(sectiongroup):
Bpmonline developer guide 36
InternalWeb.configlocatedintheTerrasoft.WebAppfolderissetupthefollowingway:
The section
1. UseSvn=true.Bydefault,thevalueis"false",whichmeansthattheSVNrepositoryisnotused.If"true"isset,additionalfunctionalityforworkingwithrepositorieswillbeavailableintherepository.Formoreinformation,pleaserefertostep4Create repository in SVN server.
2. IncludeDebugInformation=trueindicatesthat*.csfilesmustbeexportedduringtheapplicationcompiling.
3. CompilerSourcesTempFolderPathpathforexporting*.csfiles.4. SeparatedJsFiles=trueThisisanoptionalsetting.ItenablesthedisplayofJavaScriptcodeinaneasy-to-
readformat.
BelowisanexampleofinternalWeb.configsetup(thesection):
value="SysAdminOperation,SysAdminOperationFolder,SysAdminOperationGrantee,SysAdminUnit,SysAdminUnitGrantedRight,SysAdminUnitInRole,SysLastUserPassword,SysLic,SysLicPackage,SysLicUser,SysPackage,SysPackageDependency,SysPackageReferenceAssembly,SysPackageSchemaData,SysPackageSchemaDataColumn,SysPackageSqlScript,SysRepository,SysRepositoryUser,SysSchema,SysSettings,SysSettingsReferenceSchema,SysSettingsValue,SysSqlScriptDependency,SysSSPCustomerSchema,SysSSPEntitySchemaAccessList,SysSSPUser,SysUserInRole,SysUserSession,SysWorkspace,VwSSPSysAdminUnit,VwSysAdminUnit,VwSysClientUnitSchema,VwSysClientUnitSchemaInPackage,VwSysEntitySchemaInPackage,VwSysEntitySchemaInWorkspace,VwSysPageSchemaInWorkspace,VwSysSchemaDataInPackage,VwSysSchemaInPackage,VwSysSchemaInWorkspace,VwSysSqlScriptInPackage,VwSysSSPEntitySchemaAccessList,ForecastItemValue" />
5. Set up the application site on IIS.
RunInternetInformationServicesmanagerandaddanewwebsite(Fig.2).
Fig.2.AddinganewapplicationpoolinIIS
Inthewebsitesettings,specifythewebsitenameandselecttheapplicationrootfolderasthecatalog(Fig.3).Also,inthesamewindow,specifyexternalwebaddressofthesiteinthe[Hostname]field.
Fig.3.Parametersofcreatedapplication
Bpmonline developer guide 38
Inthelistofapplicationpoolscheckthe.NETversionofthecreatedpool.Theversionmustbe4.0andthe[Managedpipelinemode]mustbe"Integrated".Ifanotherversionand/ormodeisspecified,theymustbecorrected(Fig.4)byselecting[Basicsettings...]inthe[Actions]panel.
Fig.4..NETversionsettings
Selecttheapplicationpoolandclick[Advancedsettings...].Intheopenedwindow,inthe[IdleTime-out(minutes)]field,set"0"(Fig.5).
Fig.5.Settingidletimeout
Bpmonline developer guide 39
EntertheloginandpasswordoftheuseraccountthattheapplicationshouldusetoaccesstheMSSQLServer.Clickthe[...]buttoninthe[Identity]fieldtoeditthisproperty.
Attention!
ThisproceduremustbeperformedifWindowsauthenticationwasselectedintheMSSQLServersettingsduringinstallation.
Intheopenedwindow,selectthe[Customaccount]andclickthe[Set]button.
EntertheloginandpasswordofthedomainuseraccountthatisusedbytheapplicationtoaccesstheMSSQLServer.Forexample,itcanbethedomainuserthatstartedthebpmonlineinstallation(Fig.6).
Fig.6.Settingupapplicationpoolidentification
Bpmonline developer guide 40
Addanapplicationtoawebsite,asshowninFig.7.
Fig.7.Addinganapplicationtothewebstie
Bpmonline developer guide 41
Intheapplicationsettings,specifyapplicationalias"0",andthe[Terrasoft.WebApp]folderasthephysicalpath(Fig.8).
Fig.8.Settinguptheapplication
Bpmonline developer guide 42
ATTENTION!
Theapplicationwith"0"aliascorrespondstothedefaultworkspace.Beforecreatinganewworkspace,addanewapplicationtothewebsiteandspecifynextsequentialnumberasalias.Therestofthesettingsmustbeidenticaltothoseinthe"0"application.
6. Open application web address in a browser
Nextstep:Create user and setup workspaces
Deploying the bpm'online "cloud" application
Thestandardprocedurefordeployingthebpmonline"cloud"applicationisasfollows:
1. Usethefreetrialregistrationpageatbpmonline.comtocreateyourtrialbpm'onlinesite.Duringthetrial,youcanfamiliarizeyourselfwiththemainfeaturesoftheapplication.Afterthetrialperiodiscomplete,thedemoversioncanbetransferredtotheprimarybpmonlinesite.
2. Contactabpm'onlinesalesmanagertodeployanewapplicationonthecloudortransferanexistingapplicationtothebpm'onlinedatacenterBpm'onlinestaffwillperformthetransfer.
Whencreatingbpm'onlinecloudapplications,certainlimitationsapply.Compliancewiththeserequirementsiscriticalforsuccessfuldeployment.
Bpmonline developer guide 43
https://www.bpmonline.com/demo/bpmonlinehttps://www.bpmonline.com/
Primary limitations
The use of SQL Agent is restricted
Tasks(Jobs)andotheractionsperformedbySQLAgentcannotbecreated.Thebpm'onlinetaskplannermustbeusedinstead.
The use of DB Mail is restricted
Emailnotificationsmustbesentviabpm'onlineplatformfeatures.
The use of Extended Stored Procedure is restricted
AlllogicmustbeimplementedeitherthroughstandardstoredproceduresonT-SQL,orthroughtheuseoftheapplicationserverfeatures.
The use of DBMS user names is restricted
DatabaseusersarenotcreatedwithintheDBMSonthebpm'onlinesite.Domainusersanddomainauthenticationareusedinstead.
Modifications to Web.config are restricted
Allrequiredparametersmustbestoredasbpm'onlinesystemsettings.
Binding to server and DBMS IP addresses is restricted
ServerIPaddressesmaybechanged.Therefore,anybindingtoanyspecificIPaddresswillbecomeinvalidaftersuchchange.Alwaysusedomainnames.
Installing additional software is restricted
Noadditionalsoftwarecanbeinstalledonbpm'onlineservers.
Working with file system is restricted
WorkingwiththeapplicationandDBMSserverfilesystemisrestrictedbyOSaccessrights.AccesstofilesisavailablethroughFTPandHTTPprotocols.
Third-party applications cannot be run on server
Runningthird-partyapplicationsisrestrictedbyOSaccessrights.Allbusinesslogicmustbeimplementedaspartofthebpm'onlineapplication.
Database must be deployed on SQL Server 2012
Toensurecompatibilitywithbpmonlinesitecloudinfrastructure,theapplicationdatabaseprovidedbycustomersmustbecreatedonSQLServer2012.
The application must support both HTTP and HTTPS protocols
Theuseoflogicthatsupportsonlyoneprotocolisrestricted.Instead,currentapplicationprotocolmustbedefined.
The application must work with access rights of a regular user
Theuseoffunctionsthatrequireadministratoraccessrightsisrestricted.
Bpmonline developer guide 44
The application must work as a user without a profile
Onthebpm'onlinesite,theusersarecreatedwithoutprofilesortheabilitytoactuallylogintoOS.
Additional recommendations for partnersSetthepartnernameasthe"Maintainer"systemsetting.IntheUsrPrefixsystemsetting,specifyapartner-specificprefix.Forexample,ifthepartnernameis"FineSolution",theUsrPrefixcouldbe"FS".Thepartnersolutionmustnotusereplacingmodules.Onlyschemasmaybereplaced.ServerlogicmustbeconcentratedinC#classesandcalledwhereneeded.ThepublicAPIforserverclassesandclientschemasmustbecoveredbyunit-tests.Allrequireddata,scripts,andlibrariesmustbeboundtopackages.DevelopmentmustbeperformedwiththeuseofSVNandallpackagesmustbecommittedtotherepository.
Create user and setup workspaces
Thenextstepbeforestartingdevelopmentisthecreationofauserwithadministratorrightsandaddinganewworkspace.
Creating a new user
Thesystemalreadyhasauserwithsystemadministratorrightscalled"superuser".Youcancarryoutdevelopmentinthebpm'onlinesystemusingthisuseraccount.Werecommendcreatingaseparateaccountforeachcompanyemployeewhowillperformdevelopment.
Formoreinformationaboutcreatingofnewuserandaddingnecessaryrights,seearticle"Howtoaddnewuserinbpm'online".Assignarole[Systemadministrators]tothenewusersothattheywouldbeabletoperformdevelopmentinthesystem.
Creating a new workspace
Aworkspaceinthebpm'onlinesystemisasetofpackages.Eachofthem,initsturn,isasetofdefinitefunctionalities.Youcanformthefinalfunctionalityofthesystembymanagingthecombinationofpackagesinacertainworkspace.Allworkspacesareindependent.
Beforeyoubeginactualdevelopment,createanewworkspace,wherenecessarymodificationscanbemadeseparatelyfromotherusers.Uponcompletionofthesemodifications,transferthemtoamainworkspace.Versioncontrolsystem(SVN)isusedfortransferofmodificationsbetweenworkspaces.Directtransferofmodificationsbetweenconfigurationsisimpossible.
Developmentandoperationoftheapplicationisperformedsimultaneously.Itisnotrecommendedtomakemodificationstotheversionofthesystemthatisinactiveuse.Werecommendcreatingaminimumofthreeworkspaces:development,testingandworkingworkspace.Inthisway,youcanensureseamlessworkofregularusersinaworkspaceandcontinuousdevelopmentoftheconfigurationinthedevelopmentenvironment.
NOTE
AddanewWebAppapplication(asshowninprevious step)intheISSserverbyspecifyingthenumberthatfollowsthehighestserialnumberofconfigurationintheworkspacelistasanaliasbeforeaddinganewworkspaceintheapplication.
Openthewindowwiththeworkspacelistbythe[Openconfigurationlist]actionofthe[Configuration]section(Figure1).
Fig.1.Workspacelistwindow
Bpmonline developer guide 45
http://academy.bpmonline.com/documents/docs/product/bpm'online sales/team/7.7.0/BPMonlineHelp/section_users/fag_section_users_add_new_user.htmhttp://academy.bpmonline.com/documents/docs/product/bpm'online sales/team/7.7.0/BPMonlineHelp/section_users/fag_section_users_add_new_user.htm
Youcancreateaworkspaceintwoways:
1. Addanemptyworkspaceandaddpackageswithnecessaryfunctionalitytoitinmanualmode.2. Createacopyofaworkspacethatisalreadyavailableinthelist.Itisthequickestmethodforcreatinganew
workspace.Thismethodisrecommended.
Inordertocopyaworkspace,takethefollowingactions:
1. Selectanexistingworkspace(forexample,the[Default]workspace)andexecute[Copy]operationintheconfigurationlist.
2. Enterthenameofanewconfigurationand,ifnecessary,itsdescriptionintheopenedcardforworkspace(figure2).Fig.2.Workspacecard
3. Enterthefollowingaddressinthebrowseraddressline:[site url]/[new configuration number]/WorkspaceExplorerModule.aspx
For example, http://my.bpmonline.com/1/WorkspaceExplorerModule.aspx
4. Gotothe[Actions]tabandexecutethe[Copyall]actionfromthe[Configuration]group(Figure3).Fig.3.Startingofcompilationofnewworkspace
Bpmonline developer guide 46
Thenewworkspacewillbeavailableforselectionontheloginpageaftercompilation.
NextstepCreate repository in SVN server
Create repository in SVN server
Thenextstep,necessaryforstartingdevelopmentontheplatform,iscreatingtherepositoryontheserveroftheversioncontrolsystem.
Thepurposeofversioncontrolsysteminbmp'online:
Transferofchangesbetweenworkspaces.Storageofversionsofconfigurationschemas.
Versioncontrolsystemisanoptionalcomponent.However,ifyouintendtocustomizetheapplication,theversioncontrolsystemisrequired.
bmp'onlinesupportsoperationwithSubversioncontrolsystem(SVN)ofversion1.7andhigher.
FormoredetailsonuseofSVNseedocumentation.
Bpmonline developer guide 47
http://svnbook.red-bean.com/
SVN setupTosetupintegrationwithSVN:
1. Install SVN server
YoucaninstallSVNontheapplicationserver,DBMSserveroronaseparatededicatedserver.
UseoneofthepubliclyavailableSVNinstallersforWindows:
VisualSVNCollabNet
YoucandownloadthelastversionofbinaryfilesoftheSVNserverforyouroperatingsystemhere.
SVNservercanfunctionindependentlyorthroughApacheweb-server(itisinstalledautomaticallybemeansoftheVisualSVNandCollabNetutilities).Inthefirstcase,repositoriesareaccessedthroughsvn://protocol.Inthesecondcaserepositoriesareaccessedthroughthehttp(s)://protocol.
Werecommendusingthehttp(s)://protocolforintegrationwithbpmonline.
2. Create a user on the SVN server
YoucancreateanSVNserveruserviathestandardtoolsthataresuppliedwiththeutilitythatwasusedforinstallationoftheASVNserver,forexample,VisualSVN(figure1).Loginandpasswordarerequiredforworkingwiththebpm'onlinerepository.
Fig.1.CreationofanewuserinSVNserver(VisualSVNutility).
3. Create repository on the SVN server
TherepositoryiscreatedbystandardtoolsofutilitythatwereusedfortheSVNseversetup(i.e.,VisualSVNandCollabNET).
Bpmonline developer guide 48
https://www.visualsvn.com/server/http://www.collab.net/products/subversionhttp://subversion.apache.org/packages.html
NOTE
bpm'onlinesupportssimultaneousoperationofseveralrepositoriesthatcanbelocatedondifferentSVNservers.
4. Install SVN client
YoucanadditionallyinstallanSVNclientinthedeveloperworkplace,forexample,TortoiseSVN.
NOTE
WerecommendusingTortoiseSVNclientversion1.7andup.
TheinstallationofanSVNclientisoptionalsinceitdoesnotaffectbpm'onlineoperation.UsinganSVNclientisconvenientforviewingthelocalworkingcopy,history,revertoperations,review,etc.
NOTE
Introducechangesintotheweb.configconfigurationfileoftheWebAppapplication(i.e.internalweb.configfromTerrasoft.WebAppfolder)i.e.assigntruevaluetouseSvnparametertoenablebpm'onlineusingSVN.
Principles of operation with repositories of version control system
Repositorylistiscommonforallworkspacesofthesystem.Youcanaddnewlycreatedpackagestoanyrepositoryinthelist.Youcancommitanalreadyinstalledpackageonlytotherepositorythatwasspecifiedwhenthepackagewascreated.Youcaninstallanynumberofpackagesfromthelistofavailablerepositoriesintheworkspace
Registerarepositoryandaddittothelistofrepositoriesinordertouseit.
List of repositoriesToopenthelistofavailablerepositories(figure2),selectthe[Openrepositorylist]actiononthe[Actions]tabofthe[Configuration]sectioninterface.
Fig.2.-Windowwithrepositorylistofversioncontrolsystem
Adding a new repository
Inordertoaddanewrepository,select[Add]onthelisttoolbar.Asaresult,acardforthenewrepositoryopens(Figure3).
Fig.3.Newrepositorycard
Bpmonline developer guide 49
http://tortoisesvn.net/
[Name]repositoryname.
[Storage address]networkaddressofexistingSVNrepository.RepositoryaddressingissupportedbyboththeHTTPprotocol(standardnetworkprotocol)andSVNprotocol(ownnetworkprotocoloftheSubversionsystem).
[Active]checkboxthatdetermineswhethertousetherepositoryinthesystemoperation.Eachnewrepositoryismarkedasactivebydefault.
NOTE
Youcanworkwithactiverepositoriesonly.Moreover,allrepositories,fromwhichthepackagesareupdated,mustbeactive.Theseincludetherepositoryfromwhichtheinitialpackageisupdatedandtherepositoriesfromwhichallpackages-dependenciesoftheinitialpackageareupdated.
Afterregistrationofanewrepositoryitcanbeusedforcreatingcustompackagesandinstallingcreatedpackagesintheworkspace.
PreviousstepCreate user and setup workspaces
NextstepCreate and install of the package for development
Create and install of the package for development
Allconfigurationitemsofbpmonlinearegroupedinpackages.
Apackageisafinalsetoffunctionalitiesthatcanbeaddedtotheconfigurationordeletedfromit.Youcanmanagethefrontendfunctionalityofthesystembymanagingthesetofpackagesinacertainconfiguration.
Wehaveaddedaconfiguration,whosefunctionalitywillbemodified,tothesystematthepreviousstep.Now,letscreateanewpackageorinstallanexistingoneinthebpm'onlineplatforminordertostartdevelopment.
To create a new custom package:
1.Selectthe[Add]actioninthecontextmenuonthe[Packages]tab(Figure1).
Fig.1.Addinganewpackage
2.Asaresult,thepackagecardwillopen(figure2).
Bpmonline developer guide 50
Fig.2.Packagecard
[Version]packageversion.Itisarequiredfield.
[Name]packagename.Thisfieldisrequired.
[Version control system repository]nameoftherepositoryoftheversioncontrolsystemwherepackagechangeswillbecommitted.('Operation with repositories of the version control system' in the on-linedocumentation)Therepositoriesthatarenotmarkedasactiveintherepositorylistoftheconfigurationwillnotbeavailableinthedrop-downlist.Thisfieldisrequired.
NOTE
Thisisfilledinuponcreationofanewpackageandwillnotbeeditableafterthepackagehasbeensaved.
[Position]-packagepositioninthehierarchy.Itisrequiredfield.Ithas0valuebydefault.
[Description]-descriptionofthepackage,forexample,extendedinformationaboutfunctionalitythatisimplementedinthepackage.
NOTE
Youcan'tindicatepackagedependenciesuponcreationofanewpackage.Youcanaddadependencytoanexistingpackage.
3.Thepackagewillbecreatedanddisplayedonthe[Packages]tabafterfillingallcardfieldsandpressing[OK].
Ifauserisnotloggedintothepackagerepository,bpmonlinewillpromptthemtologintoSVNbeforecreatingthepackage.
4.Specifydependenciesofthenewlycreatedpackage.Specifythelastpackageinthehierarchyofpreinstalledpackagesasthebasepackagesothatthenewpackagehascompletefunctionality.
Forthispurposeselect[Modify]intheright-clickmenuonthe[Packages]tab.
Todeterminethelastpackageinthehierarchyofpreinstalledpackages,openthe[Packagedependencies]tab.Forthepurposeoftheexampleonfigure3,thiswillbetheOmnichannelDemo_Enupackage.ExamplePackageandExperimentPackagearecustompackages.
Whencreatinganewpackage,youcanspecifyanexistingcustompackageasthebaseone.Thespecifiedpackageinitsturnmustdependonthelastpre-installedpackageinthehierarchy.Inthiscase,thenewpackagewillinheritthebasefunctionalitythatwasmodifiedinthecustompackage,whichwasspecifiedasthebaseone.
Bpmonline developer guide 51
Fig.3.Determiningofthelastpackageinahierarchyofpreinstalledconfigurationpackages
5.Committhenewlycreatedpackagetotherepositoryoftheversioncontrolsystem.
Committing a package to the repository
1.Select[Commitpackagetorepositary]inthecontextmenuonthe[Packages]tab(Figure4).
Fig.4.Committingapackage
2.Asaresult,the[Modifications]windowwillopen(figure5).
Bpmonline developer guide 52
Fig.5.The[Modifications]windowforcommittingthechangestotherepositoryoftheversioncontrolsystem
[Description]commentonthepackagecommit.Suchcommentsnormallycontaindescriptionsofthemodificationsmadetothepackagesincethepreviouscommit.Thisfieldisrequired..
Packagemodificationsthatwillbecommittedareshowninalowerpartofthewindow.
3.Clickthe[Commitchangestorepository]buttontobeginthecommitoperation.Aftertheoperationcompletes,thecommittedchangeswillbecomeavailableforothersystemusers.
Thelockonthepackageanditsitemsisreleased,i.e.becomeavailableforeditingbyothersystemusers.
NOTE
Apackageiscommittedtotherepositorythatisspecifiedinitsproperties.Therepositoryisselectedwhenthepackageiscreated.Youcannotchangetherepositoryofanexistingpackage.
Youcancommitapackageonlytoanactiverepository.
Ifyouneedtotransferanalreadydevelopedfunctionalityfromadifferentconfiguration,youcaninstallanexistingpackageinsteadofcreatinganewone.
Installing a package1.Selectthe[Installpackagefromrepository]actioninthecontenxtmenuofthe[Packages]tab(Figure6).Asaresult,the[Installationofpackagefromrepository]windowwillopen.
Fig.6.Runningofpackageinstallation
2.Inthe[Versioncontrolsystemrepository]field,selectthenecessaryrepositoryfromthelistofavailablerepositoriesintheopenedwindow(Figure7).
Bpmonline developer guide 53
Fig.7.Selectionofapackage,fromwhichthepackageisinstalled
Ifyouarenotloggedintotherepository,thesystemwillpromptyoutologin.
Iftherepositoryisnotinthelist,addittothesystemrepositorylistusingthe[Openrepositorylist]action.('Operation with repositories of the version control system' in the on-line documentation)
3.Afteryouselecttherepository,the[Packagename]fieldwillcontainthedropdownlistofallpackageslocatedintheselectedrepository(Figure8).
Fig.8.Selectionofnecessarypackage
4.Selectthenecessarypackageversion(Figure9)fromdrop-downlistinthe[Version]field(Figure9).
Fig.9.Specificationofpackageversions
5.Clickthe[Install]buttonafterselectingtherepositoryandthepackage.Theselectedpackagewillbeinstalledintheworkplace.
PreviousstepCreate repository in SVN server
Development resources
Built-in development toolsClient code debugging
Bpmonline developer guide 54
Built-in development tools
General information about the [Configuration] sectionSource code and metadata viewportTransfer of modifications between configurationsDesigners of configuration items
General information about the [Configuration] section
Section[Configuration](figure1)isdesignedforcontrolofconfigurationitems,usedinimplementationofsystemfunctionality.
Figure1.Section[Configuration]
Section[Configuration]allowsthefollowing:
creationandadjustmentofworkplaces;managementofversioncontrolsystemrepositories;controlofpackages,beingacomponentpartsofconfiguration;extensionandmodificationofsystemfunctionality;controlofparalleldevelopmentoffunctionalityandtransferofmodificationsbetweenworkspaces.
Source code and metadata viewport
Youcanopenthesourcecodeandmetadataviewportbythefollowingactions[Source code][Open]and[Metadata][Open], respectively.Theseviewportsalsocanbeopenedfromitemdesigners.
Sourcecodeviewport(Figure1)displaysschemasourcecode.
Fig.1.Sourcecodeviewport
Bpmonline developer guide 55
Thesourcecodeoftheschemaisgeneratedbythesystemautomaticallyandcanbeeditedmanually.
Themetadataviewport(figure2)isdesignedforviewingandmanualeditingofmetadataofselectedschemas.
Fig.2.Metadataviewport,tab[Metadata]
The[Metadata]tabshowsmetadataintheirinitialview.Usethistabinordertoeditmetadatamanually.
NOTE
Thesystemgeneratesmetadataautomaticallyuponsavingschemasanditisnotrecommendedtoeditthemmanually.Schemawithincorrectlysavedmetadatacan'tbeopenedforeditinginthedesignerunlessmetadataerrorsarecorrected.
Bpmonline developer guide 56
The[Metadata (Read)](Figure3)displaysdatathatissimilartothatdisplayedbythe[Metadata]tab,butinaformsuitableforreading.Internalidentifiers(forexample,"A2")arereplacedwithactualvaluesofitems,specifiedinthe[Name]propertyfield(forexample,"AccountName").Thistabcanbeusedformanualeditingofmetadata.
Fig.3.Metadataviewport,tab[Metadata(Read-Only)]
The[Modifications Package](Figure4)showsthelistofdifferencesinmetadatabetweenthecurrentschemaanditsparentschema.
Fig.4.Metadataviewpoint,tab[ModificationsPackage]
Transfer of modifications between configurations
Bpmonline developer guide 57
Duringthedevelopmentprocess,itisoftenneededtotransferchangesbetweendifferentconfigurations(workspaces)ofthesystem.Forexample,whenthechangesmadeinthetestconfigurationareinstalledontheworkingversion.
Bpmonlinehasanumberofwaystotransferchangesbetweentheconfigurations:
1. TransferofmodificationsbytheWorkspaceConsoleutility.2. Transferofmodificationsbytheuseoftherepositoryoftheversioncontrolsystem.3. Transferofmodificationsbyexporting/importingclientschemas.
Transfer of modifications by the WorkspaceConsole utilityWorkspaceConsoleisasystemutilitysuppliedwithbasicsoftwareproducts.Thisutilityenablesthedownloadingandinstallingofpackages.
Transfer of modifications using the repository of the versioncontrol systemModificationscanbetransferredfromSVNonlyatthelevelofanentirepackagebutnotseparateschemas.
1)Fixcreatedandmodifiedclientschemasintherepositoryoftheversioncontrolsystem.
2)Installapackageinthetargetconfigurationwithcreatedoreditedclientschemas.
3)Compileconfigurationbyselectingthe[CompileAll]iteminthe[Action]tab.
Transfer of modifications by exporting/importing clientschemas1)Selectaschemafromthelisttotransferittotheotherconfigurationandcomplete[ExporttoFile]actionfrom[Action]tab.
Fig.1.Exportofclientschematofile
2)Createanewpackageinthetargetconfigurationandsetdependenciesforit.Thesedependenciesarenecessaryforthecorrectfunctioningoftheinstalledschema.Forexample,ifyouplantotransferareplacingschemaofa
Bpmonline developer guide 58
Contractobject,setthedependencyfromthepreinstalledpackageBaseorapackagethatdependsonBasepackage.
3)Selectacreatedpackagefromthelistandcompletethe[ImportfromFile]actionfromthe[Action]tab(Figure2).
Fig.2.Importofclientschemafromfile
4)Opentheschemafile,savedinthefirststep,intheopenedwindow(Figure3).
Fig.3.Fileselectionwindowforimport
5)Compiletheconfigurationbyselectingthe[CompileAll]iteminthe[Actions]tab.
NOTE
Takeintoaccountdependenciesofschemasfromeachotherupontheirimport.Importallschemadependenciesandthenimporttheschemawithdependencies(forexample,importobjectschemaandthenschemaofcardviewmodelthatdependsonthisobject).
Designers of configuration items
ContentObjectdesignerImagelistdesignerDevExpressReportdesigner
Workspace of the Object Designer
Bpmonline developer guide 59
TheworkspaceoftheObjectDesigner(figure1)consistsofseveralfunctionalareasandcontainscontrolsandtoolsusedforcreatingobjects.
Fig.1.Theobjectdesignerworkspace
Object structure area (1)
Theobjectstructureareashowscolumnsandindexesaddedtotheobject.Forexample,thestructureofthe"AccountAccount"objectcontainsthe"Name","OwnershipType","PrimaryContract","ParentAccountAccount"andothercolumns.
Columntypesintheobjectstructuredependonthetypeofdatainthecolumns.Columnindexesaredesignedtospeedupoperationswiththecolumns,suchassearchandfiltering.
Youcanaddnecessaryitemstotheobjectstructureusingthe[Add]menuthatcontainsthelistofallavailableobjectcomponents.
Properties and events area (2)
Youcanchangethesetofindividualcharacteristicsoftheobjectanditsitemsonthe[Properties]tab.Thisincludessettingthedefaultvalueormakingcolumnsrequired.
Thistabalsoprovidesthepossibilityforthegenerationofevents,processingofwhichallowscreatingoperatinglogicoftheobjectwhentheusertakescertainactions,forexample,fillingofrequiredfieldsbeforesavingentriesinthecourseofeventprocessing.
Toolbar (3)
Inadditiontothestandardbuttons,theObjectDesignertoolbarincludesthefollowingbuttons:
Add Addanitemtotheobjectstructure.Themenucontainsthelistofallavailabletypesofcolumnsandindexes.
Delete Deleteofcolumnsfromtheobject.
NOTE
Deletingcolumnsfromanobjectissimilartodeletionofcolumnsfromthecorrespondingtableofthesystemdatabase.
Bpmonline developer guide 60
Up Movetheitemupintheobjectstructure.
Down Movetheitemdownintheobjectstructure.
Settings window
Inadditiontothestandarditems,theconfigurationwindowoftheObjectDesigneralsocontainsthefollowingitems:
ShowIndexes Displayindexesintheobjectstructure.
Showentirelistofcolumntypes
Displayfulllistofstructureitemsinmenu[Add](menushowsonlybasicitemsbydefault).
Showsystemcolumns Displaythecolumns,the[UseMode]propertyofwhichcontainsan"Extended"or"Never"value.Forexample,columnswithinformationonprimarykeys("ID")ofobjectrecordsarenotshownintheobjectstructurebydefault.
Process designer workspace
Theprocessdesignerworkspace(Fig.1)consistsofseveralfunctionalareasandcontainscontrolelementsandtoolstocreateprocesses.
Fig.1Theprocessdesignerworkspace
Process elements workspace (1)The[Elements]workspacecontainsalistofelementswhichaprocesscancosnsistof.
Dependingonthepurpose,elementsaredividedintoseveralgroups:[Actions],[Events],[Booleanoperators].
Adescriptionoftheitems,theirpurposeandpropertiesrefertotheprocesssetupdocumentation.
Designer workspace (2)
Adesignerworkspacedisplaysagraphicalrepresentationofaprocess.Youcaneditcaptionsandotherpropertiesoftheprocesselements.Theelementsareplacedontheworkspacebyhighlightingthedesireditem.
Bpmonline developer guide 61
https://academy.bpmonline.com/documents/technic-bpms/7-8-0/bpms-overview
Process structure workspace (3)The[Structure]workspacedisplaysatreestructureofprocesselements,whicharedisplayedontheworkspace,andthosethatappearonlyinthestructure,suchasprocessparameters.
Processstructurecanincludethefollowinggroupsofitems:
[Links]displaysalistofflowsandprocessconnectingobjects.
[Parameters]setstheparametersoftheprocesselementsandtheirvalues.
[Methods]addsmethodsusedintheprocessscripts.
[Messagestouser](LocalizableStrings)containsalistofmessagesdisplayedtousersinthesysteminterface.Thesemessagescanbelocalized.
[Namespaces](Usings)addsanamespacetotheprocesshelpsdeveloperstosimplifytheworkwiththesourcecodeoftheprocessscript.
Properties and events workspace (4)Asetofcommoncharacteristicsofaprocessandeachofitselementisavailableinthe[Properties]tab.
Eachprocesselementhasindividualproperties.Asetofpropertiesdependsontheelementtype.Forexample,inaconditionalflowthepropertyis[Condition].
Toolbar (5)
Theprocessdesignermenu containsthefollowingcommands:
[Save]saveschangesmadetotheprocessschema.Ifnochangesthatrequirepublicationhavebeenmadetoaprocess,thenaftersavinguserswillstartworkwiththeupdatedprocess.
[Publish]appearsinthemenuifchangesthatrequirecompilationoftheupdatedbpm'onlineexecutableshavebeenmadetoaprocess.
switchcursortoregularmode.Usethisbuttontoexittheverticalorhorizontaldisplacementoftheprocesselementsandtodeselectaniteminthe[Items]workspace.
The[Advanced]processdesignermenucontainsthefollowingcommands:
[Opensourcecode]opensawindowwiththeprocesssourcecode.
[Openmetadata]opensawindowoftheprocessmetadata.
User task designer workspace
TheUserTaskDesigner(Fig.1)consistsofanumberoffunctionalareasandcontainstoolsforcreatingcustomactivitiesforuseinbusinessprocesses.
Fig.1.UserTaskDesignerworkarea
Bpmonline developer guide 62
Structure area (1)The[Structure]areacontainsatree-likestructureofthebusinessprocesselements.
The Properties Area (2)Usethe[Properties]areatomodifythenumberofseparatecharacteristicsofausertaskandanyofitsitems.
The Toolbar (3)Inadditiontothestandardbuttons,thetoolbaroftheusertaskdesigneralsocontainsthefollowingbuttons:
[Add]addsanitemtotheusertaskstructure.Theitemcurrentlyselectedinthestructurewilldeterminethetypeofanitemthatwillbeaddedbyclickingthebutton.Forexample,ifthe[Parameters]grouporaparameterisselectedinthestructure,clickingthe[Add]buttonwilladdanewparameter.The[Add]buttonmenualsocontainsthefollowingcommands:
[AddParameter]addsaparametertotheusertaskstructure.
[AddMethod]addsamethodtotheusertaskstructure.
Youcanalsoaddanitembyusingthe[Add]commandoftheright-clickmenuinthe[Structure]area.
[Delete]deletestheselecteditemfromtheusertaskstructure.
[Up]movesanitemupthelistintheusertaskstructure.
[Down]movesanitemdownthelistintheusertaskstructure.
Workspace of image list designer
Theworkspaceoftheimagelistdesigner(figure1)consistsoffourmainfunctionalareasandcontainsnecessarytoolsforcreatingimagelists.
Bpmonline developer guide 63
Fig.1.Workingareaofimagelistdesigner
Specificsoftheimagelistdesigneraredescribedinchapter,"Specificsofhandlingofimagelistdesigner".
Designer image area (1)
Listitemsintheformofimagesketchesarelocatedinimageareas.
Image list structure area (2)
Atree-typestructureofimagelistitemsisdisplayedinthe[Structure]area.
Property area (3)
Youcanchangeasetofindividualcharacteristicsofanimagelistandalsoeachiteminthe[Property]area.Imagefilesaredownloadedintothelistthroughthesamearea.
Toolbar (4)
Inadditiontothestandardbuttons,thetoolbarofimagelistdesigneralsoincludesthefollowingbuttons.
Add Addanewitemintothelist.Theitemdoesn'tincludeimagesuponadding.
Delete Deleteselectedelementsfromimagelist.
Up Movementoftheitemaboveitscurrentpositionintheobjectstructure.
Down Movementoftheitembelowitscurrentpositioninobjectstructure.
Working area of report designer
Theworkingareaofthereportdesigner(Figure1)consistsofseveralfunctionalareasandcontainsnecessarytoolsforcreatingreports.
Bpmonline developer guide 64
Fig.1.Workingareaofreportdesigner
MostcontrolitemsofthereportdesignerarestandardforDevExpressReportSuite.
Report layout area (1)
Thisdesignerareaisareportpagelayout.
Report item window (2)
The[Items]windowshowsthelistofitemsthatcanbeaddedtoareportpage,forexample,inscriptions,images,diagramsandpagebreaks.
NOTE
Thepositionofthe[Items]window(also[Structure],[Data]and[Properties])withintheworkspaceofthedesignermaybedifferentfromthatonthescreenshot.Inaddition,somewindowsmaybehidden.Todisplayahiddenwindow,clickthe[View]buttonandcheckthecheckboxforthewindowthatshouldbedisplayed.
Report structure window (3)
Tree-typestructureoftheitems,tobeaddedtoreport,isdisplayedinthe[Structure]window.
Report data window (4)
The[Data]windowdisplaysthestructureofthereportdatasource.Forexample,thisareacandisplaycolumnsofbpm'onlinesections.Columns,locatedinthe[Data]window,canbeplacedintheworkingareaofthereportdesigner.
Properties window (5)
Youcaneditindividualcharacteristicsofreportitemsbymeansofthe[Properties]tab.
Bpmonline developer guide 65
Tab ribbon (6)
Tabribbonincludestwotabs:
the[Design]tabcontainsstandardtoolbarsforDevExpress,suchas[Edit],[Font],[Zoom]etc.andtoolbarsforintegrationwithbpm'online:[Report]and[Data];the[Preview]tabisdesignedforviewingreports.Thereportisdisplayedinformatonthe[Preview]tab.
Working with IDE
Working with client modules in IDEWorking with the server side source code in Visual Studio
Working with client modules in IDE
Youcanperformdevelopmentonthebpm'onlineplatforminaseparate[Configurationmanagement]workspacebyusingthe[Configuration]tool.Youcanaddnewschemasandeditexistingschemas,modules,business