2016-07-19 8 views
0

Ich kann keinen Workflow über Web Script starten.Fehler Start Workflow über JavaScript

habe ich die Datei workflow.get.js:

var nodeId = args.nodeid; //fdadc86f-d996-472d-8267-850a63573b02 
var workflowName = args.w; //jbpm$wf:adhoc 
var document = search.findNode("workspace://SpacesStore/" + nodeId); 
var workflowAction = actions.create("start-workflow"); 
workflowAction.parameters.workflowName = workflowName; 
workflowAction.parameters["bpm:workflowDescription"] = "Please edit: " + document.name; 
workflowAction.parameters["bpm:assignees"] = [people.getPerson("admin"), people.getPerson("admin")]; 
var futureDate = new Date(); 
futureDate.setDate(futureDate.getDate() + 7); 
workflowAction.parameters["bpm:workflowDueDate"] = futureDate; 
workflowAction.execute(document); 

workflow.get.desc.xml

<webscript> 

    <shortname>Start Workflow</shortname> 

    <description>Testando Start Workflow</description> 

    <url>/workflow?nodeid={idfile}&amp;&amp;w={namewf}</url> 

    <format default="html">argument</format> 

    <authentication>admin</authentication> 

    <transaction>required</transaction> 

</webscript> 

und workflow.get.html.ftl

The ${args.w} started! 

Wenn ich auf http: // localhost: 8080/alfresco/service/workflow klicke? nodeId = fdadc86f-d996-472d-8267-850a63573b02 & w = jbpm $ wf: adhoc Rück den Fehler

06190076 Wrapped Exception (with status template): 06190474 Failed to execute script '/triggerworkflow.get.js (in repository store workspace://SpacesStore/Company Home/Data Dictionary/Web Scripts)': 06190473 Can't find method org.alfresco.repo.jscript.ScriptAction.execute(org.mozilla.javascript.Undefined). (in repository store workspace://SpacesStore/Company Home/Data Dictionary/Web Scripts)#11)

Exception: org.alfresco.error.AlfrescoRuntimeException - 08200041 TypeError: Cannot read property "name" from null (workspace://SpacesStore/Company Home/Data Dictionary/Web Scripts Extensions/Workflow/workflow.get.js#7)

org.alfresco.repo.jscript.RhinoScriptProcessor.executeScriptImpl(RhinoScriptProcessor.java:469)

Exception: org.alfresco.scripts.ScriptException - 08200042 Failed to execute script '/Workflow/workflow.get.js (in repository store workspace://SpacesStore/Company Home/Data Dictionary/Web Scripts Extensions)': 08200041 TypeError: Cannot read property "name" from null (workspace://SpacesStore/Company Home/Data Dictionary/Web Scripts Extensions/Workflow/workflow.get.js#7)

org.alfresco.repo.jscript.RhinoScriptProcessor.execute(RhinoScriptProcessor.java:183)

Exception: org.springframework.extensions.webscripts.WebScriptException - 08200035 Wrapped Exception (with status template): 08200042 Failed to execute script '/Workflow/workflow.get.js (in repository store workspace://SpacesStore/Company Home/Data Dictionary/Web Scripts Extensions)' : 08200041 TypeError: Cannot read property "name" from null (workspace://SpacesStore/Company Home/Data Dictionary/Web Scripts Extensions/Workflow/ workflow.get.js#7)

org.springframework.extensions.webscripts.AbstractWebScript.createStatusException(AbstractWebScript.java:742) Anybody help me?

Antwort

0

Ihr Problem ist, dass Sie Argumente eins an einem Ort, und eine andere Sache, in einem anderen sind nennen:

var nodeId = args.nodeid; //fdadc86f-d996-472d-8267-850a63573b02 
var workflowName = args.w; //jbpm$wf:adhoc 

vs

<url>/workflow?nodeid={idfile}&amp;&amp;w={namewf}</url> 

Sie müssen erhalten die stimmen zu! Ich würde vorschlagen, da die URL, die Sie bereits scheinen vom Client verwenden, Ihre WebScript Descriptor URL zu ändern entsprechen, was Sie verwenden, um:

<url>/workflow?nodeid={nodeid}&amp;w={w}</url> 

Sie auch Logik hinzufügen, um zu prüfen, dass der Knoten gegeben wirklich existiert - search.findNode can return null so sollten Sie, dass, bevor Sie fortfahren überprüfen (zB und 404, wenn nicht gefunden geben)

auch Sie utils.getNodeFromString(String), wenn Sie lieber

+0

könnten Sie mir erklären, wenn die Verwendung ** ** workflow.get.js var Workflow = actions.create ("start-Workflow"); workflow.parameters.workflowName = "activiti $ TrainerEmpanement"; workflow.parameters ["bpm: assignee"] = people.getPerson ("admin"); workflow.parameters ["initiator"] = people.getPerson ("admin"); var today = neues Datum(); var duedate = today.getDate() + 1; workflow.parameters ["bpm: workflowDueDate"] = duedate; workflow.execute (Dokument); Wie lautet die URL der Datei workflow.get.desc.xml? – Paul

+0

Wahrscheinlich möchten Sie nicht die URL der Datei '.desc.xml' - diese wird normalerweise nur benötigt, wenn Sie die Liste der verfügbaren Webskripte durchsuchen. Wenn Sie möchten, dass die URL das Webscript aufruft, dann schreiben Sie das "" -Tag in die Beschreibungsdatei! Wenn das alles zu viel ist, würde ich vorschlagen, dass Sie entweder eine Kopie von "Professional Alfresco" kaufen (ein paar Jahre alt, aber das Webscript-Zeug ist immer noch dasselbe), oder gehen Sie auf eine Alfresco-Schulung – Gagravarr

+0

Ich habe URL in geändert .desc.xml file 'save it und gehe zu alfresco webscripts refereesh es klicke webscript ich erhalte error>" 06190085 Wrapped Exception (mit Statusvorlage): 06190498 Skript konnte nicht ausgeführt werden '/triggerworkflow.get.js (im Repository store workspace:// SpacesStore/Company Startseite/Datenwörterbuch/Webskripte) ': missing; before - Anweisung (/triggerworkflow.get.js (im Repository-Speicher-Arbeitsbereich: // SpacesStore/Firma Home/Datenwörterbuch/Webskripte) # 6) " – Paul

0

Bitte würde verwenden könnten versuchen, Ihren Workflow mit diesem Code zu starten, Ersetzen Sie Ihren Code von workflow.get.js durch diesen Code und ändern Sie ihn alle Eigenschaften entsprechend Ihrer Anforderung.

function startWorkflow() 
{ 
    var workflowAction = workflow.getDefinitionByName("activiti$test_wf"); 
    var package= workflow.createPackage(); 

    var wfparams = new Array(); 
    wfparams["model_prefix:req_props_name"] = value2; 

    wfparams["bpm:assignee"] = people.getPerson("ADMIN"); 
    workflowAction.startWorkflow(package, wfparams); 
    } 

} 

startWorkflow();