Wenn eine Datei unter Commit-Steuerung bearbeitet werden soll, so muss vorher ein STRCMTCTL abgesetzt werden.
SQL macht dies für dich automatisch.

Dein Problem ist dann jedoch, dass deine anderen Programme nach Aufruf der Prozedur auch einen Commit absetzen müssen, damit die Änderungen festgeschrieben werden, sonst läuft alles bis zum Jobende unter einer Transaktion für die dann ein Rollback abgesetzt wird.

Insgesamt stellt sich also die Mischung aus Aufruf aus SQL (ODBC) und Aufruf aus anderen Programmen als problematisch dar.

Eine Lösung kann ich dir da so direkt nicht anbieten.

Auch wenn du dein Prozedur auf rein SQL umstellst, hast du immer noch das Problem, dass OPTION COMMIT=*NONE nicht erlaubt ist und beim Aufruf ohne vorherigen STRCMTCTL deine Prozedur mit Fehler auf die Datei zugreift.

Die einzige Möglichkeit hier ist wohl, zwei Versionen zu stricken.

a) Prozedur zum Aufruf aus SQL
b) Programm zum Aufruf aus anderen Quellen

Besser wäre aber immer noch ein Trigger, denn da wäre es dann egal da du nur Puffer veränderst.