SAP資格過去問ならSAPnavi

NoteやStripe決済で安全にSAP過去問を購入することができます。
領収書発行可能 / 即時入手可能

SAP過去問 (SAP Exam)

Code Pages

使用する

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コードページを言語に割り当てます。

MDMPシステムはUnicodeシステムを呼び出します

MDMPシステムは、言語の割り当てをRFCログのコードページに渡します。古いMDMPシステムの場合、Unicodeシステムは事前定義された割り当てリストを使用します。

コードページの設定を参照してください

UnicodeシステムはMDMPシステムを呼び出します

割り当ては、RFC宛先のUnicodeシステムで指定されます。トランザクションSM59を使用すると、割り当てを表示および維持できます。

LANGフィールドを持つ構造

RFCは、タイプ1のトランスポートされたテーブルのLANGフィールドから言語を取得します。関連するすべてのLANGフィールドは、DDIC属性によってテキスト言語としてフラグが付けられます。トランザクションSE11を使用すると、このインジケーターを表示および保守できます。

1つの構造が使用する場合。含むまた.APPENDLANGフィールドを持つ別の構造を参照するには、参照を行う構造内のインジケーターもリセットする必要があります。参照されている構造を開くことができ、更新可能な標識フィールドが表示されます。

1 LANGフィールドを持つ構造では、これは暗黙的にテキスト言語として機能します。このタイプの構造が作成されると、DDIC属性がアクティブになります。この設定は、トランザクションSE11でリセットできます

LANGフィールドのない構造

構造にLANGフィールドがない場合、またはLANGフィールドのいずれにもテキスト言語としてフラグが付けられていない場合、Unicodeシステムは次のように変換を実行します。

MDMPシステムはUnicodeシステムを呼び出します

送信者が指定したコードページによると

UnicodeシステムはMDMPシステムを呼び出します

(Unicodeシステムで)通常ログオン言語に割り当てられている非Unicodeコードページに変換します。SM59呼び出しトランザクションSM59でRFC宛先に特別な設定を行い、特別でこの宛先のRFCビットオプションを選択することにより、(現在のコンテキストではなく)RFC宛先にログオン言語を使用するオプションもあります。セクション特殊フラグのオプションタブページ次に、[決定された通信コードページ(16進値0x200)]チェックボックスを選択します。

不明な言語

転送されたデータには、MDMPシステム構成で不明な言語が含まれている可能性があります。これは、両方の転送方向で発生する可能性があり、関連するシステムのクライアント/サーバーの役割とは関係ありません。

データには、値 “”(スペース)のLANGフィールドが含まれる場合もありますが、この値は値テーブルによれば無効です。ここでは、LANGフィールドのない構造体と同じルールが適用されます(上記を参照)。

UnicodeシステムはMDMPシステムを呼び出します

RFCは、エラーSYSTEM_FAILUREで終了します。この場合、ユーザトレース(SM04)を有効化することができ、その出力で不明な言語に関する情報を見つけることができます。

MDMPシステムはUnicodeシステムを呼び出します

RFCはエラーSYSTEM_FAILUREで終了し、エラーメッセージを「接続が閉じられました(データがありません)」に設定されます。MDMPシステム(SM04)でユーザートレースを有効化し、RFCを繰り返し、呼び出されたUnicodeシステムのトレースファイルを分析することにより、不明な言語を見つけることができます。

タイトルとURLをコピーしました