In a perfect world, System Types should be fully populated before we start Mapping. However, we often discover new tables, new fields, etc during the mapping session. We need to make it easy/intuitive that while on a Mapping Record, if I'm missing something like a Check Table I can simply add it to the Field Mapping directly and continue with my mapping. Either we store it first on the Mapping record, then push it back to System Types, or we just have a link straight from the Mapping CheckTable to the SystemType record so we can quickly add it.
I should never have a leave the mapping screen to update some metadata before I can proceed or save a record. For example, in mapping a State field I need to make it an Xref, but realize the Check Table was not defined. In mapping I enter the Xref action, the Table/Field, and press Save. I can't save the record and get a message that "Xref or RuleXref action requires a check table to be defined for the field. Please update System Type for this field if a Check Table is required." Yes, it's required, but right now is not the time for me to cancel this record, navigate over to System Types, add the check table, and then navigate back and re-enter this field.
1. Allow the user to Enter the check table in the Mapping.
2. Run a procedure to update the Check Table back in the System Type (so it's available the next time we need it).
3. Change the Error to a Warning so the user can exit gracefully (without failing the record) during a mapping session.
4. Run the ERROR check only when you set the Mapping Status to Complete. This makes it OK to enter a partial mapping in the heat of the battle when the screen is projected in front of a room full of people, but prevents you from marking the Record as COMPLETE to trigger the next step. Incomplete mappings can be reviewed and fixed After the meeting.