Abap 设置消息语句的语言
我通过RFC(其登录语言设置为“DE”)与set系统用户以批处理模式访问我的编码。在发生错误的情况下,我使用一条消息语句,以便其他系统上的应用程序可以处理此错误Abap 设置消息语句的语言,abap,Abap,我通过RFC(其登录语言设置为“DE”)与set系统用户以批处理模式访问我的编码。在发生错误的情况下,我使用一条消息语句,以便其他系统上的应用程序可以处理此错误 MESSAGE i001(ztest) INTO DATA(e_error). 这封信被翻译成几种语言。根据其他系统上用户的语言,我需要翻译消息。但无论更改sy langu或使用SET(LOCALE)语言语句,消息仍然以德语返回,系统用户原始设置(如关键字文档中所述“如果文本环境是使用语句SET LOCALE设置的,则消息显示语言将忽
MESSAGE i001(ztest) INTO DATA(e_error).
这封信被翻译成几种语言。根据其他系统上用户的语言,我需要翻译消息。但无论更改sy langu或使用SET(LOCALE)语言语句,消息仍然以德语返回,系统用户原始设置(如关键字文档中所述“如果文本环境是使用语句SET LOCALE设置的,则消息显示语言将忽略此设置)。在进行此更改之前,我们使用了文本元素,而文本元素是有效的。
是否可以在运行时更改消息语句使用的语言?一种解决方法可以是,不使用
消息
,只选择具有所需语言的消息文本(在我的示例中为英语):
显然,如果消息有占位符,您还有一些工作要做。解决方法可以是,不使用
消息
,只选择消息的文本和您需要的语言(在我的示例中为英语):
显然,如果消息中有占位符,您还有一些工作要做。第二种可能的解决方法是:
- 使启用RFC的功能模块(RFM 1)返回消息ID+消息编号+4个可选变量
- 调用RFM 1后,调用程序调用启用RFC的功能模块
,以获得所需语言(参数语言或语言ISO)的文本BAPI_MESSAGE_GETDETAIL
- 使启用RFC的功能模块(RFM 1)返回消息ID+消息编号+4个可选变量
- 调用RFM 1后,调用程序调用启用RFC的功能模块
,以获得所需语言(参数语言或语言ISO)的文本BAPI_MESSAGE_GETDETAIL
- 第二种可能的解决方法是:
格式化消息
,它既可以返回任何语言的文本,也可以替换占位符;这是在非常旧的版本(<3.0)中使用的模块当语句消息
无法替换占位符时。有一个功能模块格式化消息
,它既可以返回任何语言的文本,也可以替换占位符;这是非常旧的版本(<3.0)中使用的模块语句消息
无法替换占位符时。
SELECT SINGLE text
INTO @DATA(e_error)
FROM t100
WHERE sprsl EQ 'E'
AND arbgb EQ 'ZTEST'
AND msgnr EQ '001'.