Logged information
- Last Updated: January 17, 2024
- 2 minute read
- OpenEdge
- Version 12.8
- Documentation
Event logging records information about the following types of actions as they apply to an event:
-
Event occurs — Either the client receives notification
of an external event or the AVM executes an
APPLYstatement. - Indirect action taken — The client takes additional action in response to the event. For example, on a Windows minimize event, the client might minimize several other related windows.
-
ABL event pushed onto stack — The internal events that result
from external events, such as
LEAVEandENTRY, are pushed onto the stack, from where they will be executed in sequence. -
Event popped from stack without executing — In certain cases,
the AVM does not execute events on the stack. For example:
- An event occurs to an object that is disabled. the AVM pushes the event onto the stack, and then pops it off the stack without executing the corresponding trigger, if one exists.
- Other examples: a trigger executes a
RETURN NO-APPLYstatement; a COM event occurs during a database or socket operation; a field’s validation fails.
- Trigger started — Begins execution of the user interface trigger associated with the event.
-
Event applied by APPLY statement — OpenEdge logs each execution
of an
APPLYstatement by an ABL program. Frequently, an application calls anAPPLYstatement from within a user-defined trigger. - Trigger finished — Ends execution of the user interface trigger associated with the event.
- Event popped off stack — Concludes a specific event execution.
The order of actions presented here is typical of what might appear in a log. Note, however, that not all actions occur for every event. An external event starts all of the actions that occur in an event-driven program, except for initialization. Thus, you would always expect to find the following in the log:
- A GUI, socket, Async, or COM event first
- One or more ABL events and their associated triggers or event procedures
- The conclusion of the external event
The following table lists the information that is logged for each of the described actions. Note that the term object refers to the object to which the event applies.
| Action | Information logged |
|---|---|
| Event occurs |
Event Type — GUI (GUI Windows), UI (character
mode), PRGS, COM, ASYNC,
or SOCKET.Event Name — (For example) WM_xxx,
OCX event name, LEAVE, TAB.Widget
information — Type (BUTTON, for example), name,
and handle ID of the object, when available.Flag — Can be
set to TRUE or FALSE for COM events
(for use by Progress Software Corporation Technical Support). OpenEdge Handled —
The string Progress Handled appears only for COM
object WM_ events. Logging this string means that
the AVM captured the event and will process it, as opposed to passing
it to the ActiveX control. |
| Indirect action | Description — A descriptive string. When processing an event, the AVM might perform additional tasks that will also be recorded. These extra tasks include: minimize, restore, and close related windows. |
| ABL event pushed onto stack |
Event Name — (For example) LEAVE, ENTRY.Widget information —
Type (BUTTON, for example), name, and handle ID
of the object, when available.Procedure Name — Name of the procedure
that created the object.Note: OpenEdge makes no
entry for COM events sent by an ActiveX control. |
| Event popped off stack without executing |
Event Name — (For example) LEAVE.Event
Discarded — Noted as "discarded." Additional information provided,
if the reason for the action is known (for example, "disabled").Widget
information — Type (BUTTON, for example), name,
and handle ID of the object, when available. |
| Trigger started |
Handler — Event name and object name
(similar to the ON statement), or name of the internal
procedure. |
Event applied by APPLY statement |
Event Name — (For example) ENTRY.Widget information —
Type (BUTTON, for example), name, and handle ID
of the object, when available.Routine and line number — Name
and line number of the routine (.p or .w file
or method) and internal procedure, if appropriate, where the APPLY statement
is. The line number is based on the Debugger listing file. |
| Trigger finished |
Handler — Event name and object name
(similar to the ON statement), or name of the internal
procedure. |
| Event popped off stack |
Event Name — (For example) LEAVE, ENTRY.Widget information —
Type (BUTTON, for example), name, and handle ID
of the object, when available.Routine Name — Name of the
routine (.p or .w file or
method) that created the object.Note: OpenEdge makes
no entry for COM events sent by the control. |