I've gotten into a conundrum and it may take a while for the full explanation, so the executive summary is that I'm looking to force the user filling out an SRM form to pull a value from a menu and not allow them to simply type in whatever they want. This would be simple if I used an Advanced Interface Form, but I'd like to stay away from those except in situations where they are needed for many reasons.
So here's the scenario. I have an on-boarding equipment and software request form for new workers who are not yet a part of the company (this is a potential issue because they will not yet have People records because they are not yet in HR) and the manager of the new worker is both the person filling out the form and the Customer on the fulfillment requests. As a part of the on-boarding process, there is another application that contains a lot of data needed to identify these new workers.
As a result, I provide them with a dropdown of "New Worker Name" where they select a value from the menu based on a database lookup to that other application (a dynamic menu pulled from a View Form over a linked server, to be specific.) When they select a new worker from the dropdown, I have an action to do a Set Fields and populate a bunch of hidden questions used behind the scenes, such as the general location to help identify which I.T. group to assign the PC deployment to, their accounting information for billing purposes for the hardware/software, the start date for the new worker, the unique id of the record in the source system so we can use it as a foreign key within SRM, etc.
Unfortunately, since those pre-populated values are all hidden to facilitate making the form easier to work with for users, I can't make a question both required and hidden. Additionally, there's no logic that I can apply prior to the user clicking submit to prevent someone from submitting a request without these fields populated. The only thing I can do is within my PDT, build in a variable to check for a default value such as in the foreign key field, which then I would kick the whole thing out to the service desk to have them contact the user and try filling the whole thing out again.
Have any of you found a way to get around this limitation? If I were doing ARS development I'd just slap $MENU$ on the field and call it a day, but there's nothing like that in SRM as far as I can tell. Unfortunately, this specific form needs to be bulletproof and completely impossible to mess up. Any advice would be greatly appreciated.