06-26-2012 04:02 AM
 erson&searchTerm=*&size=100 qui utilise le script pickerchildren.get.js disponible dans classpath:alfresco/templates/webscripts/org/alfresco/repository/forms.
erson&searchTerm=*&size=100 qui utilise le script pickerchildren.get.js disponible dans classpath:alfresco/templates/webscripts/org/alfresco/repository/forms. 07-06-2012 05:45 AM
 var sites = siteService.listUserSites(authorityName);
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... erson) dont le nom contient "charles".
erson) dont le nom contient "charles".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...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.