2/8/2018 9:05:40 AM DANIEL GREGURIĆ, Application Development Assistant
BPM Online – Development
 
Bpm'online is a cloud-based software that merges customer relationship management (CRM) features with business process management (BPM) capabilities. It has been developed by bpm'online company, and has over 500k end users.

Bpm'online CRM combines CRM’s core modules (account and contact management, sales force automation, service management, marketing automation, document management, reporting and analytics) with business process management (BPM) engine. Bpm'online CRM can be delivered both as software, service (SaaS) and on-premises application, and provides integration abilities.

Infrastructure

Bpm'online consists of:

  • Web server: Application server that runs under the IIS version 7.0 or higher

  • Database server: MS SQL Server 2012 SP3 or higher || Oracle DBMS 11 g Release 2 and up

  • Client: IE 11.0+, Firefox, Chrome, Safari and bpm’online mobile application is used to access the server with mobile devices

  • Redis storage server: Storage for user sessions, cached data and communication between web farm nodes

  • Version control system server (SVN): Transition of modifications between configurations and saving configuration status

Bpm-1-(1).png
 

Architecture

Bpm'online has been developed using .NET Framework architecture in combination with Ajax and HTML. Combined with RESTful APIs, it provides developers with a well-constructed SaaS architecture:

  • Database:

    • Stores user data, application settings and access rights settings

  • Server core

    • Server libraries are written in C# with
      the use of .NET Framework classes

    • Developers can create instances of
      server classes and use server libraries

  • Client core

    • The client core classes are written in JavaScript

    • Primary task is to ensure functionating of client module

    • Implements UI and other business tasks on browser side

  • Configuration

    • Set of functionalities available to users of a certain workspace

 

Bpm2.png
 

Configuration

A configuration is a set of functionalities available to users of a certain workspace. This includes:

  • server logic

  • auto-generated classes, which are a product of system settings

  • client logic, which includes pages, buttons, actions, reports, business processes and other customizable configuration elements

Configurations are easily modifiable system components. Configurations consist of the following elements:

  • business objects – entities that store data and connect a database table to a class on the server side

  • business processes – customizable elements that are visual algorithms of user activities

  • client modules

  • server pages, which are sometimes used as record edit pages in the lookups (this is a legacy functionality)

All configuration elements are grouped in packages. Packages are finite sets of functions that can be installed or uninstalled in configurations. The final system functionality is formed based on the set of installed packages.

Bpm3.png
 

Packages

A “package” is a combination of configuration elements (schemas, data, scripts, additional libraries) that implements specific functions. The bpm'online package mechanism is based on the open/closed principle of object-oriented programming. According to this principle, all entities (classes, modules, functions) must be open for extension but closed for modification. This means that new functions must be implemented by adding new entities, rather than modifying the existing ones.
Each bpm'online product is a set of packages. To extend or modify system functions, a package with the corresponding changes must be installed.

There are two types of packages:

  • Base (pre-installed) packages include base functionality (such as Core, Base, Product packages), packages that extend system functions (such as phone integration packages) and packages created by third-party developers. Base packages are supplied with the system and are installed by default.

  • Custom packages are packages created by system users.

Configuration elements from base packages cannot be modified. Any development of new functions and changes to existing functions are made in the custom packages only. A special replacement mechanism is used for this.
The mechanism replaces system objects in packages. If the behavior of an element from a base package must be modified, a new inherited element is created in a custom package. This custom element is identified as a replacing one for its parent element from the base package. The replacement of elements is hierarchical. All changes that must be applied to the pre-installed element are implemented in a replacing custom package. As a result, the system will execute the logic of the replacing element instead of its parent base element.
 

Package composition

  1. Schemas – configuration elements of the system that define system functions.

  2. External assemblies – third-party libraries that are required for development and integration with external systems. After installation, the libraries can be used in source code schemas.

  3. SQL scripts – custom SQL scripts that are executed in the database during the package installation. SQL scripts may be required for transferring packages to other configurations if the package transfer requires database changes.

  4. Data – section records, lookups and system setting values that are implemented in the current package may be required for transferring the package to other configurations if certain database records and values are connected to the current package.

 

bpm4-(1).png
 

Development examples

Example 1: Using Section Wizard add a field „Years of experience” to a Contact edit page – under „Current employment” tab

Navigate to Contacts section and open one of records

Click on View - Open section wizard

Choose „Current Employment“ tab

Drag & Drop Integer item from left side of page to wanted place on edit pages

bpm-5-(1).png

Fill in needed information on a modal window and click Save button to close modal window Click

bpm6.png

Click Save button to close Section wizard and that's it -> system will create needed objects and schemas, update the database and newly created detail will be visible on chosen edit page

bpm7.png

 

Example 2: Forbid adding an Invoice which has „Amount - Payment amount“ greater than 3999,99$ through Configuration - Adding details manually (developer needs to create and setup objects, schemas,...)

Navigate to Configuration (System Designer – Advance Settings – Configuration)

Choose existing (or create a new) custom package

Click Add – Object

bpm8.png

Setup newly created object

bpm9.png

Click „Publish“ – system will generate object and update database

bpm10.png

Click Add – Replacing Client Module

Setup newly create Replacing Client Module

bpm11.png

Place code to Source Code section

bpm_blackscreen.png

Click Save button – after system saves changes, Invoices with due greater tha 3999,99$ will not be saved   

bpm12.png      
 

Conclusion

A merger of CRM with BPM helps businesses of any size design and automate processes to deliver outstanding customer experience. Using Section Wizard offers You a simple customization without need of any coding, while more demanding changes can't be done without coding. Packages are a great part of the BPM Online, they can be exported and used in other BPM Online applications which saves a lot of developers time.

Tags: bpm'online, BPM, Cloud, CRM, Development

Share