Document validation is an iDempiere plugin that helps you prevent human error. It gives you the ability to create validation tests that:
offers the user detailed feedback about the document (info)
requires the user to accept "potentially" incorrect situations (warn)
prevents the user from acting on known incorrect situations (fail)
Installation
Download the installation files from the Document Validation Base project => Source link => downloads folder
Install the 01_plugin (jar) via the felix console with a start level of 5
Install the 02_packin (zip) to create the main windows and configuration.
Install the 03_packin (zip) to add configuration records in the configuration tables (created in the previous step)
Download the installation files from the Document Validation Sample project => Source link => downloads folder
Install the plugin (jar) via the felix console with a start level of 5
Open the Table and Column window => find the "C_Order" record => open the Tab sub-tab
Create a new Column record with a system element of "ChuBoe_Validate" and a process of "Document Validation".
NOTE - com.chuboe.validation.base.event => MyEventHandler.java shows all the tables you can add "ChuBoe_Validate" to. Doing so automatically invokes validation during the DocAction.
Log in as your business client admin. NOTE: be sure to see the demo below for more details!
Create a Standard Order => Sales Order record with one charge line (no product).
Validate the Sales Order to see the issues. Open the Document Validation window to see the detailed results.
Complete the Sales Order to see validation automatically invoke.
Remove or modify the Sample project (via felix console) to remove the sample validation tests.
Document Validation Version 2
0:00:00 Introduction
0:01:45 Design Diagram - What is Document Validation
0:08:00 Demonstration in iDempiere
0:11:45 Why make validation a completely separate tab?
0:15:30 Questions about validation creation and approval
0:22:00 Table & Column => Logging was not originally enabled. This issue has been fixed.
0:22:15 Why put validation in code?
0:30:30 Validation Levels (INFO, WARN, FAIL)
0:31:30 Examples of how to use Validation
0:37:30 Design architecture discussion (OSGI service lookup)
0:40.15 Export Pack Out and Jars from code
0:44:30 Deploy Pack In and Jars via Felix Console
note: the issue in the video occured because I did not restore my environment properly. I later tested in a new environment - all worked properly as demonstrated.