Projects:Extend Navigation Model/Technical Specifications
Contents |
Introduction
In this document are described the developments needed to implement the Extended Navigation model.
Windows, Tabs and Fields
- New tab Navigation Rules
- Tablename: AD_TAble_Navigation
- AD_Table.Name: TableNavigation
- In window Windows, tabs and fields under Fields tab.
- Has a display logic:
- Visible when the field is a foreign key to other entity. It might require an Auxiliary Input in the Fields tab.
- Fields (column name)
- Sequence (SeqNo): Numeric field to determine the order of priority of each rule.
- Destination tab (AD_Tab_ID): Field to set the tab that has to be opened. Might require a new Selector to easily search and select the tab.
- HQL where clause
Processes
ActionHandler ReferencedLink
- Modify the servlet to search first using the new definition.
- Check if all the context information is available. If not add it in the calls to the servlet:
- OB.Utilities.openDirectView()
- The rules are processed ordered by sequence asc.
- A query to the destination entity using the where clause is executed if a result is returned the tab id is returned.
Core configuration
Review all core windows to configure navigation rules when needed.
List of fields (window.tab.field -> destination):
- Purchase *.*.Order Line -> Purchase Order or Return To Vendor based on DocType.return
- Sales *.*.Order Line -> Sales Order or Return From Customer based on DocType.return
- Purchase *.*.Goods Receipt -> Goods Receipt or Return To Vendor Shipment based on DocType.return
- Sales *.*.Goods Shipment -> Goods Shipment or Return From Customer Receipt based on DocType.return
- *.*.Project -> Services or Multiphase based on Project Type
Check any table that it is used in more than one window.
- INCOMPLETE
Open Items
- Check performance with HQL where clauses as it will execute a query for each rule in the worst scenario.
- If performance is wrong think on alternatives:
- Use property path instead of HQL where possible.
- Define multiple property paths in an additional child tab.
- If performance is wrong think on alternatives:
- Discuss if it is really needed to have context information that it is not also available in the record.
- Sales/Purchase flag for example is always included in the record.
- If it is not always needed create the rules as a tab child of the destination table and add the origin tab/id as optional fields. If the origin fields are filled only execute those rules when those are the origin tab/field and execute them with higher priority than regular navigation rules.