使用する
RFCは、異なる技術フォーマット(整数表示、リトルエンディアンとビッグエンディアンなど)間、および送信者と受信者のコードページ間の変換を実行します。
コードページが異なる2つのSAPシステムが相互にデータを交換し、これらのシステムがUnicodeコードページを使用しない場合、コードページ変換はレシーバシステムで実行されます。受信機システムのコードページに変換できない文字のバイナリコードは保持されます。
コードページが異なる2つのSAPシステムが相互にデータを交換し、これらのシステムの1つがUnicodeコードページを使用する場合、コードページ変換は常にUnicodeコードページを使用するシステムで実行されます。非Unicodeコードページに変換できない文字のバイナリコードは、置換文字に置き換えられます。
同じコードページ(非UnicodeまたはUnicode)内の2つのSAPシステムが相互にデータを交換する場合、RFCは技術的な変換のみを実行し、コードページの変換は実行しません。
RFCとUnicode
Unicodeシステムと非Unicodeシステム間のRFCは、両側で使用されるコードページ間でテキストデータを変換する必要があります。ここでは、次の状況が考えられます。
-
入力文字を出力コードページに変換することはできません。
例: ISO8859に準拠したヨーロッパのコードページでは、中国語のUnicode文字を表示できません。
-
変換により、出力バッファがオーバーランします。
例:日本語のマルチバイトコードページSHIFTJISに変換するときに、日本語のUnicode文字のシーケンスにより、同じ長さの出力バッファがオーバーランする場合があります。
-
入力データの文字が正しくありません。たとえば、Unicode以外のマルチバイトコードページでは、2バイトのすべての組み合わせが許可されているわけではありません。
例:日本のコードページSHIFTJIS(SAP番号8000)は、前半が0x80-0xEFの範囲にあり、後半が0x40-0xFCの範囲にあるバイトペアを持つマルチバイトコードページです。他のすべてのバイトペアは不正であるため、変換できません。したがって、この種の文字を含むデータは、変換前にすでに正しくありません。それらは、制御されていないチャネルを介して外部からシステムに入った可能性があります。または、システムで不適切なテキスト処理操作を使用した結果である可能性があります。
UnicodeシステムとMDMPシステム間のRFC
RFCがUnicodeシステムと複数のコードページを持つ非Unicodeシステム(MDMPシステム)の間に配置されている場合、データはMDMP側の異なるコードページで利用可能です。この場合、RFCは日付に含まれる言語キーを考慮し、MDMPシステムで使用されるコードページを各言語に割り当てます。
ここで説明する手順は、タイプ1のテーブルに適用されます(これらのテーブルは通常、フラット行構造になっています)。RFCはXMLで深層構造を送信し、UTF-8でテキストデータをコーディングします。非Unicodeシステムがこのようなデータを受信すると、それをログオン言語のコードページに変換します。非Unicodeシステムがこのタイプのデータを送信する場合、現在設定されているコードページからデータを変換します。
データの言語互換変換は、Unicodeシステムで行われます。ここで、Unicodeシステムは非Unicodeシステムをエミュレートするため、古い非Unicodeシステムとの互換性(下位互換性)が保証されます。
変換中に、Unicodeシステムは次のようにMDMPコードページを言語に割り当てます。
LANGフィールドを持つ構造
RFCは、タイプ1のトランスポートされたテーブルのLANGフィールドから言語を取得します。関連するすべてのLANGフィールドは、DDIC属性によってテキスト言語としてフラグが付けられます。トランザクションSE11を使用すると、このインジケーターを表示および保守できます。
1つの構造が使用する場合。含むまた.APPENDLANGフィールドを持つ別の構造を参照するには、参照を行う構造内のインジケーターもリセットする必要があります。参照されている構造を開くことができ、更新可能な標識フィールドが表示されます。
1 LANGフィールドを持つ構造では、これは暗黙的にテキスト言語として機能します。このタイプの構造が作成されると、DDIC属性がアクティブになります。この設定は、トランザクションSE11でリセットできます。
LANGフィールドのない構造
構造にLANGフィールドがない場合、またはLANGフィールドのいずれにもテキスト言語としてフラグが付けられていない場合、Unicodeシステムは次のように変換を実行します。
不明な言語
転送されたデータには、MDMPシステム構成で不明な言語が含まれている可能性があります。これは、両方の転送方向で発生する可能性があり、関連するシステムのクライアント/サーバーの役割とは関係ありません。
データには、値 “”(スペース)のLANGフィールドが含まれる場合もありますが、この値は値テーブルによれば無効です。ここでは、LANGフィールドのない構造体と同じルールが適用されます(上記を参照)。