Hi!
I am trying to perform a transformation.
var action = actions.create("transform");
action.parameters["destination-folder"] = folder;
action.parameters["assoc-type"] = "{http://www.alfresco.org/model/content/1.0}contains";
action.parameters["assoc-name"] = document.name.toString() + "transformed";
action.parameters["mime-type"] = "text/html";
action.parameters["overwrite-copy"] = false;
action.execute(document.getNodeRef());
This produces the following error on line 7:
org.mozilla.javascript.ConsString cannot be cast to org.alfresco.service.namespace.QName
I have read that one should change all JavaScript Strings with the .toString() method in order to resolve the issue and I tried this in the above example, but it still gives me the same error. Have I forgotten anything?
Solved! Go to Solution.
ok I just figured it out, line 4 must be changed to
action.parameters["assoc-name"] = (document.name + "transformed").toString();
ok I just figured it out, line 4 must be changed to
action.parameters["assoc-name"] = (document.name + "transformed").toString();
In my optinion this would be worth a bug report in the Alfresco JIRA. A constructed string (ConsString) is a valid JavaScript string and should be supported by the Alfresco JavaScript API. Chances are that Alfresco will not fix this though, similar to other long standing issues with the script integration, e.g. the fact that you cannot reliably do === comparisons of strings due to the Java vs. JavaScript type incompatibility (though in other areas Java strings will behave just like JavaScript ones).
Ask for and offer help to other Alfresco Content Services Users and members of the Alfresco team.
Related links:
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.