Skip to Content

Delete object from BI inboxes from CMC automatically

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

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

3 Answers

  • Jun 09, 2017 at 11:02 PM

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

    Regards,

    Jin-Chong

    Add comment
    10|10000 characters needed characters exceeded

    • 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

  • Jun 13, 2017 at 06:15 PM

    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

    Add comment
    10|10000 characters needed characters exceeded

    • 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.

  • Jun 12, 2017 at 01:18 PM

    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

    Add comment
    10|10000 characters needed characters exceeded