Sunday 7 February 2021

Order of fields can matter in a form interface

I wrote several months ago  about how the order of tuples can matter; what I didn't know at the time was that the order of the fields in an interface can also be critical. The picture below is an example of a form interface, not the one that is discussed underneath the picture.

It happened that I was asked to create an interface for invoices where the invoice had to have a specific project number; as I had already developed the interface, I simply added the project number at the end of the list of fields. Although theoretically this should be sufficient, it turned out that each customer is connected to some project that is not the project that should appear in the invoices. I explain this to myself that entering the customer number causes the customer's project to be entered into the 'project' field of the screen, and that the latter project number insertion fails because there is already a value there. 

The interface worked as my customer desired when the specific project number was the first field to be entered; again, the insertion of the customer's project failed because there was already a value in the 'projects' field.

So beware: sometimes the order of fields in an interface can be critical!

1 comment:

  1. What you describe is a little unusual.

    One would expect the same behaviour as when a user updates the form manually.

    Typically in the situation you describe I might expect the opposite to be the case. Well, it wouldn't be so surprising for the customer's project not to be set if there were already a project entered, but it's strange that your later update of the project number was simply ignored (basically dropped silently).

    What happens if a user fills in the row in the order that the interface previously did it (unsatisfactorily)? If the project number is refused with an error message (or even if there's a warning and the interface is sensitive to warnings) then the whole line should have been rejected. Since that didn't happen I wonder if a user's manual update to the field (not interface) isn't saved either.

    ReplyDelete