我通过RFC将一组系统用户以批处理方式访问我的编码,该用户的登录语言设置为“ DE”。如果发生错误,我将使用一条消息语句,以便其他系统上的应用程序可以处理此错误。
MESSAGE i001(ztest) INTO DATA(e_error).
该消息已翻译成多种语言。根据其他系统上用户的语言,我需要翻译消息。但是无论更改sy-langu还是使用SET(LOCALE)LANGUAGE语句,该消息仍将以德语返回,即系统用户的原始设置(如关键字文档中所述:“如果使用语句SET LOCALE设置了文本环境, ,该信息会被显示的语言所忽略。'
在进行此更改之前,我们使用了与之兼容的文本元素。
可以在运行时更改MESSAGE语句使用的语言吗?
答案 0 :(得分:3)
第二种可能的解决方法是:
BAPI_MESSAGE_GETDETAIL
,以获取所需语言(参数LANGUAGE或LANGUAGE_ISO)的文本。答案 1 :(得分:1)
一种解决方法是,不使用MESSAGE
,而只是选择具有所需语言(在我的示例中为英语)的消息文本:
SELECT SINGLE text
INTO @DATA(e_error)
FROM t100
WHERE sprsl EQ 'E'
AND arbgb EQ 'ZTEST'
AND msgnr EQ '001'.
很明显,如果邮件中有占位符,则您还有更多工作要做。