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