Thanks for the response Patrick, that is very helpful information. I was also able to find this resource which gives a nice comparison between lists and form libraries for submission.
I'm still leaning towards submitting to a list, given it's straight-forward design, ability to easily design SP workflows, and the overall simplicity of our form, but let me detail what we have so I can make sure I'm on the right track.
Our form is a conversion from 'paper' - an HR form used for employee records that is used for new employees, change of title/position/supervisor etc for existing employees, and separation of employees. It will connect to a master SQL DB that contains all employee info (my thought was to just expose this in SP as an external CT), a parsed dataset (also from SQL, and exposed to SP via another external CT) based on an export from Active Directory, and a custom list in SP (contains codes and definitions for separation reasons).
For a new employee, they wouldn't yet have an "Employee ID" assigned (that takes place through a separate process outside the scope of this form), so the user filling in the form would simply add in the new employee's info (basic contact info), the type of "Action" being performed (i.e. "New Hire" in this case, or "Change of Position", "Separation", etc. for others), the position type, title/class, supervisor/department...all standard fields for new employees. This would then go to the supervisor for approval then HR for completion (I'll have a workflow that handles user alerting for each step throughout the process).
For an existing employee (changes or separation), the user would enter in the "Employee ID" of an existing employee which would then cause the form to be auto-populated with the current set of information from the master database (external CT connected to SQL). Once populated, they could then make any changes needed (type of "Action" then associated fields that match) then run through the same process - submit to supervisor for approval, then on to HR for completion.
In any of the above situations, the lifecycle of the form ends with HR as they print out the form upon completion then delete it from SP (not too happy with that myself, but I'm working with them to discuss archiving options for the forms in a separate area of SP).
The concerns that have been brought up are essentially on two things: security of information (forms will contain personal and private info), and storage of data from the "Master DB" in multiple locations (i.e. external CT's and the actual form data itself). The master DB is read-only, so we'll never be writing back to it, so in my mind, no matter where the form data is submitted it'll be separate from that data anyway, so there's no real way around having the data from the master DB existing in multiple locations (as soon as you save the form, according to their definition: since it contains information that exists in the master DB, you're storing that data in multiple locations). Using an external content type simply exposes the data within SharePoint, so it's never actually stored in SP (and I believe I can create the connection without the standard CRUD operations and make it read-only), so I should be able to mitigate that concern with a proper explanation to them. But on the question of security, on the surface it would appear that both a list and a form library are similar in that respect, and since we're not using any form of digital signatures, either would work equal. How would either of these compare to the use of a web service in respect to security? Would a web service be less/more secure?
Thanks again for the help, I appreciate it.
- R