会计科目核算维度可选改为必录的处理办法
金蝶云社区-端端
端端
10人赞赏了该文章 1864次浏览 未经作者许可,禁止转载编辑于2018年05月13日 14:09:08
经常有实施会遇到这样的问题,需要将科目的核算维度可选改为必录。这个产品的前台已经做了控制,可选无法改成必录。
因为之前的可选状态下,维度可能没有录入数据,改成必录之后,后台保存的之前的历史数据维度依然为空,从程序的角度来说,这个数据是错误的。
但不影响历史数据的查询。

如果业务上确实需要可选改为必录,可以后台通过脚本修改,现提供以下sql语句供大家参考:

以物料维度为例:

1. 第一步,先备份表数据,这个是所有更新后台数据都需要操作的,以防万一,有备无患。

select * into T_BD_ACCOUNTFLEXENTRY_bak from T_BD_ACCOUNTFLEXENTRY ;
select * into  T_BD_FLEXITEMGRPENTRY_bak from T_BD_FLEXITEMGRPENTRY ;

2. 在数据库中执行下面的2条语句,注意需要改下对应的科目和维度条件
字段说明:Finputtype = '1'  表示必录,Finputtype = '2' 表示可选
1)
UPDATE T_BD_ACCOUNTFLEXENTRY SET Finputtype = '1' WHERE facctid IN
(SELECT facctid FROM T_BD_ACCOUNT WHERE fnumber = '你要改的科目编码')
AND FDATAFIELDNAME = 'FFLEX8'  -- FFLEX8 表示物料维度

2)
UPDATE T_BD_FLEXITEMGRPENTRY SET Finputtype = '1' WHERE FFLEXITEMPROPERTYID IN
(select FFLEXITEMPROPERTYID from T_BD_ACCOUNTFLEXENTRY WHERE facctid IN
(SELECT facctid FROM T_BD_ACCOUNT WHERE fnumber = '你要改的科目编码') )
AND FDATAFIELDNAME = 'FFLEX8'

----具体维度的对应的FDATAFIELDNAME值可以这样查询
执行一下语句找到物料对应的FID
SELECT * FROM T_META_OBJECTTYPE_L WHERE FNAME = '物料' ;


再根据FID 找到对应的FFLEXNUMBER ,这个FFLEXNUMBER  就是物料维度对应的FDATAFIELDNAME  
SELECT FFLEXNUMBER FROM T_BD_FLEXITEMPROPERTY WHERE FVALUESOURCE = 'BD_MATERIAL'

注意:

以上操作先在测试库中进行,跟新之后测试下账表是否正常,再去正式库操作。

20.bmp



赞 10