Try OpenEdge Now
skip to main content
Debugging and Troubleshooting
Troubleshooting Resources : Log Entry Types Detail : Event logging : Logged information
 
Logged information
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 APPLY statement.
*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 LEAVE and ENTRY, 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-APPLY statement; 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 APPLY statement by an ABL program. Frequently, an application calls an APPLY statement 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.
Table 41. Information logged for each type of action
Action
Information logged
Event occurs
Event TypeGUI (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.