In Strategy Web 9.x, it is possible edit a report and delete its filter expression. It is also possible to perform this same action using the Strategy Java Web SDK. To achieve this, perform the following steps:
WebBeanFactory bfactory = WebBeanFactory.getInstance();
reportBean = (reportBean) bfactory.newBean("ReportBean");
reportBean.setSessionInfo(serverSession);
reportBean.setResultFlags(reportBean.getResultFlags()| EnumDSSXMLResultFlags.DssXmlResultFilter|
EnumDSSXMLResultFlags.DssXmlResultGrid |
EnumDSSXMLResultFlags.DssXmlResultViewReport |EnumDSSXMLResultFlags.DssXmlResultWorkingSet );
reportBean.setName("FilterReport");
reportBean.setObjectID("D938B9AF4E32A0C309FEC9927EC1C751");
//get parent folder for later:
WebFolder ofolder = (WebFolder)reportBean.getObjectInfo().getParent();
//get the report name
String reportName = reportBean.getObjectName();
WebReportInstance ri = reportBean.getReportInstance();
ri.setAsync(false);
int status = ni.pollStatus(); ni.setSaveAsFlags(EnumDSSXMLReportSaveAsFlags.DssXmlReportSaveAsOverWrite); WebObjectInfo newInfo = ni.saveAs(ofolder,reportName);
Below is the code in its entirety:
import com.Strategy.web.beans.ReportBean;
import com.Strategy.web.beans.WebBeanFactory;
import com.Strategy.web.objects.WebFolder;
import com.Strategy.web.objects.WebIServerSession;
import com.Strategy.web.objects.WebObjectInfo;
import com.Strategy.web.objects.WebObjectsFactory;
import com.Strategy.web.objects.WebReportInstance;
import com.Strategy.webapi.EnumDSSXMLApplicationType;
import com.Strategy.webapi.EnumDSSXMLReportSaveAsFlags;
import com.Strategy.webapi.EnumDSSXMLResultFlags;
public class GetFilterFromReportBean {
public static void main(String[] args) {
String SessionID = "";
// Create factory object.
WebObjectsFactory factory=WebObjectsFactory.getInstance();
WebIServerSession serverSession=factory.getIServerSession();
ReportBean reportBean;
serverSession.setServerName("ISERVERNAME");
serverSession.setServerPort(0);
serverSession.setProjectName("PROJECTNAME");
serverSession.setLogin("USER");
serverSession.setPassword("PASSWORD");
serverSession.setApplicationType(EnumDSSXMLApplicationType.DssXmlApplicationCustomApp);
try {
SessionID = serverSession.getSessionID();
System.out.println("Welcome " + serverSession.getLogin());
WebBeanFactory bfactory = WebBeanFactory.getInstance();
reportBean = (reportBean) bfactory.newBean("ReportBean");
reportBean.setSessionInfo(serverSession);
reportBean.setResultFlags(reportBean.getResultFlags() |
EnumDSSXMLResultFlags.DssXmlResultFilter|
EnumDSSXMLResultFlags.DssXmlResultGrid |
EnumDSSXMLResultFlags.DssXmlResultViewReport|
EnumDSSXMLResultFlags.DssXmlResultWorkingSet );
reportBean.setName("FilterReport");
reportBean.setObjectID("D938B9AF4E32A0C309FEC9927EC1C751");
//get parent folder for later:
WebFolder ofolder = (WebFolder)reportBean.getObjectInfo().getParent();
//get the report name
String reportName = reportBean.getObjectName();
WebReportInstance ri = reportBean.getReportInstance();
ri.setAsync(false);
ri.getWorkingSet().getFilter().getExpression().clear();
WebReportInstance ni = ri.getReportManipulator().applyChanges();
int status = ni.pollStatus();
ni.setSaveAsFlags(EnumDSSXMLReportSaveAsFlags.DssXmlReportSaveAsOverWrite);
WebObjectInfo newInfo = ni.saveAs(ofolder,reportName);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}