有沒有辦法在Alfresco的Activiti工作流程中獲得啓動狀態的ScriptNode?我的工作流程中有一個ScriptTask,並且它有一個爲Start事件設置的Alfresco Script Listener。當腳本被調用時,我希望轉換到工作流中的ScriptTask的ScriptNode作爲參數傳遞給定義爲偵聽器的函數。那可能嗎?Alfresco Activiti腳本任務偵聽器當前scriptnode?
爲清晰起見進行編輯: 下面是Activiti插件Eclispe的屏幕截圖。 http://i.imgur.com/DAKtq.jpg
此工作流程由另一個帶web腳本的工作流程開始。
var props = new Object();
var dd = new Date();
props[EL_PROP_WORK_UNIT_NAME] = "testNode" + DateISOString(dd);
props[EL_PROP_WORK_UNIT_SOURCE_CODE] = "ROB";
props[EL_PROP_WORK_UNIT_DELIVERY_DATE] = dd;
node = getHome().createNode(name, EL_TYPE_WORK_UNIT, props);
var EL_WORKFLOW = "activiti$The-workflow";
var activeWfs = node.activeWorkflows;
if(activeWfs === null || activeWfs.length === 0)
{
var workflowPackage = workflow.createPackage();
workflowPackage.addNode(node);
var workflowDef = workflow.getDefinitionByName(EL_WORKFLOW);
var workflowPath = workflowDef.startWorkflow(workflowPackage, new Object());
}
所以偵聽器調用另一個JavaScript方法...
function artPDFRename()
{
logger.log("==============================");
logger.log("<START> artPDFRename");
var workflowDef = workflow.getDefinitionByName(EL_WORKFLOW);
var activeInstance = workflowDef.getActiveInstances();
// ????
}
的目標是讓這個操作是自動的。我們試圖用盡可能少的人工干預來設計,而不是將任務分配給用戶來執行。是的,可能有另一種重命名PDF文件的方式,但我似乎無法從列出的文檔中找出如何獲取指向我放入bpm_package對象中的節點的指針。這就是問題所在。
還是我到目前爲止基於我們如何開發這個,它沒有任何意義?
你的最後一行是很難跟上。請解釋一些代碼示例的含義,以便人們可以遵循。我不確定,但可能會出現這種情況,您沒有針對您的問題發表任何評論/回答。 –
我有一個露天腳本上的偵聽器Activit任務(比如接收任務)。當ScriptNode在工作流中移動並完成該任務時,腳本被調用。我想只抓住觸發腳本被調用的ScriptNode。 – MonkeyWrench
ScriptNode通過工作流的移動,你的意思是bpm_package吧?那麼當你執行工作流操作時,你希望該節點正確嗎?然後你需要從bpm_package(association)中獲得第一個孩子。或者這不是你的意思? –