2010-01-12 7 views
0

J'essaie d'obtenir le sous-groupe d'un groupe dans l'espace de noms Cognos standard. En recherchant le fichier Contentstore, tous les groupes fonctionnent correctement. Les méthodes standard pour obtenir des "membres" d'objets retournent les utilisateurs ou seulement le groupe "racine" (le groupe dont je veux les sous-groupes). Rien d'autre ....Cognos 8 SDK: Comment obtenir des sous-groupes d'un groupe?

Est-ce que je fais quelque chose de mal ou est-ce juste "ne pas faire"?

Répondre

0

J'ai trouvé une façon de le faire:

En supposant que vous avez le searchpath pour le groupe que vous voulez que les sous-groupes de. Interrogez la contentstore pour elle avec PropEnum suivante:

PropEnum[] props = { 
    PropEnum.defaultName, 
    PropEnum.searchPath, 
    PropEnum.members }; 

Comme résultat que vous obtenez un BaseClass[] object (avec un seul élément mais ...). Importer com.cognos.developer.schemas.bibus._3.Group < --- cela fait partie des bibliothèques Cognos SDK et maintenant vous pouvez convertir le object[0] en groupe.

object.getMembers().getValue()[] est un tableau de tous les membres, y compris les groupes, les rôles et les comptes.

En Java, il ressemble à ceci (requête pour l'objet déjà fait):

Group group = (Group)object[0]; 
BaseClass obj = null; 
for (int i = 0; i < group.getMembers().getValue().length; i++){ 
    obj = group.getMembers().getValue(); 
    System.out.println(obj.getSearchPath().getValue()); 
}