Quantcast
Channel: SCN: Message List - Java SDK Application Development
Viewing all 2284 articles
Browse latest View live

Re: Need information about SI_TARGETID object property BOXI 3.1 SP6

$
0
0


Hi All,

 

Any idea what could be the substitute to SI_NEW_JOB_ID property that is missing in service pack 6 can be replaced with which other property? Does any equivalent object property exists?

 

Thanks,

Shubha


Re: Need information about SI_TARGETID object property BOXI 3.1 SP6

$
0
0

Hi Shubha,

 

Once you schedule, the collection is updated, but the infoobject is not.  I believe you have to try pulling the report back out of the collection to get the ID:

 

infoStore.schedule(collection);

report = collection[1];

details.InstanceId = ( int ) report.Properties \"SI_NEW_JOB_ID\" .Value;

SetStatus( details, ScheduleStatus.Success, process );

return true;

 

The SI_NEW_JOB_ID property is available immediately after an InfoObjects collection is scheduled, and it remains available as long as reference to the collection or the InfoObject is retained. This property is notaccessible by querying the InfoStore object.

This property is only applicable to InfoObjects that can be scheduled (for example, report objects).

  • For a non-recurring scheduled InfoObject, the value of the SI_NEW_JOB_ID property is the SI_ID of the new instance object that is created.
  • For a recurring scheduled InfoObject, the value of the SI_NEW_JOB_ID property is the SI_ID of the new recurrence parent object that is created. (The 'recurrence parent object' is a copy of the original InfoObject and is the object from which the recurring instances are created.)

 

Have you tried to get the SI_NEW_JOB_ID property after scheduling the report?

 

Awaiting for your response.

 

Thanks,

Shailendra

BusinessObjects Web Services Consumer jar files

$
0
0

Hi,

 

i'd like to build a Java consumer for BusinessObjects Web Service.

I read in the doc that I need to add to my project the Java consumer JAR files located in C:\Program Files (x86)\SAPBusinessObjects\SAP BusinessObjects Enterprise XI 4.0\java\lib.

 

The problem is that there are about 400MB of jars so my question is: What are the web services consumer jars that can I extract form that folder and include and distribute in my application?


I use SAP BO 4.1

Re: BusinessObjects Web Services Consumer jar files

$
0
0

Hi Ricardo,

 

You can use the below list of jar files to run an application which is based on Web Services Java SDKs:

axiom-api-1.2.13.jar

axiom-impl-1.2.13.jar

axis2-adb-1.6.2.jar

axis2-kernel-1.6.2.jar

axis2-transport-http-1.6.2.jar

axis2-transport-local-1.6.2.jar

axis2-xmlbeans-1.6.2.jar

commons-codec-1.3.jar

commons-httpclient-3.1.jar

commons-logging-1.1.1.jar

dsws-bicatalog.jar

dsws-biplatform.jar

dsws-common-util.jar

dsws-common-util_tr.jar

dsws-common.jar

dsws-publish.jar

dsws-reportengine.jar

dsws-session.jar

dsws-webishared-provider.jar

httpcore-4.0.jar

mail-1.4.jar

neethi-3.0.2.jar

TraceLog.jar

wsdl4j-1.6.2.jar

xmlbeans-2.3.0.jar

XmlSchema-1.4.7.jar

 

You can find the above list of jar files at below location:

C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\web services\en\dsws_consumer\data\dswsJavaApi

 

The above location contains some jars & a folder as external. You also have to use the external jar files in your eclipse project to run an application based on Web Services Java SDKs.

 

Hope it helps.

 

Thanks,

Shailendra

Re: Rescheduling the report using BO SDK jsp

$
0
0

Could you please let me know once you have the code.

I am also working on the same, if I happen to complete I shall post it to you.

Plese send me a test mail @ kpavan999@gmail.com

Thanks in advance.

Re: Need information about SI_TARGETID object property BOXI 3.1 SP6

$
0
0


Hi..

 

Can anyone please let me know the status of this ADAPT as this issue tracked as a bug.

 

Thanks.

Re: Rescheduling the report using BO SDK jsp

$
0
0

I have it - it's complicated!  I can't post all of the code because I'm writing this for a client, but I hope this helps you move in the right direction....

 

