Navigation Model Documentation
In any Openbravo window it is possible to open the references entities in new tabs. For example, from the Sales Order window it is possible to open the Business Partner window to check the Customer used in the Sales Order.
In most cases each entity has a unique window where it is defined, there is only one window to define the Business Partners. So when a customer needs to be opened it is always used the same window. There are other entities that are created/managed in different windows depending on the flow or type. Orders can be Sales Orders, Purchase Orders, Return to Vendor, Return from Customer. In these cases it is needed to define a set of rules to determine based on the Order that it is desired to open which window has to be used.
To properly calculate the tab that needs to be opened there are 4 ways to define the navigation model. They are checked sequentially until one of them returns a tab:
- Forced Links
- Rules defined at field level
- Rules defined at table level
- Standard navigation model rules
These rules are defined in the Preference window. The Forced Link preferences are created setting the attribute like ForcedLinkWindowDBTableName where DBTableName has to be replaced with the name of the table in the database. And the UUID of the window where records of that Tabla name has to be opened. Setting the preference visibility to a specific window it is possible to overwrite the default Navigation Model of the table only on that window.
Rules defined at field level
When there are no Forced Link preferences for the table the rules defined at field level are checked. These rules are defined in the Tab tab of Window, Tabs and Fields window on the field where the record is opened from. A field can define several rules that are checked ordered by their sequence number. The rules can be of Direct Navigation or not.
Direct Navigation rules just define the tab that needs to be opened. In this case if the rule always is applied so it does not have any sense to define additional rules after a Direct Navigation rule. Other rules are checked based on their HQL Logic defined in case this logic is not meet the next rule is checked.
The rules can belong to a different Extension Module than the module of the related Field or Table. This means that third party modules can customize the Navigation Model rules of any table or field.
Rules defined at table level
These rules are analogue to the Field Level rules but are defined on the Navigation Rules tab of the Tables and Columns window. They are applied after checking all the field level rules. They are defined in the same way.
The last option to define the Window where a entity is managed are the Standard Navigation model rules. In this case the desired window is defined in the Table. It is also possible to define an additional window to be used on the purchase flows.
The rules creation is explained deeply in the following document: How_to_create_a_navigation_rule