1

SAPに汎用モジュール(FM)があり、startRFCを使用して外部から呼び出しています。FMの唯一の出力は1つの内部テーブルです。このテーブルにはchar(100)型の列が1つしかないため、テキストファイルに取り込む必要があります。StartRFCは適切に機能しますが、発音区別符号(たとえば、チェコ語:ěščřžýáíé)がある場合、これらの文字の代わりにハッシュ#のみが表示されます。

誰かが同様の問題を解決したことがありますか?

同じアルゴリズムを手動で呼び出し、SAPの画面に文字列を書き込むと、すべて問題ありません。しかし、startRFCはどういうわけかそれを破壊します。問題は、SAPとstartRFC間のデータ転送にある可能性があります。しかし、この転送がどのように機能するのかわかりません。

私は解決策を見つけましたが、それはひどく遅いです。「SCMS_XSTRING_TO_BINARY」を呼び出すよりも「gcl_conv_to_x->write」と「gcl_conv_to_x->get_buffer」を使用して文字列を16進文字列に変換するため、バイナリテーブルが必要です。しかし、これらすべてを行うには5分かかります。この変換がないと、私のアルゴリズムは15秒かかります。

4

1 に答える 1

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 経由で返すことができ、キリル文字、ドイツ文字などが含まれます。

私は初心者なので、テーブルの作成方法を聞かないでください:)

于 2013-12-06T07:34:44.707 に答える