Plugin: Master Data Management
- Creator: Anton Mostovenko - email@example.com, Palich LLC Development Team
- Sponsor: Palich LLC
- iDempiere version: 3.1
- Java version: 1.8
- Sources: https://github.com/Dorithur/idempiere_mdm
Master Data Management’s goal is to keep all enterprise's master data in a good condition.
It is easy to control the correctness and timeliness of your master data when you are a company of 5 people.
It is a daunting task though when you are a company of hundreds of people and dozens of departments and your operations are increasingly dependent on tiny pieces of master data, housed deep in your ERP system. In this case you need automation.
This plugin can help you improve your operations by implementing cost-effective master data control via native feature of iDempiere - Workflow.
Why do we need more than Workflows?
By default in iDempiere you have an ability to use “Document Value” type of Workflows to control any data you want. You can build a complex sequence of actions.
For example you need to check whether the fields in your Products are ok. You will divide data into some parts and assign responsible employees for each one. After each change in Products, Workflow will take action and go through the validation process. As a result - all issues will be addressed to responsible Users or Roles.
But Workflow will start all it’s checks only if you create\edit records in Window or via models in Java code. Any other source of data will not trigger Workflow: direct inserts and updates in the database, for example.
Because of that you need a way to start all those validations over and over again. And here you will encounter another problem. Each force start of Workflow will create a lot of records in Activity table and in many others.
Our plugin can make all the validations without creating a lot of useless records. You simply need to configure a process as Scheduler and Workflow will start only if one of the validation nodes is triggered by it’s condition. It means that every valid record in your Master Data will not cause any resource consuming actions.
How it works
- Special process which can be started manually or as a Scheduler, will run marked conditions through an Evaluator. If at least one condition from Workflow tells that there is a problem - Workflow would be started in the same way as it should on record change event
- Process can be configured separately for each Workflow
- Several Schedulers can be created to use one Workflow with different data (to run in different time, for example)
Example Workflow contains two two nodes marked with MDM checkbox: “CheckName2” and “CheckReferenceNo”. Both of these nodes have conditions: ask for data input in “Business Partner” Window if condition is met. Or go to “CheckSuccessful” node if everything is ok. These nodes are needed because of parallel execution of several checks. Otherwise “End” node will consider that “Check*” nodes are completed when execution passes to “Window” type nodes.
How to use it
- Add plugin to Workspace, build it and add to your server
- Make sure that RunMdmChecks Process was created. It means that 2Pack.zip successfully installed
- Create Workflow of Document Value type
- Mark Node Conditions that you want to be checked by process with Master Data Management checkbox
- Create a Scheduler if you want it to be regular validation. You can also use Process directly
- Fill in SQL Statement parameter in Scheduler. It must be a valid Where Clause of query which returns set of records from the table that specified in your Workflow. For example, if you need to get all Products of some Category. Your parameter will look like: “M_Product_Category_ID = 1000000”
- If you want to give users an ability to run checks only for one record, you need to add Process to Window. SQLStatement parameter in this case can be empty - it automatically forms a Where Clause for the current record in Window. However user will need to select Workflow
- Workflow parameter I think is self-explanatory. It is a Workflow that will be used in a process