General policy: functions return zero for normal return, a positive integer for argument errors, and a negative integer for global errors (such as that the data base is not connected). See section 12, Error Codes. Exceptions to this rule are the status checking functions ( INWORKSPACE(), EDITED(), ISTRANSIENT() and BOUND()) which return TRUE or FALSE.
Functions that are marked [DESTRUCTIVE] have the side effect that the input label is set to refer directly to the version that contains changes. That version is thereafter changed destructively until it is stored in the data base through a call to SO_STOREOBJ() .