Service data flow

This section describes the data flow through the ConnectorForExcel service. Understanding these concepts will help you design your spreadsheets for optimal performance.

  • In onCreateService(), the ConnectorForExcel service:

    1. Creates a COM object instance of ConnectorForExcel.dll.

    2. ConnectorForExcel.dll starts the Excel process and waits for task inputs from the client.

  • In onInvoke(), the ConnectorForExcel service:

    1. Creates a thread that makes requests to Excel.

    2. Executes the macro and sends results back to the client.

    3. The onInvoke() method's main thread executes an event loop that waits for external events to occur such as:

      • timeouts

        The main thread throws a non-fatal or fatal exception if configured timeouts in the application profile expire. If a timeout occurs, the service terminates the Excel process started by this task before throwing a fatal or non-fatal exception.

      • pattern match in Dialog Sniffer log file

        If patterns specified in the application profile are found, terminates the Excel process started by this task and throws a non-fatal or fatal exception.

      • Dialog Sniffer dismisses dialogs with patterns

        Dialog Sniffer attempts to dismiss dialogs with patterns specified in the application profile and logs a message in the log file. ConnectorForExcel service continues execution regardless of whether dialog dismissal is successful or not.

  • For non-fatal exceptions, Symphony retries the failed task.

  • The VBA macro formats its result message and returns the result to the ConnectorForExcel.dll.

  • The ConnectorForExcel service sends the result back to the client.

  • In onDestroyService(), the ConnectorForExcel service cleans up and shuts down the Excel process.