如何使用 tFileInputExcel 进行错误处理

问题描述 投票:0回答:1

我们每天收到数十个 Excel 文件,并希望使用 Talend 处理它们。 这些文件中的信息并不总是满足要求。 我们收到 PDF、Word、XML 文件。但我们也收到具有不同工作表名称的 Excel 文件。或者没有所需的布局。

如果布局正确,则工作表始终具有正确的名称。该工作表的标题部分包含 5 行信息。 (固定的) 还有信息部分,可以是1到10行,15列。 如果所有内容都填写正确,则作业运行正常。

但是,如果作业遇到错误的工作表名称等,作业就会因异常而中断。

组件 tFileInputExcel_2 (Jobname_sub_xlsx) 中出现异常 java.lang.RuntimeException:特殊工作表不存在!

如果工作表名称不正确,大多数时候,它是一个与它无关的 Excel 文件,我只想将文件移动到“失败”文件夹并继续。

我该怎么做?

etl talend
1个回答
0
投票

因此,对于您来说,通常当我必须处理引起此类问题的文件时,我将流程分解为两个作业主作业,用于迭代要处理的文件,以及一个子作业,用于读取和处理其中的文件使用 tFileCopy 和 onComponentError 链接。

例如,我有三个 Excel 文件,其中一个具有不同的工作表名称 (test2.xslx)。

我的父作业配置如下:

我通过上下文将文件路径传递给子作业:

确保未选中“发生子作业错误时停止”选项!

我的孩子作业是这样配置的:

如果您在 tFileInputExcel 组件中选中了“出现错误时停止”选项,请取消选中它:

然后使用 tFileCopy 将文件复制到错误/存档文件夹中,并选中“删除源文件”选项:

然后您的文件应该位于目标文件夹中:

希望这有帮助

© www.soinside.com 2019 - 2024. All rights reserved.