I define Business Rules in my training courses as the "operations and constraints that apply to an organization in achieving its goals". This definition encompasses the entire suite of systems used by an organisation, from those that are paper based, to back office (e.g. a Sage BMS system like Sage 200 or Sage 100) and front office systems like the sales, marketing and customer service modules of Sage CRM. And strictly speaking they also include both unsaid, unspoken rules that new members of staff have to learn when they start with a new employer.
I tend to group rules into a number of broad categories. Generally I don't think we should be too academic about trying to classify business rules but it is useful to think about how broad and all encompassing they are. And in turn it may help understand how much Sage CRM can be used to implement and manage those rules across an organisation.
These are the rules that define which users can do what, when and how. So this might cover security rights for a user and determine the work that team members can do. It would also encompass the terminology that an organisation uses so prompts and captions would fall within Policy Rules.
Consultants may have strange urges, some folks are drawn to code like moths to a flame. But although Sage CRM does have a very sophisticated set of interfaces that allow all sorts of rules to be implemented in code, the majority of business rules especially policy rules do not require 'if statements' or a knowledge of scripting.
Below is a short list of different Sage CRM features and how they can be used to implement different examples of Policy Rules. Most Policy rules tend to be implemented in a codeless fashion.
Logic Rules are perhaps the easiest to understand, as these rules cover data integrity. This is not just referential integrity but also how 'sensible' is the data that is attempted to be stored in the system. For example start dates for an event should be before the end date for an event!
Logic Rules tend to be the ones that might need some scripting as we can see from the examples below.
Each item of data within a database can have a life cycle. Data gets inserted, it is updated and then it is ultimately deleted. In a system like Sage CRM process rules help model the path that an data takes during its life cycle. In Sage CRM it is less likely that records such as Opportunities or Companies would be deleted as they would be needed for historic reporting. But an item like an Sales Opportunity or a Customer Care issue would be seen to its final resolution through a series of updates and changes. The way in which these processes are controlled in Sage CRM is called Workflow. But although Sage CRM has a feature called workflow it is only part of the way in which the whole of a work process is managed within the organisation as we can see below other features in Sage CRM can help control the organisational processes.
And as Data is changed there may be rules that need to be followed about the data itself. For example should audit trails be kept of changes made? How do we ensure that any data is of the correct type? Most Data Rules can be implemented without code; when you define a field in Sage CRM the Entry Type determines the way in which that field behaves in interface. For example Integer fields will automatically provide the error handling if text is attempted to be entered into the field. Workflow on some entities like Opportunities, Lead, Cases and Solutions provides some auditing as the record is progressed through a workflow. But there will be a need to code some Data rules are shown in the examples below especially where Sage CRM is integrated with a 3rd Party System.
I certainly think there is an argument for saying the boundaries between each rules type is fuzzy. And in the grand scheme of things it is more important that Business Rules are known and a captured within the system, than it is we classify them as Logic or a Data rules. But when think about our organisation's rules and the features that Sage CRM provides we can see that Sage CRM provides a strong mechanism for capturing those rules and implementing then in a thorough and robust way.
And finally one of the features of Sage CRM that I love is that all of these business rules are defined in such a way as to all easy reporting. The rules are all defined in the Meta Data tables, and these tables like any other table within Sage CRM can be reported on. We can therefore at anytime take stock of the rules defined in the system.