javascript - Alfresco:更新数据列表行

标签 javascript nodes alfresco

我通过以下代码将数据发送到自定义数据列表:

// Get the site name and dataLists 
var site = siteService.getSite("Testing");
var dataLists = site.getContainer("dataLists");

// Check for data list existence 
if (!dataLists) {
  var dataLists = site.createNode("dataLists", "cm:folder");

  var dataListProps = new Array(1);
  dataListProps["st:componentId"] = "dataLists";
  dataLists.addAspect("st:siteContainer", dataListProps);
  dataLists.save();
}

// Create new data list variable 
var orpList = dataLists.childByNamePath("orplist1");

// If the data list hasn't been created yet, create it
if (!orpList) {
  var orpList = dataLists.createNode("orplist1","dl:dataList");

  // Tells Alfresco share which type of items to create
  orpList.properties["dl:dataListItemType"] = "orpdl:orpList";
  orpList.save();

  var orpListProps = [];
  orpListProps["cm:title"] = "Opportunity Registrations: In Progress";
  orpListProps["cm:description"] = "Opportunity registrations that are out for review.";
  orpList.addAspect("cm:titled", orpListProps);
}

// Create new item in the data list and populate it                              
var opportunity = orpList.createNode(execution.getVariable("orpWorkflow_nodeName"), "orpdl:orpList");
opportunity.properties["orpdl:nodeName"] = orpWorkflow_nodeName;
opportunity.properties["orpdl:dateSubmitted"] = Date().toString();
opportunity.properties["orpdl:submissionStatus"] = "Requires Revisions";
opportunity.save();

这可以正确创建数据列表项,但是,在工作流的其他步骤中需要更新这些项。我想到了以下选项:

  • 删除数据列表项并添加另一个包含更新信息的列表项
  • 只需更新数据列表项

不幸的是,我在其他地方没有找到这两个选项的适当解决方案。我尝试使用orpWorkflow_nodeName(这是在另一步骤中生成的唯一标识符)来标识节点以找到它。这似乎不起作用。我还知道节点具有由 Alfresco 本身生成的唯一标识符,但文档没有提供有关如何获取和使用它的足够信息。

我的问题:

Instead of var opportunity = orpList.createNode(), what must I use in place of createNode() to identify an existing node so I can update its properties?

最佳答案

您可以使用它来检查现有的数据列表项。

var opportunity = orpList .childByNamePath(execution.getVariable("orpWorkflow_nodeName"));

// If the data list Item is not been created yet, create it
if (!opportunity ) {
  var orpList = orpList .createNode(execution.getVariable("orpWorkflow_nodeName"),"dl:dataList");}

关于javascript - Alfresco:更新数据列表行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31276366/

相关文章:

c - 从二叉树中删除所有小于/大于 C 中给定值的值?

C++如何删除 vector 中的节点

javascript - 多个无限循环

javascript - jquery deferred.done : passing a data array to done method

javascript - 退出时发送电子邮件

java - 为什么在 for 循环执行后我的堆栈会被覆盖?

javascript - 将字符串转换为有效的 json

alfresco - 为什么我的共享标题自定义在搜索页面上不起作用

alfresco - Windows平台上的alfresco对硬件有什么要求?

open-source - 哪个更容易扩展,Alfresco 还是 Nuxeo?