Skip to Content
Sep 09, 2009 at 08:52 AM

InfoStor.dll 9 against Enterprise XI 3.1



I'm in the process of moving over our companies report management platform from Crystal Enterprise 9 to BusinessObjects Enterprise XI 3.1 SP2. We have an old VB6 app that uses the Crystal Enterprise InfoStore Library 9.0 (InfoStor.dll) to allow users to copy a report from one APS to another. Typically this is used to move reports from the development server to the production server.

Whilst testing this application against the new production server I am surprised to find that most of the application runs without a problem. I am able to conntect to the new CMS (nee APS), view the folder structure, view reports within the folders and view report properties. However, when I attempt to copy a report from one server to another it fails when I attempt to commit the copy. Here's the code that i'm using and that has previously worked fine against CE9:

   Dim strErrorSource As String
   Dim strErrorDesc As String
   Dim lErrorNumber As Long

   On Error GoTo ErrorHandler
   Dim objSourceIStore As CrystalInfoStoreLib.InfoStore
   Dim objDestIStore As CrystalInfoStoreLib.InfoStore
   Dim objSourceReport As CrystalInfoStoreLib.InfoObject
   Dim objDestReport As CrystalInfoStoreLib.InfoObject
   Dim objDestReports As CrystalInfoStoreLib.InfoObjects
   Dim objReport As CrystalReportPluginLib.Report

   ' Logon to the source and destination
   Set objSourceIStore = GetIStore(strSourceAPSName, strSourceUserName, strSourcePassword, enuSourceAuthMode)
   Set objDestIStore = GetIStore(strDestAPSName, strDestUserName, strDestPassword, enuDestAuthMode)
   ' Get the source report
   Set objSourceReport = GetObjectByID(objSourceIStore, lSourceReportID)

   ' Get the destination report
   Set objDestReports = objDestIStore.NewInfoObjectCollection

   Set objDestReport = objDestReports.Copy(objSourceReport, ceCopyNewObjectNewFiles)
   objDestReport.Properties("SI_PARENTID").Value = lParentFolderID
   ' Commit the changes to the destination APS
   Call objDestIStore.Commit(objDestReports)


My question is therefore, seeing as how many of the other CE9 methods work against the BOEXI 3.1 installation, should I expect the Commit() method to also work, or does it need tweaking to get it to run?