PLM.二开案例.PLM对象变更信息(数据库)
【基础对象变更信息】
T_PLM_PDM_BASE.FISCHANGE 是否变更中(T版对象不会处于变更中,源版本对象才会)
T_PLM_PDM_BASE.FISCHANGEOBJECT 是否为变更对象(T版)
T_PLM_PDM_BASE.FCHANGEOBJECTID 变更对象ID。T版中记录的源对象ID
T_PLM_PDM_BASE.FECNFORMID 变更中的变更单ID。记录变更中的源对象和T版对象所处的变更单ID
例:查询当前正在变更的变更单以及变更对象信息
SELECT ECN.FCODE AS ECN单号, B.FCODE AS 变更对象编码, B.FVERNO AS 对象版本, B.FISCHANGEOBJECT AS 是否为T版 FROM T_PLM_PDM_BASE ECN INNER JOIN T_PLM_PDM_BASE B ON ECN.FID = B.FECNFORMID WHERE B.FISCHANGE = 1 OR B.FISCHANGEOBJECT = 1
【相关变更信息】
获取相关变更信息需要提前了解变更对象信息PLM二开.设计变更.变更对象字段解读.不同阶段获取变更对象信息 (kingdee.com)
主要关注的几个字段
T_PLM_STD_EC_ITEM.FBASEOBJECT 变更对象ID
T_PLM_STD_EC_ITEM.FNEWVERSIONID 生效版本ID
当前版本所有变更信息
例:查询对象参与过的所有变更单/变更申请单信息
* 变更单和变更申请单相同表体,如需区分请根据变更单业务类型区分PLM.如何查找业务类型对象单据以及数据库字段 (kingdee.com)
select DISTINCT B.FCODE, ECN.FCODE from T_PLM_PDM_BASE ECN INNER JOIN T_PLM_STD_EC_ITEM ITEM ON ECN.FID = ITEM.FID INNER JOIN T_PLM_PDM_BASE B ON ITEM.FBASEOBJECT = B.FID WHERE B.FID = @查询的对象ID
指定对象版本查询对应变更单
例:查询指定对象的通过变更生效升版的信息
SELECT ECN.FCODE AS 变更单编码, B.FCODE AS 对象编码, V.FVERSIONCODE AS 变更后版本 FROM T_PLM_PDM_BASE B INNER JOIN T_PLM_CFG_VERLIST V ON B.FID = V.FPDMBASE INNER JOIN T_PLM_STD_EC_ITEM ITEM ON ITEM.FNEWVERSIONID = V.FVERSIONID INNER JOIN T_PLM_PDM_BASE ECN ON ECN.FID = ITEM.FID WHERE V.FISDELETE = 0 AND B.FID = @查询的对象ID
批量替换子单据体
批量替换包含多个BOM的变更,直接在变更对象中查询并不准确。因此补丁PT-149006 [8.1.0.20230608]及以后优化了批量替换BOM信息的存储,将参与批量替换的多个BOM信息存储至子单据体中,对应的表为T_PLM_STD_EC_BATSUBDETAIL
因此如果跟BOM相关变更信息查询,应该参考批量替换的场景
例:查找BOM参与过的所有变更单/变更申请单信息
select DISTINCT ECN.FCODE from T_PLM_PDM_BASE ECN INNER JOIN T_PLM_STD_EC_ITEM ITEM ON ECN.FID = ITEM.FID LEFT JOIN T_PLM_STD_EC_BATSUBDETAIL SUB ON SUB.FENTRYID = ITEM.FENTRYID WHERE ITEM.FBASEOBJECT = @查询的对象ID OR SUB.FBOMOBJECT = @查询的对象ID
参考资料
【汇总】星空PLM二开指南(持续更新) (kingdee.com)
PLM二开.设计变更.变更对象字段解读.不同阶段获取变更对象信息 (kingdee.com)
PLM.如何查找业务类型对象单据以及数据库字段 (kingdee.com)
PLM.二开案例.PLM对象变更信息(数据库)
本文2024-09-23 03:05:11发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-156622.html