Looking for ideas how to achieve the following use-case within the current limitations of the platform.
Use-case: The operator will scan a dynamic electronic barcode which encodes several parameters. For each of the encoded parameters they may or may not be a value assigned. Now, ideally after scanning the operator should get the chance to enter the missing data while the fields for which data has been transmitted should remain locked.
In classic app development I could simply write a component which replaces the input with a display field depending on whether there is some data value present in the incoming data or not. Something like this is currently not possible.
It looks like I am left with a rather complex field-by-field edit step or completely opening up the form entirely - which is not desired.
Can someone still think of a better alternative given the current limitations?
I see a few different ways to approach this with different pros and cons:
All form fields are inputs, users could conceivably overwrite values
Pros
Stupid simple to implement
Limits the number of steps needed
Cons
Users could overwrite a prepopulated form
Steps for each permutation of the form, but with different fields missing. (one where input 1 is blank, one where 2 is blank, one where 3 is blank…)
Pros
Nice user interface
No custom widget needed
Cons
Lots of steps
A pain to make changes to all steps if you want to adjust formatting
Custom widget.
Pros
Can be done in a single step
Good user interface
Cons
Need to develop a custom widget
Less support help when you go down the road of custom widgets.
When a field is missing (or multiple fields) users are walked moved to a single data entry step (or many 1 for each datatype) where there is just 1 input field. The label of this field dynamically changes, along with where it is being stored, until all fields are collected. If multiple fields are missing, looping is used to dynamically change input labels.
Pros
Not a million steps
Scales x1 to x100 with no extra work
Cons
User experience is less ideal (can’t see whole form while filling in gaps)
Trigger logic is more complicated
If I was making a solution for this-
I would probably either go with the first solution (all inputs) or a custom widget, but I also have a lot of confidence that with the correct process users could be trusted to not overwrite values.
This kinda hits again on the larger topic of widget properties accessible from triggers. If you could, in a trigger, disable an input that would be the best of all worlds. This is one of the biggest initiatives around the trigger editor that I am pushing for right now. If I was the decision maker, V1 of that would be:
Enable/disable inputs
Set focus on widget.
No timeline to add this functionality, but it is a point of discussion right now.