Basically what you have to do is this:

 

1.  Create a new IReport based on the plugin (like regular scheduling code).

2.  To set each of the following, use the sample scheduling code that's available, but get the property values from the appropriate IProperties of the IInfoObject of the schedule you're trying to recreate - you can't get them using the plugins.

     a.  Destination

          IProperties destProps = oldRpt.getSchedulingInfo().getProperties("SI_DESTINATIONS");

          IProperties destSchedProps = destProps.getProperties("1").

               getProperties("SI_DEST_SCHEDULEOPTIONS");

 

     b.  Prompts

          IProperties oldProps = oldRpt.getProcessingInfo().getProperties("SI_PROMPTS");

          int cnt = PropertyHelper.getIntProp(oldProps, "SI_NUM_PROMPTS", _log);

          for (Integer i=1; i<=cnt; i++){

               //process each parameter

          }

 

     c.  Output Format (if it's not Crystal Report, Crystal Report Read Only, Tab Separated, XML)

           IProcessingInfo oldPi = oldRpt.getProcessingInfo();

           IProperties oldProps = oldPi.properties().getProperties("SI_FORMAT_INFO");

           String oldFmt = oldProps.getString("SI_FORMAT");

           IReportFormatOptions.CeReportFormat newFmt

           if (oldFmt.startsWith("u2fcr:0") ){

                 newFmt = IReportFormatOptions.CeReportFormat.CRYSTAL_REPORT;

           } else if (oldFmt.equals("u2fcr:2")){

                 newFmt = IReportFormatOptions.CeReportFormat.RPTR;

           } else if (oldFmt.equals("crxf_xls:9")){

                 newFmt = IReportFormatOptions.CeReportFormat.EXCEL;

           } else if (oldFmt.equals("crxf_xls:10")){

                 newFmt = IReportFormatOptions.CeReportFormat.EXCEL_DATA_ONLY;

           } else if (oldFmt.equals("crxf_xls:11")){

                 newFmt = IReportFormatOptions.CeReportFormat.EXCEL_2007_DATA_ONLY;

           } else if (oldFmt.equals("u2fwordw:0")){

                 newFmt = IReportFormatOptions.CeReportFormat.WORD;

           } else if (oldFmt.equals("crxf_pdf:0")){

                 newFmt = IReportFormatOptions.CeReportFormat.PDF;

           } else if (oldFmt.equals("crxf_rtf:0")){

                 newFmt = IReportFormatOptions.CeReportFormat.RTF;

           } else if (oldFmt.equals("crxf_rtf:1")){

                 newFmt = IReportFormatOptions.CeReportFormat.RTF_EDITABLE;

           } else if (oldFmt.equals("u2ftext:0")){

                 newFmt = IReportFormatOptions.CeReportFormat.TEXT_PLAIN;

           } else if (oldFmt.equals("u2ftext:2")){

                 newFmt = IReportFormatOptions.CeReportFormat.TEXT_PAGINATED;

           } else if (oldFmt.equals("u2ftext:1")) {

                 newFmt = IReportFormatOptions.CeReportFormat.TEXT_TAB_SEPARATED;

           } else if (oldFmt.startsWith("u2fsepv")){

                newFmt = IReportFormatOptions.CeReportFormat.TEXT_CHARACTER_SEPARATED;

           } else if (oldFmt.startsWith("u2fxml2")){

                 newFmt = IReportFormatOptions.CeReportFormat.XML;

      }

    

     d.  Scheduling options

          A lot of this you can get straight from the ISchedulingInfo of the old report.  However, you'll need to go to the properties to get the days, months, calendar template, etc.

 

The only thing that I'm not setting yet is events.

 

I got a LOT of information by creating a Crystal report that had one of each type of parameter and then scheduling it with a descriptive instance name for a future date to each of the formats and using each of the scheduling options.  I would then run a query like this in QueryBuilder to get the specific property names, etc.

 

Select SI_NAME, SI_PROCESSINFO, SI_SCHEDULEINFO from CI_INFOOBJECTS where SI_PARENTID = <id of report template> and SI_SCHEDULE_STATUS = 9 <gets only scheduled instances.)

 

-Dell

BOXI - no server available issue

