ABAP startRFC.exe UTF-8变音符号文本传输

时间:2013-01-24 10:15:09

标签: text utf-8 abap

我在SAP中有一个功能模块(FM),我使用startRFC在外部调用它。 FM的唯一输出是一个内部表。这个表只有1列char(100)类型,我需要将它放到文本文件中。 StartRFC运行良好,但如果有变音符号(例如捷克语:ěščřžýáíé)而不是这些字符,则只显示哈希#。

有人曾解决过类似问题吗?

如果我手动调用相同的算法并在SAP的屏幕上写字符串,一切正常。但startRFC以某种方式摧毁它。问题可能出在SAP和startRFC之间的数据传输中。但我不知道这种转移是如何运作的。

我找到了一个解决方案,但速度非常慢。它使用“gcl_conv_to_x-> write”和“gcl_conv_to_x-> get_buffer”将字符串转换为十六进制字符串,而不是调用“SCMS_XSTRING_TO_BINARY”,您需要一个二进制表。但这需要5分钟来完成所有这些工作。如果没有这种转换,我的算法需要15秒。

1 个答案:

答案 0 :(得分:1)

所以最后一个解决方案......

您需要创建XSTRING变量并用文本填充它。要将STRING转换为XSTRING,请使用FM:SCMS_STRING_TO_XSTRING。

然后你需要一个行类型为BAPICONTEN的内部表。它已包含SDOK_SDATX类型的组件(列)(RAW 1022)。 你只需在这个表中添加一个新行:

data: my_table_row LIKE LINE OF my_table.
my_table_row-line = my_xstring.
APPEND my_table_row INTO my_table.

此表(my_table)可以通过RFC返回,包含西里尔文,德文字符等。

我只是一个初学者,所以不要问我如何创建表格,请:)