When you call a procedure, the Integration Service captures an additional return value beyond whatever return value you code into the procedure. This additional value indicates whether the Integration Service successfully called the procedure.
For COM procedures, this return value uses the type HRESULT.
Informatica procedures use the type INF_RESULT. If the value returned is S_OK/INF_SUCCESS, the Integration Service successfully called the procedure. You must return the appropriate value to indicate the success or failure of the external procedure. Informatica procedures return four values:
INF_SUCCESS.
The external procedure processed the row successfully. The Integration Service passes the row to the next transformation in the mapping.
INF_NO_OUTPUT_ROW.
The Integration Service does not write the current row due to external procedure logic. This is not an error. When you use INF_NO_OUTPUT_ROW to filter rows, the External Procedure transformation behaves similarly to the Filter transformation.
When you use INF_NO_OUTPUT_ROW in the external procedure, make sure you connect the External Procedure transformation to another transformation that receives rows from the External Procedure transformation only.
INF_ROW_ERROR.
Equivalent to a transformation error. The Integration Service discards the current row, but may process the next row unless you configure the session to stop on
n
errors.
INF_FATAL_ERROR.
Equivalent to an ABORT() function call. The Integration Service aborts the session and does not process any more rows.