cancel
Showing results for 
Search instead for 
Did you mean: 

executer script .js

steppp
Champ in-the-making
Champ in-the-making
Bonjour, excusez moi de vous déranger, mais je patauge gentillement dans la boue là.
Alors voici la mission : en gros je prépare un formulaire pour permettre à tous les utilisateurs de rajouter un document dans l'entrepot.
Le rôle de ce script, est de placer les documents dans un répertoire temporaire, définir le futur emplacement ainsi que les tags qui seront associés et envoyer un mail à un reponsable.
Le responsable modifie eventuellement quelques informations, il valide et un autre script s'occupe de placer les documents où il faut (ftp), avec création de répertoires eventuelles.
Comme vous allez le comprendre dans très peu de temps, j'ai bien fais l'autruche, mais là je suis bloqué, car la "seule" chose qui reste à faire c'est appliquer les taggs pour le fichier ajouter.
une histoire de 10 minutes en théorie, mais là je le compterai en heures.

Grosomodo j'ai bien compris que je dois faire un script, qui utilise l'API javascript, j'ai donc placé un .js dans le répertoire (dictionnaire données/script) mais je suis pas foutu d'executer ce satané script, je sais pas comment on fait que ça soit avec l'interface ou par URL (j ai lu le wiki, mais j'y arrive pas)
je pense pouvoir me dépatouiller avec l'api, mais c'est encore neuf pour moi le fait d'intéragir avec un application qui le permet, ça fait beaucoup d'un coup et je suis un peu paumé je vous l'avoue.

Si vous pouviez me donné le petit coup de pouce pour repartir je vous en serais très reconnaissant

Cordialement

Stéph
5 REPLIES 5

