cancel
Showing results for 
Search instead for 
Did you mean: 

"CrystalEnterpriseLib.SessionMgr" under Windows 7 / Visual Studio 2008

Former Member
0 Kudos

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?

Accepted Solutions (0)

Answers (1)

Answers (1)

DellSC
Active Contributor
0 Kudos

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

Former Member
0 Kudos

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?

DellSC
Active Contributor
0 Kudos

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

former_member183750
Active Contributor
0 Kudos

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

Former Member
0 Kudos

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.