PLM.发布单接收人增加自定义用户

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:3

PLM.发布单接收人增加自定义用户

【应用场景】

流程中创建发布单,要将动态表单的自定义字段添加到发布单接收人


【案例演示】

将动态表单的自定义用户字段添加到接收者列表,作为接收人


【实现步骤】

<1>BOSIDE->发布单扩展,增加【获取用户字段】按钮

<2>发布单单据->发布对象,将用户字段添加到编码基础资料的引用属性


<3>编写表单插件(如何编写二开插件配置等请参考:二次开发扩展程序开发之插件模式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 

添加引用:

代码如下:

namespace ISV.ReleaseConfigBill.Common.BusinessEntity
{
    [Description("自定义配置发布单接收人")]
    public class CustomlizeReceiver : AbstractPLMBillPlugIn
    {
        /// <summary>
        /// 发布对象
        /// </summary>
        protected string strObjectEntity = "FObjectEntity";
        /// <summary>
        /// 单据体字段:浏览
        /// </summary>
        protected string fieldFCBView = "PLM_Release_View";
        /// <summary>
        /// 单据体字段:PDF浏览
        /// </summary>
        protected string fieldFCBBrowserPDF = "PLM_Release_View";
        /// <summary>
        /// 接收者权限分配
        /// </summary>
        protected string strReceiverEntity = "FReceiverEntity";
        public override void EntryBarItemClick(BarItemClickEventArgs e)
        {
            if (OperationRefused(e)) return;
            var rowIndex = this.Model.GetEntryCurrentRowIndex(strObjectEntity);//当前行号
            var reObjCol = this.Model.GetEntityDataObject(this.View.BusinessInfo.GetEntity(strObjectEntity), rowIndex);
            DynamicObjectCollection receiverCol = (DynamicObjectCollection)this.Model.DataObject["PLMCFGReleaseReceiver"];
            switch (e.BarItemKey.ToUpper())
            {
                //获取用户字段按钮
                case "ADDCUSTOMUSER":
                    var reObjects = GridHelper.GetEntityCollection(this.View, strObjectEntity).Select(n => (DynamicObject)n["ObjectID"]).ToList();
                    var userCol = reObjects.Where(m => m["PLMUser"] != null).Select(n => (DynamicObject)n["PLMUser"]).ToList();
                    foreach (var user in userCol)
                    {
                        var dyn = receiverCol.DynamicCollectionItemPropertyType.CreateInstance().GetAsType<DynamicObject>();
                        dyn["ReceiverID"] = user["Id"].GetString();
                        dyn["ReceiverName"] = user["Name"].GetString();
                        dyn["ReceiverType"] = "user";//用户类型
                        dyn[fieldFCBView] = true;
                        dyn[fieldFCBBrowserPDF] = true;
                        dyn["AuthInfo"] = PLMPermissionItem.Release_View.GetName(PLMContext);
                        dyn["PermissionItems"] = PLMPermissionItem.Release_View.GetItem(this.PLMContext) + "," + PLMPermissionItem.Release_BrowserPDF.GetItem(this.PLMContext);
                        receiverCol.Add(dyn);
                    }
                    this.View.UpdateView(strReceiverEntity);
                    break;
            }
            base.EntryBarItemClick(e);
        }
    }
}

<4>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。

<5>BOSIDE扩展发布单,注册表单插件,保存元数据,开发完毕。

【功能验证】

登录业务站点,打开发布单新增界面,动态获取自定义字段到接收人


【知识点】

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

【合辑】金蝶云.星空 PLM知识合辑(持续更新) https://vip.kingdee.com/article/329662872047302912?productLineId=1&isKnowledge=2

二次开发扩展程序开发之插件模式 https://vip.kingdee.com/article/83591896433330944?productLineId=1

PLM云 -- 基于BOS平台的二次开发扩展 https://vip.kingdee.com/article/10875?productLineId=1

PLM云 -- 基于配置系统的二次开发扩展(对象属性扩展)https://vip.kingdee.com/article/10887?productLineId=1

PLM云 -- 基于标准业务系统的二次开发扩展 https://vip.kingdee.com/article/10901?productLineId=1

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

金蝶云星空数据字典V7.6 https://open.kingdee.com/K3Cloud/WenKu/DocumentView.aspx?docId=102613


PLM.发布单接收人增加自定义用户

【应用场景】流程中创建发布单,要将动态表单的自定义字段添加到发布单接收人【案例演示】将动态表单的自定义用户字段添加到接收者列表,作...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息