Sql 如何在Talend中获取错误消息以便通过电子邮件发送?
有人知道如何在Talend中获取错误消息吗 我有一个Sql 如何在Talend中获取错误消息以便通过电子邮件发送?,sql,talend,Sql,Talend,有人知道如何在Talend中获取错误消息吗 我有一个tmsqlinput==>tmsqloutput。(见下图) 如果抛出错误,我希望在邮件正文中获取并发送它,而不是默认情况下发送一条消息 我发现了类似于: globalMap.put(“错误代码”,输入行消息) “消息是:”+(字符串)globalMap.get(“errorCode”) 但是我不知道,第一行应该放在哪里。显然,它将位于tmsqloutput中的某个位置。但是在哪里呢 先谢谢你们 大多数talend组件(包括TMYSQLEO
tmsqlinput
==>tmsqloutput
。(见下图)
如果抛出错误,我希望在邮件正文中获取并发送它,而不是默认情况下发送一条消息
我发现了类似于:
globalMap.put(“错误代码”,输入行消息)代码>
“消息是:”+(字符串)globalMap.get(“errorCode”)
tmsqloutput
中的某个位置。但是在哪里呢
先谢谢你们
大多数talend组件(包括TMYSQLEOUTPUT)都有错误消息(之后),该消息在组件失败或成功后可用。您可以访问这些变量中的值,在下一个组件中发布组件,比如tMysqloutput-->(OnComponentOK)--->tJava…在tJava中,您可以使用下面的表达式-System.out.println((String)globalMap.get(“tMysqloutput_1_ERROR_MESSAGE”)查看tMysqloutput组件中的内容 您可以将此错误消息存储在全局变量中,然后在tSendEmail组件中使用此全局变量。 要给全局变量赋值,可以使用globalMap.out(“variableName”,value); 获取此值 (字符串)globalMap.get(“variableName”)
另一种方法是在应用程序中添加tLogCatcher,并在组件中启用Die-on-error选项。现在,当引发异常时,tLogCAtcher将捕获消息和代码,您可以将tLogCAtcher连接到其他组件以获取此错误代码,并在下一个组件(如tSendEmail)中使用它发送电子邮件大多数talend组件(包括tmysqloutput)都有错误消息(之后)组件失败或成功后可用。您可以访问这些变量中的值,在下一个组件中发布组件,比如tMysqloutput-->(OnComponentOK)--->tJava…在tJava中,您可以使用下面的表达式-System.out.println((String)globalMap.get(“tMysqloutput_1_ERROR_MESSAGE”)查看tMysqloutput组件中的内容 您可以将此错误消息存储在全局变量中,然后在tSendEmail组件中使用此全局变量。 要给全局变量赋值,可以使用globalMap.out(“variableName”,value); 获取此值 (字符串)globalMap.get(“variableName”)
另一种方法是在应用程序中添加tLogCatcher,并在组件中启用Die-on-error选项。现在,当引发异常时,tLogCAtcher将捕获消息和代码,您可以将tLogCAtcher连接到其他组件以获取此错误代码,并在下一个组件(如tSendEmail)中使用它发送电子邮件。我们所做的是,使用“OnComponentError”链接将所有组件连接到tRowGenerator。现在,在tRowGenerator中,您可以创建一个类似ErrorDesc的列名,然后在环境变量中,使用三元运算符和全局变量来获取错误消息 ((字符串)globalMap.get(“tRowGenerator\u 1\u错误消息”)!=null)?“生成SP输入”+((字符串)globalMap.get(“tRowGenerator\u 1\u错误消息”): ((字符串)globalMap.get(“tMysqlSP_2_错误消息”)!=null)?“调用过程”+((字符串)globalMap.get(“tMysqlSP_2_错误消息”): ((字符串)globalMap.get(“tFileDelete\u 1\u错误消息”)!=null)?“tFileDelete”+((字符串)globalMap.get(“tFileDelete\u 1\u错误消息”):“
然后,您可以将此错误描述发送到电子邮件组件或显示在控制台上。我们所做的是,使用“OnComponentError”链接将所有组件连接到tRowGenerator。现在,在tRowGenerator中,您可以创建一个类似ErrorDesc的列名,然后在环境变量中,使用三元运算符和全局变量来获取错误消息 ((字符串)globalMap.get(“tRowGenerator\u 1\u错误消息”)!=null)?“生成SP输入”+((字符串)globalMap.get(“tRowGenerator\u 1\u错误消息”): ((字符串)globalMap.get(“tMysqlSP_2_错误消息”)!=null)?“调用过程”+((字符串)globalMap.get(“tMysqlSP_2_错误消息”): ((字符串)globalMap.get(“tFileDelete\u 1\u错误消息”)!=null)?“tFileDelete”+((字符串)globalMap.get(“tFileDelete\u 1\u错误消息”):“
然后,您可以将此错误描述发送到电子邮件组件或显示在控制台上。大多数talend组件(包括TMYSQLOUT)都有错误消息(之后),该消息在组件失败或成功后可用。您可以访问这些变量中的值,在下一个组件中发布组件,比如tMysqloutput-->(OnComponentOK)--->tJava…在tJava中,您可以使用下面的表达式-System.out.println((String)globalMap.get(“tMysqloutput_1_ERROR_MESSAGE”)查看tMysqloutput组件中的内容;大多数talend组件(包括TMYSQLEOUTPUT)都有错误消息(之后),该消息在组件失败或成功后可用。您可以访问这些变量中的值,在下一个组件中发布组件,比如tMysqloutput-->(OnComponentOK)--->tJava…在tJava中,您可以使用下面的表达式-System.out.println((String)globalMap.get(“tMysqloutput_1_ERROR_MESSAGE”)查看tMysqloutput组件中的内容;只有在发生异常时,才会打印错误。你能把你工作的截图放上去吗。也可以尝试一下tlogcatcher alsoHello,谢谢您的回复。令人惊叹的。明亮的但是现在,在一个作业中,我有许多表要同步,但我不想为每个组件创建一个tJava。我更喜欢使用tLogCatcher。它在发生错误时进行检测。但是如何在一个全局变量中获取错误消息呢?Merci执行了类似row1.message=的操作以获取错误消息。但是我不能在tJava中将其分配到全局变量中,执行
globalMap.put(“errorCode”,row1.message)有限公司