Projects:Reference Extension/Functional Documentation
Currently modules are not allowed to implement their own data Reference types. It is possible to define within a module Search, Table and List references.
This limitation makes not possible to create new rich references which would be a very nice way of empowering Openbravo ERP.
The purpose of this project is to enhance Openbravo ERP core to allow it to support modules to define their data reference types.
The initial goal is to support at least the creation of the Selector Prototype.
This project is not expected to deliver any new functionality by itself, but support for other modules to add rich references.
To understand what are references, the type and what are they used for:
User roles & profiles
This project is not intended for final users but for module developers with technical skills and a deep knowledge of Openbravo ERP technology, interested in developing their own references.
Business process definition
Merton is an Openbravo ERP developer who wants to create a module where one of the fields suggest possible values from a table when the user starts typing on it.
The module that Merton creates will include a new reference definition in application dictionary as well as its implementation.
This reference is defined as two reference, one would be Data type reference and would define which Java class implements the reference, whereas the other one would be a SubType reference and, in this case, would simply define the table the column is a foreign key to.
The Java implementation consists in the implementation of a known interface which has methods to obtain all the information needed to generate the code for the reference, for example how is the UI in edition and grid modes, which is the Java type for the DAL generated property, etc.
Once Merton has in his module the reference defined he's able to create the field by just associating this reference to the column linked to the field.
Functional requirements based on business processes
User Interface Mockups
Data references defined in modules will have to implement a known interface. This implementation will give the information currently references have in WADControl and hardcoded in different places.