data import 导入excel出错时,如何把后台错误堆栈信息返回给前段页面?

企业微信截图_16620147137007
后台有唯一键重复问题,如何把错误信息返回到页面

现在导入异常时前端没有提示吗?

是的 没有任何提示

能否提供一下导入出错的excel文件、框架类型(cuba\jmix)及版本.

111.xlsx (9.0 KB)
ext.cubaVersion = ‘7.2.11’

excel属性对应一个table entity,entity一个字段设置了唯一性

异常完整堆栈也发一下

error.txt (6.4 KB)

你好,
看了一下源码, 这块作者的设计可能就是这样,不显示完整的异常信息,只是将导入结果的摘要信息显示在导入界面上,详细导入日志存到了数据库。
这样确实有一些不方便。
解决方案:

  1. 使用 Studio 扩展 ImportWizard
  2. 在扩展的 ImportWizard 控制器中重写 startImport 方法,参考:
@Override
    public void startImport() {
        try {
            super.startImport();
            ImportExecution execution = importExecutionDs.getItem();
            if (!execution.getSuccess()){
                //如果导入失败时,提取错误消息,并给用户提示
                String error = StringUtils.join(execution.getDetails().stream().map(e -> e.getMessage()).collect(Collectors.toList()), "</br>");
                notifications.create(Notifications.NotificationType.ERROR).withContentMode(ContentMode.HTML)
                        .withDescription(error).show();
            }
        } catch (Exception e) {
            showNotification("An Error occurred during import. See logs for more information", NotificationType.ERROR);
        }
    }