Rules and Guidelines for Row-Based and Array-Based Data Access Mode
Rules and Guidelines for Row-Based and Array-Based Data Access Mode
Use the following rules and guidelines when you write the procedure code to use either row-based or array-based data access mode:
In row-based mode, you can return INFA_ROWERROR in the input row notification function to indicate the function encountered an error for the row of data on input. The Integration Service increments the internal error count.
In array-based mode, do not return INFA_ROWERROR in the input row notification function. The Integration Service treats that as a fatal error. If you need to indicate a row in a block has an error, call the INFA_CTASetInputErrorRowM() or INFA_CTASetInputErrorRowU() function.
In row-based mode, the Integration Service only passes valid rows to the procedure.
In array-based mode, an input block may contain invalid rows, such as dropped, filtered, or error rows. Call INFA_CTAIsRowValid() to determine if a row in a block is valid.
In array-based mode, do not call INFA_CTASetNumRows() for a passive Custom transformation. You can call this function for active Custom transformations.
In array-based mode, call INFA_CTOutputNotification() once.
In array-based mode, you can call INFA_CTSetPassThruPort() only for passive Custom transformations.
In array-based mode for passive Custom transformations, you must output all rows in an output block, including any error row.