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.