Please help.
I’d like to adapt my existing applications from COM .Net.
In .com I had to do the followings to access the Business Objects from VB: Project->Add References->Click on the COM tab->Business Objects 11.5 Object Library
Now that I’ve installed the .Net SDK, I do not see any possibilities to add a reference under .Net. (I can still add the COM reference, but this is not what I want).
Maybe my fault but I did not find any documentation for DESKI on the BusinessObjects site (a lot for web applications though)
Please advise what is the equivalent of the above.
Thanks,
Marton
There isn’t a .NET SDK for DESKI…
COM is the only option for DESKI SDK, which means that you would need to add a COM reference from your .NET program(s) (as you mentioned). Until Business Objects releases a .NET SDK for DESKI, we need to reference the COM object libraries. (I’ve been inquiring about .NET SDKs for DESKI and Designer for a few years, but have received no indication from BO that one will be released)
It depends on what you are hoping to do with your .NET application. If you are wanting to refresh / view Desktop Intelligence documents in a web application, then the Report Engine SDK will handle it. If you are moving a client application to .NET, and wanting to create / edit documents, then using the wrapper for the COM library is the only option.
Hm… aren’t the 2.8 and 3.5 folders in the Business Objects install folder the .Net SDK?
Anyway… I wanted to adapt a client application that I can use to schedule and run DESKI reports.
The reason why I am looking for a different solution:
When I use the COM reference the compiled application fails with this exception:
************** Exception Text **************
System.IO.FileNotFoundException: Could not load file or assembly 'Interop.busobj, Version=11.5.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
File name: 'Interop.busobj, Version=11.5.0.0, Culture=neutral, PublicKeyToken=null'
at WindowsApplication1.Flow.Start()
at WindowsApplication1.Form1.Button1_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
I checked, and there is an Interop.busobj.dll file in the bin folder of the project.
Strange is that I can buil and run the application from Visual Studio, it only fails when running the compiled stuff.
Thanks Dwayne,
Finally I am able to use the com reference without issues, but looks like the application is running only on my PC. Maybe there is a static reference somewhere… I will check deeper.
Anyway, we have an official comment from BO support saying that the Universe and the Desktop Intelligence SDKs are available in COM only.
Hi,
Creating a report with the SDK is not really supported. I tried a long time ago. You can create the query conditions, add all the data returned (that deski does by default when creating a new report), create formulas and a few other basic thing, but cannot create a complete report as you would do by hand.
Yes. Take a look at this utility … Copy Data Providers / Copy Report Variables. It creates an entire new data provider, but the techniques could be adapted to add objects to an existing data provider.
You can add a global filter for a report tab using the .AddComplexFilter method. Search BOB for AddComplexFilter and you’ll find several examples.
Adding a filter on a specific table (report block) is not possible, but there is a workaround. Manually create a variable … like … and give it a formula of = 1=1, which is always true. Manually set a filter on the table using that variable, and select 1 (true). Now with VBA, you can change the formula behind dynamically. For example: