cancel
Showing results for 
Search instead for 
Did you mean: 

Ré-appliquer les règles récursivement...

berlioux
Champ in-the-making
Champ in-the-making
Bonjour.

J'ai une règle qui associe une catégorie aux contenus d'un espace. Cette règle s'applique aussi aux sous-espaces.

Quand j'effectue l'action "ré-appliquer les règles", les dites règles sont ré-appliquées uniquement dans l'espace courant, et pas dans les sous-espaces…
Comment peut-on paramétrer cela ?
4 REPLIES 4

michaelh
Champ on-the-rise
Champ on-the-rise
Eh bien … on ne peut pas … pour l'instant Smiley Happy

J'ai vu passer un commentaire disant qu'une nouvelle action avait été ajoutée pour ré-appliquer récursivement, mais ce sera pour une version suivante.

berlioux
Champ in-the-making
Champ in-the-making
Un petit java-script (Re-appliquer les regles recursivement.js) permettant de faire ça :


// JavaScript Document

// Se lance sur un espace
// Réapplique les règles de contenu dans l'espace et tous les sous-espaces.

// Création de l'action
var apprules = actions.create("execute-all-rules");
// Activation de l'exécution des règles héritées
apprules.parameters["execute-inherited-rules"] = true;

// Lancement de la fonction de parcours récursif sur l'espace
logger.log("Début du script…");
rulexec_recurse(space);
logger.log("Fin du script…");

// Fonction de parcours récursif
//==============================
function rulexec_recurse(currentSpace)
{
   logger.log("Execution des regles de "+currentSpace.displayPath + "/" + currentSpace.name)
   // Lancement de l'action sur l'espace courant
   apprules.execute(currentSpace);
  
   if ( currentSpace.children != null )
   {
      for each ( child in currentSpace.children )
      {
         if ( child.isContainer ) // Si c'est un répertoire…
         {
            rulexec_recurse(child);
         }
      }
   }
}


Pour que l'action "execute-all-rules" soit accessible il faut rajouter dans le dossier d'extension de configuration un fichier custom-action-services-context.xml contenant :


<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>

<beans>
    <bean id="execute-all-rules" class="org.alfresco.repo.action.executer.ExecuteAllRulesActionExecuter" parent="action-executer" >
        <property name="nodeService">
            <ref bean="NodeService" />
        </property>
        <property name="actionService">
            <ref bean="ActionService" />
        </property>
        <property name="ruleService">
            <ref bean="RuleService" />
        </property>
        <property name="dictionaryService">
            <ref bean="DictionaryService" />
        </property>
        <!–property name="publicAction">
            <value>false</value>
        </property–>
    </bean>
</beans>


Attention : Ce script n'exécute pas les règles de l'espace dans les sous-espaces qui en héritent, mes TOUTES les règles de TOUS les sous-espaces. A utiliser en connaissance de cause Smiley Wink

michaelh
Champ on-the-rise
Champ on-the-rise
Merci pour la contrib !

Je me suis permis de remplacer la balise "citation" par la balise "code", elle a le bon goût de conserver l'indentation Smiley Happy

berlioux
Champ in-the-making
Champ in-the-making
merci pour l'info, j'utiliserai cette balise à l'avenir Smiley Wink
Getting started

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.