AnsweredAssumed Answered

Custom Action de règle de contenu lancé sans condition

Question asked by jack_8100 on May 26, 2008
Latest reply on Jun 5, 2008 by jack_8100
Bonjour,
Je commencerais par dire un traditionnel "je suis nouveau et débutant sur tout ce qui touche à Alfresco".
J'ai fouillé les forum, les tutos et les codes sources, mais je n'ai pu trouver aucune piste.

Et voici mon problème :
Je cherche à donner la possibilité de créer une règle de contenu associé à un espace particulier. Cette règle devra lancer une custom action que j'ai ajouter qui se declenchera soit à la fin de la création de la règle soit au lancement d'alfresco pour les règles déja créer.
J'ai vu que du coté du wizard il n'existait pas de type pour une règle dite "immediat" à la place de entrant , sortant , ou mise a jour .

Le traitement à terme de ma custom action est de pouvoir mettre a jour une base de donnée en fonction du contenu de l'espace auxquel est appliqué la règle.

Alors pour le moment rien d'extraordinaire pour ma custom action :

public class TestActionExecuter extends ActionExecuterAbstractBase
{
   public static final String NAME = "tag";

   private NodeService nodeService;
   private ContentService contentService;
   private RuleService ruleService;

   public void init(){
    
      System.out.println("Je suis lancé OUAI \\o/");
      super.init();
   }
 
   public void setNodeService(NodeService nodeService)
   {
      System.out.println("########################## Node Service pret !!!");
      this.nodeService = nodeService;
   }
  
   public void setContentService(ContentService contentService)
   {
      System.out.println("########################## Content Service pret !!!");
       this.contentService = contentService;
   }
  
   public void setRuleService(RuleService ruleService)
   {
      System.out.println("########################## Rule Service pret !!!");
       this.ruleService = ruleService;
   }

  
   protected void executeImpl(Action action, NodeRef actionedUponNodeRef)
   {
      if (this.nodeService.exists(actionedUponNodeRef) == true)
      {
       System.out.println(nodeService.getProperty(ruleService.getOwningNodeRef(action),ContentModel.PROP_NAME));
      }
  }
  
   @Override
   protected void addParameterDefinitions(List<ParameterDefinition> paramList)
   {
      // there are no parameters
   }


et du coté du test-context.xml :
<beans>

<bean id="tags.dictionaryBootstrap" parent="dictionaryModelBootstrap" depends-on="dictionaryBootstrap">
     <property name="models">
         <list>
             <value>alfresco/extension/testModel.xml</value>
         </list>
     </property>
</bean>

<bean id="tag" class="org.alfresco.sample.TestActionExecuter" parent="action-executer" >
   <property name="nodeService">
      <ref bean="nodeService" />
   </property>
   <property name="contentService">
            <ref bean="ContentService" />
   </property>
   <property name="ruleService">
            <ref bean="RuleService" />
   </property>
</bean>


<bean id="test-action-messages" class="org.alfresco.i18n.ResourceBundleBootstrapComponent">
   <property name="resourceBundles">
      <list>
         <value>org.alfresco.sample.test-action-messages</value>
      </list>
   </property>
</bean>

</beans>

Bon je met tout ce code mais je sais pas si ca servira.
Mais auriez vous des idées afin que la custom action s'execute au moment de sa création et une seule fois.
S'il vous plait je suis désesperé  :cry:

Jack

Outcomes