In addition, it provides functions such as message logging, augmenting messages with data from a database, and errorprocessing that is tailored to your requirements.
At first, the logic behind this sounds reasonable: If you change this data element from optional to required, you essentially duplicate errorprocessing that occurs elsewhere in the system.