rivarola
Champ on-the-rise
Champ on-the-rise
Bonjour,
Quelques petits trucs à vérifier :
* le type MIME du fichier JavaScript est-il correct ? (application/x-javascript)
* les tests faits par URL (voir http://wiki.alfresco.com/wiki/URL_Addressability#Script_Command_Processor) ont-ils été faits avec l'utilisateur admin (dans les versions les plus récentes d'Alfresco, cette commande est interdite aux utilisateurs lambda) ?
* est-ce que votre script est visible dans la liste des scripts affichés lors d'une création de règle dont l'action est l'exécution d'un script ?

steppp
Champ in-the-making
Champ in-the-making
alors tout d'abord merci de ta réponse.

Test par URL => ok c'est bien en tant que "admin" qu'il sont effectués
Script visible => oui j'ai vérifier
Type MINE oui il est bien indiqué Java Script

Je me demande si c'est pas ma façon d'y accéder qui rape, je suis dans un flou artistique total, je n'ai aucune idée du fonctionnement.

dans mon idée l'appelle à ces scripts intègre les librairies nécessaires, et préparer donc l'action. mais j'ai même pas réussi à lui faire dire bonjour. le débug me dit qu'il ne trouve pas les références vers space pour ce cas là
d'ailleurs maintenant que je peux montrer les résultats je vous les file après mes paroles ^^

j'ai peu de notion en javascript, je sais juste adapter mon boulot par rapport à ce que je vois, et éventuellement me servir connement d'un API,  là je me suis servi du script alfrescodocs.js pour mon test, mais avant j'avais juste créé un test.js qui disais document.write("Hello world!");
Je n'ai aucune idée de comment ça marche, donc je suis illogique et j'arrive à rien, je m'excuse donc pour le message de "simplet" que vous lirez.

merci d'avance

Cordialement

Stéph


org.alfresco.error.AlfrescoRuntimeException: 03200484 Error during command servlet processing: 03200483 Failed to execute script 'workspace://SpacesStore/89af1a24-bf38-4280-9159-0b3b77423178': 03200482 ReferenceError: "space" n'est pas défini (workspace://SpacesStore/89af1a24-bf38-4280-9159-0b3b77423178#2)
causé par :
org.alfresco.scripts.ScriptException: 03200483 Failed to execute script 'workspace://SpacesStore/89af1a24-bf38-4280-9159-0b3b77423178': 03200482 ReferenceError: "space" n'est pas défini (workspace://SpacesStore/89af1a24-bf38-4280-9159-0b3b77423178#2)
causé par :
org.alfresco.error.AlfrescoRuntimeException: 03200482 ReferenceError: "space" n'est pas défini (workspace://SpacesStore/89af1a24-bf38-4280-9159-0b3b77423178#2)
causé par :
org.mozilla.javascript.EcmaError: ReferenceError: "space" n'est pas défini (workspace://SpacesStore/89af1a24-bf38-4280-9159-0b3b77423178#2)

Cacher les Détails

org.alfresco.error.AlfrescoRuntimeException: 03200484 Error during command servlet processing: 03200483 Failed to execute script 'workspace://SpacesStore/89af1a24-bf38-4280-9159-0b3b77423178': 03200482 ReferenceError: "space" n'est pas défini (workspace://SpacesStore/89af1a24-bf38-4280-9159-0b3b77423178#2)
at org.alfresco.web.app.servlet.CommandServlet.service(CommandServlet.java:191)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.alfresco.repo.web.filter.beans.NullFilter.doFilter(NullFilter.java:68)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory$1.invoke(ChainingSubsystemProxyFactory.java:116)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy233.doFilter(Unknown Source)
at org.alfresco.repo.web.filter.beans.BeanProxyFilter.doFilter(BeanProxyFilter.java:82)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.alfresco.web.app.servlet.GlobalLocalizationFilter.doFilter(GlobalLocalizationFilter.java:58)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.alfresco.scripts.ScriptException: 03200483 Failed to execute script 'workspace://SpacesStore/89af1a24-bf38-4280-9159-0b3b77423178': 03200482 ReferenceError: "space" n'est pas défini (workspace://SpacesStore/89af1a24-bf38-4280-9159-0b3b77423178#2)
at org.alfresco.repo.jscript.RhinoScriptProcessor.execute(RhinoScriptProcessor.java:244)
at org.alfresco.repo.processor.ScriptServiceImpl.executeScript(ScriptServiceImpl.java:195)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.alfresco.repo.security.permissions.impl.AlwaysProceedMethodInterceptor.invoke(AlwaysProceedMethodInterceptor.java:34)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor.invoke(ExceptionTranslatorMethodInterceptor.java:44)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.alfresco.repo.audit.AuditMethodInterceptor.proceedWithAudit(AuditMethodInterceptor.java:217)
at org.alfresco.repo.audit.AuditMethodInterceptor.proceed(AuditMethodInterceptor.java:184)
at org.alfresco.repo.audit.AuditMethodInterceptor.invoke(AuditMethodInterceptor.java:137)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy258.executeScript(Unknown Source)
at org.alfresco.web.app.servlet.command.ExecuteScriptCommand.execute(ExecuteScriptCommand.java:97)
at org.alfresco.web.app.servlet.command.ScriptCommandProcessor.process(ScriptCommandProcessor.java:151)
at org.alfresco.web.app.servlet.CommandServlet.service(CommandServlet.java:153)
… 28 more
Caused by: org.alfresco.error.AlfrescoRuntimeException: 03200482 ReferenceError: "space" n'est pas défini (workspace://SpacesStore/89af1a24-bf38-4280-9159-0b3b77423178#2)
at org.alfresco.repo.jscript.RhinoScriptProcessor.executeScriptImpl(RhinoScriptProcessor.java:488)
at org.alfresco.repo.jscript.RhinoScriptProcessor.execute(RhinoScriptProcessor.java:240)
… 51 more
Caused by: org.mozilla.javascript.EcmaError: ReferenceError: "space" n'est pas défini (workspace://SpacesStore/89af1a24-bf38-4280-9159-0b3b77423178#2)
at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3350)
at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3340)
at org.mozilla.javascript.ScriptRuntime.notFoundError(ScriptRuntime.java:3413)
at org.mozilla.javascript.ScriptRuntime.name(ScriptRuntime.java:1612)
at org.mozilla.javascript.gen.c28._c0(workspace://SpacesStore/89af1a24-bf38-4280-9159-0b3b77423178:2)
at org.mozilla.javascript.gen.c28.call(workspace://SpacesStore/89af1a24-bf38-4280-9159-0b3b77423178)
at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:393)
at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:2834)
at org.mozilla.javascript.gen.c28.call(workspace://SpacesStore/89af1a24-bf38-4280-9159-0b3b77423178)
at org.mozilla.javascript.gen.c28.exec(workspace://SpacesStore/89af1a24-bf38-4280-9159-0b3b77423178)
at org.alfresco.repo.jscript.RhinoScriptProcessor.executeScriptImpl(RhinoScriptProcessor.java:472)
… 52 more

jayjayecl
Confirmed Champ
Confirmed Champ
Bonjour, je n'ai pas tout compris au besoin exprimé dans le premier message (par exemple : un script n'exécute que de la business-logic il ne fournit pas d'interface utilisateur pour sélectionner des tags ou autre métadonnée).

Pour l'aspect technique du message d'erreur que vous énoncez dans le dernier message, le fait est que vous appelez une URL qui exécute un script qui doit agir sur des variables comme "space" ou "document". Mais vous n'avez probablement pas fourni d'arguments pour que le script sache quels sont les "space" ou "document".

Sur le lien donné http://wiki.alfresco.com/wiki/URL_Addressability#Script_Command_Processor, on voit qu'il est possible de founir un contexte à l'appel du script. L'exemple fourni doit se lire comme suit :

/alfresco/command/script/execute/workspace/SpacesStore/d8470f03-b80a-11da-97b9-8d453af5a554/workspace/SpacesStore/12345678-9012-11da-97b9-8d453af5a554
=
/alfresco/command/script/execute/[nodeRef du script]/[nodeRef du document de contexte]

Enfin, dernière question : a part ce bug en appelant le script directement par URL, quel est le problème précis que vous rencontrez dans le contexte de votre besoin (sur la règle de contenu) ?

steppp
Champ in-the-making
Champ in-the-making
Merci Rodel pour ta réponse, alors

les besoins exprimés : je vais les ré exprimer plus clairement.

concrètement des scripts externes permettent de placer un document, dans l’entrepôt  avec une arborescence bien spécifié par un formulaire indépendamment (ça c'est géré il n'y a pas de problème) donc au stade où j'en suis, les documents sont implantés sur Alfresco là où il faut.

Seulement certaines informations issues du formulaire (donc le même formulaire indépendant) ne sont pas exploités, mon but c'est que ces informations soient les tags du document.


J'ai vu qu'il était possible de modifier les métadonnées d'un document donc grosomodo l'algo :

mon script qui implante le document sur alfresco à récupérer des informations (donc les tags et l'arborescence).
Ce script appelle un autre script (javascript) qui se trouve dans le dossier dictionnaire de données/script avec des paramètre (grosomodo le document concerné et les tag).
Ce script javascript doit récupérer ces informations, les traiter (affecter les tag) et s’arrêter.

Voilà l'idée certes peut être un peu naïve que je me suis faite.

Ensuite oui pour l'aspect technique, j'avoue avoir naïvement (encore une fois) sur les exemples trouvés dans le dictionnaire des données, c'est nouveau pour moi tout ça (se servir d'outils d'un système comme Alfresco), j'ai que des exemples pour me guider et le wiki mais malgré mes lectures et relectures je dois rater certaines subtilités (mon anglais technique est correct mais pas de quoi casser 4 pattes à un canard).

Ce que tu me dis sur le contexte c'est intéressant  tourner comme tu me le dis j'ai déjà une idée plus claire du fonctionnement, mais je t'avoue que les arguments NodeRef et compagnie je les ai vu, mais je n'ai aucune idée de ce que c'est.

Voilà comme tu l'auras remarquer ça me dépasse un peu, mais je cherche à apprendre, je ne veux pas la solution, mais une sorte de petite remise à niveau qui me permettra de prendre mon envol.

Voilà en espérant ne pas trop déranger.

Cordialement,

Stéph

steppp
Champ in-the-making
Champ in-the-making
merci quand même