357
Simplify the future Bpm’online Development Guide

Bpm’online developer guide · How to add the field validation 177-184 ... the bpm'online integration over the OData protocol 336-338 ... 2008 SP3 or higher can be used as a DBMS

  • 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