The information in this article is provided as-is and to be used at own discretion. Depending on tool(s) used, customization(s), and/or other factors ongoing support on the solution below may not be provided by Qlik Support.
Filter Transformation
A common use of filter expressions is to check a field in the record for a specific value and then either allow or not allow the delete transaction to replicate to the target.
The task was set up to filter deletes from the source with a transformation expression to check a field for a value of 1
The complete transformation code as follows
CASE WHEN $AR_H_STREAM_POSITION != ''
THEN
CASE WHEN
$CompCode=1
THEN 1
END
ELSE 1
END
Warning Message in task log
Warning message in the task logs: "Table "Schema.Table" (Subtask 0 thread 1) is suspended. Cannot compute expression, not all column values are in the data record.
Solution
As we were discussing this issue we realized that on a delete statement from the source the only fields that were in the journal were before image fields. There were no after image fields which would have the correct field name "$CompCode"
When we changed the filter expression to use the before image field name it worked okay "$BI_CompCode" as the before image was included in the journal entry.
NOTE: There can be other reasons why a field that is referenced in an expression may not be in the journal or transaction log from the source. If you get an error message like this one you can help debug it by turning on the __CT tables to see what they are receiving from the source.