cancel
Showing results for 
Search instead for 
Did you mean: 

SAP Crystal Reports error retrieving COM class

04-19-2021 10:44 AM
2432 views 10 comments Go to solution
0 Likes
SAP Managed Tags
Subscribe

Hi, we have installed the crystal runtime 13.0.30 and in some computers occasionally occours the error:

Error Retrieving the COM class factory for component with CLSID {F734A321-8381-4FFD-A614-139E8906DC83} failed due to the following error: 8007007f Unable to find the specified procedure. (Exception from HRESULT: 0x8007007F). in CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.CreateRptDoc()

What could be the problem?

0 Likes

Accepted Solutions (1)

Accepted Solutions (1)

0 Likes

Lots of updates since SP 22.

I think Dell is close, something to do with memory and resources, those errors typically indicate your app is running into memory issues.

CR requires contiguous blocks of memory to work, if Windows can't allocate them as required you'll get these types of errors, could happen in any CR API's all depends on what your app is doing at the time.

What is happening in your app when the app errors?

Can you explain the work flow it's doing, viewing, exporting, printing etc.?

When you upgraded did you set all Copy Local to false?

See my upgrade Blog for more info:

https://blogs.sap.com/2020/10/30/upgrading-a-visual-studio-2008-2019-.net-project-with-the-latest-cr...

Don

Answers (1)

Answers (1)

DellSC
Active Contributor
0 Likes

Was your application compiled with the same version of the SDK as the runtime that you've installed? If not, that's the problem - the two need to be the same. However, there is a possible work-around: go to the Crystal for VS wiki and look for "WinFormCRViewer.zip". Download that file and go to the link just above it that will explain how to use it.

-Dell

Former Member
0 Likes

Yes, the application is compiled with the same version of the SDK and runtime. In Visual Studio the application shows a reference to version 13.0.4000.0 and in the control panel the runtime installed says version 13.0.30.3805.

DellSC
Active Contributor
0 Likes

In VS, you're looking at the assembly version, which basically shows which version of the .NET runtime it works with - multiple service packs can have the same assembly version. The version that you see in Programs and Features, is the install version which indicates that you're using SP 30. The two numbers are not referencing the same thing.

Is there a particular reason why you're using the ReportClientDoc object model instead of ReportDocument? In other words, is there something you're doing in your code that cannot be done with ReportDocument?

-Dell

Former Member
0 Likes

In the Programs and Features the SAP crystal reports version for visual studio is the same of sap crystal reports runtime.

I'm using the ReportDocument, the full stack of the error is:

CrystalDecisions.CrystalReports.Engine

Error: Retrieving the COM class factory for component with CLSID {F734A321-8381-4FFD-A614-139E8906DC83} failed due to the following error: 8007007f Unable to find the specified procedure. (Exception from HRESULT: 0x8007007F).
CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.CreateRptDoc()
in CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper..ctor()
in CrystalDecisions.CrystalReports.Engine.ReportDocument.Initialize()
in CrystalDecisions.CrystalReports.Engine.ReportDocument..ctor()


DellSC
Active Contributor
0 Likes

The only thing I can think of is that it might be a memory issue, since it's random. Are you explicitly calling .Dispose() on the reports when you're done with them or working with them within a Using clause so that .Dispose() is automatically called? Much of the internals of the SDK is based on COM objects and .NET doesn't memory manage COM well, so you have to explicitly .Dispose() the objects to free up the memory.

don.williams, do you have any other thoughts on this?

-Dell

Former Member
0 Likes

I'm using .Close() and .Dispose(), the code is like this:

public class ShowReport
  public sub ViewReport(byval reportfile as string)
    loReport = New ReportDocument
    loReport.Load(reportfile)

    '... code to .SetDataSource and .SetParameterValue

    'If is to export to pdf:
    loReport.Export()
    loReport.Close()
    loReport.Dispose()

    'If is to send to printer:
    loReport.PrintToPrinter(1, True, 0, 0)
    loReport.Close()
    loReport.Dispose()

    If is to preview:
    Dim loPreview As frmPreview = New frmPreview
    loPreview.ViewReport(loReport)
  end sub
end class

'in the form frmPreview:
Dim loDoc As ReportDocument
Friend WithEvents objViewer As CrystalDecisions.Windows.Forms.CrystalReportViewer
Public Sub ViewReport(ByRef toReport As ReportDocument)
  loDoc = toReport
  objViewer.ReportSource = toReport
  Me.Show()
end sub

Private Sub frmPreview_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
    loDoc.Close()
    loDoc.Dispose()
End Sub

It worked fine with the SP 22, we now started using the SP30, compiled the code to SP30 and installed the SP30 runtime and now sometimes we get this error.

DellSC
Active Contributor
0 Likes

I think Don's probably going to have to answer this one - I'm at the limit of what I know to tell you.

-Dell

Former Member
0 Likes

We just received another error:

CrystalDecisions.Shared
Error: Could not load file or assembly 'System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. There are not enough memory resources to process this command. (Exception from HRESULT: 0x80070008)
Local: in CrystalDecisions.Shared.SharedUtils.GetEffectiveContentCulture()
in CrystalDecisions.Shared.SharedUtils.GetContentLocale()
in CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.CreateRptDoc()
in CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper..ctor()
in CrystalDecisions.CrystalReports.Engine.ReportDocument.Initialize()
in CrystalDecisions.CrystalReports.Engine.ReportDocument..ctor()

These errors did not occur in the SP22 version, we are having these errors with the SP30 version.

What can we do to avoid these errors that appear to be memory problems?

Former Member
0 Likes

Hi, is there any solution to this random errors? Did Don have an opportunity to analyze the problem?

We got another different error:

Source: CrystalDecisions.CrystalReports.Engine
Message: Failed to load the report.
Location: at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened ()
at CrystalDecisions.CrystalReports.Engine.ReportDocument.Load (String filename, OpenReportMethod openMethod, Int16 parentJob)
at CrystalDecisions.CrystalReports.Engine.ReportDocument.Load (String filename)

Could be a problem with SP30? Is there some new update we can use?