Jon,
One way to accomplish this would be to define additional attributes in the repository, one for each discrete or set of attributes that would indicate whether those attributes have been populated. Then define a validation rule on the original attribute that says it is required, but only if the flag attribute has been set. Then define a VTL or Change Notification rule to set the flag when the original attribute is set to a value. So when the record is first created, the required rule will be inactive, allowing for the original attribute to be empty. But once a user populates the attribute, the flag will be set and then the required rule will be applied. If the original attribute is subsequently cleared, it will be flagged with a validation rule. The user could then use the history and rollback function to restore the value, which would make it valid again.
If you have a large number of attributes an each needs to be managed separately, then you would end up with a lot of flag attributes (one for each of the original attributes) and a separate validation rule (with condition) for each. If a set of attributes can be treated as a group where once one of the attributes is populated, then all are required, then a single flag attribute can be used and the same rule (with condition) can be assigned to each of the attributes in that group.
The flag attributes can be placed on a hidden tab so they don't clutter up the UI, but they should not be hidden via security as that will eliminate the ability to populate them via VTL or Change Notification.
-Brian
------------------------------
Brian Zupke | Senior Technical Support Engineer
Winshuttle North America | 909-900-9179
------------------------------