PLM.如何查找业务类型对象单据以及数据库字段
【问题描述】
由于PLM架构的特殊性,许多用户可能不太了解PLM单据如何查找到对应的单据,或者新加的扩展字段不知道存在数据库的哪个地方。
本文讲解通过BOSIDE元数据,查找相关字段的数据库属性,以及基于标准单据设计的快速查找方式参考。
在此之前,建议先学习了解
【业务类型单据说明】
一、查找业务类型编码
PLM的业务对象(物料、文档、EBOM、变更单和项目等)都存在同一个基对象表,使用字段业务类型FCATEGORYID区分。因此业务类型类型字段是一个很基础且重要的字段,可以用来在数据库中实际区分物料、文档或者BOM对象。
1. 通过数据库查询
PDM业务类型是一个基础资料(标识为PLM_CFG_CATEGORY),PDM基础对象单据中的业务类型FCATEGORYID便是映射了PDM业务类型的基础资料字段。
因此可以通过PDM业务类型的数据表去查找对应的业务类型内码。例如:我需要查找业务类型编码(业务类型列表中可查)为“标准件”的物料类型,那么你可以在数据库查询
SELECT FID FROM T_PLM_CFG_CATEGORY WHERE FCODE = N'标准件'
通过这个ID你就可以在BASE表里查找所有的标准件对象信息
SELECT * FROM T_PLM_PDM_BASE WHERE FCATEGORYID = 1010100000000000000
2. 通过单据编码查找
PLM每个业务类型对象实际对应了一张BOS基础资料,单据标识跟业务类型内码关联,因此可以通过客户端的监控功能,查找对应的业务对象单据分析对应的业务类型内码。
根业务类型:标准业务类型的根类型单据标识规则为PLM_PDM_{业务类型内码},比如物料根类型的内码为PLM_PDM_1010000000000000000。
子业务类型:其他的子业务类型单据标识为{业务类型内码}+{其他标识信息},可以通过单据标识的前部分快速分析出业务类型内码,例如物料标准件的编码可以查到为
二、业务类型ID说明
业务类型ID为特殊格式的长整数类型,以根类型1000000000000000000为起始,每一层往后两位定义,例如物料为
1010000000000000000,文档类型为1020000000000000000。这也是为什么PLM同层业务类型只支持最大99个。
应用举例:
1. 查找物料下一层的业务类型ID
2. 查找指定业务类型所有下层类型的对象
按照ID格式,我们可以通过业务类型ID区间,查找出所有下层类型的对象。
SELECT * FROM T_PLM_PDM_BASE where FCATEGORYID >= 1010500000000000000 AND FCATEGORYID < 1010600000000000000
【数据库字段查询】
1. 根据PLM特性查找
在PLM云二次开发指引 (kingdee.com)中我们可以了解到PLM数据模型的设计为
因此一般情况下,PLM主要的标准字段设计对应的表为
PDM基础字段 | T_PLM_PDM_BASE |
PDM基础对象扩展字段 | T_PLM_PDM_BASE_0 |
扩展关系字段 | T_PLM_PDM_BASE_R |
PDM关系扩展(组成关系属性) | T_PLM_CFG_RELATION |
研发物料标准字段 | T_PLM_PDM_BASE_M |
研发文档标准字段 | T_PLM_PDM_BASE_D |
设计变更标准字段 | T_PLM_PDM_BASE_E |
项目标准字段 | T_PLM_PDM_BASE_X |
任务标准字段 | T_PLM_PDM_BASE_T |
物料申请单标准字段 | T_PLM_PDM_BASE_A |
...... |
1)以上为标准定义的部分扩展表,如果通过模板新加的字段,则为新增时自定义的拆分表为准。
2)PDM基础对象扩展中新增的扩展字段会固定新增在T_PLM_PDM_BASE_0中
3)PDM关系扩展添加的关系字段在T_PLM_CFG_RELATION
如果无法通过此方法准确找到表字段,则建议使用下面提到的元数据查找方法去查找。
2. 通过元数据查找
最准确的查找字段的方式还是通过BOS设计器,通过元数据查找字段的数据库信息。由于PLM配置字段的形式不同于标准单据扩展的设计,所以我们最终得以对应的业务类型单据去确定最终的字段存放位置(单据标识查找详见第一点中的第2小点)。
还是以物料标准件为例子,我们先通过业务类型配置加入自定义的字段,更新完模型后我们查看一下元数据。
可以看到,自定义的字段名为F_PLM_TETING,所属拆分表为扩展字段。 我们打开单据头,查看一下表信息。
( * 某些比较特殊类型的字段可能不存在拆分表,比如多选基础资料字段有表名属性,信息存在自己的表当中。 最终形式以BOS单据规范为准。)
表名为T_PLM_PDM_BASE,拆分表后缀为0, 则此字段在数据库中的对应位置为T_PLM_PDM_BASE_0.F_PLM_TESTING
我们通过数据库查找验证一下
【延伸阅读】
PLM.如何查找业务类型对象单据以及数据库字段
本文2024-09-23 03:06:37发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-156780.html