The previous section provided an example of a standard validation procedure that can be run automatically as part of the update process if there is a naming convention for them and a standard calling sequence and error handling mechanism. If the ProDataSet instance is always passed in as an INPUT or INPUT-OUTPUT parameter BY-REFERENCE, then the logic can freely access any data in both the before- and after-tables in the ProDataSet. Note that when a ProDataSet is passed locally BY-REFERENCE, INPUT and INPUT-OUTPUT amount to the same thing, because the procedures are sharing a single ProDataSet instance.