Wednesday, May 03, 2006

No export DLLs found error in Crystal Reports

I've seen this error on a few environment I've worked with and is still seeing it in a couple of forums. Below is a link and the information from Business Objects website:

Link:
http://support.businessobjects.com/library/kbase/articles/c2006348.asp

Information:
An instance scheduled in a Citrix Metaframe or Windows NT Terminal Server environment fails on the Info Desktop with the following error:

"PEExportTo : Missing or out-of-date export DLL."

In the Info Report Designer, attempting to export the report results in one of the following errors:

"No Export DLLs found"

-OR-

"Missing or out of date DLL"

In the Info SQL Designer, attempting to export the query results in the following error:

"Export failed"

Why do these error messages appear?

Solution

These errors messages appear because Seagate Info cannot find the export DLLs in a Citrix Metaframe or NT Terminal Server environment. By default, Seagate Info expects the export DLLs to be located in %systemroot%\Crystal. On a Citrix or Terminal Server computer, the DLLs are located in the following directories:

• \Wtsrv\Profiles\\Windows\Crystal

• \Wtsrv\System32

When Seagate Info is installed onto a Citrix Metaframe or NT Terminal Server computer, the following file types are automatically installed to the \Wtsrv\Profiles\\Windows\Crystal directory:

• Database drivers (P2*.dll)

• Export drivers (U2f*.dll and U2d*.dll)

• User-defined Function Library (UFL) drivers (U2L*.dll)

(The only exception is the P2sodbc.dll, which allows for an ODBC connection to a database. P2sodbc.dll is automatically installed to the \Wtsrv\System32 folder. Thus, Seagate Info will find this file.)

As an example, if the user "Administrator" is logged on to the Citrix Metaframe computer when Seagate Info is installed, the Seagate Info DLLs will be placed in the \Wtsrv\Profiles\Administrator\Windows\Crystal directory. When logged on, "Administrator" is able to export from the Info Report Designer but another user is not because they do not have access to the export DLLs.


Alternatives to deploying DLLs for Seagate Info client tools
--------------------------------------------------------

There are three main methods of deploying the required Seagate Info DLLs on a Citrix Metaframe or Terminal Server computer so that all users will be able to access them. Place the DLLs in:

• \Program Files\Seagate Software\SI\X86 (This is the recommended solution.)

• \Wtsrv\Profiles\\Windows\Crystal

• \Wtsrv\System32

If you utilize the \Program Files\Seagate Software\SI\X86 directory, the Seagate Info DLLs must be copied to this folder once. This will allow all users to run the Seagate Info client tools and only one folder needs to be updated on the Citrix Metaframe or Terminal Server computer. Crystal Decisions recommends this solution.

If you use the \Wtsrv\Profiles\\Windows\Crystal directory, the Seagate Info DLLs must be copied to the profile folder of each user on the Citrix Metaframe or Terminal Server computer. This is the second preferred method for Network Administrators and is more advantageous than method the following method.

If you utilize the global folder \Wtsrv\System32, the Seagate Info DLLs must be copied to this folder only. However, most NT or Network Administrators do not prefer this method due to security reasons.

==============
NOTES:

• Even when using a PATH statement to specify where the DLLs reside, Seagate Info does not find these DLLs.

• When reinstalling Seagate Info or applying a product update or maintenance release, these DLLs must be copied to the appropriate directories again.
==============


Test Results
------------
Testing was performed using Seagate Info version 7.0.2.100 installed onto a Citrix Metaframe computer. Initially, the following conditions were presented:

· Log on to the Citrix Metaframe computer as user "Administrator".
· Configure the Seagate Info NT services; Info APS, Info Sentinel, and Info Agent, to run under a domain user account, Domain\User, which is a member of the local computer's Administrators group.

The three major tests that were performed were:

· How the Info Report Designer reads export DLLs on a Citrix Metaframe computer.
· How an Info Report Server reads export DLLs on a Citrix Metaframe computer when a report is scheduled and the Info Sentinel is running as an application instead of an NT service.
· How an Info Report Server reads export DLLs on a Citrix Metaframe computer when a report is scheduled and the Info Sentinel is running as an NT Service.

Test 1: How the Info Report Designer reads export DLLs on a Citrix Metaframe computer.

The Info Report Designer dynamically reads the DLLs successfully from the following folders:
· \Program Files\Seagate Software\SI\X86
· \Wtsrv\System32
· \Wtsrv\Profiles\\Windows\Crystal


Test 2: How an Info Report Server reads export DLLs on a Citrix Metaframe computer when a report is scheduled and the Info Sentinel is running as an application instead of an NT service. (Test completed while logged on to the Citrix Metaframe computer as the NT Service user account.)

With the Info Sentinel running as an application, at schedule time the Info Report Server only reads the DLLs from the following two locations:
· \Wtsrv\Profiles\\Windows\Crystal
· \Wtsrv\System32

The Info Report Server does not read the DLLs when they are located in the \Program Files\Seagate Software\SI\X86 directory. As a result, scheduled reports will fail.


Test 3: How an Info Report Server reads export DLLs on a Citrix Metaframe computer when a report is scheduled and the Info Sentinel is running as an NT Service.

With the Info Sentinel running as an NT Service, at schedule time the Info Report Server only reads the DLLs from the \Wtsrv\System32 directory.

The Info Report Server does not read the DLLs when they are located in the following two locations and as a result, scheduled reports will fail:
· \Program Files\Seagate Software\SI\X86
· \Wtsrv\Profiles\\Windows\Crystal