cancel
Showing results for 
Search instead for 
Did you mean: 

Migrating, BO .NET Enterprise SDK 3.1 to 4.1, SDK differences

Former Member
0 Kudos

Hi All,


Recently our company decided to move from BOXI 3.1 to 4.1.
We're using BOXI 3.1 .NET Enterprise SDK to run Publications and distribute reports to users.

Basically, workflow is as follows (simplified):

We run multiple publications simultaneously on a Job server; each publication has a Webi document associated with it. To make reports refreshing properly, we update underlying Webi document's Prompts (without saving this document back to InfoStore), and then run this Publication. Each publication has MHTML output format enabled among all others (this is required); all these output files are distributed to a dedicated folder using a DiskUnmanaged plugin. Then we process/distribute these files by using our own custom framework.

When I tried to investigate how to do it with SDK version 4.1, I noticed that there are few key parts missing:

  • BusinessObjects.Enterprise.Desktop.Webi does not exist anymore, and there's no more ReportEngine, so there's no way to get a Webi document together with its Prompts;
  • Even if we could get Webi Prompts somehow, there's no way to copy Prompts values back to Publication's underlying Webi document, because there's no ReportParameterUtility anymore with its PopulateWebiPrompts method.

The question is: is there some alternative how to achieve the same in .NET 4.1 SDK?
I know, there is RESTful web services SDK; it allows running publications, but there is no way to set up prompts of a Publication's underlying Webi, and running Webi Reports directly is not something we want (plus MHTML output is not supported in this case). It is possible in fact to export a Webi report to MHTML, but it will require to save refreshed report back to InfoStore prior to exporting, which we don't want either.

We're considering moving BOXI-interoperating code to Java SDK 4.1 as Java's one is more feature-rich, written in pure Java contrary to .NET's COM interop, includes a proper documentation (which is not the case with .NET one) and probably it will allow to reuse existing workflow completely (there are some quirks with populateWebiPrompts still, but there is one 'unofficial' workaround to solve that).

What would you recommend?

Accepted Solutions (0)

Answers (2)

Answers (2)

0 Kudos

Hi Ihor,

I also need to use c# .net 4.1 sdk. But I couldnt find the the class in any dlls. Can you please tell me how you decompiled PromptsUtil class.

thanks in advance.

Former Member
0 Kudos

Ihor,

You have to use different method in 4.1 SDK. If you go through the SDK documentation for manipulating the prompts, you will get an idea. If you have any questions, post it here.

Thanks

Former Member
0 Kudos

Different method, hmm, sounds great! Any hint please? Just few useful classes names, I will figure out how to use them myself...
I'm asking because I can't locate neither API Reference, nor Developer Guide for .NET SDK 4.1 (there are some docs for 4.0 SDK version, but not 4.1). And I can't use Java to figure out how things should be done in .NET because there are multiple classes in Java which do not have equivalents in .NET version (e.g. Webi)(this was not the case in SDK 3.1, where Java-related info helped a lot because Java SDK is much more popular, so much more Java code samples).

Former Member
0 Kudos

Ihor,

In XIR3.1,  we can use PromptUtil.populateWebiPrompts but this method is no longer exist in BI4.0.


The workaround basically involves decompiling the populateWebiPrompts method from the PromptsUtil class in the XI 3.1 SDK and including this directly into your code.

I didn't look into BI41 SDK. Please check with SAP tech support incase they fixed the issue in BI4.1

Thank you

Former Member
0 Kudos

Thanks Rad,

already found that workaround and did a decompiling of that method (even tweaked it a bit for more type safety )


Just started Java development, will see how it goes (porting .NET code to Java takes time...)
Later I'll give an update whether this process succeed or not.