Consultor Eletrônico



Kbase P188375: 4GL/ABL: Error thrown inside a ProDataSet FILL event is not raised to the calling procedure.
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   5/25/2011
Status: Unverified

SYMPTOM(s):

4GL/ABL: Error thrown inside a ProDataSet FILL event is not raised to the calling procedure.


ProDataSets FILL Events do not support structured error processing using CATCH blocks, CATCH and THROW statements.

The AFTER-ROW-FILL event of a buffer object of a DATASET temp-table does not raise the error thrown in one of its CATCH blocks to the caller.

FACT(s) (Environment):

OpenEdge 10.1x
OpenEdge 10.2x
OpenEdge Category: Language (4GL/ABL)
All Supported Operating Systems

CAUSE:

This is expected and documented behavior. The OpenEdge Development: ProDataSets manual states in the ProDataSets Events chapter states: "If a callback procedure attempts to raise error for a FILL event, either through the traditional RETURN ERROR or through the structured UNDO, THROW, the ProDataSet ERROR attribute is set to true. Error is not raised to the caller."

FIX:

The AFTER-ROW-FILL event procedure can RETURN ERROR to abort the entire FILL, or RETURN NO-APPLY to cancel the cascading of the FILL to child buffers, if any.

For further error processing use the ProDataSet or the buffer object ERROR attribute which is set when a callback procedure raises an error for a FILL event.