Various scripts to help playing with a SAP Business Object system.
GetAllWebi.javawill save webi files on diskRescheduleInstance.javawill generate instances to simulate a big system
| package com.gbs.tools; | |
| import java.io.File; | |
| import java.io.FileOutputStream; | |
| import java.io.InputStream; | |
| import java.util.logging.Logger; | |
| import com.crystaldecisions.sdk.exception.SDKException; | |
| import com.crystaldecisions.sdk.framework.CrystalEnterprise; | |
| import com.crystaldecisions.sdk.framework.IEnterpriseSession; | |
| import com.crystaldecisions.sdk.framework.ISessionMgr; | |
| import com.crystaldecisions.sdk.occa.infostore.IFiles; | |
| import com.crystaldecisions.sdk.occa.infostore.IInfoObject; | |
| import com.crystaldecisions.sdk.occa.infostore.IInfoObjects; | |
| import com.crystaldecisions.sdk.occa.infostore.IInfoStore; | |
| import com.crystaldecisions.sdk.occa.infostore.IRemoteFile; | |
| class GetAllWebi { | |
| protected static Logger log = Logger.getLogger(GetAllWebi.class.getName()); | |
| protected static int METHOD = 1; | |
| public static void main (String[] args) throws SDKException { | |
| //LogController.setupLogger(); | |
| String user = args[0]; | |
| String password = args[1]; | |
| String cms = args[2]; | |
| String path = args[3]; | |
| System.out.println("Get all webis file"); | |
| ISessionMgr sm = CrystalEnterprise.getSessionMgr(); | |
| IEnterpriseSession enterpriseSession = sm.logon(user, password, cms, "secEnterprise"); | |
| IInfoStore iStore = (IInfoStore) enterpriseSession.getService("InfoStore"); | |
| IInfoObjects objs = iStore.query("SELECT * FROM CI_INFOOBJECTS, CI_APPOBJECTS, CI_SYSTEMOBJECTS WHERE SI_KIND='Webi'"); | |
| for(int i=0 ; i<objs.size(); i++) { | |
| try { | |
| IInfoObject object = (IInfoObject) objs.get(i); | |
| IRemoteFile repFile = null; | |
| IFiles files = object.getFiles(); | |
| for(int f=0; f<files.size(); f++) { | |
| //IFile file = (IFile) object.getFiles().get(f); | |
| repFile = (IRemoteFile) files.get(f); | |
| if(METHOD==1) { | |
| // method download | |
| log.info("Save on disk "+object.getTitle() + "_" + repFile.getName() + " from repository: "+(repFile.download(path + object.getTitle() + "_" + repFile.getName().replaceAll("/", "_"))?"true":"false")); | |
| } | |
| else { | |
| // IS method | |
| InputStream is = repFile.getInputStream(); | |
| FileOutputStream outputStream = new FileOutputStream(new File(path + object.getTitle() + "_" + repFile.getName())); | |
| int read = 0; | |
| byte[] bytes = new byte[1024]; | |
| while ((read = is.read(bytes)) != -1) { | |
| outputStream.write(bytes, 0, read); | |
| } | |
| } | |
| repFile.commit(); | |
| } | |
| } | |
| catch (Exception e) | |
| { | |
| System.out.println(" Doc error: " + e); | |
| e.printStackTrace(); | |
| //System.exit(-1); | |
| } | |
| } | |
| } | |
| } |
| package com.gbs.test; | |
| import java.util.Iterator; | |
| import com.businessobjects.rebean.wi.model.engine.IDocumentInstance; | |
| import com.businessobjects.rebean.wi.model.inputform.IInputForm; | |
| import com.businessobjects.rebean.wi.model.inputform.IInputForms; | |
| import com.businessobjects.rebean.wi.model.reportspec.IRSReport; | |
| import com.businessobjects.rebean.wi.model.reportspec.IRSReportStructure; | |
| import com.businessobjects.rebean.wi.services.IDocumentInstanceManagementService; | |
| import com.businessobjects.rebean.wi.services.IInputFormService; | |
| import com.businessobjects.rebean.wi.services.IReportSpecService; | |
| import com.businessobjects.sdk.core.Core; | |
| import com.businessobjects.sdk.core.context.ContextParams; | |
| import com.businessobjects.sdk.core.context.IContext; | |
| import com.businessobjects.sdk.core.session.cms.CmsOccaScheme; | |
| import com.businessobjects.sdk.core.session.cms.CmsScheme; | |
| import com.businessobjects.sdk.core.session.scheme.IScheme; | |
| import com.crystaldecisions.sdk.exception.SDKException; | |
| import com.crystaldecisions.sdk.framework.CrystalEnterprise; | |
| import com.crystaldecisions.sdk.framework.IEnterpriseSession; | |
| import com.crystaldecisions.sdk.framework.ISessionMgr; | |
| import com.crystaldecisions.sdk.occa.infostore.IInfoObjects; | |
| import com.crystaldecisions.sdk.occa.infostore.IInfoStore; | |
| import com.crystaldecisions.sdk.occa.infostore.ISchedulable; | |
| public class RescheduleInstance { | |
| public static void main(String[] args) throws SDKException { | |
| int count = 17000; | |
| int instanceID = 148383; | |
| String documentIDs = "148323,225900,225904,225905,225906,225907,225908,225909,225910,225911,225912,225913,225914,225915,225916,225917,225918"; | |
| ISessionMgr sm = (ISessionMgr) CrystalEnterprise.getSessionMgr(); | |
| IEnterpriseSession enterpriseSession = sm.logon("user", "pw", "cms", "secEnterprise"); | |
| IInfoStore infoStore = (IInfoStore) (enterpriseSession.getService("InfoStore")); | |
| IInfoObjects instances = infoStore.query("SELECT TOP 1000000 * FROM CI_INFOOBJECTS WHERE SI_PARENTID in (" + documentIDs + ")"); | |
| for(Object obj : instances) { | |
| ISchedulable instance = (ISchedulable) obj; | |
| System.out.println("Instance: " + obj.hashCode()); | |
| for(int i = 1;i <= count; i++) { | |
| instance.schedule(); | |
| System.out.println(i); | |
| } | |
| } | |
| } | |
| } |