Kbase P130300: Error 3161 when using PROCESS EVENTS
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  23/04/2008 |
|
Status: Unverified
FACT(s) (Environment):
All Supported Operating Systems
Progress/OpenEdge Versions
SYMPTOM(s):
Error 3161 when using PROCESS EVENTS
IO-Blocking trigger invalid from within GET of query/browse. (3161)
PROCESS EVENTS executed by external procedure called by Write trigger
CAUSE:
This is expected behavior because the PROCESS EVENTS statement causes all outstanding events to be processed without blocking for user input.
The error 3161 happens because a FIND or WRITE trigger fires during a QUERY/BROWSE because the QUERY does finds and may cause writes to the database, if such trigger contains an IO-BLOCK (prompt-for, update etc) that waits for input, then this error results. In this case the PROCESS EVENTS creates an implicit input which is not allowed -- there can be no "wait-for" occurring within a BROWSE action.
FIX:
Do not use PROCESS EVENTS within a Write trigger or a external procedure called by the Write Trigger.