本文讨论了关于数据引入引出的问题和解决方案,包括引出控制、NPOI报错、引入性能差、引入时基础资料不存在、引入成功0条数据、打开Excel失败等问题的解决方法,还提及了引出下载框延迟、存货成本核算引出慢、引出下载需登录、日期无法引入等问题的处理,以及插件事件、模板sheet使用等注意事项。
帖子:
收集问题:
问题1、 引入性能差?
答:1)建议减少引入字段
2)减少非当前业务需要的服务,减少非必要的插件
3)开启分批引入等。
问题2、引入时报基础资料不存在,过一段时间又可以引入成功?
答: 用户登录的当前组织不同导致的
问题3、引入成功0条数据?
答:1)在保存数据阶段,验证之前发生了异常,导致结果没有任何数据,而解析结果有问题。
2) 建议更新到2021年1月份的补丁
问题4、 引入的时候报打开Excel失败?
答:1)文件或单元格中加密或加锁了
2)上传的文件已损坏
引入时报“基础资料设置值不成功”?
直接原因是通过传入的基础资料编码给数据包赋值不成功
1)基础资料加了过滤条件,高级条件,条件中依据的数据没有在引入的excel中,比如依赖的单据类型不存在,取个默认的值
2)检查是否为数值类型的编号,而引入的时候为字符串类型
3)插件中是否在赋值事件中有改动等。
Error Saving excel File或在在FpSpread.SaveExcel报错?
文件权限导致的,把website文件夹授予user和network servers 改成 完全控制试
引出一闪而过,过了好久才弹出引出下载框?
汇总数据的内码和列表数据的内码相隔很多导致
9. 引出一闪而过没有任何错误?
1)查看引出操作记录,如果有NPOI关键字参考:https://vip.kingdee.com/article/83195744672227584
2)跨数据中心引出一闪而过,没有对上下文进行全局缓存
3)二开插件干预导致
10. 存货成本核算引出很慢?
使用存货成本核算(跨纬度)引出
11, 引出下载报需要登录下载?
上下文环境为空,一般是创建了新的上下文,但没有放到一般会话中CommonSession
12.成功引入0条?
后端发生异常并且没有任何验证的情况下发生异常没有捕获,导致解析结果为0成功,2021年1月份补丁修复了。
14. 分录引入,日期无法引入?
分录引入时,日期没有经过特殊转换处理,导致excel中正常日期无法引入,
15,所有按引入模板引出报异常,显示“执行引出操作”?
发生了异常,异常信息没有显示,可以查看日志或者打开页面试试。
16、引出涉及到的相关插件事件?
FireBarItemClick
FireBeforeDoOperation
FireBeforeGetDataForTempTableAccess (2017年8月4号之后才支持)
AbstractSysReportServicePlugIn CreateTempTable
17. 在引入的模板中加入其它sheet?
其它sheet只能在标准的模板之后。
18. 引入报单据体必填?
单据体勾选了必录,并且有关键字段,但关键字段没有引入
19. 引入引出的一般处理方式?
1)检查是否存在报错
2)引出操作记录
3)引出记录表t_bas_exportRecord
20. 引出后无法下载?
excel太大导致无法下载。
21、引出数据时卡在99%,一直无法引出?
1)重启服务器试试
2)引出数据太多,用户只选择了几行数据,误以为只引出几行数据,如果需要引出选中的数据,需要是对应的引出操作
22、按引入模板引出暂估应付单报插入重复键错误?
重启系统后就好了。
23、引入时报“引入时遇到未知错误:Message:值“Microsoft.Scripting.Interpreter.InterpretedFrameInfo”不是“System.String”类型”?
1)python脚本有误,python脚本中使用repr去解析长整形的内码,解析处理的格式为内码+L导致后面的脚本运行报错。
需要把repr(fid)改成str(fid)。
24、供应商按引入模板引出得到的分组数据却是物料分组的数据?
答:供应商二开的分组字段分组存储信息表跟物料分组存储信息表相同
25、多账簿科目余额表,无法引出数据,弹出两次保存窗口?
1)多账簿科目余额表是透视表,透视表是前端引出,查看前端日志,发现是dev控件无法解析相应的字体
2)Font 'Calibri' does not support style 'Regular'
26、列表顺序跟引出顺序不一致?
1)2021年8月份的补丁使用临时表存储引出数据导致的,插入临时表的顺序跟列表顺序是一致的,但从临时表中取数据跟插入顺序并不一定是一致的,需要加FIdentity排序处理。
27、A column has been specified more than once in the order by list. Columns in the order by list must be unique.
1)当前过滤方案同时勾选了明细信息 和 交货明细(子单据体),单据列表同时勾选这两个父、子单据体过滤本身没有问题,但是引出时候会有严格控制排序条件的唯一性,因此此处需要通版兼容这种场景下的数据引出的处理。目前可以临时方案暂时不要勾选交货明细子单据体同时存在显示即可
2)Kingdee.K3.SCM.Business.PlugIn.SCMBillList 插件中的PrepareFilterParameter事件增加的排序( FCreateDate DESC,FBillNo DESC , t0.FID DESC , t2.FSeq ASC , t0.FID DESC , t3.FSeq ASC)有两个t0.FID导致报错
28、引入的时候报某小数字段精度不一致?
1)在面积字段值更新事件中增加了自定义服务,服务中设置面积=长*宽/10000, 在引入的时候给面积赋值会触发此服务,此服务得到的值跟引入的值不相等就会报提单中的错误。
2)报此问题是因为在设置字段引入值时,设置到数据包的值跟引入值不相等导致的,
可能导致不相等的原因包括:
在插件事件(BeforeUpdateValue和DataChanged)中改变了
在成本字段值改变事件中配置了服务导致的
29、引入的过程遇到未知错误:内部错误:达到表达式服务限制。请在您的查询中查找潜在的复杂表达式,并尝试简化它们。
引入数据中包含两千多批号编码,根据批号编码取到5万多批号内码,再使用批号内码拼接sql,导致sql过于复杂报错,最新2021年9月份的补丁,已经把拼接sql改成了临时表的形式,已和用户沟通,用户同意升级到9月份的补丁。
30、赋值不成功?
原因:根据传入的编码,从数据库取基础资料内码,再根据内码给单据数据包赋值,赋值后判断前后内码不一致就报上面的错误。
主要是因为数据包赋值时,存在各种过滤条件和插件干预导致值没有赋上或赋了另外一个值。
解决方案:
1. 基础资料是否为已审核未禁用
2. 新建一张单据,看一下在使用组织和主业务组织和excel中相同的情况下是否能够选择到对应的基础资料
3. 检查一下基础资料的过滤条件
4. 禁用表单插件试试
32、报表显示数据跟引出数据不一致?
1)多次会走GetReportData,报表显示走一次,引出走一次,每一次把临时表中的数据给刷新了一遍
33、引入引出操作接口类型:
组件:Kingdee.BOS.ServiceHelper
命名空间:Kingdee.BOS.ServiceHelper.Excel
类:ExcelOperation
32、工作流角色引入逻辑?
1)使用的是WebAPI修改逻辑,覆盖模式有明细内码就是修改数据,没有明细内码或明细内码为0这是新增。
推荐阅读