Saturday, 16 June 2018

OIM API - How to Create Lookup in OIM?

public void createLookup(String LookupName) {
     final String logp = CN + ":: createLookup- ";
     logger.info(logp + "START");
     tcLookupOperationsIntf lookupOper = null;
    
     try{
         lookupOper = Platform.getService(tcLookupOperationsIntf.class);
         logger.info(logp + " Creating Lookup : " + LookupName);
        
         //Invoking Lookup Create Operation
         lookupOper.addLookupCode(LookupName);
     }catch(Exception e){
         LOGGER.error(logp + "Exception occurred while creating lookup - " + e.getMessage(), e);
     }
    
     LOGGER.debug(logp + "END");
 }


Happy Learning!!! 

OIM API - Code Snippet to Remove Lookup Value.

public void removeLookupValue(String Key, String Lookup, boolean caseSensitive) {
    final String logp = CN + "::removeLookupValue - ";
    LOGGER.debug(logp + "START");
    Map searchFor = new HashMap();
    searchFor.put("Lookup Definition.Lookup Code Information.Code Key", Key);
    tcLookupOperationsIntf lookupService = null;
    try {
        lookupService = (tcLookupOperationsIntf) Platform.getService(tcLookupOperationsIntf.class);
        tcResultSet results = lookupService.getLookupValues(Lookup, searchFor);
        for (int i = 0; i < results.getRowCount(); i++) {
            results.goToRow(i);
            String key = results.getStringValue("Lookup Definition.Lookup Code Information.Code Key");
            if (!caseSensitive && key.equalsIgnoreCase(Key)) {
                lookupService.removeLookupValue(Lookup, key);
            } else if (caseSensitive && key.equals(Key)) {
                lookupService.removeLookupValue(Lookup, key);
            }
        }
    } catch (Exception e) {
        LOGGER.error(logp + "Exception occurred - " + e.getMessage(), e);
    }

    LOGGER.debug("END");
}


Happy Learning!!!

OIM API - Code Snippet to Add Entries in the Lookup.

public void addLookupValues(HashMap<String, String> lookupMap, String lookupName) throws Exception {
    String logp = CN + " :: addLookupValues - ";
    logger.info(logp + "START");
    tcLookupOperationsIntf lookupService = Platform.getService(tcLookupOperationsIntf.class);
    Set<String> set = lookupMap.keySet();
    Iterator iter = set.iterator();
    while (iter.hasNext()) {
        String key = (String)iter.next();
        if (!("".equalsIgnoreCase(lookupService.getDecodedValueForEncodedValue(lookupName,key).trim()))){
            logger.info(logp + "Value : " + key + " already in lookup. Updating the value");
            lookupService.removeLookupValue(lookupName, key);
            lookupService.addLookupValue(lookupName,key, lookupMap.get(key), "en","US"); 
        }
        else{
            logger.info(logp + "Value : " + key + " not present in lookup. Adding the value");
            lookupService.addLookupValue(lookupName,key, lookupMap.get(key), "en","US"); 
        }
    }
    logger.info(logp + "Lookup is appened with the new values");
    logger.info(logp + "END");
}


Happy Learning!!!

OIM API - Update the Group Name for Specified Lookup.

public void updateLookupGroupName(String groupName, String lookupName) {
    String logp = CN + "updateLookupGroupName";
    logger.info(logp + "START");
    Connection connection = null;
    try {
        connection = Platform.getOperationalDS().getConnection();

        String sql = "update lku set lku_group = ? where lku_type_string_key = ?";
        PreparedStatement preparedStatement = null;

        preparedStatement = connection.prepareStatement(sql);
        preparedStatement.setString(1, groupName);
        preparedStatement.setString(2, lookupName);
        preparedStatement.executeUpdate();
    } catch (Exception e) {
        logger.error(logp + " Exception while updating group name: " + e);
    } finally {
        try {
            connection.close();
        } catch (Exception e) {
            logger.error(logp + " Exception while closing connection : " + e);
        }
    }
    logger.info(logp+ "END");
}


