U8C服务小锦囊-预算-自定义项控制U8cloud实施与服务支持部吴红一、应用背景:客户需求在报销管理中想解决在一张报销单据中可以实现一笔费用多各部门承担的,并且进行预算控制及取数。为了实现这个需求,需要在差旅费报销单增加自定义项--费用承担部门,使预算模块通过对费用承担部门的费用控制实现对费用报销的控制及取数。二、解决思路:注意:需要保证注册的字段在数据库表中存储的是档案的pk值。也就是说自定义项引用的是统计型档案;1、增加自定义项,引用自定义项;2、设置参数ERX,即把defitem6传递到财务表er_finitem的defitem1,这里只是个例子,请根据项目实际情况来设置ERX参数;如果是控制表头字段则这一步骤忽略。注意仅报销管理需要设置这一步;3、调整单据模板,显示交通费页签的自定义项6,注意自定义项的高级属性是字符型;在财务页签添加自定义项1defitem1;模板调整完成后别忘了分配模板,然后清缓存!4、编写脚本,执行完后需要重启中间件insertintontb_id_bdcontrast(att_fld,att_fld_desc,bdinfo_type,bill_type,busi_type,busisys_id,busisys_name,dr,levelctlflag,pk_bdinfo,pk_obj,ts)values('p1','名称,'p2',null,'发生额','FI_BILL','财务单据',0,'Y','p3','p4','2006-08-0315:08:27')脚本说明:名称是显示名称,例如表体承担部门;p1代表字段名称。规则:表名+“.”+字段名称例如:zb.zyx1表示单据表头的的自定义项1;fb.zyx1则表示表体的自定义项1p2代表使用的档案名称。注意:档案名称必须与bd_bdinfo中的名称一致;p3代表p2档案对应bd_bdinfo中的pk_bdinfo;p4是插入记录ntb_id_bdcontrast表的主键,只要是20位并且不与现有pk重复就可以。还需要在表FIBILL_FIELDCONTRAST中对应增加一条记录insertintoFIBILL_FIELDCONTRAST(PK_FIELDCONTRAST,SUBSYS_ID,BILLTYPECODE,COMMON_ATTFIELD,BUSI_ATTFIELD,RESERVED1,RESERVED2,TS,DR)Values(p1,p2,p3,p4,p5,NULL,NULL,'2008-09-0211:33:21',0);脚本说明:p1:FIBILL_FIELDCONTRAST表的主键,表主键,20位p2:使用自定义档案控制的单据所属子系统,取值为cmp、arap、ss、erm中的一个,分别代表现金管理、收付、事项审批、报销管理p3:单据大类,取值为sj、fj、sk、fk、ys、yf、ss、264X中的一个,分别代表收结单、付结单、收款单、付款单、应收单、应付单、事项审批单、报销单p4:对应上面那条语句中的p1;可以按业务含义自取p5:实际单据子系统表中对应的字段名称,规则为表名+“.”+字段名称,例如:zb.zyx1表示单据表头的的自定义项1;zb表示表头,fb表示表体脚本示例:因实际控制或取值的是报销单财务页签的自定义项1,所以脚本内是fb.defitem1第一个脚本:insertintontb_id_bdcontrast(att_fld,att_fld_desc,bdinfo_type,bill_type,busi_type,busisys_id,busisys_name,dr,levelctlflag,pk_bdinfo,pk_obj,ts)values('fb.defitem1','表体承担部门','部门档案',null,'发生额','FI_BILL','财务单据',0,'Y','00010000000000000002','0001eeHI000000000255','2009-11-2712:00:00')第二个脚本:insertintoFIBILL_FIELDCONTRAST(PK_FIELDCONTRAST,SUBSYS_ID,BILLTYPECODE,COMMON_ATTFIELD,BUSI_ATTFIELD,RESERVED1,RESERVED2,TS,DR)Values('contZ3erm000sd000255','erm','264X','fb.defitem1','fb.defitem1',null,null,'2009-11-2712:00:00',0);效果:设置维度公式或者控制方案时基础档案类型即可选择到对应的自定义项名