Monday, May 21, 2012

Assigning bulk users to groups in

During every implementation of Oracle EPM system, administrators come across the task to assign a long list of users to corresponding Hyperion groups. It is a pretty easy job if we have a handful of users, but one of the cumbersome tasks if the the list is long. 

Celvin described creating users in bulk in his blog post, so I am not going to reiterate the same. This post is more of an extension to it, where we need to assign users from a directory to groups.

In this post, we will discuss a method to assign multiple users to corresponding groups in one go.

Step 1: Assign a 'TestUser' to any of the existing groups

Step 2: Use LCM to export group definition
Navigate to shared services and expand 'Application Groups'. Further expand 'Foundation' and select 'Shared Services'. This opens a list of artifacts on the right. Select 'Groups' and click on 'Define Migration'.

It opens the 'Migration Wizard'. We need to define migration to export groups information to file. In the 'Source Option' leaving the 'Native Group Filter' value as * (asterisk) means we need to export information about all groups. If we desire to export information about single group, we can provide group name.

Select 'Next'. Provide a folder name where group information will get stored. This folder gets created at the following location 
<Installation drive>:\Oracle\Middleware\user_projects\epmsystem1\import_export\<username>@<DirectoryName>\<folder name>

 Select 'Next' and confirm summary.

On summary page 'Execute Migration' to export information.

Click 'Launch Migration Status Report' to check the status as completed.

Navigate to the folder location <Installation drive>:\Oracle\Middleware\user_projects\epmsystem1\import_export\<username>@<DirectoryName>\<folder name> . In this case, we used 'admin' user to export group details, thus the path is C:\Oracle\Middleware\user_projects\epmsystem1\import_export\admin@Native Directory\GroupExport. Within this folder we have sub folders as shown below

Step 3: Update file to add users
Navigate to 'Native Directory' and find a file name 'Groups.csv'. Rather than opening the file in excel (default double click), open the file in a textpad editor. The file looks as shown below. The upper section with section header #group contains definition of the groups while lower section with section header #group_children contains a list of users and the groups to which they are assigned. As we had only the TestUser assigned to the group GrpCtrl, we see one record for the same.

We need to deal with the lower section of the file. Since we need not modify any information about the groups, we can get rid of the upper section. The new file would look as shown below. Please Note: Always keep a backup copy of the file before making any changes. 

Lets add the list of new users and the corresponding group to which we want to assign them. All we need to update are three fields - id, user_id, user_provider. Everything else can be left blank. In this case, since I do not have any external active directory configured in my shared services, I will be using users created in Native Directory. If the users exist in external directory, we need to provide the external directory name in user_provider column and the users will be picked up from external directory. This is how the file will look like after update. We are assigning user E001 to E006 to group GrpCtrl. Make sure you do not change the name or location of the file.

Lets check how many users does GrpCtrl have before we run the update with this new file. It contains only 'TestUser' which we added manually to export group details.

Step 4: Using LCM to assign users to groups
To upload the new users to the group, open shared services and expand the 'File System' folder in the left menu. We will find an item created with the same name which we provided as folder name as our target to export migration. Select this folder. In this case, the folder name we provided was 'GroupExport', so we select it to open artifacts on the right.

Select 'Groups' and click on 'Define Migration' from bottom. It will launch the migration wizard. The source is the file system with the folder. Click 'Next' to move to next screen.

The destination is 'Foundation Shared Services'. Click 'Next'.

Select the import operation type. There are four options - Create/Update , Create, Update, Delete. We need to take care how we select the options - Create and Update. Create performs the operation of adding the users while Update performs the operation of addition and deletion. It add the users present in the groups.csv and deletes which are not present.

Confirm the source and destination. Click 'Execute Migration'.

Click 'Launch Migration Status Report' and check the status as completed.

On checking the group 'GrpCtrl', we find the new users 'E001' to 'E006' gets added to the group while 'TestUser' gets removed since we selected the option 'Create/Update' and 'TestUser' was not present in the groups.csv

This completes the process of assigning users to groups in one go. In coming posts, I will be discussing the process to automate the same.


  1. Hi Navan,
    I tried to replicate the same in my server.However it throws an error "Import failed".
    Any guess why i am facing this issue.Thanks:)

    1. Hi Satya,
      Did you try investigating into the details of failure? In case any migration fails, you can click on the row item which failed to check the cause of failure.
      Did you provide correct group name, user name or directory name which you are using while executing this migration?
      Make sure you have the users & groups created before you execute this. These steps do not create any new groups or users, but just associate them.
      Let me know your findings.

  2. Thanks so much! it works like a charm.