Jean Jordaan - 2010-10-19

In PlominoForm.readInputs , if a field was not submitted, it is ignored (except if it was a SELECTION or DOCLINK field).
If it was not submitted and it's a SELECTION or DOCLINK field, then any corresponding item on the edited document is removed.
If it was submitted but the value is '', then any corresponding item on the edited document is removed.

This creates a situation where items that have '' as a value are like Schrödinger's cat: they exist until we edit them, but if we leave them untouched they vanish.

This means that if I'm checking for an item that may be a blank string, if it happens to be editable through the web, I have to remember that the item may have vanished. Perhaps this means that the item is meant to be '', but was removed by a form, we don't know.

If a corresponding field is removed from a form, then any items that were set will stay on existing documents, whether they're '' or any other value, so the existence of an item says nothing about the existence of a field. 

To me, these semantics are obscure.

I propose not deleting items when the value is ''. If a field is deleted and related values should be removed, do this via an agent.