Custom Report for Show Members in Workgroups

Version

8.4

Question

How can I do the report that list application, and details of identity like name, email?

Workgroup User Name Email Column 4
Workgroup Name User1 [email protected]
Workgroup Name 2 User1 [email protected]
Workgroup Name 3 User1 [email protected]
Workgroup Name 3 User2 [email protected]
Workgroup Name 3 User3 [email protected]
Workgroup Name 4 User1 [email protected]

Thank you a lot from your help :smiley:

Hi @fewthiraphat ,

If you are looking to see the workgroup members, you can refer this post

1 Like

Copying my previous post from community :slight_smile:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE TaskDefinition PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<TaskDefinition executor="sailpoint.reporting.LiveReportExecutor" name="Vishal WorkGroup Member Details" progressMode="Percentage" resultAction="Rename" subType="Identity and User Reports" template="true" type="LiveReport">
  <Attributes>
    <Map>
      <entry key="TaskDefinition.runLengthAverage" value="4"/>
      <entry key="TaskDefinition.runLengthTotal" value="4"/>
      <entry key="TaskDefinition.runs" value="1"/>
      <entry key="report">
        <value>
          <LiveReport title="User Details Report">
            <DataSource defaultSort="name" objectType="Identity" type="Filter">
              <QueryParameters>
                <Parameter argument="queryFilter">
                  <QueryScript>
                    <Source>
                            import sailpoint.object.*;
                            import java.lang.*;
                      
								 Filter f = Filter.eq("workgroup",true);
                                 queryOptions.addFilter(f);                                       
                            return queryOptions;
                          </Source>
                  </QueryScript>
                </Parameter>
              </QueryParameters>
            </DataSource>
            <Columns>
              <ReportColumnConfig field="Workgroup" header="Workgroup" property="name" sortable="true" width="110"/>
              <ReportColumnConfig field="members" header="Members" property="id" width="110">
                <RenderScript>
                  <Source>                    
                    import sailpoint.object.*;
					import java.util.*;
                          
                    				
					List wgs = new ArrayList();
               
                    List props = new ArrayList();
					props.add("name");
					
					QueryOptions qo = new QueryOptions();
   
					  qo.addFilter(Filter.eq("workgroups.id", value));
					  Iterator entIter = context.search(Identity.class, qo);
					  
					  while(entIter.hasNext()){							
					  Identity wg = (Identity)entIter.next();
					  wgs.add(wg.getName());
					  }
								  
					return wgs;	  
                          
                  </Source>
                </RenderScript>
              </ReportColumnConfig>
            </Columns>
          </LiveReport>
        </value>
      </entry>
    </Map>
  </Attributes>
  <Description>A detailed view of WorkGroup Members.</Description>
</TaskDefinition>

Thank you so much for your help! I tried it, and it worked perfectly. However, I was wondering if it’s possible to format the data so that each identity appears on a separate row, similar to the example I provided.

Could you kindly guide me on how to achieve this?