06-26-2012 04:02 AM
07-06-2012 05:45 AM
var sites = siteService.listUserSites(authorityName);
Ce que je pensais faire aussi, c'est d'ajouter la liste des membres de sites récupérés dans un objet de type Tableau, mais as tu une idée plus light. 07-06-2012 06:56 AM
07-06-2012 10:51 AM
var sites = siteService.listUserSites(authorityName);
for each(var site in sites)
{
var userResults = user.person.properties.userName);
}
07-06-2012 11:39 AM
http://localhost:8080/share/proxy/alfresco/api/forms/picker/authority/children?selectableType=cm:per...
Comme tu pourras le voir, j'ai joué une requête très egocentrique 😉function findUsers(searchTerm, maxResults, results)
{
var paging = utils.createPaging(maxResults, -1);
var searchResults = groups.searchUsers(searchTerm, paging, "lastName");
// create person object for each result
for each(var user in searchResults)
{
if (logger.isLoggingEnabled())
logger.log("found user = " + user.userName);
// add to results
results.push(
{
item: createPersonResult(user.person),
selectable: true
});
}
}
http://localhost:8080/share/proxy/alfresco/api/forms/picker/authority/children?selectableType=cm:per...
Le webscript devra ensuite passer l'information sur le site à la fonction findUsers :function findUsers(searchTerm, maxResults, results, siteName)
{
var searchResults = Array();
if (site == null) {
// Pas dans un site, recherche complète
var paging = utils.createPaging(maxResults, -1);
searchResults = groups.searchUsers(searchTerm, paging, "lastName");
} else {
var site = siteService.getSite(siteName);
var members = site.listMembers(searchTerm, "", maxResults, true);
for (var i=0; i<members.size(); i++) {
searchResults[i] = groups.getUser(userName);
}
}
// create person object for each result
for each(var user in searchResults)
{
if (logger.isLoggingEnabled())
logger.log("found user = " + user.userName);
// add to results
results.push(
{
item: createPersonResult(user.person),
selectable: true
});
}
}
07-07-2012 08:57 AM
07-09-2012 04:44 PM
Aller hop, c'est la fin de semaine, je vais illustrer mon propos d'un petit exemple.
Lorsque tu fais une recherche pour choisir un acteur du workflow, l'url suivante est appelé :Comme tu pourras le voir, j'ai joué une requête très egocentrique 😉http://localhost:8080/share/proxy/alfresco/api/forms/picker/authority/children?selectableType=cm:per...
Cette url va faire appel au webscript Alfresco pickerchildren.get.
Ce webscript va traiter différents cas de recherche en fonction des paramètres de l'url. Ici, on recherche un utilisateur (cf. authority + selectableType=cmerson) dont le nom contient "charles".
La recherche a proprement parlé est réalisée par la méthode findUsers(searchTerm, maxResults, results) :function findUsers(searchTerm, maxResults, results)
{
var paging = utils.createPaging(maxResults, -1);
var searchResults = groups.searchUsers(searchTerm, paging, "lastName");
// create person object for each result
for each(var user in searchResults)
{
if (logger.isLoggingEnabled())
logger.log("found user = " + user.userName);
// add to results
results.push(
{
item: createPersonResult(user.person),
selectable: true
});
}
}
Voila pour la situation de départ.
jusque là çava.
Pour ton besoin, il faut passer une information sur le site. L'URL peut donc devenir quelque chose du genre :Salut Charles,http://localhost:8080/share/proxy/alfresco/api/forms/picker/authority/children?selectableType=cm:per...
Le webscript devra ensuite passer l'information sur le site à la fonction findUsers :if (site == null) {function findUsers(searchTerm, maxResults, results, siteName)
{
var searchResults = Array();
La variable site est-elle celle passée via l'url du webscript si oui j'ai bien ajouté la ligne suivante pour la déclaration de site
[code]
var argsSiteName = args['site'];
// Pas dans un site, recherche complète
var paging = utils.createPaging(maxResults, -1);
searchResults = groups.searchUsers(searchTerm, paging, "lastName");
}
Cette deuxième partie est la plus importante.
1er question : La variable userName vient d'où ?
2ème question le pagging est aparemment obligatoire dans les 2 cas de figure ?
Je ne rentre jamais dans ce boucle même en spécifiant un site.
else {
var site = siteService.getSite(siteName);
var members = site.listMembers(searchTerm, "", maxResults, true);
for (var i=0; i<members.size(); i++) {
searchResults = groups.getUser(userName);
}
}
// create person object for each result
for each(var user in searchResults)
{
if (logger.isLoggingEnabled())
logger.log("found user = " + user.userName);
// add to results
results.push(
{
item: createPersonResult(user.person),
selectable: true
});
}
}
Bien entendu, il reste plein de choses à faire :==> OKI
- Tester que ça fonctionne (!)
- Faire la modification dans Share pour passer le site en paramètre ==> OKI
- Vérifier que l'absence de paging n'est pas un frein trop gros ==>un peu
- Mettre en place le tri des résultats si on le souhaite
Voila donc tout ce que je peux avoir en tête pour couvrir ton besoin.
===>Thank en tout cas pour ta disponibilité
Cordialement,
Charles
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.