Quantcast
Channel: SCN : Document List - Java SDK Application Development
Viewing all articles
Browse latest Browse all 39

Java Enterprise BE14 Set Param Values In Publication

$
0
0

This document provides a way to set parameters in a crystal report included in a publication using Business Intelligence platform Java SDK. The sample code sets the parameter value for a crystal report and saves it back to publication.

Warning

The code given below can be very destructive if not used properly.  Please ensure that you have made a backup of your CMS database and your Input and Output FRS prior to running any code.

For more scripts and information on how to run these scripts refer to the blog avaiable here:

http://scn.sap.com/people/shawn.penner/blog/2013/06/04/scripts-and-samples

Below is the Java Server Pages (JSP) sample

 

Notes:

•You would need to change the userName, password, cmsName and publicationName and the report name to the values specific to your enterprise server in the provided sample code.

• The sample code is tested with BI 4.0 version of SAP BusinessObjects Platform.

 

 

<%
/*===================================================================
Creation Date - Oct 15, 2013
Description -   The sample application demonstrates how to assign a current      value to a report parameter in a publication
==================================================================*/
%><%@ page import="com.businessobjects.sdk.plugin.desktop.profile.*" %><%@ page import="com.businessobjects.sdk.plugin.desktop.publication.*" %><%@ page import="com.businessobjects.sdk.plugin.desktop.common.*" %><%@ page import="com.crystaldecisions.sdk.exception.SDKException" %><%@ page import="com.crystaldecisions.sdk.occa.infostore.*" %><%@ page import="com.crystaldecisions.sdk.framework.*" %><%@ page import="com.crystaldecisions.sdk.plugin.desktop.common.*" %><%@ page import="com.crystaldecisions.sdk.plugin.desktop.folder.*" %><%@ page import="com.crystaldecisions.sdk.plugin.desktop.report.*" %><%@ page import="com.crystaldecisions.sdk.plugin.desktop.user.*" %><%@ page import="com.crystaldecisions.sdk.plugin.desktop.usergroup.*" %><%@ page import="com.crystaldecisions.sdk.plugin.destination.managed.*" %><%@ page import="com.crystaldecisions.sdk.plugin.destination.smtp.*" %><%@ page import="com.crystaldecisions.sdk.plugin.CeProgID" %><%@ page import="com.crystaldecisions.sdk.plugin.CeKind" %><%@ page import="com.crystaldecisions.sdk.properties.*" %><%@ page import="com.crystaldecisions.sdk.occa.pluginmgr.*" %><%@ page import="java.util.*" %><%
 //Retrieve the logon information    String boUser ="username";    String boPassword = "password";    String boCmsName = "cmsname";    String boAuthType ="secEnterprise";        String publication_name = "publication_name";    String report_name ="report_name_in_publication";
%><%    // Logon and obtain an Enterprise Session    IEnterpriseSession boEnterpriseSession = null;    boEnterpriseSession = CrystalEnterprise.getSessionMgr().logon( boUser, boPassword, boCmsName, boAuthType);    session.setAttribute( "boEnterpriseSession", boEnterpriseSession);
%><%    IInfoStore boInfoStore=null;    IInfoObjects boInfoObjects=null;    IInfoObject boInfoObject=null;    IInfoObjects boInfoObjects2=null;    IInfoObject boInfoObject2=null;
 IPluginMgr pluginMgr = null; //Plugin Manager returned from InfoStore    IPluginInfo reportPlugin = null; //Report PluginInfo object    IInfoObjects newInfoObjects = null; //new collection created from InfoStore    IInfoObject newInfoObject = null;  try{     //Retrieve the InfoStore object     boInfoStore = (IInfoStore) boEnterpriseSession.getService("", "InfoStore");          // Retrieve the desired publication     boInfoObjects = boInfoStore.query("SELECT * FROM CI_INFOOBJECTS WHERE SI_KIND = '" + CeKind.PUBLICATION + "' AND SI_NAME = '" + publication_name + "' AND SI_INSTANCE=0");     boInfoObject = (IInfoObject)boInfoObjects.get(0);       IPublication boPublication = (IPublication)boInfoObject;    //Retrieve the requested report  (If you know the SI_ID of the report - you can skip this step which just gets the ID)  boInfoObjects2 = boInfoStore.query("Select SI_ID, SI_KIND, SI_PROCESSINFO FROM CI_INFOOBJECTS WHERE SI_NAME='" + report_name + "' AND SI_INSTANCE=0");  boInfoObject2 = (IInfoObject)boInfoObjects2.get(0);  int documentID = new Integer(boInfoObject2.getID());  String documentKind = boInfoObject2.getKind();    // Now create a blank crystal report object  // Note: Because publications store a custom processing info collection, while still pointing back at the original report, it is possible for the  // two to become de-synchronized.  As a result, it is preferable to re-import the original report when modifying properties.  However, if you want  // to just update in place - then you can use the code below.    //Retrieve the PluginManager and use it to retrieve Crystal Report plug-in.        pluginMgr = boInfoStore.getPluginMgr();        reportPlugin = pluginMgr.getPluginInfo("CrystalEnterprise.Report");        //Create a new, empty InfoObjects collection.        newInfoObjects = boInfoStore.newInfoObjectCollection();        //Add the plug-in to the collection.  This creates a new InfoObject that represents a new Report        newInfoObject = newInfoObjects.add(reportPlugin);  IReport crystalReport=(IReport)newInfoObject;      // Now retrieve any custom processing properties and add them into the infoobject  com.crystaldecisions.sdk.properties.IProperties processingProperties = boPublication.getDocumentProcessingInfo(documentID);  crystalReport.getProcessingInfo().properties().putAll(processingProperties);     // Now retrieve the processing info for the desired report.  //  // Note:  // If this object was a webi report, then we would cast it to an IWebiFormatInfo object, or IFullClientFormatInfo object for Deski  IReportProcessingInfo boProcessingInfo = (IReportProcessingInfo)crystalReport;     // Now retrieve the report parameters collection    List boParamList = (List)boProcessingInfo.getReportParameters();    // Now loop through the parameters and set values.  for (Iterator i = boParamList.iterator(); i.hasNext();)   {       IReportParameter boParam = (IReportParameter)i.next();   IReportParameterValues boCurrentValues = boParam.getCurrentValues();   boCurrentValues.clear();   IReportParameterSingleValue boSingleValue = boCurrentValues.addSingleValue();   boSingleValue.setValue("This is a parameter Value");  }       // Save everything back        boPublication.setDocumentProcessingInfo(documentID, documentKind, crystalReport.getProcessingInfo().properties());       // Save the publication  boPublication.save();     out.println("Publication Succesfully Modified");     } finally {     /*      * Ensure clean-up of the Enterprise session.      */     if(boEnterpriseSession != null) {         try {             boEnterpriseSession.logoff();         } catch(Exception e_ignore_in_cleanup) {}     }
 }
%>

Viewing all articles
Browse latest Browse all 39

Latest Images

Trending Articles



Latest Images

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