cancel
Showing results for 
Search instead for 
Did you mean: 

Webi Reports - Object with id ... cannot be created because it has no name

Former Member
0 Kudos

I'm trying to launch a Webi report from our application using openDocument method. When the report is launched it fails with following error -

30567: Unable to save the document to the repository due to the following error: The object with id number '27731' cannot be created because it has no name. (Error: WIS 30567)

Before scheduling the report I'm calling setName method to set the name of the report but still it does not work. Any help would be greatly appreciated.

Thanks

Manas

Accepted Solutions (0)

Answers (5)

Answers (5)

Former Member
0 Kudos

For webi reports we need to check the status if it is ready before trying to open it using openDocument.jsp. This behavior is different than Crystal Reports though as there the openDocument.jsp correctly waits for the report to complete.

So the solution for Webi reports is to wait for the report to be in complete/ready status before trying to launch it.

Former Member
0 Kudos

I've observed one strange thing -

If I make the following call for scheduling the name gets set -

boPlatform_.schedule( boInfoObjects );

BUT if I use following

InfoObjects scheduledInfoObjects = boPlatform_.schedule( boInfoObjects );

It does not!!!

Unfortunately I need the response from the schedule call as we need to take the newJobId returned and use it in the openDocument URL to view the report.

ted_ueda
Employee
Employee
0 Kudos

I don't see the behavior you do - on my XI Release 2 SP 4 machine via Java Web Services consumer.

I'm able to set the name and get the NewJobID as well.

Sincerely,

Ted Ueda

Former Member
0 Kudos

Ok we are using SP3. I doubt that the SP version would make a difference but I'll still give it a try. I'm not even sure if I can get one with SP4.

Meanwhile if possible can you please post the code for that you used for scheduling so that I can make sure that I'm not missing anything?

Thanks

Manas

Former Member
0 Kudos

Apparently the issue is because the application user does not have rights assigned on the particular report instance. I'm making a call to assign the rights to the user on the report instance id returned from the schedule call but for some reason it is not successful (Most likely because this call is hitting the server even before the report gets complete). I tried by putting the application thread to sleep for some time before making the assign rights call and it seems to work. This is not the ideal solution though and I'll be talking to BO support regarding this.

ted_ueda
Employee
Employee
0 Kudos

You're calling setName for what object? Do you mean setTitle for the InfoObject?

Sincerely,

Ted Ueda

Former Member
0 Kudos

I've tried calling setName on the InfoObject thats retrieved after querying the repository. Here is the code -

+ResponseHolder rh = boPlatform_.get( BOConstants.REPORT_FOLDER + reportName_"@*", null );

boInfoObjects = rh.getInfoObjects();

boInfoObject = boInfoObjects.getInfoObject( 0 );

//set name of instance

boInfoObject.set( reportName_ );

There is no setTitle in InfoObject.

Thanks

Manas

Former Member
0 Kudos

Manas,

Thank you for providing more background. I can only think of one more aspect as to why you are getting the "it has no name" response, and then I'm outta here. Is it possible that you have some type of punctuation as a part of the report name (like a dash, a slash, a parenthesis, a comma, or something)? I know from bad experience that when trying to save a report and the name has some punctuation that it can be cause for a crash, and if that is happening during your process it may also be the cause for the failure. Not much more I can think for causing the problem, and if it still persists you may have to contact Tech Support to help you trace through logs or something as to what is happening....

Thanks,

John

Former Member
0 Kudos

Hi John,

The name I want to set is a simple "ResourceReport". So it should not be because of any special chars.

Manas

Former Member
0 Kudos

Manas,

in its simplest form, you should be able to access a document with is DocID alone and no other parameters. Here is a simple opendocument command you can try to get your feet wet:


="<a href="+Char(34)+"http://<server>/businessobjects/enterprise115/InfoView/scripts/opendocument.aspx?idocid=27731"+Char(34)+">click</a>"

thanks,

John

Former Member
0 Kudos

Hi John,

Thanks for your response. The URL that gets generated is -

http://<servername>:8080/businessobjects/enterprise115/desktoplaunch/opendoc/documentXML.jsp?cmdP1=u...CUID%2CAS.NIPmAlEFGp3We.6gcTuM10wid*&

token=<servername>.CA.COM%4027793JXUJKvGbYFgzsTyD27792JK7YL6puJcNs7yvA&cmd=askView&cmdBlock=all&cmdP2=

We use the logo token for authenticating the the user that is why you see it appended in the URL.

Also this error comes only the report needs some query parameters from the application. Reports that not expect any parameters come up properly.

Thanks

Manas

Former Member
0 Kudos

Manas,

Is there a URL that is being passed before you get the URL that is cited in your last posting? If you have a prompt in a report you have to use the lsS or lsM parameter (the former for a single prompt with the use of the equals (=) operator, the latter for the use of the "in" operator). If neither of these parameters (lsS or lsM) are being used, then the normal default is for the report to stop and solicit the info from the user before continuing. However, if the report is being used in a scheduling scenario then you will get a failed execution versus a prompt displayed. The prompt only displays when running the report interactively, not scheduling. In scheduling, everything must be resolved at the time of submitting to the scheduler. If you are in a scheduling scenario, I'm afraid I can't be of any further assistance due to lack of experience, but I'll be watching this thread for other's input so that I too can learn.

Thanks,

John

Former Member
0 Kudos

Hi John,

I will try to give you some more background about this problem.

From our application we are not directly launching the report. We schedule it to run immediately and then view the instance created (using the instance id returned by the schedule call).

For scheduling we use the web services API (BIPlatform) and before scheduling we fetch all the prompts (again using a webservice API). The call is something like this -

WebiProcessingInfo wProcessingInfo = boWebIReport_.getWebiProcessingInfo();

After that we populate all the prompts with their corresponding values in application and schedule it. However the scheduling fails with the error I mentioned in the start of this thread and when we try to view it we are presented with a screen to enter prompts again.

From the scheduling error it looks like its failing because the name could not be set but I really doubt if thats the case. We use same calls to schedule and view Crystal reports also and they work perfectly. Only Webi is giving this error.

Thanks for looking into this.

Manas

Edited by: Manas Mandlekar on Sep 10, 2008 7:14 AM