我在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秒。
答案 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返回,包含西里尔文,德文字符等。
我只是一个初学者,所以不要问我如何创建表格,请:)