webibusiness-objects-sdk

Get folder where Webi report is stored in FRS


I have a report on Webi server. I need a code snippet to show the folder where the report is located.


Solution

  • The first thing needed is a IInfoObject for the WebI report you are looking for. After that is is a couple of queries against the IInfoStore looping through the SI_PARENTID values you get back.

    IInfoObject myReport; // the WebI report you are trying to find the folder it is in
    IInfoStore infoStore; // your gateway to the CMS database
    
    // I'm not sure what info is in your myReport IInfoObject, so make sure we have what is needed
    String infoStoreQuery = "select SI_ID,SI_NAME,SI_PARENTID from CI_INFOOBJECTS where SI_ID="+myReport.getID();
    IInfoObjects infoObjects = infoStore.query(infoStoreQuery);
    
    // because I used the ID there should be only 1 object in the infoObjects
    IInfoObject myReportWithParentFolder = (IInfoObject)infoObjects.get(0);
    int parentFolderId = myReportWithParentFolder.getParentID(); // ID of the folder that contains the report
    
    // BEGIN now loop through the folders going backwards to get full path to the report
    // loop not shown
    infoStoreQuery = "select SI_ID,SI_NAME,SI_PARENTID from CI_INFOOBJECTS where SI_ID="+parentFolderId ;
    infoObjects = infoStore.query(infoStoreQuery);
    IInfoObject folder = (IInfoObject)infoObjects.get(0);
    String folderName = folder.getTitle();
    int parentFolderId = folder.getParentID(); 
    // END loop area