如何在不影响原先上传附件的情况下,将“附件(文件服务)”字段改成“多选附件(文件服务)”
【业务场景】
在使用“附件(文件服务)”字段一段时间后,业务需求变更,需要上传多个附件。
如何将字段的【元素类型】从“附件(文件服务)”更换为“多选附件(文件服务)”,并且不影响历史数据。
【注意事项】
如果存在二次开发读取“附件(文件服务)”数据做进一步处理的,请不要使用此方法。
因为“附件(文件服务)”和“多选附件(文件服务)”数据格式不一致,直接变更会影响二次开发。
【操作步骤】
在BOS设计器中,将原“附件(文件服务)”隐藏或者删除。
2. 新拖入一个“多选附件(文件服务)”字段
3. 设新拖入字段的字段名等各项属性
4. 找到单据的表名,以及两个字段的字段名
5. 查询表数据,附件文件服务字段在数据库中存的是一串Id,多选附件文件服务字段存的是JSON字符串
SELECT 附件文件服务字段名,多选附件文件服务字段名, '[{"FileName":"' + B.ffilename + '","ServerFileName":"' + B.FFILEID + '","FileLength":' + convert(varchar,B.FFileSize/1024) + ',"FileBytesLength":' + convert(varchar,B.ffileSize) + '}]' FROM 单据表名 Ainner join T_BAS_FILESERVERFILEINFO B on A.附件文件服务字段名 = B.FFILEID;
6. 将附件文件服务字段的数据迁移到多选附件文件服务字段
UPDATE A set A.多选附件文件服务字段名= '[{"FileName":"' + B.ffilename + '","ServerFileName":"' + B.FFILEID + '","FileLength":' + convert(varchar,B.FFileSize/1024) + ',"FileBytesLength":' + convert(varchar,B.ffileSize) + '}]' from 单据表名 A inner join T_BAS_FILESERVERFILEINFO B on A.附件文件服务字段名 = B.FFILEID WHERE A.附件文件服务字段名 is not NULL AND A.附件文件服务字段名 <> ' ' AND a.附件文件服务字段名 <> '';
7. 打开单据检查,确认数据已同步
如何在不影响原先上传附件的情况下,将“附件(文件服务)”字段改成“多选附件(文件服务)”
本文2024-09-23 03:44:40发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-160823.html