Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在Talend中获取错误消息以便通过电子邮件发送?_Sql_Talend - Fatal编程技术网

Sql 如何在Talend中获取错误消息以便通过电子邮件发送?

Sql 如何在Talend中获取错误消息以便通过电子邮件发送?,sql,talend,Sql,Talend,有人知道如何在Talend中获取错误消息吗 我有一个tmsqlinput==>tmsqloutput。(见下图) 如果抛出错误,我希望在邮件正文中获取并发送它,而不是默认情况下发送一条消息 我发现了类似于: globalMap.put(“错误代码”,输入行消息) “消息是:”+(字符串)globalMap.get(“errorCode”) 但是我不知道,第一行应该放在哪里。显然,它将位于tmsqloutput中的某个位置。但是在哪里呢 先谢谢你们 大多数talend组件(包括TMYSQLEO

有人知道如何在Talend中获取错误消息吗

我有一个
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)