【问题标题】:Get NodeRef of a workflow task Alfresco获取工作流任务 Alfresco 的 NodeRef
【发布时间】:2016-02-07 18:41:29
【问题描述】:

我创建了一个工作流,当我进入任务编辑页面时:

我正在尝试获取工作流任务的文件(latexexemplo-2.pdf)的nodeRef:

http://localhost:8080/share/page/task-edit?taskId=activiti$20649

我正在尝试这样做:

var taskId = args.taskId
var task = workflow.getTaskById(taskId);
nodeRef = task.getPackageResources()[0].nodeRef;

但我得到“未定义参数”...“未定义工作流程”...“未定义任务”。

如何通过其他方式获取 nodeRef?

【问题讨论】:

    标签: workflow alfresco activiti alfresco-share alfresco-webscripts


    【解决方案1】:

    很遗憾,您无法在浏览器中访问存储库中的信息。

    一个快速而肮脏的解决方案是直接使用页面中已有的信息。

    我已经启动了一个工作流程并像您一样打开了任务页面。 使用浏览器调试工具,我检查了 html。 如下图所示,Alfresco 将附加到任务的文档存储在隐藏的输入中。你可以使用YAHOO来获取它。

    搜索 ID 为“page_x002e_data-form_x002e_task-edit_x0023_default_assoc_packageItems”的元素。 如果关联的文档不止一个,则该值将是一个逗号分隔的 noderef 列表。我得到了第一个元素。这当然是有效的,仅当有一个且只有一个文档相关联时。您可能还应该考虑没有关联文档或有多个文档的情况。

    var nodeRef = YAHOO.util.Selector.query("#page_x002e_data-form_x002e_task-edit_x0023_default_assoc_packageItems")[0].value;
    

    【讨论】:

    • 我在共享端运行一个小程序,而javascript是控制小程序的代码。我已经看到了这个链接,但我不明白如何获取任务的 nodeRef。当文件在存储库中并且我以这种方式访问​​时,我会在 URL 上获取 nodeRef。但是,当我发送包含任务的电子邮件或从其他地方访问时,我得到的只是有问题的 url。
    • 如果代码在浏览器上执行,将无法加载任务。您可以只读取 URL 中传递的参数。然后你需要调用一个 webscript 来执行任何需要访问 alfresco 存储库的逻辑。
    • 能否请您重写您的问题并明确您需要做什么?否则很难写出答案。
    • 我编辑了我的问题并放了一个屏幕截图来提供帮助。
    • 基本上,我想要代码上的内容,但是代码不起作用,因为 "args is not defined" 和其他...
    【解决方案2】:

    您可以通过使用获取分配给您的所有当前任务详细信息 Workflow API 在 Freemarker 中。

    这样你就可以获得task idnoderef的任务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多