Workflow - contenu se trouvant dans dossiers utilisateurs

cancel
Showing results for 
Search instead for 
Did you mean: 
livier
Active Member II

Workflow - contenu se trouvant dans dossiers utilisateurs

Bonjour,

Je débute en alfresco et j'ai commencé à développé u workflow.
Jusqu'à présent je faisais mes tests en ajoutant des contenus qui se trouvaient dans les documents Library par défaut et ça fonctionnait bien : les documents ajoutés étaient visibles dans chacune des tâches définies.
Là, ce que j'ai fait c'est que pour un utilisateur alpha, j'ai ajouté un contenu dans "Mes fichiers".

J'ai lancé mon workflow et j'ai sélectionné le fichier se trouvant donc dans "Espaces Utilisateurs" > alpha

Ce fichier n'est pas visible dans toutes les autres tâches qui suivent mise à part une tâche qui est affectée à l'utilisateur alpha.

Ca doit certainement être une question de droit mais je ne vois absolument pas ce qu'il faut faire pour corriger le tire.
D'avance merci pour vos réponses.

4 Replies
ycoulon
Alfresco Employee

Re: Workflow - contenu se trouvant dans dossiers utilisateurs

Bonjour,

Il s'agit effectivement d'un soucis de droit. L'espace "Mes fichiers" est propre à un utilisateurs (son jardin à lui) ainsi d'autre utilisateurs ne peuvent pas accéder à ces fichiers sans action de sa part.

Une solution serait comme vous l'avez fait avant durant vos test l'utilisation d'un site dédié.

Si vous souhaitez que vos utilisateurs travaillent dans leurs espaces avant de lancer vos workflow, ajouter des tâches déplaçant le fichier dans un dossier accessible par l'ensemble des intervenants du workflow peut être également une idée.

Y.

livier
Active Member II

Re: Workflow - contenu se trouvant dans dossiers utilisateurs

Bonjour,

Merci pour votre réponse.
Avant de voir votre message j'étais parti sur l'idée de modifier directement les permissions sur les documents :

for(var i = 0; i < bpm_package.children.length; i++) {
                     var resource = bpm_package.children[i];
                     resource.setPermission("Read", "GROUP_TEST");

}

Cette solution a le mérite de fonctionner mais se pose le problème d'archivage des documents.
En effet, les documents étant "uploadés" à partir de "Mes fichiers", si l'utilisateur supprime les documents, ces derniers ne seront plus accessibles.

Je pense qu'il serait important effectivement, de déplacer ces documents dans un site qui servirait d'archives.

Pour ce faire, je souhaiterais :

  1. Créer un dossier portant un nom identifiable sur un site
  2. Copier les documents dans ce dossier lors de la tâche endEvent
  3. Retirer les permissions de lecture sur les documents qui se trouvent dans "Mes fichiers"

Pour la création d'un dossier, j'ai vu qu'il y a une fonction createFolder (createFolder | Alfresco Documentation ) mais j'avoue ne pas comprendre comment l'utiliser.

Imaginons que je crée un site dont le nom est testWF

Comment faire pour créer un dossier toto dans ce site ?

De même, pour copier des fichiers, j'ai vu qu'il y a la fonction copy (copy | Alfresco Documentation )

Comment faire pour copier les fichiers dans le dossier testWF ?

D'avance merci pour votre aide

oounoughi
Established Member

Re:  Workflow - contenu se trouvant dans dossiers utilisateurs

Pour la création d'un dossier, j'ai vu qu'il y a une fonction createFolder (createFolder | Alfresco Documentation ) mais j'avoue ne pas comprendre comment l'utiliser.

Imaginons que je crée un site dont le nom est testWF

Comment faire pour créer un dossier toto dans ce site ?

Voici un exemple de code js pour créer le dossier toto dans les site testWF :

var folderToto;

var site = siteService.getSite("testWF");

if(site) {   
    var documentLibrary =  site.getContainer("documentLibrary");

    folderToto = documentLibrary.createFolder("toto");

}

De même, pour copier des fichiers, j'ai vu qu'il y a la fonction copy (copy | Alfresco Documentation )

Comment faire pour copier les fichiers dans le dossier testWF ?

suite du précédent code pour copier les ressources  :

for(var i = 0; i < bpm_package.children.length; i++) {
                     var resource = bpm_package.children[i];

                     var copyResource = resource.copy(folderToto);
                     copyResource.setPermission("Read", "GROUP_TEST");

}

O.

livier
Active Member II

Re: Workflow - contenu se trouvant dans dossiers utilisateurs

Bonjour,

Je vous remercie pour votre réponse.
J'avais continué à chercher et j'ai finalement trouvé la solution suivante :

var strDestFolder ="/Sites/testWF/documentlibrary";

var objDestFolder = companyhome.childByNamePath(strDestFolder);
objDestFolder.createFolder("toto");

Même si ma façon de faire semble fonctionner, y aurait il des points négatifs que je ne perçois ? ou bien nos deux méthodes sont elles "équivalentes"  ?

D'avance merci