电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

PLM二开·关于上传文档后处理自定义扩展字段

来源:金蝶云社区作者:金蝶2024-09-234

PLM二开·关于上传文档后处理自定义扩展字段

【应用场景】

文档新增是可以默认创建人和创建时间,但是文档导入后,自定义的创建日期和创建人没法触发。


【案例演示】

文档导入后处理自定义创建日期和创建人字段


【实现步骤】

如果你刚接触PLM二开,你可能需要参考:

如何编写二开插件配置等请参考:二次开发扩展程序开发之插件模式https://vip.kingdee.com/article/83591896433330944?productLineId=1

其他星空PLM开发指南也可以参考 【汇总】星空PLM二开指南(持续更新)https://vip.kingdee.com/article/329914697153905408?productLineId=1&isKnowledge=2

更多详细的金蝶云星空BOS二次开发指南:https://vip.kingdee.com/article/94751030918525696?productLineId=1&isKnowledge=2


<1>编写表单插件,添加引用:

<2>新增自定义类,继承PLM动态表单插件AbstractPLMDynamicFormPlugIn。 重写AfterBarItemClick事件,上传文档后将物理文件加到缓存。代码如下:

namespace ISV.DocumentObjectBill.ServicePlugIn

{

    [Description("上传文档插件")]

    public class ImportDocumentBill : AbstractPLMDynamicFormPlugIn

    {

        public override void AfterBarItemClick(AfterBarItemClickEventArgs e)

        {

            switch (e.BarItemKey)

            {

                //上传文档

                case "btnUploadFile":

                    Kingdee.BOS.Core.Metadata.EntityElement.Entity entity = PLMView.CurrentView.BusinessInfo.GetEntity("FEntity");

                    var fileIds = this.PLMView.CurrentView.Model.GetEntityDataObject(entity).Select(x => x["FileId"].ToString()).ToList(); ;

                    PLMCacheUtil.SetCache(this.PLMContext, "PLM_UploadFileIds", fileIds);

                    break;

            }

            base.AfterBarItemClick(e);

        }

    }

}


<3>新增自定义类,继承PLM列表插件AbstractPLMListPlugIn。 重写BeforeDoOperation事件,上传文档成功后会刷新文档库,此时给自定义字段赋值。代码如下:

namespace ISV.DocumentObjectBill.ServicePlugIn

{

    [Description("处理自定义扩展字段插件")]

    public class HandleCustomParamsForm : AbstractPLMListPlugIn

    {

        public override void BeforeDoOperation(BeforeDoOperationEventArgs e)

        {

            string Operation = e.Operation.FormOperation.Operation;

            if (Operation.ToUpper() == "REFRESH")

            {

                var fileIds = PLMCacheUtil.GetCache(this.PLMContext, "PLM_UploadFileIds") as List<string>;

                if (fileIds != null && fileIds.Count > 0)

                {

                    var docIds = GetDocIDByPhyFieldList(this.PLMContext, fileIds).Select(x => Convert.ToInt64(x["FID"])).ToArray();

                    var docDyns = DomainObjectManager.AutoLoad(PLMContext, docIds);

                    if (docDyns != null)

                    {

                        foreach (var doc in docDyns)

                        {

                            doc["F_PLM_CreatorId_Id"] = Convert.ToInt64(doc["F_PLM_CreatorId_Id"]) == 0 ? PLMContext.BOSContext.UserId : doc["F_PLM_CreatorId_Id"];//初始创

PLM二开·关于上传文档后处理自定义扩展字段

【应用场景】文档新增是可以默认创建人和创建时间,但是文档导入后,自定义的创建日期和创建人没法触发。【案例演示】文档导入后处理自定义...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信