cancel
Showing results for 
Search instead for 
Did you mean: 

Delete object from BI inboxes from CMC automatically

former_member299338
Participant
0 Kudos

Hi Experts,

I have been recently working on the housekeeping activity in the CMC. Our system is continuously been overloaded with the user inbox objects which causes our FRS server to spike beyoond the threshold space. Everytime we have been emailing our users to clean their inboxes. I have been trying for an idea to set up automatic process that runs through CMC or servers every month and clean up any objects that is a month older from all the user BI inboxes globally. I have been analysing SAP forums and notes to get some solutions. I got one Java script "Delete Inbox Object from Business Objects Enterprise" in one of the SAP related notes but there is no whereabouts about how to execute and where to execute.

If there is any solution to this please do let me know.

Thanks

Chandan

Accepted Solutions (0)

Answers (3)

Answers (3)

former_member230921
Active Contributor

Method to create Enterprise Session:

IEnterpriseSession basicLogon() throws SDKException
{
  ISessionMgr sessionManager = CrystalEnterprise.getSessionMgr();
  IEnterpriseSession enterpriseSession = sessionManager.logon("username", "password", "<cms>:<port>", "secEnterprise");
  return enterpriseSession;
}

Method to delete objects from Inbox:

void delete_Inbox_Objects(IEnterpriseSession enterpriseSession) throws SDKException
{
        int user_id = enterpriseSession.getUserInfo().getUserID();
	IInfoStore m_infostore = (IInfoStore) enterpriseSession.getService("InfoStore");
	String inbox_Id_query = new String("SELECT SI_ID FROM CI_INFOOBJECTS WHERE SI_KIND = 'Inbox' AND SI_OWNERID = '"+ user_id +"'");
        ICMSQuery idPageQuery = m_infostore.createCMSQuery(inbox_Id_query);
        IInfoObjects objects = m_infostore.query(idPageQuery);
        IInfoObject object = (IInfoObject) objects.get(0);
        int inboxId = object.getID();
        
        //deleteing all objects from inbox (modify this query to delete specific objects)
        String inbox_Objects_query = "SELECT * FROM CI_INFOOBJECTS,CI_APPOBJECTS,CI_SYSTEMOBJECTS WHERE  SI_PARENTID="+inboxId;
        IInfoObjects inbox_objets = m_infostore.query(inbox_Objects_query);
        for(int i=0; i<inbox_objets.size();i++)
        {
        	IInfoObject inbox_object = (IInfoObject) inbox_objets.get(i);
        	inbox_objets.delete(inbox_object);
        }
        m_infostore.commit(inbox_objets);
        
    }

JAVA SDK Links:

1. Common workflows

2. Authentication

-

-Bharath

former_member299338
Participant
0 Kudos

Hi Bharath,

Thank you so much for your input. I looked into the code and was not able to verify in this code that if we have to delete the inbox objects which is sitting for more than 1 month old. I am not familiar with the Java code to have this configure. So if you have any inputs for this criteria, that would be awesome.

Also this code should be ran as a jar file? We have linux server. I went through the link that you have provided and found out that this file should be placed in the Web application server.Following is the piece of instruction from the link:

To create custom applications using the SAP BusinessObjects Business Intelligence platform SDKs, or to deploy the sample applications provided, you'll need to know which JAR files to use. To obtain these JAR files, run the SAP BusinessObjects Business Intelligence Platform Client Tools 4.1 installer and select the developer components for the SDKs that your application uses. All core JAR files and language resources JAR files are installed in the following directory:

C:\Program Files (x86)\SAP Business Objects\SAP BusinessObjects Enterprise XI 4.0\java\lib.

Dependent JAR files are installed in the following directory:

C:\Program Files (x86)\SAP Business Objects\SAP BusinessObjects Enterprise XI 4.0\java\lib\external.

Webservices JAR files are stored in the following directory:

C:\Program Files (x86)\SAP Business Objects\ SAP BusinessObjects Enterprise XI 4.0\dataAccess\connectionServer\xml\drivers\webservices\

Is this the path where we should place this Inbox objects deletion file to be placed and run?

Please do provide me some insight.

Thanks,

Chandan

former_member230921
Active Contributor
0 Kudos

you have multiple options.

1. Create simple java program and connect to any CMS (you can run from any machine with JVM).

2. Create end to end web application/Custom application in BOE machine

Create simple java project with above shared methods and add jars from installed BOE machine.

jars required to run this java program :

BI Platform Administration (Link)

former_member299338
Participant
0 Kudos

Hi Bharath,

Having a limitation of the Java knowledge, the above mentioned options are a cumbersome for me to implement. As mentioned above I have the jsp file to delete the BI inbox objects(delete_inbox_object.jsp). Is there a way I can make use of that file in the Linux platform to execute it. This has become a huge issue for us as FRS is growing constantly and creating the space issue. I have attached the jsp file code delect-bi-inbox.jsp here for the review if its possible for you to give me some idea on this. I would appreciate a lot.

Thanks

Chandan

former_member230921
Active Contributor
0 Kudos

is attached jsp working for you ? If yes what exactly this JSP is performing. (I understood by code : there is one drop down box with inbox objects and user can select and delete)

You can run java/jsp file from any system in same network to connect CMS and delete objects.

former_member191664
Active Contributor

In BI4.2 SP04 and above, you'd find the Inbox limits.

Regards,

Jin-Chong

former_member299338
Participant
0 Kudos

Hi Jim,

I searched for the SAP BI 4.2 SP 04 specification that would mention that this Inbox deletion threshold is a new feature available from this version onwards, but could not find anywhere that mentions this. Could you please sent me the link or document that SAP specifies about this feature. I am proposing for the upgrade with my managers if this feature is available.

Thanks

Chandan

former_member299338
Participant
0 Kudos

Hi Jin,

Thanks for the reply and a very useful information. The BI upgrade is not an immediate option for me currently. I have to have other alternative to achieve this for now. Is there a way I can implement that java code in the server to clean up the BI inbox for now.

Thank you,

Chandan