$
0
0

Hi,

 

We’ve developed an utility using BOXI Java SDK to extract Deski reports from BOXI repository and save them locally in PDF format. This utility is cashing after extracting around five thousand report instances. Some reports have over thousand instances.

 

 

Error - [main] RootLogger - Exception while writing into PDF file There is no server available to process your request. Please try again later, or contact your system administrator if the problem persists.[ RCIRAS0384 ]

 

The servers didn’t crash when we checked them in CMC but there were core files generated by boe_fcprocd process.

 

Environment –

                OS – Red Hat Linux 5.5

                BOXI – 3.1 SP6.1

Database – Oracle 11g

                SDK – Java

                Java - jdk1.6.0_17

 

Appreciate your help!

 

Thanks!


Re: BO XI 3.1 Re-schedule failed scheduling job

$
0
0

Hi Ryan,

 

can you please confirm if we follow just 3 above steps we can reschedule the instance? As Im unable to do it.

Could you please help me here.

Re: Rescheduling the report using BO SDK jsp

$
0
0

Thank you Dell, you are correct, this looks very complicated . I will try to integrate this code myself.

I have one more question, I want to list all the events. I have the query "SELECT SI_ID, SI_NAME, SI_FEATURES FROM CI_SYSTEMOBJECTS WHERE SI_KIND= 'Event' " and in my SDK code I have below:

 

stmt = conn1.createStatement();
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
k++;
int sno = rs.getInt("SNO");
String ID = rs.getString("SI_ID");
String title = rs.getString("SI_NAME");

 

And now I will start printing sno,ID,title.

Now is this correct way to do it? How to use getproperty() to handle columns? Are both are same?

Hope you are getting my question, pls let me know if not.

Re: BOXI - no server available issue

$
0
0

Hi Kishore,

 

Can you give more details about the environment. How many desktop intelliegence servers you have in your environment.

 

Are all desktop intelligence servers enabled and running.

How frequently this problem occurs? Is this happened only once or you have observed the behaviour all the time when running the batch.

 

Also I would like to log the names of all the reports which are being converted to pdf and check for the report for which we got the exception. By this we can check if any server group is assigned to the report. I would then export the report to pdf from infoview and observe the behavior. I am not sure how much helpful it can be, but it is worth capturing the names, if this happens intermittently.


Thanks,

Prithvi

Re: Retreive all folders that a specific group has access to

$
0
0

Hi,

 

I'm a French student so I'm sorry if my English is not perfect.

 

I am contacting you because I can see on this topic that you used the 'isAllowed()' function. I understand well how it works but I don't find the correspondance between the rights IDs ans their signification. I think it's something like "description" but I would like to have the complete list of the IDs. If you globaly explain more this function it will be great.

 

Moreover, do you know if it's possible to retreive the level access (Full control, No Acces, View, View on demand...) instead of a typical right?

 

For information, I'm working on the construction of a matrix of folders in one side and users in the other and put this level of acces in each cell in VBA.

I'm using XI 3.1version and Excel 2010.

 

Thanks for your answer.

 

Yoann

Increase the precision for a number (floating point) column via the Crystal Reports Java SDK

$
0
0

