二开资产卡片使用分配页签,去除唯一性校验,将自定义字段携带到折旧分配页签指南原创
4人赞赏了该文章
405次浏览
编辑于2019年05月22日 10:43:53
背景:最近两次客户支持中,发现存在一种特殊客户需求,卡片使用分配页签,去除标准产品的唯一性校验,只有自定义字段不同,希望能自动携带到折旧调整单使用分配页签。
测试数据和结果如下:
通用二开方案:(记得一定要在测试环境测试通过后,才可以在正式环境做相同配置,正式环境配置前记得备份表(T_FA_Allocation))
1.扩展单据-资产卡片,去除资产编码+使用部门+使用人+费用项目的唯一性校验
2.在资产卡片使用分配页签,添加一个基础资料字段,另外再添加自定字段(一个或多个均可),本文以添加一个辅助基础资料作为例子
3.修改并隐藏原来的使用人字段
4.配置测试用的辅助基础资料字段(基础资料,文本等,都可以)
5.扩展折旧调整单同样添加一个基础资料字段,并添加相同的扩展字段
6.隐藏原来的使用人字段,配置和卡片稍有区别
7.扩展字段相同配置即可。
8.最重要的一步,也是最后一步,执行脚本,为卡片使用分配添加自增列,配置完成后。
sql环境:执行以下脚本:
UPDATE T_FA_ALLOCATION SET FUSERID1=FUSERID WHERE FUSERID>0; ALTER TABLE T_FA_ALLOCATION DROP DF__T_FA_ALLO__FUSER__751B966C ALTER TABLE T_FA_ALLOCATION DROP COLUMN FUSERID ALTER TABLE T_FA_ALLOCATION ADD FUSERID INT IDENTITY(1,1)
oracle环境:执行以下脚本:
UPDATE T_FA_ALLOCATION SET FUSERID1=FUSERID WHERE FUSERID>0; CREATE SEQUENCE Z_FA_USERID MINVALUE 1 START WITH 1 INCREMENT BY 1 NOCACHE; CREATE OR REPLACE TRIGGER TRI_ALLOCATION_USERID BEFORE INSERT ON T_FA_ALLOCATION FOR EACH ROW DECLARE NEXTID NUMBER; BEGIN IF :NEW.FUSERID IS NULL OR :NEW.FUSERID=0 THEN SELECT Z_FA_USERID.NEXTVAL INTO NEXTID FROM SYS.DUAL; :NEW.FUSERID:=NEXTID; END IF; END TRI_ALLOCATION_USERID; UPDATE T_FA_ALLOCATION SET FUSERID=-FID WHERE FUSERID=0;
推荐阅读