cancel
Showing results for 
Search instead for 
Did you mean: 

Custom Behaviour

davidez
Champ in-the-making
Champ in-the-making
Ciao a tutti, ho un problema con i behaviour. Vorrei che quando un documento viene cancellato (per cui beforeDeleteNode) venisse lanciato un certo file javascript, all'interno del quale ho bisogno di sapere chi è che sta tentando di cancellare il file in questione. Solo che non riesco a capire come si fa.

In custom-model-context.xml ho aggiunto questo:


  
 <bean id="onBeforeDeleteMyFolder" class="org.alfresco.repo.policy.registration.ClassPolicyRegistration" parent="policyRegistration">
          <property name="policyName">
       <value>{http://www.alfresco.org}beforeDeleteNode</value>
          </property>
          <property name="className">
       <value>{my.test.com}MyDocument</value>
          </property>
          <property name="behaviour">
       <bean class="org.alfresco.repo.jscript.ScriptBehaviour" parent="scriptBehaviour">
         <property name="location">
           <bean class="org.alfresco.repo.jscript.ClasspathScriptLocation">
             <constructor-arg>
          <value>alfresco/extension/scripts/onBeforeDeleteNode.js</value>
             </constructor-arg>
           </bean>
         </property>
       </bean>
          </property>

        </bean>


Lo script onBeforeDeleteNode.js è:


    try {
    var currentUsername = person.properties.userName;
    }
    catch (e)
    {
       logger.log ("error: " + e.message);
    }
    logger.log("currentUsername: " + currentUsername);


Solo che quando il mio script viene eseguito ho questo messaggio d'errore nel file di log:

  
DEBUG [repo.jscript.ScriptLogger] error: "person" is not defined.



Qualcuno ha qualche idea a riguardo? Sto cercando ma non riesco a trovare niente…
1 REPLY 1

openpj
Elite Collaborator
Elite Collaborator
Credo che quando viene eseguito uno script come behaviour non ha tutti gli oggetti definiti nello scope, un pò come quando esegui uno script direttamente dallo script command.

Purtroppo non ho una grande esperienza nell'implementare behaviour in Javascript, tipicamente li implemento sempre in Java e non ho mai riscontrato alcun problema.