Note: The Error Dialog Monitor is a feature for advanced users.
Sometimes when FinalBuilder launches an external program, that program may display an error dialog box. This can pose problems when a project is running unattended.
The ideal solution to this problem is to ask the author of the external program to rewrite the application so it does not display error dialogs during automatic execution. However, this is not always possible. In such situations, the Error Dialog Monitor feature may be of use.
The Error Dialog Monitor does not have any configuration options. To enable it, select the action which launches the problematic application, and select the Properties tab. Look for the section "Process" and the checkbox marked "Monitor For Error Dialogs". This property only appears for actions which launch external processes.
When this option is available and the process is running, the monitor will watch for the following conditions:
|•||Process has displayed a visible, dialog-style, window for at least 5 seconds|
|•||Process has been idle, not using any CPU time or performing any I/O, for at least 5 seconds(*)|
If both of these conditions are found to be true, FinalBuilder will attempt to close the dialog. If the dialog cannot be closed, the process will be terminated.
FinalBuilder will also attempt to record any text which was visible in the dialog before it was closed. This approach works for some dialogs and not for others, depending on the target application.
If the dialog was successfully closed, a message will be shown in the log but the action will not automatically fail. If the process needs to be terminated, the action will always fail.
(*) This feature is not foolproof and will only work with some applications. Many applications perform background processing which will fool FinalBuilder into thinking the process is still active, even though it may have stopped with an error dialog. Also, dialog detection cannot detect hung or deadlocked applications. In all of these cases, it is recommended you use the Timeout feature to time out execution.