I am not sure which approach will serve the users best, while from a FM point of view, keeping it simple and elegant.
High level, we have serialized products, changing ownership between customers over time, more specifically, boats changing owners.
The datamodel has tables CUSTOMERS, BOATS and JOIN_CUST_BOAT (incl. purchase date, sell date etc.), which works fine in views, portals etc.
Relations are set (CUSTOMER::Cust_ID = BOATS::fk_Cust_ID, JOIN_CUST_BOAT::fk_Cust_ID and JOIN_REL_BOAT::fk_Boat_ID).
In order to maintain ownership, I need to setup dialogues for:
- New boats, not assigned to any customer, assigning to an existing customer as the new owner (sale),
- Existing boats with existing owners, transfering ownership from one customer to another (both sale and purchase),
- Existing boats with existing owners, transfering ownership to new customers (both sale and purchase).
The ownership mutation should start from either a layout based on CUSTOMERS, with current record pointing to a specific customer, or a layout based on BOATS, with current record pointing to a specific Boat.
Either way, a new dialogue / record needs to be created in JOIN_CUST_BOAT.
Or, come to think of it, an exisiting JOIN_CUST_BOAT record needs to be changed (end date of ownership for an exisiting customer - boat relationship).
Functional requirement is a pick-list (special "choice" layout?) to be provided to the user, showing several fields of ALL records of the relevant table (CUSTOMERS or BOATS).
Either a list of all Customers to choose from (from a BOAT perspective), or a list of all Boats to choose from (from a CUSTOMER perspective).
Creating a view / layout in order for the users to choose either BOAT or RELATION leads to a found recordset, losing the originating CUSTOMER record or BOAT record, resp. Customer_ID or Boat_ID.
Now, for the question: what is the best approach in FM to achieve this?
Using a global variable in a table to store the originating Relation_ID / Boat_ID, or using a global script variable?
Is there a possibility of showing all records of a different table in a different window to choose from without changing the original found record set?
Should index refreshing / rebuilding be adressed within the script(s)?
Any suggestion -even just a short, high level approach to get me started - will be greatly appreaciated.