(Here's the question that I posted on http://stackoverflow.com/questions/23897994/increase-the-precision-for-a-number-floating-point-column-via-the-crystal-repo - posting here for hopefully some comments - reposted from a previous SAP discussion)

 

I'm a newbie when it comes to making use of the crystal reports java sdk (Business Objects 4.1), and I'm running into a frustrating issue. I'm attempting to augment the format of a dynamically generated column in Excel/CSV that happens to be representing a floating point number (percentage), but when no matter what I've done with INumericFieldFormat, I can't get the output I need.

 

Take for instance 0.0625 - when it is rendered in Excel, the cell displays it as 0.06 (two decimal places), but the actual value when you click on the cell shows up correctly in the formula bar. For CSV, the output is always truncated at 2 decimal places. What I was hoping for was to set the number of decimal places and rounding format, and that would properly display the number.

 

Here's a snippet of my code so far:

 

    INumericFieldFormat numericFieldFormat =  new NumericFieldFormat();

 

   numericFieldFormat.setAllowFieldClipping(false);
   numericFieldFormat.setCurrencySymbolFormat(CurrencySymbolType.noSymbol);
   numericFieldFormat.setCurrencySymbol("");
   numericFieldFormat.setCurrencyPosition(CurrencyPositionFormat.leadingCurrencyOutsideNegative);
   numericFieldFormat.setDecimalSymbol(".");
   numericFieldFormat.setDisplayReverseSign(false);
   numericFieldFormat.setEnableSuppressIfZero(false);
   numericFieldFormat.setEnableUseLeadZero(true);
   numericFieldFormat.setNDecimalPlaces(10);
   numericFieldFormat.setNegativeFormat(NegativeType.leadingMinus);
   numericFieldFormat.setOneCurrencySymbolPerPage(false);
   numericFieldFormat.setRoundingFormat(RoundingType.roundToTenBillionth);
   numericFieldFormat.setThousandsSeparator(false);
   numericFieldFormat.setThousandSymbol(",");
   numericFieldFormat.setUseAccountingFormat(false);
   numericFieldFormat.setZeroValueString("0");
  

numericFieldFormat.setConditionFormulas(null);

 

  

final ICommonFieldFormat commonFieldFormat = new CommonFieldFormat();

 

   commonFieldFormat.setEnableSuppressIfDuplicated(false);
   commonFieldFormat.setEnableSystemDefault(false);
  

commonFieldFormat.setConditionFormulas(null);

 

  

final IObjectFormat objectFormat = new ObjectFormat();

 

   objectFormat.setAllowCustomizeInTemplate(true);
   objectFormat.setEnableSuppress(false);
   objectFormat.setEnableKeepTogether(true);
   objectFormat.setEnableCloseAtPageBreak(true);
   objectFormat.setHorizontalAlignment(Alignment.useDefault);
   objectFormat.setEnableCanGrow(true);
   objectFormat.setToolTipText(StringUtils.EMPTY);
   objectFormat.setCssClass(StringUtils.EMPTY);
   objectFormat.setConditionFormulas(null);
   objectFormat.setHyperlinkText(StringUtils.EMPTY);
   objectFormat.setHyperlinkType(HyperlinkType.undefined);
  

objectFormat.setTextRotationAngle(TextRotationAngle.rotate0);

 

  

final IFieldFormat fieldFormat = new FieldFormat();

 

   fieldFormat.setNumericFormat(numericFieldFormat);
   fieldFormat.setCommonFormat(commonFieldFormat);
   fieldObject.setFieldFormat(fieldFormat);
   fieldObject.setFormat(objectFormat);
  
   reportDefController.getReportObjectController().add(fieldObject, section, -1);

 

So far I've been able to make the Excel output look like 0.0600000000 and the CSV output look like 600000000, but that's not what I need. Any help is appreciated!

 

Update

 

One thing I've noticed, is that adding a formula to do the formatting, for the most part, gives a "bad formula result" error:

 

    ConditionFormula roundingFormula = new ConditionFormula();

    roundingFormula.setFormulaNullTreatment(FormulaNullTreatment.asDefaultValue);

    roundingFormula.setSyntax(FormulaSyntax.crystal);

    roundingFormula.setText("Round(" + crystalDatasetField.getFormulaForm() + ",10)");

 

    ...

    roundingFormula.setText("Numbervar x; x := " + crystalDatasetField.getFormulaForm() + "; x := Round(x, 10)");

 

    ...

    roundingFormula.setText("ToNumber(ToText(" + crystalDatasetField.getFormulaForm() + ",\"0.00\",10))");

 

However, the following works, but rounds to the zeroth place:

 

    ConditionFormula roundingFormula = new ConditionFormula();

    roundingFormula.setFormulaNullTreatment(FormulaNullTreatment.asDefaultValue);

    roundingFormula.setSyntax(FormulaSyntax.crystal);

    roundingFormula.setText("Round(" + crystalDatasetField.getFormulaForm() + ")");

Can we set prompts value in Webi to schedule thru JAVA SDK 4.0

$
0
0

Hi,

 

I need to schedule webi report which has prompts.  Can we have schedule webi report with prompts in 4.0.

 

I was able set values for prompts and refresh the webi report using documentInstance object. I think we can't use this object for scheduling right?

 

Also, I would like set values from LOV.

 

Could you please help to find solution.

 

 

Thanks

Venkat

How to get IInfoObject's path?

$
0
0

I am developing a post processing publication extension to password protect pdf ( for web intelligence reports ) . For that I need the path of the source file to be encrypted.


Re: How to get IInfoObject's path?

$
0
0

Hi Akash,

 

By the path of source file, I assume that you are referring to the frs path.

The frs path can be found from the query builder.

Execute the query

Select * from ci_infoobjects where si_kind='webi' and si_instance=0 and si_id=<webi report id>

 

Look for the property SI_FILES. In this there is a subproperty bag named as SI_PATH which holds the input frs path for the report.

 

Now as you are looking to implement publication extension, you would need to use BusinessObjects SDKs to get the details.

 

So the work flow would be to

1. Logon to Enterprise system

2. Query the infostore to retrieve the report from the repository.

3. Call the getFiles() method on the infoobject which will return IFiles.

4. Call the getFRSPathURL() on the IFiles object, it would return the String for the frs path.

 

Below is a small snippet logic

=====================

IInfoObjects infoobjects=infoStore.query("select * from ci_infoobjects where si_instance=0 and si_kind='webi' and si_id=reportid ");

IInfoObject infoobject=(IInfoObject)infoobjects.get(0);

IFiles files=infoobject.getFiles();

String frsPath=files.getFRSPathURL();

=======================

 

More details can be found from the developers guide and api reference guide available at www.help.sap.com

 

Hope it helps you move in the right direction.

Thanks,

Prithvi

Re: Can we set prompts value in Webi to schedule thru JAVA SDK 4.0

$
0
0

Hello Venkat,

 

Unfortunately the feature of scheculing a webi reports with prompts have been deprecated from the
version 4.0 using the enterprise java sdks.

 

In XI 3.1, promtsutil class was used for setting prompts while scheduling a webi report using java sdks, which have been deprectaed from 4.0 and there is no replacement for the same in enterprise java sdks.

 

However, this feature was re-implemented in the new Restful web services and is availble for BI 4.0 SP6 onwards as far as I am aware of.

 

Please refer to the below document for better understanding.

http://help.sap.com/businessobject/product_guides/boexir4/en/xi4sp6_webi_restful_ws_en.pdf

 

Also please refer to the forum http://scn.sap.com/community/restful-sdk for any queries related to Restful webservices sdks.

 

Thanks,

Prithvi

Re: Rescheduling the report using BO SDK jsp

$
0
0

No, it's not.  Also, there is no property called "SNO" in an event.  Here are the properties for custom, schedule, and file events:

 

events.PNG

 

Here's what I would do (assuming that you're using the BI Platform SDK and that you have an IEnterpriseSession called "eSession" available from logging in to the CMS:

 

IInfoStore iStore = eSession.getService("InfoStore");

String query = "SELECT SI_ID, SI_NAME,  SI_KIND, SI_FEATURES FROM CI_SYSTEMOBJECTS WHERE SI_KIND= 'Event' ";

IInfoObjects iobjs = iStore.query(query);

if (iobjs != null){

    for (Object obj : iobjs){

        IInfoObject iobj = (IInfoObject) obj;

        Integer id = iobj.getID();

        String title = iobj.getTitle();

        String eventType = iobj.getSpecificKind();

        if (eventType = "FileEvent"){

            IFileEvent fEvent = (IFileEvent) iobj;

            String filename = fEvent.getFileName();

            String serverName = fEvent.getServerFriendlyName();

            //output event info          

        } else { //eventType is "ScheduleEvent" or "UserEvent"

            //output event info

        }

    }

}

-Dell

Re: SAP BI and BO SDK Application user authentication (SSO)

$
0
0

Hi Atul,

 

 

Even I am trying to pass user id and password to the Standalone Java application with in BO server for authentication.

 

 

Can you please give me your inputs to achieve the above scenario?

 

 

Regards,

Rakhy.

Re: Can we set prompts value in Webi to schedule thru JAVA SDK 4.0

$
0
0

Thank you Prithivarj. I think we need to have 4.1 sp2 for Full functionality of REST..

Viewing all 2284 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>