SAPに内部形式で保存されている項目を外部出力用に変換する、またはその逆の処理や機能のこと。
代表的なものとして、100JPYが1で保存され[[データブラウザ>SAPの共通用語/データブラウザ]]でも1JPYに見えるが、標準の伝票照会では100JPYで見える仕組み。
* 概要 [#aef8ba74]
SAPでは、外部形式と内部形式という概念があり、端的に言えば''必ずしも見た目どおりにシステムに格納されているわけではない''ということ。
そのため、[[SELECT>ABAP/SELECT]]命令によるデータの抽出や[[アドオン]]レポートを作成する場合は、ケアする必要がある。
外部形式とは標準[[トランザクションコード>SAPのオブジェクト/トランザクションコード]]での伝票照会などで表示される内容であり、実際に[[テーブル>SAPのオブジェクト/テーブル]]に格納されている内部形式とは異なる。
こういった仕組みの背景は、数量単位など項目に関しては[[ログオン言語>SAPの共通用語/ログオン言語]]ごとに表示する内容を変更できるように配慮されているためである。
これを馬鹿正直に実現しようとすると[[テーブル>SAPのオブジェクト/テーブル]]の値そのものを変更することになり、インパクトは決して小さくないが、''画面に表示する直前に内部で表示のみを変換する''とすれば、傷は浅くて済む。
** 実現手段 [#ucab27ff]
[[変換Exit>SAPの拡張手段#db0b6f99]]と呼ばれる[[汎用モジュール>SAPのオブジェクト/汎用モジュール]]を使用し、外部形式と内部形式を変換する。
概ね以下のような汎用モジュールである。(例:CONVERSION_EXIT_CUNIT_INPUT)
[[テーブル>SAPのオブジェクト/テーブル]]項目に対して[[ドメイン>SAPのオブジェクト/ドメイン]]を経由し[[変換Exit>SAPの拡張手段#db0b6f99]]は設定されており、割り当てられている場合はダブルクリックすると該当する[[汎用モジュール>SAPのオブジェクト/汎用モジュール]]が表示される。
** 日付 [#r556a1f9]
内外変換といえばAlpha変換(いわゆる前ゼロを付与する/省く)、金額や数量の変換が代表的だが、日付にも内外変換はある。
具体的には[[換算レート>SAPの共通用語/換算レート]]が格納されるTCURRの日付で、生データをみると「79848770」のように設定されている。
これをメンテ画面のT-Code:OB08などでは通常の西暦で表示されるのだが、これは、このテーブルの項目のデータエレメントに割り当てられたドメインには変換ルーチンが割り当てられているため。
その変換EXITでは「99999999 - テーブルの値」という計算があり、例えば値が79848770であれば減算の結果は20151229となる。
ちなみに、SE16のユーザパラメータに「変換EXIT」という項目があるが、このチェックボックスをOnにすると上記の例では2015/12/29と表示される。
~
~
CENTER:【スポンサードリンク】
#htmlinsert(amazon_book_sap_system_implement)
~
~
----
#pcomment(reply)