会计科目核算维度可选改为必录的处理办法
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' 注意: 以上操作先在测试库中进行,跟新之后测试下账表是否正常,再去正式库操作。 |
推荐阅读