成本费用引入二次开发指引
标准产品的费用归集很重要的一个数据来源,是依据费用引入方案,从系统的各业务数据引入而来;
为了满足业务不同场景和业务逻辑的需求,费用引入方案是一个开放的计算过程,客户在了解费用引入来源过程的基础上,可以配置或者插件干预引入过程,获取自己想要的数据结果;
客户既可以修改标准的费用引入逻辑(取值来源),也可以自行添加新的费用归集来源;
一、费用归集的结构设计
在整个费用引入的过程中,【插入原始数据】以及【执行原始数据分配逻辑】,这2个逻辑单元,是客户可以插件干预的;
二、插件配置
1、T_CB_EXPENSECOLLCFG 数据来源配置信息表
定义了各种费用归集取数来源的字段信息,字段的意义(可自定义费用归集中的取值来源),可以参考数据字典;
获取明细数据,基类插件:AbstractCollDataFrom,包含2个方法:
GetInsertSql 获取原始数据的脚本;
DealCollectRows 处理已经获取的原始数据,只会对数据进行业务修正和更新,不会改变数据包的数量;
2、T_CB_EXPENSECOLLCFGENTRY 数据来源分配插件表
定义了针对获取到的原始数据,进行分配逻辑处理的插件信息;例如:针对获取的数据源,需要将数据源按照一定的规则,拆分成不同的费用归集明细;我们定义这种对原始数据进行拆分的逻辑叫做分配(一定是对原始数据进行结构性的调整,比如1VS多,才需要配置这段逻辑,如果仅仅是对原始数据包进行字段值修正,请移步数据获取插件DealCollectRows的方法处理,执行了费用分配逻辑的数据,将不能再执行数据合并逻辑);
费用分配基类插件:AbstractAllocateExpenseColl
GetInsertIntoAllocatedSql,将原始数据进行分配逻辑的SQL脚本;
三、中间结果表以及关键字段信息
相关表具体字段信息可以查询数据字典
1、 TM_CB_EXPCOLLIMPBILLDATA,费用引入原始数据明细表,经过获取数据的SQL脚本,查询原始数据并插入当前明细表;
2、 TM_CB_EXPCOLLALLOCATED,费用引入分配结果数据表;经过对数据进行分配逻辑之后,产生的数据结果,如果当前数据源经过分配处理,则不会再继续参与后续合并引入参数的逻辑;
3、 TM_CB_EXPCOLLIMPRESULT,费用引入结果数据表;
a) 数据来源上面2种数据来源:直接经过明细表过来的数据,FISGROUP 为 0 代表原始数据;
b) 从分配结果数据表过来的数据,FISGROUP 为1 代表分配数据;
c) 针对原始数据,在合并引入参数勾选之后,进行合并处理,FISGROUP 为 2代表合并引入的数据;
四、示例:客户修改期初在产品成本调整按照费用项目取值;
标准产品的从期初在产品调整单引入数据,费用项目默认是取引入方案中的合并后费用项目的,如果合并后费用项目没有指定,获取费用项目为空时的设置;
有客户需要:期初在产品调整单进行费用引入时,按照费用项目明细进行引入归集;
这就要求我们修改获取原始数据中对费用项目字段的取值逻辑:
1、 找到获取明细数据的配置:SELECT * FROM T_CB_EXPENSECOLLCFG WHERE FBILLFORMID = 'CB_INITPRODUCECOSTADJ';
2、 编写获取数据的插件,继承AbstractCollDataFrom,复写GetInsertSql 方法,参考标准产品插件的取值逻辑,将明细数据表中的各取值来源都更新正确;
其中因为要获取期初在产品成本调整的费用明细,具体数据结构,参考如下的脚本:
SELECT T0.FBILLNO,T1.FBUSINESSORGID,T1.FPROORDERNO,T1.FPROORDERSEQ,
T1.FPROORDERTYPE,T1.FPRODUCTID,T2.FEXPENSEITEMID,-1*T2.FINITADJAMOUNT AS FAMOUNT
FROM T_CB_INITPRODUCECOSTADJ T0
INNER JOIN T_CB_INITPRODUCECOSTADJENTRY T1 ON T0.FID = T1.FID
INNER JOIN T_CB_INITPRODUCECOSTADJENTRY T2 ON T1.FROWID = T2.FPARENTID
WHERE T1.FPARENTID = ' ';
需要多关联一个期初在产品成本调整的费用明细表,将明细的金额和费用项目,获取正确;
当前脚本包含的查询,以及查询相关的字段信息,参考标准产品原始的插件写法;
3、 插件注册:T_CB_EXPENSECOLLCFG 的FDATAFROMCLASS 字段;
4、 执行费用引入;
成本费用引入二次开发指引
本文2024-09-23 02:17:41发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-151470.html