Hello-
I've developed a process flow that calls several data flows with the "Execute as RPC" option so that they can share variables. I have a question regarding error handling. The oracle table we're populating was out of disk space. The dataflow detected this condition and reported it in the log.
The auto generated code for the success condition does not seem to handle this correctly. An error occurred but my flow continued to process. The code that is generated only checks &FOCERRNUM for continuation. In this case, &&CM__RETURN is not zero, but my flow continues anyway.
This line of code computes the correct error code, but never checks it:
-SET &RET_CODE = IF &&CM__RETURN EQ 0 THEN &FOCERRNUM ELSE &&CM__RETURN;
If I modify the condition from:
-IF (&FOCERRNUM EQ 0) GOTO
EP_3;
To this, everything works great.
-IF (&RET_CODE EQ 0) GOTO
EP_3;
Shouldn't the generated code check RET_CODE instead of FOCERRNUM? Based on what I'm seeing, I'd need to change every success condition I ever drop into a process flow to get the correct results. That seems quirky.
Sample Rendered Code Block (modified for success using the graphical editor)
-
EP_2
-TYPE (ICM18015) DEP_2: procedure my_etl_df started.
EX samples/my_etl_df
-RUN
-IF (&&KILL_RPC EQ 'Y') GOTO :STOPRPCS;
-SET &RET_CODE = IF &&CM__RETURN EQ 0 THEN &FOCERRNUM ELSE &&CM__RETURN;
-TYPE (ICM18039) DEP_2 my_etl_df Return Code = &RET_CODE
-IF (&RET_CODE EQ 0) GOTO
EP_3;
-GOTO :ENDDEP
Please review it and let me know does it required always to setup the custom condition.
Thanks in advance for your suggestions.
DM 7.1.6, OS WIN2003K., Oracle 10g.
WF 7.6.2/ OS WIN2003.
DM 7.6.2