In various discussions with customers, the question often arises “where to place validations in an SAP MDM landscape”. This is very relevant a landscape where MDM is used to store master data and BPM is used for human centric processes around master data. Because of this I’m writing this blog to give you an idea regarding the possibilities.
If you decide to combine MDM and BPM you can draw the following architecture picture:
By showing this image the various possibilities are more or less obvious:
- SAP MDM: The MDM tool itself comes at least with two options, which you both will utilize:
a. By modeling a well defined data model: By using the correct data types and the correct modeling capabilities (using lookups, qualified tables, tuples in combination with single and multi-valued features) you can already build “implicit” validations. For instance, if you choose to use a data type “Integer” for a certain field, a user can only enter digits
b. MDM Validations: MDM uses the concept of validations, which are basically Excel-like formulas that return a TRUE or FALSE value as the result of the validation. Please read this blog from Klaus David: MDM Validations
- SAP BRM: BRM gives companies the possibility to define, execute and manage business rules spanning across different business applications used by different departments within an organization. In BRM you can write rules and validations in a script language. In addition you can define so called decision tables. These rules and validations can be exposed as Web Services (>CE7.2) and thereby you can consume these functions or methods from almost any system; as well from MDM or of course from the Process layer. This is especially useful where the rules can change frequently.
- Service Layer. You can also write validations in your service layer, but more important is that you can expose and interface existing validations in existing backend systems. For example you can expose SAP ERP validations by consuming RFCs in your Service layer by Web Services. This option is very interesting if you use SAP’s CAF because this framework comes with many wizards and helpers to consume and expose services from SAP systems.
- User Interface Layer: In addition to the above, you can also define your validations directly in the user interface layer. Especially “active validations” can be placed here because the user can’t even choose a wrong value, or see validation rules before entering data (e.g. mandatory fields in combination with contextual dependencies like account groups and must-fields). As well you can do pre-selections and pre-filtering of lookups in this layer.
In your project, you should make the effort carefully reviewwhere you place your validation. Generally and in long term I believe the BRM and of course the modeling itself is the right place. (BRM would have the advantage in that it is easy to maintain/change rules right ? so great if the business rules change frequently?)
PS: Many thanks to Jens Sauer, Rene Klumberg and Simon Townson for the help they provided during writing this blog.