Execution javascript

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

Execution javascript

Bonjour,

J'ai un petit problème lors de l'exécution de fichiers javascript dans Alfresco, c'est surement tout con mais je n'arrive pas à trouver ce qui ne va pas. J'espère que vous allez pouvoir m'aider.
Alors voilà, je commence tout juste à m'intéresser à l'exécution de scripts sous Alfresco et j'ai voulu, pour tester, exécuter des scripts tout simples.

Voici le premier :

var file = new ActiveXObject("Scripting.FileSystemObject");
var a = file.CreateTextFile("/home/cgueri01/testfile.txt", true);
a.WriteLine("Hello !");
a.Close();

Pour exécuter ce script j'ai utilisé la commande Run Action d'un espace mais, après avoir cliqué sur Finish, Alfresco m'a affiché :

Failed to run Actions due to error: Failed to execute script 'workspace://SpacesStore/6691da0c-cca5-4302-b7d2-5461d96e96a2': ReferenceError: "ActiveXObject" n'est pas défini (AlfrescoScript#1)

J'ai alors essayé avec plus simple :

print("Hello !");

puis

window.open("http://www.google.fr/");

J'ai respectivement obtenu les erreurs :

Failed to run Actions due to error: Failed to execute script 'workspace://SpacesStore/54058693-c3ef-47d8-b165-4ec12d4c535a': ReferenceError: "print" n'est pas défini (AlfrescoScript#1)

et

Failed to run Actions due to error: Failed to execute script 'workspace://SpacesStore/60d449e3-d39f-4db4-b420-9db10ed5da57': ReferenceError: "window" n'est pas défini (AlfrescoScript#1)

J'ose croire que c'est un truc idiot que j'ai oublié de faire à un moment ou à un autre…
J'utilise Alfresco 3 Labs sous Ubuntu 8.10 avec MySQL, l'erreur est la même sous Firefox et Opera.

Voilà, maintenant si vous avez des idées sur l'origine de mon problème je suis tout ouïe.

Merci beaucoup !
7 Replies
rivarola
Active Member

Re: Execution javascript

Bonjour,

Lorsqu'on utilise la commande "Run Action" le javascript s'exécute côté serveur dans un moteur Rhino, et pas dans le navigateur. On a donc accès aux instructions du Core JavaScript et aux API spécifiques Alfresco, mais pas à Gecko.
clem
Member II

Re: Execution javascript

Ok ! Merci pour cette précision.
clem
Member II

Re: Execution javascript

Excusez-moi j'ai une nouvelle petite question.
Si j'ai bien compris, il est possible, par la commande "Run Action", d'exécuter des commandes javascript spécifiques à Alfresco et donc entre autres la méthode "createSite".

Or lorsque je tente d'exécuter un script contenant uniquement l'appel de cette méthode j'obtiens exactement le même type d'erreur que précédemment, à savoir :

Failed to run Actions due to error: Failed to execute script 'workspace://SpacesStore/6691da0c-cca5-4302-b7d2-5461d96e96a2': ReferenceError: "createSite" n'est pas défini (AlfrescoScript#1)

Je devrais pourtant pouvoir exécuter cette fonction non ? Suis-je complètement à côté de la plaque ? Y'a-t-il un tuto quelque part qui explique comment exécuter du javascript dans Alfresco ?

Merci beaucoup pour votre aide !

Clem
cleseach
Active Member II

Re: Execution javascript

Bonjour,

"createSite" est une méthode de l'objet "siteService".
Il faut donc utiliser la syntaxe :

siteService.createSite(……)

Cordialement,
Charles Le Seac'h
clem
Member II

Re: Execution javascript

Merci beaucoup pour cette précision !
Comment aurais-je pu trouver ça tout seul ? J'ai fouillé partout (peut-être que non tout compte fait…) mais j'ai jamais vu que createSite appartenait à siteService ou quoi que ce soit d'autre… Y'a-t-il un endroit où sont référencées ce genre de dépendances ?

Merci beaucoup pour toute votre aide.
yerb
Member II

Re: Execution javascript

Cette page peut aider : 3.0 JavaScript Service API.
maxmax
Member II

Re: Execution javascript

Pour info, il y'a à mon avis une erreur de mise à jour sur le wiki.
http://wiki.alfresco.com/wiki/3.0_JavaScript_Services_API#Create_a_new_site

The visibility of the site. (PUBLIC|PRIVATE|MODIFIED)
 
En fait, un boolean est attendu (true/false), ce qui est bien démontré par le code suivant.

createSite(sitePreset, shortName, title, description, isPublic)