COM Class Factory Error¶
Note: This issue only occurs when running BRES in (Microsoft Excel based) VSTO mode.
Use this page to learn more about an error labeled as a COM Class Factory Error that has appeared for different combinations of Windows Windows and Microsoft Office when trying to run the IFS Business Reporter Execution Server (also named BRES in this document).
The error has appeared on different combinations of Microsoft Windows specific Operating Systems and Office versions.
Generally it is not recommended to use Office 365 on the server/computer hosting BRES. A perpetual version of Office is recommended.
If the described error appears when running BRES, the information on this page provides a possible way to fix the issue.
Note: The described workaround has been validated on e.g. Office 365 with Excel 2013 as well as Excel 2016 but also for other combinations. One perceived issue is that a new build version of either Windows Windows or Microsoft Office might lead to that the problem re-appears. Due to this reason it is hard to list the combinations of operating system and Office version where the problem exists.
The COM Class Factory Error¶
When BRES is about to process a downloaded IFS Business Reporter report, the COM Class Factory Error will appear as in the picture below.
Figure 1: IFS Business Reporter Execution Server Console - COM Factory Class Error
The full error message is as displayed in the below text box:
Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the
following error: 80080005 Server execution failed (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)
Suggested Workaround¶
If the described error appears then try the workaround described in this section.
Disable Report Rendering by Execution Server¶
First make sure that the if end users are ordering IFS Business Reporter (BR) reports they will not be handled by the Execution Server.
The easiest way is to open the BR System Parameters page in IFS Aurena and change the value of the parameter Usage of Business Reporter Execution Server
Figure 2: BR System Parameters
The reason for this is to make sure that the suggested actions will correct the reports currently in the rendering queue but only these reports.
Scenario 1 - No Interactive Users¶
IFS Business Reporter Execution Server will be running on a server/machine that has no interactive users.
Make sure that Component Services are added to Microsoft Management Console.
- Start -> Run
- Enter dcomcnfg to start the Component Services window
- Expand the node Console Root / Component Services / Computers / <computer> / DCOM Config
- Find Microsoft Excel Application in the list of components
If Microsoft Excel Application is not visible under DCOM configuration, use the following steps:- Start -> Run
- Enter mmc -32
- In the File menu select Add Remove Snap-in
- Select Component Services and Add and click OK
- Expand Console Root / Component Services / Computer / <computer> / DCOM Config
- Find Microsoft Excel Application in the list of components
- Right click on the entry and select Properties
- Right click on the Identity tab in the Properties dialog
- Select This User option and enter credentials of a valid AD user that has access to the server/machine and that if logged in can access and run Excel.
Figure 3: Microsoft Excel Application Properties dialog - Click Apply and the OK
Scenario 2 - Interactive Users¶
IFS Business Reporter Execution Server will be running on a server/machine where there will be interactive users.
- Start -> Run
- Enter dcomcnfg to start the Component Services window
- Expand the node Console Root / Component Services / Computers / <computer> / DCOM Config
- Find Microsoft Excel Application in the list of components
If Microsoft Excel Application is not visible under DCOM configuration, use the following steps:- Start -> Run
- Enter mmc -32
- In the File menu select Add Remove Snap-in
- Select Component Services and Add and click OK
- Expand Console Root / Component Services / Computer / <computer> / DCOM Config
- Find Microsoft Excel Application in the list of components
- Right click on the entry and select Properties
- Right click on the Identity tab in the Properties dialog
- Select The interactive user option
Figure 4: Microsoft Excel Application Properties dialog - Click Apply and the OK
Render Reports in the Queue¶
This step aims at making sure that IFS Business Reporter reports currently in the BRES queue are rendered successfully. This should be done before changing the parameter value in the BR System Parameters page.
Start BRES again:
- Interactive Users
- Start the service again, e.g. in the IFS Business Reporter Execution Server Console click on Start and then logon to IFS Cloud
- Monitor the console and make sure that the reports that previously gave errors are now downloaded, processed and uploaded to IFS Cloud.
Figure 5: Starting the IFS Business Reporter Execution Server while logged on to the server hosting BRES
If restart and rendering was successful, open IFS Aurena and locate the reports in the Report Archive and make sure that they can be opened successfully.
Change Parameter Value¶
- At this point the BR Execution Server should be up and running
- Now open the BR System Parameters page in IFS Aurena change and change the value of the parameter Usage of Business Reporter Execution Server to one of FOR_ALL_INFO_SERVICES_REPORTS or ONLY_FOR_SCHEDULED_REPORTS depending on how the customer wants it to work.
- Order a report that will be taken care of by BRES If a scheduled job is created then make sure to specify a mail address to get a mail when the executed and rendered report appears in the Report Archive
- When the report is ready makes sure that it can be opened from Report Archive
- If everything is ok at this point, it should be OK to proceed to use the current configuration for BRES. Note: If the Identity property of the Microsoft Excel Application DCOM object is set to This user, then there should not be any interactive users. As soon as there are interactive users the report rendering will fail and it will be necessary to perform the described steps again.
This is of course a limitation but currently the only found solution to the problem.