QESTNET Internal:QIntegrator Plugin
QESTLab Integration and the QIntegrator Plugin
The QIntegrator can be found in the QESTLab GitHub repository. An installation and configuration guide is available with the plugin.
This dll file allows QESTLab to send commands to the QESTNET service that triggers QESTNET Integration projects to run. The code will rarely ever need to be updated.
QESTLab code issues requests to the QIntegrator with both the name of the integrator to run and the conditions / data that will be passed in. This can be done basically any way.
Currently there are several integrators in the QESTLab code. Their names are specified by qestlab.qes options, and the conditions are hard-coded within QESTLab:
- For ID 1604, the option “Docket Integrator”. See Concrete > QLCSampleDestructiveAU.ctl and BusinessRuleDestructive.cls.
- For ID 1604, the option “Test Results Integrator”. See Concrete > QLCSampleDestructiveAU.ctl and BusinessRuleDestructive.cls.
- The hidden option “DocumentDeleteIntegrator” which also uses the hidden option “DocumentDeleteIntegratorFields”. See the QLO.Data class for usage.
This DLL sits along-side the QLC.exe file so that it is available for dynamic loading. This DLL is loaded and invoked by QESTLab using lines like the following: Set QIntegrator = CreateObject("Spectra.QESTLab.QIntegrator.ComQIntegrator") lngResponse = QIntegrator.RunIntegratorSync(strDeleteIntegrator, arrConditions())
There are 2 ways to invoke the QIntegrator:
- QIntegrator.RunIntegratorSync(…) – Ensures the integration finishes before QESTLab is allowed to continue running.
- QIntegtrator.RunIntegrator(…) – Sets the integrator running in the background and resumes QESTLab execution immediately.
Which to use depends on the integrator itself. Most integrators rely on database data being present, so sometimes you don’t want QESTLab to interfere with it while it’s running. For example:
- There is an integrator that tracks data about deleted items. This is synchronous so that QESTLab doesn’t actually delete it while the integrator is looking at the data.
- There is a report data export integrator which is asynchronous because it can take a long time to execute, and will freeze QESTLab unnecessarily, causing confusion to the user.