Skip to Content

Remove Multiple Users from Multiple Groups In SAP BI/BO with JAVA SDK

Note: Only for BO Administrators.

Removal and addition of BO users from BO groups can be lot easier if carried out using the SDK.

the code below can be used for JAVA SDK to remove multiple users from multiple/single group.

package com.deloitte.bo.GroupUserRemoval;

import com.crystaldecisions.sdk.exception.SDKException;

import com.crystaldecisions.sdk.framework.CrystalEnterprise;

import com.crystaldecisions.sdk.framework.IEnterpriseSession;

import com.crystaldecisions.sdk.occa.infostore.IInfoObjects;

import com.crystaldecisions.sdk.occa.infostore.IInfoStore;

import com.crystaldecisions.sdk.plugin.desktop.user.IUser;

import com.crystaldecisions.sdk.plugin.desktop.usergroup.IUserGroup;

public class UserRemovalFromGroupAPI {

  public static void main(String[] args) throws Exception {

  // Set the logon information

  String boUser = “Administrator”;

  String boPassword = “*****”;

  String boCmsName = “SYSTEM”;

  String boAuthType = “secEnterprise”;

  // Declare Variables

  IInfoStore boInfoStore = null;

  IInfoObjects boInfoObjects = null;

  IEnterpriseSession boEnterpriseSession = null;

  try {

  // Logon and obtain an Enterprise Session

  boEnterpriseSession = CrystalEnterprise.getSessionMgr().logon(

  boUser, boPassword, boCmsName, boAuthType);

  boInfoStore = (IInfoStore) boEnterpriseSession.getService(“”,

  “InfoStore”);

  boInfoObjects = boInfoStore

  .query(“SELECT * FROM CI_SYSTEMOBJS WHERE SI_PROGID=’CrystalEnterprise.USERGROUP’ AND SI_NAME in(‘GROUP_NAME’,’GROUP_NAME_2′)”);

  IInfoObjects boInfoObjectUsers =  

  boInfoStore

  .query(“SELECT SI_ID From CI_SYSTEMOBJECTS Where SI_PROGID=’CrystalEnterprise.User’ and SI_NAME in (‘USER_1′,’USER_2’)”);

  for(int boGroupIterator =0; boGroupIterator < boInfoObjects.size(); boGroupIterator++){

  IUserGroup boGroup = (IUserGroup)boInfoObjects.get(boGroupIterator);

  for(int boUserIterator =0; boUserIterator< boInfoObjectUsers.size(); boUserIterator++){

  IUser boCurUser = (IUser) boInfoObjectUsers.get(boUserIterator);

  System.out.println(“Removing user ” + boCurUser.getTitle() +  ” from group ” + boGroup.getTitle());

  boGroup.getUsers().remove(new Integer(boCurUser.getID()));

  }

  }

  // Commit the changes to the InfoStore.

  boInfoStore.commit(boInfoObjects);

  } catch (SDKException e) {

  System.out.println(e.getMessage());

  } finally {

  boEnterpriseSession.logoff();

  }

  }

}

Be the first to leave a comment
You must be Logged on to comment or reply to a post.