1

我正在搜索assignees在工作流上创建时的用户名...

我用这个:

public void notify(DelegateExecution execution) {
    // get value of property mymodel:myproperty 
    Object assignees = execution.getVariable("bpm_assignees"); 
}

当我bpm_assignees得到这个时:

bpm_assignees 映射值:[节点类型:{alfresco.org/model/content/...} 人,节点方面:[{alfresco.org/model/content/...} 可拥有,{alfresco.org/model/system/1.0} 可参考,{alfresco.org/model/system/1.0}localized],节点类型:{alfresco.org/model/content/…}人,节点方面:[{alfresco.org/model/content/…}可拥有,{alfresco .org/model/system/1.0}可参考,{alfresco.org/model/system/1.0}本地化]]

我怎样才能得到username

4

1 回答 1

2

这些对象是 Person NodeRefs。如果您从该节点取回属性,您将获得用户的用户名、电子邮件地址等信息。您可以通过查看核心内容模型来查看可用的属性(向下滚动到 cm:person)

假设返回的对象是一个ActivitiScriptNodeList,那么它们将很容易被访问器等包裹起来,因为它们将是ActivitiScriptNode。这些扩展了正常的 Alfresco JavaScript ScriptNode 对象。这意味着您需要做的是:

public void notify(DelegateExecution execution){
   ActivitiScriptNodeList assignees = execution.getVariable("bpm_assignees"); 
   for (ActivitiScriptNode personNode : assignees) {
       String username = personNode.getProperties().get("cm:userName");
       String email = personNode.getProperties().get("cm:email");
       // TODO Use this
   }
}
于 2015-11-19T11:04:32.443 回答