Baymax 发表于 2023-3-26 16:21:19

流程实例生成内容管理实例,附件怎么传到内容管理呢

本帖最后由 Baymax 于 2023-3-26 16:34 编辑

管理员大大,通过流程实例生成内容管理实例,流程实例中的附件怎么传到内容管理呢?

在论坛找了一圈,找到了以前的回复https://www.o2oa.net/forum/forum.php?mod=viewthread&tid=25416&highlight=%E9%99%84%E4%BB%B6,但并没有看懂。

可以获取到附件的ID,那附件的地址是指URL吗?得到这两个之后要怎么样在内容管理中显示呢?通过赋值方式还是?有代码示例不?


我是通过以下方式赋值的,但没成功

Baymax 发表于 2023-3-26 16:59:09

本帖最后由 Baymax 于 2023-3-26 17:18 编辑

找到了另外一个帖子https://www.o2oa.net/forum/forum.php?mod=viewthread&tid=20858&highlight=%E9%99%84%E4%BB%B6,稍微改一改就OK了。

首先将
var doc = {
……
"attachmentList": _attachmentList,
……
}
改为

var doc = {
……
"wf_attachmentIds": _attachmentList,
……
};

其次传入的_attachmentList为附件的ID数组,之前传的是对象,要改成附件ID数组
var attachmentList = this.workContext.getAttachmentList(false).map(function(item,index,arr){
      return item.id;
});
this.asset.addAssetRepair(this.data,dt,attachmentList);


只能说有点小坑,新版本的接口名称改了,参数名称也改了,但固定资产管理里的那些接口和参数都是老的。


这么传的话,内容管理实例中的附件是流程实例附件的副本还是只是一个链接?


论坛管理员 发表于 2023-3-27 10:26:01

您用的什么版本?怎么关联的内容管理?7.2的版本开始有数据发布的活动节点,附件可以通过配置自动带过去的,很方便

Baymax 发表于 2023-3-27 11:32:45

论坛管理员 发表于 2023-3-27 10:26
您用的什么版本?怎么关联的内容管理?7.2的版本开始有数据发布的活动节点,附件可以通过配置自动带过去的 ...

版本为最新版本V7.3.3。使用官方提供固定资产管理,里面有脚本,就没想着使用"数据发布"。有空我再试试数据发布。

论坛管理员 发表于 2023-3-27 16:31:13

哦哦,固定资产里确实是老的名称,管理员反馈给相关开发人员,后续优化:handshake

Lxw100514 发表于 2023-3-31 15:27:44

您好 看到了这个贴子,我在办公用品管理的脚本中试了一下,发现依然没有将附件传递过去,这是什么原因呢

Baymax 发表于 2023-3-31 15:40:11

Lxw100514 发表于 2023-3-31 15:27
您好 看到了这个贴子,我在办公用品管理的脚本中试了一下,发现依然没有将附件传递过去,这是什么原因呢 ...

你可以跟踪一下,这么写的话,"_attachmentList"应该是没有值的。在外面获取值这个值,然后传进来。比如说,把"goodsAdd(goodsData)"这个函数改一下"goodsAdd(goodsData,attachmentList)",然后在调用这个函数的地方,先获取attachmentList,再传进来。

Lxw100514 发表于 2023-4-3 14:26:36

我这样写了,也没有获取到附件,脚本里面alert一下_attachmentList 是能获取到的
this.action.publishDocumentComplex(document, function (json) {    }, null, false);   可能这个方法里面的json不包含附件

Baymax 发表于 2023-4-4 11:31:49

Lxw100514 发表于 2023-4-3 14:26
我这样写了,也没有获取到附件,脚本里面alert一下_attachmentList 是能获取到的
this.action.publishDoc ...

哦哦,那就搞不清楚了。首先要保证alert出来的值和附件ID是相同的,然后才能传递过去。直接在这里写this的话,感觉不是指向文档了而是指向该函数本身。可以加我好友,一起探讨一下。

salsa 发表于 2024-4-11 09:03:40

var action = this.Actions.load("x_cms_assemble_control");
var managerList = [];
managerList.push(
    {
      "permission": "作者",
      "permissionObjectType": "人员",
      "permissionObjectName": "人名",
      "permissionObjectCode": "人名@Office_12345678901@I"
    }
);
var attachmentList = this.workContext.getAttachmentList();
var data = {
    "identity": "人名@Office_12345678901@I",
    "wf_jobId": "",
    "wf_workId": "",
    "wf_attachmentIds": .id],//此处为文件的id组成的数组
    "cms_attachmentIds": [],
    "docData": this.data,//此处是表单上要推送的数据
    "readerList": [],
    "authorList": managerList,
    "skipPermission": false,
    "summary": "",
    "title": this.data.blDepartment.name +"-"+this.data.systemName,//此处是标题
    "documentType": "数据",
    "docStatus": "published",
    "categoryId": "3485b3fc-a3d2-4a22-b153",//此处是要推送到的内容管理器的标识
    "isTop": "",
    "stringValue01": "",
    "stringValue02": "",
    "stringValue03": "",
}
action.DocumentAction.persist_publishContent(data, null, null);
页: [1]
查看完整版本: 流程实例生成内容管理实例,附件怎么传到内容管理呢