|BZ777: AutoOpen Post with Omitted Key Field Corrupts Index|
Logic Issue, Bug
An AutoOpen post with a posting triplet set to post on create can only store data in a field if that field is present on the auto-opened view. Fields not present on the view must be set to post on modify or the data cannot be stored. This is the specification of Helix and it is functioning as expected.
Following this logic, it is possible to create a situation that is impossible to resolve. If the key field is not included on the target view, a record will be created (by pressing Enter on the auto-opened view) but because the key field was not on the view, no data is stored in that field and the record is created with an undefined key field. After the entry on the auto-opened view, the view closes and you are returned to the originating view. Pressing enter on this view again will result in the AutoOpen view opening again, since there is still no record that satisfies the requirement of the posting tile. This is within the specification of Helix and it is functioning as expected.
The problem is that when the record is created on the auto-opened view and the undefined key field entry is stored, any index that includes the key field becomes corrupted. Attempting to delete these records result in blank records (occasionally referred to as ghost records) in the relation. Running the collection through Helix Utility may or may not detect the problem and inform you that indexes need to be rebuilt.
The problem can be avoided by making sure the key field is present on the auto-opened view. Remove the Edit option from the rectangle to prevent users from changing its value.
If indexes have already been corrupted in your collection, run Helix Utility and choose Data Damage Repair. If Helix Utility does not correct the problem, open the collection with Helix RADE and manually rebuild the affected index.
This bug affects all Helix applications: RADE, Engine & Client/Server as far back as we are able to test.
This bug is fixed in Helix RADE 6.1.2, Helix Server 6.1.1, & Helix Engine macOS (6.1pr3) and later.