Happy Learning!!!

OIM API - Code Snippet to Get Organization Details by Organization Name.

public void getOrganizationDetails(String orgName) {
        OrganizationManager orgManager = Platform.getService(OrganizationManager.class);
        Organization org;
        try{
            org = orgManager.getDetails(orgName, null, true);
           
            System.out.println("Organization ID :: " + org.getEntityId());
            System.out.println("Organization Name :: " + org.getAttribute(OrganizationManagerConstants.AttributeName.ORG_NAME.getId()));
            System.out.println("Parent Organization Name :: " + org.getAttribute(OrganizationManagerConstants.AttributeName.ORG_PARENT_NAME.getId()));
            System.out.println("Organization Password Policy Name :: " + org.getAttribute(OrganizationManagerConstants.AttributeName.ORG_PASSWORD_POLICY_NAME.getId()));
        } catch (OrganizationManagerException e) {
            System.out.println("Exception occured while fetching organization details");
        }
}


Happy Learning!!!

OIM API - Code Snippet to Get Admin Role Details by Admin Role Name.

private void getAdminRoleDetails(String adminRoleName) {
        //initialize admin role service
        AdminRoleService adminRoleSvc = Platform.getService(AdminRoleService.class);
       
        //get admin role object
        AdminRole adminRole = adminRoleSvc.getAdminRole(adminRoleName);

        System.out.println("Admin Role ID :: " + adminRole.getRoleId());
        System.out.println("Admin Role Name :: " + adminRole.getRoleName());
        System.out.println("Admin Role Display Name :: " + adminRole.getRoleDisplayName());
        System.out.println("Admin Role Description :: " + adminRole.getRoleDescription());
}



OIM API - Code Snippet to Get all Admin Roles Assigned to User.

public void getAllAdminRolesAssignedToUser(String userLogin, String orgName) {
        //initialize admin role service
        AdminRoleService adminRoleSvc = oimClient.getService(AdminRoleService.class);
       
        //get organization key by organization name
        String orgKey = getOrganizationID(orgName);
        if(null == orgKey){
            System.out.println("Organization <"+orgName+"> is not present");
            return;
        }
       
        //get user key by user login
        String usrKey = getUserKeyByUserLogin(userLogin);
        if(null == usrKey){
            System.out.println("User <"+userLogin+"> is not present");
            return;
        }
       
        List<AdminRoleMembership> memberships = adminRoleSvc.listUsersMembership(usrKey, null, orgKey, true, null);
        System.out.println("Memberships count :: " + memberships.size());
       
        for(AdminRoleMembership membership : memberships){
            System.out.println("***********************************");
            System.out.println("Admin Role ID :: " + membership.getAdminRoleId());
            System.out.println("Admin Role Name :: " + membership.getAdminRoleName());
            System.out.println("***********************************");
        }       
}

private String getOrganizationID(String orgName) {
        OrganizationManager orgManager = oimClient.getService(OrganizationManager.class);
        Organization org;
        try{
          org = orgManager.getDetails(orgName, null, true);
          return org.getEntityId();
        } catch (OrganizationManagerException e) {
            System.out.println("Exception occured while fetching org key");
            return null;
        }
}
   
private String getUserKeyByUserLogin(String userLogin){
        HashSet<String> attrsToFetch = new HashSet<String>();
        attrsToFetch.add(UserManagerConstants.AttributeName.USER_KEY.getId());
   
        try{    
            //get user manager service
            UserManager userService = oimClient.getService(UserManager.class);
          
            User user = userService.getDetails(userLogin, attrsToFetch, true);
            return user.getEntityId();
        }catch(Exception e){
            System.out.println("Exception occured while fetching user key");
            return null;
        }
}


Happy Learning!!!