When using the RQM/RFT integration, you may run into a problem running RFT scripts from RQM when using Shared Location, which results in this error:
The script cannot be executed
You have this problem even though the RQM/RFT integration is set up correctly and the RFT script itself works fine.
RFT scripts run from RQM fail with the "The script cannot be executed" error, but the same scripts run from RFT itself work fine.
If you reconfigure the problem script to use Local instead of Shared Location, the script runs fine from RQM.
In the RQM adapter console, the RFT command used by RQM has a UNC or network path in the -datastore switch instead of a local path to a local temporary location.
This problem happens on machines that are missing a Microsoft VC++ Redistributable required by RFT's RQM adapter, which prevents a DLL file (rftrqmcomm.dll) from loading. The RQM adapter relies on rftrqmcomm.dll to get the temporary location where RQM copied the RFT scripts that were in the shared location. The -datastore switch of the RFT command used by RQM should never have a network path as its value -- if it does, that indicates a problem with the integration or the system hosting the RQM adapter.
How to determine whether you are having this problem
- Enable debug logging for the RQM adapter. Then start the RQM adapter, reproduce the problem, and check the RFT command used by RQM -- if the -datastore switch has a network path, you might be having this problem. Proceed to the next step.
- With the RQM adapter still running, start Process Explorer and use its Find command to search for rftrqmcomm.dll. If nothing is found, that indicates this DLL was not loaded by the RQM adapter, and that you are having this problem.
(If you cannot run Process Explorer but the test from #1 indicates you may be having this problem, go ahead and follow the steps to resolve the problem.)
Resolving this problem
The RQM adapter requires a new enough version of the 32-bit Microsoft Visual C++ 2005 Redistributable. This can be obtained here. Installing the missing redistributable will resolve this problem.