如何修改业务单据预置字段/自定义字段的编辑长度

所属产品:

所属标签:

【问题描述】
是否可以修改字段长度?


【概述】
一般是单据保存报错提示,截断字符或者二进制,语句已终止。排查后发现是单据上某个字段输入值超出了字段的最大长度,此时需要进行字段长度的修改。bos里面的参考以下2种情形处理。


【关键字段解析】

什么是数据库字段长度


什么是BOS字段编辑长度


需要将字段长度加长
基本逻辑:需要先修改数据库长度,在数据库长度范围内修改bos的编辑长度。
需要将字段长度减小
直接修改字段bos属性编辑长度即可。


【情景一】
业务场景
字段是系统预置字段修改字段长度
1.在预设数据库长度范围内改大
解决方案

预置字段可先打开单据找到对应字段,以付款单的备注为例,查看该字段的编辑长度,可将其编辑长度适当修改(一个汉字在数据库里占用两个字符,文本数据库长度100,多行文本数据库长度510),若保存还是报错,则需提供单转数据组后台修改数据库里字段长度。


2.超预设数据库字段长度改大

解决方案
超预设数据库字段长度,首先要在数据库把字段长度改大,才能在BOS里修改编辑长度,目前不支持在数据结构变更导出执行脚本去执行,需要自己写语句执行,或者提单转处理。


【情景二】
业务场景
自定义字段修改字段长度
解决方案
字段新增的时候,支持直接修改编辑长度,若已经保存后再修改长度,在金蝶云星空产品在2020年11月补丁(补丁号:PT-146861 [7.6.0.202011])的环境下,BOS平台已增加自定义字段修改长度的功能。私有云客户可以自行数据库修改自定义字段,。
以销售订单为例:
step1:表头表体分别都增加一个文本类型的自字义字段:

step2:保存完成后,通过菜单栏上【编辑】--->【数据结构变更】step3:打开数据结构变更操作台再通过导出脚本,保存在当前电脑上,将生成的脚本在对应的数据库里执行
--在XXX数据中心下,对字段F_tttt_Text(F_tttt_Text)修改字段长度为255
EXEC p_AlterColumn 'T_SAL_ORDER', 'F_TTTT_TEXT', 'NVARCHAR(510)', 'NULL', '0100', '';
--在XXX数据中心下,对字段F_tttt_Text1(F_tttt_Text1)修改字段长度为255
EXEC p_AlterColumn 'T_SAL_ORDERENTRY', 'F_TTTT_TEXT1', 'NVARCHAR(510)', 'NULL', '0100', '';
--公有云自助SQL执行,可参照帖子
https://vip.kingdee.com/article/12470

【特别说明】
系统单据上的标准字段及基础资料字段不建议直接修改字段长度,标准字段被其它下游单据或报表引用后,关联的单据字段长度没有同步更新会导致下游单据保存时,报“截断二进制”错误;系统中所有报表都是通过临时表获取相应的数据后再进行汇总在前台展现出来,临时表的字段长度程序是根据单据上标准字段长度定义,程序代码是产品发布时写死,涉及到原始代码的修改时需要研发进行评估,所以修改系统标准字段长度时要慎重,非必要情况下建议通过自定义字段处理。


【备注】

情形1图片是在8.0.0.202208版本上操作所附的截图,
情形2图片是在7.6.0.202011版本上操作所附的截图