on 04-07-2014 3:46 PM
I have an application that I wrote nearly a year ago, under Windows XP, with Visual Studio 2008 and Crystal Reports 2008. It uses the CrystalEnterpriseLib and other libraries to connect to the Business Objects Enterprise 12.1.x server and get information on reports so I can run a "report of reports". I've upgraded to Windows 7, 64bit, and everything works with Crystal Reports and Business Objects, but I cannot get that application to run. It has been awhile since I've touched this (a year, maybe more) so I'm lost as to why this doesn't work, and as to what needs to be done to make it work.
Is there a System Setup Step-By-Step starting point for Windows 7 to connect to a Business Objects server from a Windows 7 VB client? I have a bazillion code examples from the internet and SAP, and as I said, the code I have worked. I am missing the system configuration steps that make running the application possible.
The application is using the following controls/libraries, which exist on the system, but trying to register the DLLs/COM objects does not work.
CrystalFileDialogLib.EnterpriseLogonControl
EnterpriseSession
CrystalInfoStoreLib.InfoStore
SessionMgr
The errors are such that I cannot even open the Logon Form that used to work. The form loads an active x control to create an enterprise section. Here's that little bit of code.
Private Sub LogonToServer() | |
System.Windows.Forms.Cursor.Current = Cursors.WaitCursor | |
myEnterpriseSession = mySessionMgr.Logon( _ | |
AxEnterpriseLogonControl1.UserName, _ | |
AxEnterpriseLogonControl1.Password, _ | |
AxEnterpriseLogonControl1.ApsName, _ | |
AxEnterpriseLogonControl1.Authentication) | |
myLoginStatus = True | |
myInfoStore = myEnterpriseSession.Service("", "InfoStore") | |
System.Windows.Forms.Cursor.Current = Cursors.Default | |
End Sub |
Any suggestions? Training datasheets, etc?
This is not a Crystal for .NET application - it is a BO .NET SDK application. Have you installed the .NET SDK on the new server? You can find this in either the Client Tools or full server installations for your version of BusinessObjects/Crystal Reports Server. If your BO/CRS system has been patched, you need to make sure that the SDK is at the same SP and FP level as your system.
Also, you need to be sure that your application is specifically targeted as an "X86" 32-bit application because the version of the .NET SDK that you're using is 32-bit.
-Dell
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
The application is targeting the x86 platform, not the x64 platform. I had to deal with a lot of that when writing some applications to shuttle data into and out of some of our 32 bit and 64 bit databases. Bleh. So that at least, is correct.
I don't have access to the .Net SDK through our installation media. I'm not even sure they still exist. But that actually makes sense. I have the files installed with my copy of CR developer, which allows me to run reports and such, but not the BO files for interfacing with the BO server.
Is there a download available where I can download and install those files, using our server's license key or something from our server?
The .NET SDK is available in on the install media for your BO system - specifically in either the full install for the server (you'll have to have the installation key to use this) or in the Client Tools (no key required). Look for something like "Developer Components" in the list of items that can be installed.
If you can't find a copy of either of those, they're also available in the SAP Service Marketplace (this assumes that you have an active maintenance agreement) where they can be downloaded. I can't find a download for it outside of those installs, but might have a link to it.
-Dell
Unfortunately I don't have a link. SMP is a weird beast when it comes to links so I tend to keep away.
Jason, if you have a BI system and access to SMP, you will find it there. Here is a general description of where on SMP it used to be... I know this changed a bit, but it may server as a guide to where the downloads live today:
http://scn.sap.com/docs/DOC-23481
- Ludek
Senior Support Engineer AGS Product Support, Global Support Center Canada
Follow us on Twitter
Ah ha! I do have access to the installation media. Apparently we save everything we have ever installed or thought about installing. As I said, the code should work, since it's always worked, there was just something missing on my system, and that's probably what was missing. Thank you very much for the assistance.
**
I have spoken too soon. The libraries were already installed. Something else has changed to prevent this from working, but I'm not sure what.
I've gone through the code examples from Ludek's blog, and responses from both of you guys on other forum posts and the libraries I'm including and the code I'm using (I think) matches what you guys have, but in VB rather than C#.
I started a very simple, single form project to try and limit what could be going wrong. The form has 3 text boxes, the first two of which collect a username and password for Windows AD authentication (what our server uses).
The error message I am getting is: "Unable to connect to cluster @servername:6400 to retrieve CMS member list. Locally cached member list not present. Logon cannot continue."
The line that is executing to cause this error is:
boEnterpriseSession = boSessionMgr.Logon(tbxUsername.Text, tbxPassword.Text, BOESERVER, "secWinAD")
Here's all the code from the form.
Public Class Form1
' trying all kinds of servernames here
'Const BOESERVER As String = "servername:6400"
Const BOESERVER As String = "@servername:6400"
'Const BOESERVER As String = "@PRDN"
' happens when the user clicks a button
Private Sub DoSomething()
Dim boSessionMgr As New CrystalDecisions.Enterprise.SessionMgr()
Dim boEnterpriseSession As EnterpriseSession
Dim boInfoStore As InfoStore
Dim boEnterpriseService As EnterpriseService
Dim boInfoObjectsToCopy As InfoObjects
Dim query As String
Dim authprodid As String
' Log into BusinessObjects Enterprise
' having this and commenting it out seems to make no difference
boSessionMgr.SOCKSURI = "servername"
Debug.Print("Friendly Windows AD: " & boSessionMgr.NameFromProgId("secWinAD"))
'' just doesn't work
boEnterpriseSession = boSessionMgr.Logon(tbxUsername.Text, tbxPassword.Text, BOESERVER, "secWinAD")
'Create the infostore object
boEnterpriseService = boEnterpriseSession.GetService("", "InfoStore")
boInfoStore = New InfoStore(boEnterpriseService)
'grab the report we want to compy
query = "SELECT * FROM CI_INFOOBJECTS WHERE SI_KIND = 'CrystalReport' and SI_Instance = 0"
boInfoObjectsToCopy = boInfoStore.Query(query)
'verify that we have a report template
If boInfoObjectsToCopy.Count > 0 Then
Debug.Print("Title: " & boInfoObjectsToCopy(1).Title)
' stuff commented out here
End If
'Logoff from Enterprise
boEnterpriseSession.Logoff()
boEnterpriseSession.Dispose()
End Sub
Private Sub btnDoSomething_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDoSomething.Click
DoSomething()
End Sub
End Class
I am including the following References, all version 12.0.1100.0
CrystalDecisions.Enterprise
CrystalDecisions.Enterprise.Auth.secWinAD
CrystalDecisions.Enterprise.Auth.secWindowsNT
CrystalDecisions.Enterprise.Framework
CrystalDecisions.Enterprise.InfoStore
CrystalDecisions.Enterprise.Shared
Thanks for any help or info you can provide. I'm not sure what I'm missing, or what has changed since the last time this code worked.
**
AAAAAAAAAAAAAAAARGH!
Looks like the server name I was using, that's been working since I started messing with all of this was wrong. I'm not sure why it's wrong now, after a year of using the apps, but it seems like that was the problem (so far). It's possible that I needed to reinstall the libraries anyway, as the other, full featured application seems to have other issues, but to fix the above code, changing the server name fixes it.
Thank you both for your help.
User | Count |
---|---|
87 | |
23 | |
11 | |
9 | |
8 | |
5 | |
5 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.