rule "bufdbfunc" requires that DEFINE BUFFER statements exist for every database buffer that appears in the code for a user-defined function.
Example:
FUNCTION SomethingStupid RETURNS LOGICAL :
IF customer.cust-name = "jurjen" THEN
customer.cust-name = "john".
RETURN FALSE.
END FUNCTION.
should have its own local buffer, like for example
FUNCTION SomethingStupid RETURNS LOGICAL :
DEFINE BUFFER customer FOR customer.
IF customer.cust-name = "jurjen" THEN
customer.cust-name = "john".
RETURN FALSE.
END FUNCTION.
That way, you prevent side-effects from changing a buffer that may also be used by other internal proedures or functions. You also prevent locking issues, which are likely to happen when the procedure runs persistent.