| Subject | Re: Catching errors and continue processing | 
|---|---|
| Author | |
| Post date | 2016-11-26T13:25:41Z | 
Continued..  
Adding a SUSPEND call resolves the issue. Records calculated before as well as after the exception are now commited and the changed procedure below gets the job done.
/M
SET TERM ^ ;
ALTER PROCEDURE P_LN_PC_PLAN_ALL_INSTRUMENTS2
RETURNS (
    ID Varchar(20),
    RESULT Varchar(100) )
AS
BEGIN
  FOR SELECT ID 
  FROM LN_LOANS
  WHERE COALESCE(DETAILS_LOCKED, 0)=0
  INTO :ID
  DO BEGIN
      RESULT='SUCCESS';
      EXECUTE PROCEDURE P_LN_PC_PLANINSTRUMENT(:ID);
      SUSPEND;  
      WHEN ANY DO BEGIN
        IN AUTONOMOUS TRANSACTION DO
           INSERT INTO LN_PLAN_ERRORS (LOAN_ID, ERRORDATE, MSG)
           VALUES (:ID, CURRENT_TIMESTAMP, 'GDSCODE: '||GDSCODE||', SQLCODE: '||SQLCODE||', SQLSTATE: '||SQLSTATE);
        RESULT='FAILED';
        SUSPEND;
      END     
  END
END ^
SET TERM ; ^