本文讨论了如何在PLM系统中对业务类型单据进行插件开发,而不扩展原有业务类型。提出了一个四步方案:创建项目、创建扩展类、编译并部署组件、重启IIS。详述了使用VisualStudio创建.Net Framework类库项目、引用相关组件、创建并标记扩展类、编译并更新到站点bin目录、重启IIS以查看效果的步骤,并提供了代码示例和附加接口扩展的参考链接。
问题:
PLM的业务类型的单据,如果需要进行业务干预时,需要绑定插件;
但业务类型单据又不建议进行扩展,那如何进行插件开发呢?
方案:
PLM配置系统提供一种插件模式,用于对业务类型对象进行扩展的业务处理。
Step1:创建项目
Step2: 创建扩展类
Step3: 编译项目,并发组件
Step4:重启IIS
Step1:创建二次开发扩展组件项目
打开VisualStudio进行开发,不同版本vs可能界面不一样,但相关设置相同:
创建.Net Framework 类库项目(基于.net Framework 4.0)
如下,一定要注意相关的命名规则: ISV.项目标识名.Common.BusinessEntity
设置项目的相关配置项
Step2: 引用相关的组件并创建扩展类
一般需要引用以下组件:
Kingdee.BOS.dll
Kingdee.BOS.Core.dll
Kingdee.BOS.DataEntity.dll
Kingdee.K3.PLM.CFG.Common.Interface.dll
Kingdee.K3.PLM.Common.Core.dll
我们这里以物料业务类型的单据维护业务干预为例:
创建一个扩展插件类,派生于AbstractBaseBillOperation抽象类
必须通过OperationAttribute标记类,说明该业务处理作用的业务类型ID;
可以通过StandardCategoryType来获取标准产品的类型;如果是子类型或自定的类型,CategoryId就是业务类型的ID了,如:1810000000000000000 之类的
上图,有相关的上下文与视图的获取方法可以参考
Step3: 编译项目,生成组件并将组件更新到安装位置的站点bin目录下(如果构建到补丁包,就将组件包放到资源包里)
如果生成位置不是运行的位置; 也可以把编译好的组件,拷贝到安装环境的WebSite\bin目录下
Step4:重启IIS,并检查运行效果
可以运行 windows 启动-》 cmd-> 运行 iisreset
或者运行inetmgr 启动iis,在操作界面上重启iis
当我们打开一个物料单据时,会出现扩展程序的提示信息了:
这就看到我们的扩展业务逻辑生效了。
附一:
var plmCtx = view.Context; //获取PLM上下文
var bosCtx = plmCtx.BOSContext; //获取BOS的上下文
var bosView = view.CurrentView;//获取当前的view
var obj = bosView.Model.DataObject;//获取当前单据的业务对象
var billView =(IBillView)view.CurrentView;//获取单据视图
var status=billView.OpenParameter.Status;//获取当前状态(新增、编辑等)
附二:
这种扩展还支持其它的接口扩展,请参考:https://vip.kingdee.com/article/44303
----END-----