Skip to Content

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();

  }

  }

}

To report this post you need to login first.

Be the first to leave a comment

You must be Logged on to comment or reply to a post.

Leave a Reply