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
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:
-
Server core
-
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
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.
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
-
Schemas – configuration elements of the system that define system functions.
-
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.
-
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.
-
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.
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
Fill in needed information on a modal window and click Save button to close modal window Click
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
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
Setup newly created object
Click „Publish“ – system will generate object and update database
Click Add – Replacing Client Module
Setup newly create Replacing Client Module
Place code to Source Code section
Click Save button – after system saves changes, Invoices with due greater tha 3999,99$ will not be saved
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.
|