在项目页签上扩展的单据并进行数据操作的示例

本示例旨在说明如何对嵌入单据的单据与PLM业务对象进行关联性扩展的方法; 同时通过脚本插件来进行业务处理的方式。脚本演示了获取当前PLM业务对象的生命周期阶段与创建的扩展字段值的方法,演示了如何获取PLM业务对象的字段值来对单据体选单数据进行过滤的方法。
Step 1: 创建新单据用于业务扩展
Step 2: 与PLM系统业务对角进行关联性(项目)
Step 3: 通过子单据头分离单据中的字段数据表存储
Step 4: 单据绑定到标准业务对象中(项目)
Step 5: 用脚本插件来编写单据中业务
Step 1、创建一个单据来显示并维护新业务维度数据:

注意:单据标识(标识4位置)使用开发项目标识字符开头,如“EPX_”
Step2: 设置好与PLM系统的数据关联性:
在单据的主单据头中,设置表名为 "T_PLM_PDM_BASE"

注意:这里用T_PLM_PDM_BASE表,但并不用于数据表存储,一定不要把字段设置到单据头上(也就是保存到这个表中),以免二开数据串到标准PLM系统中,这里这样设置只是为了作数据关联。
Step 3: 添加子单据头,用于存储这个单据的所有字段数据
a) 添子单据头

b) 确保单据上的每一个字段,都设置“实体”为上面创建的子单据头

c) 添加相关的操作菜单与操作

***特别注意***: 不要在单据菜单中作删除操作,否则关联表 T_PLM_PDM_BASE 的数据会导致删除,从而会影响PLM标准的业务。
Step 4:将该单据绑定到标准业务系统中界面中
将上面创建的单据关联到项目的页签中 ,具体可参考: 在业务对象中关联另一类业务对象的方法
项目页签表单单据 名称: 项目对象 标识:PLM_STD_PROJECTOBJECT
任务页签表单单据 名称:任务对象 标识:PLM_STD_TASKOBJECT
物料页签表单单据 名称:物料平台 标识:PLM_CFG_MATERIALPLATFORM

设置单据绑定的协议性参数(位置5),具体参数参考上面引用帖
下图为运行的效果:

Step 5: 用脚本插件来干预单据中的业务示例
a)在PLM扩展字段单据中给项目添加一个扩展字段模板

b)在项目业务类型上绑定这个扩展字段

c)这样,项目的基本属性中就会有这个扩展字段

d)在新建的单据中,添加业务插件
业务干预示例1:通过获取当前PLM业务对象的ID标识,查询了扩展字段中项目新加的字段值,并应用于单据体制造BOM选单的过滤,如:当前项目的扩展字段值(研发用途)为“通用”时,在上面创建的单据的单据体选制造BOM("物料清单")时,会只可以选制造系统的BOM 用途字段为“通用”的BOM。
业务干预示例2:在数据绑定事件中,通过判断项目的状态是否“完成",如果完成则锁定界面不可编辑。

脚本代码示例说明:
import clr;
clr.AddReference("Kingdee.BOS.App") #添加引用的程序集
from Kingdee.BOS.App.Data import DBUtils #导入BOS平台的数据操作组件
global usefor #设置一个全局变量
usefor="" #初始值为空串
def OnLoad(e):
global usefor #使用全局变量
#获取当前的PLM业务对象标识
plmId=this.View.OpenParameter.GetCustomParameter("plm_param_SourceId").ToString()
#在扩展字段表:T_PLM_PDM_BASE_0 查找业务对象的扩展字段值
sql="SELECT F_EPX_EX1_USERFOR FROM T_PLM_PDM_BASE_0 WHERE FID="+plmId.ToS
在项目页签上扩展的单据并进行数据操作的示例
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



