Question:
What type of code must be written to avoid the cryptic NOT NULL messages when records are to be added for fields already defined with NOT NULL in the table definitions?
Answer:
The NOT NULL message is not that cryptic. It indicates that a
required field, one that is not allowed to be null, does not have a value
when the row containing the field is written to the database.
It's fairly easy to check for this. At the appropriate place, you would
use the ISNULL() method for the Value property of the fields linked to the table's NOT NULL columns.
But where is the appropriate place? You have to do it before the row gets
to the database. OPO will flush a row to the database in a variety of
circumstances, such as moving to another container. The whole point of
this corrective action is to inform users of a problem while they can
still fix it; for me, this means before they navigate to another row. I
would use the Go... methods for this logic. It probably makes sense
to add this logic to a user-defined method and call it from both
Go... methods.
In my new book, Mastering Oracle Power Objects from O'Reilly &
Associates, I explain how to create a class that will make this even easier
to implement.