Until OpenEdge 10.2B02, ABL had restrictions on where an input-blocking statement ( UPDATE, SET, PROMPT-FOR, CHOOSE, INSERT, WAIT-FOR, READKEY, or PROCESS EVENTS) could be used. Input-blocking statements could not be used in a user-defined function, a non-void method, class destructors and some database trigger blocks.
In OE 10.2B02 new startup parameter was introduced: -IOEverywhere <n>, where <n> is either 0 or 1. For service packs of Release 10.2B, the default is 0, which means the new feature is off and everything works as before. However, when "-IOEverywhere 1" is specified, input-blocking statements may be used in almost every context. There is only one remaining restriction. This occurs if the application.
- Uses .NET and is in a WAIT-FOR Application:Run() statement.
- Does a stacked input blocking statement for an ABL non-modal window in one of the places that has always been restricted from doing input-blocking.
In these cases, the restriction remains in place.
In OpenEdge11, the default became "-IOEverywhere 1", thus removing the restriction (except for the special cases above) without the need to use the startup parameter.
The default value for -IOEverywhere is normally appropriate. It can be changed if the pre-OE11 behavior is needed for compatibility, or possibly to work around a bug. For this reason, -IOEverywhere is currently undocumented except in the release notes. There are no plans to document -IOEverywhere in our existing documentation.
The parameter is intended for use under the direction of Technical Support as a workaround due to a defect. If this parameter needs to be used, please contact Technical Support for assistance in duplication and logging of a defect for the issue being encountered.