2016-09-05 2 views
0

그룹에 속한 모든 사용자와 그룹의 역할을 표시하려고합니다.
이제 "// account"가있는 모든 사용자, "// group"이있는 모든 그룹 또는 "// role"이있는 모든 역할을 나열 할 수 있습니다. 나는 그룹 대신 난 그냥 역할에 대한 userPath.Value = "//group"; 또는 .."//role";을 변경해야하는 사용자를 표시 할 경우그룹에있는 모든 사용자를 표시하는 방법 - IBM Cognos 10 SDK

propEnum[] props = new propEnum[] { 
propEnum.searchPath, propEnum.defaultName,}; 

sort[] s = new sort[] { new sort() }; 
s[0].order = orderEnum.ascending; 
s[0].propName = propEnum.defaultName; 

queryOptions queryOptions = new queryOptions(); 

StringBuilder output = new StringBuilder(); 

// Look for all the users. 
output.AppendFormat("\nUsers:\n"); 

searchPathMultipleObject userPath = new searchPathMultipleObject(); 
userPath.Value = "//account"; 

baseClass[] bc = cBICMS.query(userPath, props, s, queryOptions); 

if (bc.Length > 0) 
{ 
    foreach (baseClass report_item in bc) 
    { 
     output.AppendFormat("DefaultName:  {0}\n", report_item.defaultName.value); 
     output.AppendFormat("SearchPath:   {0}\n", report_item.searchPath.value); 
    } 
} 

:

이것은 내가 모든 사용자/그룹/역할을 얻는 방법이다.

누구에게 아이디어가 있습니까?

답변

0

그룹의 사용자를 표시하는 방법을 알아 냈습니다.

http://www-01.ibm.com/support/docview.wss?uid=swg21335459 여기에 C# 및 Java의 예가 들어 있습니다.

".members"에 그룹의 사용자 이름이 있으므로 propEnum [] props에 "propEnum.members, propEnum.objectClass"를 추가했습니다.

propEnum[] props = new propEnum[] { 
propEnum.searchPath, propEnum.defaultName, propEnum.members, propEnum.objectClass}; 

그룹을 검색하기 위해 userPath.Value를 "// group"으로 변경했습니다.

if (bc.Length > 0) 
      { 
       for(int i = 0; i < bc.Length; i++) 
       { 
        string x = bc[i].objectClass.value.ToString(); 
        if (bc[i].objectClass.value.ToString().Equals("group")) 
        { 
         group gp = (group)bc[i]; 
         baseClass[] members = gp.members.value; 
         if(members != null && members.Length > 0) 
         { 
          for(int j = 0; j < members.Length; j++) 
          { 

            output.AppendFormat("Members: {0}\n", gp.members.value[j].searchPath.value); 
            output.AppendFormat("DefaultName: {0}\n\n", gp.defaultName.value); 
          } 
         } 
        } 
       } 
      } 
:

searchPathMultipleObject userPath = new searchPathMultipleObject(); 
userPath.Value = "//group"; 

는 그럼 난 내 기능을 조금 변경