bpm’online developer guide · how to add the field validation 177-184 ... the bpm'online...
TRANSCRIPT
-
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