【SAP基礎】SAPの内部書式と外部書式について解説!

SAP_内部書式と外部書式

登場人物紹介

三崎レイナ
社会人1年目。新卒でITコンサルティングファームに就職。初配属がSAPプロジェクトにアサインされる。SAPがわからないことだらけで悩んでいたところ、会社の先輩にSAPラボの所長を紹介され、毎週末に所長とSAPのお勉強中!

博士
SAPラボの所長。SAP大好き博士!SAP導入プロジェクトを構想策定~運用保守まであらゆるフェーズを数多く経験。
いまは優しきおじいちゃんだが、プロマネバリバリの時代はかなり怖かったらしい。現在は引退し、SAPの後進育成と啓蒙活動に従事中!

この記事を読むメリット

  • SAPの内部書式(内部値)と外部書式(外部値)の概念および調査方法を理解することができます

SAP独特のデータ構造である内部書式(内部値)と外部書式(外部値)は、SAPのデータを扱う上で、避けては通れない重要事項です。

昨今は、S/4 HANAへのデータ移行に取り組んでいる企業も多いと思いますので、「価格の数値を100倍にして移行してしまった」などのミスを未然に防ぐことができるよう、このデータ構造をしっかりと理解しておきましょう!

博士

それでは、さっそく解説していくぞい!

SAPフリーランスバンク SAPフリーランスバンク
Warning: file_get_contents(https://sap-career.com/freelancebank/jobs/feed/): Failed to open stream: HTTP request failed! HTTP/1.1 429 Too Many Requests in /home/saplab/sap-career.com/public_html/saplabo/wp-content/themes/swell_child/admin/article_list.php on line 70

Warning: Attempt to read property "channel" on bool in /home/saplab/sap-career.com/public_html/saplabo/wp-content/themes/swell_child/admin/article_list.php on line 72

新着のSAPフリーランス案件


Warning: Attempt to read property "item" on null in /home/saplab/sap-career.com/public_html/saplabo/wp-content/themes/swell_child/admin/article_list.php on line 82

Warning: foreach() argument must be of type array|object, null given in /home/saplab/sap-career.com/public_html/saplabo/wp-content/themes/swell_child/admin/article_list.php on line 82
この記事のポイント

内部書式・外部書式とは

『内部書式』とは、SAPがシステム内部で保持している書式です。そのため、ユーザーが目にすることはありません。一方、『外部書式』は、実際に画面上や帳票に出力される書式で、ユーザーが目にする情報になります。

この内部書式と外部書式の変換を採用している代表的な項目として、“金額”があります。
例えば、下図の通りデスクトップの画面上にはある受注の金額情報として ”1,230円” と表示されているとします。これが実際にユーザーが目にする『外部書式』です。
一方、システム内部のデータベース上では、金額の数値が“12.30”通貨は”JPY”(日本円)となっています。このように、通貨が”JPY”であれば、外部書式は内部書式の金額の数値を100倍して表示しています。

内部書式と外部書式
内部書式と外部書式

USD(アメリカ$)の場合はどうでしょう?
受注の金額情報が、外部書式として ”$100” と表示されているとします。一方、システム内部のデータベース上では金額の数値が“100”、通貨は“USD”(アメリカドル)となっています。

これは、SAP内部で「金額情報のもととなる数値」と「通貨」をセットで管理しており、その通貨によって変換ロジックが異なる為です。

もっと詳しく💡

価格の金額値以外にも、内部書式と外部書式の変換を採用している項目はあります。

代表的なものに、取引先機能(Partner Function)や数量単位(UoM)、通貨(Currency)、言語キー(Language Key)、日付(Date)などがあります。

SE16Nでの内部書式・外部書式の参照方法

T-CODE:SE16Nでテーブルを参照する際に、内部書式で参照するのか・外部書式で参照するのかを下記の手順で選択することができます。

  1. T-CODE:SE16Nで選択画面を開く。
  2. 補足タブから“設定変更”を選択する。
  3. “変換Exitなしの出力”にチェックを入れる。
SE16N
SE16Nの設定

デフォルトでは、“変換Exitなしの出力”にチェックが入っておらず、テーブルを参照時に内部書式から外部書式に変換するプログラムが走り、外部書式で表示されるようになっています。その為、このチェックを入れると、内部書式のままデータを出力、またはローカルにダウンロードすることができます。

書式変換方法について

技術的な話になりますが、外部書式⇔内部書式の書式変換方法について解説します。
たいていの書式変換は、SAP標準で用意されている汎用モジュールを利用して実行することが可能です。
そして、その変換処理には変換テーブルが使用されています。

汎用モジュールと変換テーブルの確認方法

項目“取引先機能(Partner Function)”を例に外部書式と内部書式の変換で使われている汎用モジュールと変換テーブルを見ていきます。

まず、下記の5ステップで汎用モジュールを特定し、ソースコードを確認します。

  1. T-CODE:SE11で取引先機能が使われているテーブルを検索します(ここではKNVP)
  2. 取引先機能の項目をダブルクリックします(項目名はPARVW)
  3. ポップアップ画面のドメインをダブルクリック(ドメイン名はPARVW)
  4. ドメイン照会画面からルーチンをダブルクリック(ルーチン名はPARVW)
  5. 変換用の汎用モジュールをダブルクリック(ここでは外部→内部の汎用モジュールを選択)
SAP_SE11_外部値_内部値の変換
SE11_外部値&内部値の変換プログラム参照

上記手順により、汎用モジュールのコードを確認するとSELECT文からコールしているテーブル名を確認できます。取引先機能の場合、テーブル“TPAUM”を使用していることが分かります。さらに、言語キーと取引先機能の2つのKEYを用いて変換していることが確認できます。

ABAP_Conversion Routine
変換処理のABAP
もっと詳しく💡

代表的な項目のSAP標準の汎用モジュールを紹介します。

金額の書式変換 汎用モジュール

  • 内部書式 ⇒ 外部書式・・・BAPI_CURRENCY_CONV_TO_EXTERNAL 
  • 外部書式 ⇒ 内部書式・・・BAPI_CURRENCY_CONV_TO_INTERNAL

<日付の書式変換 汎用モジュール

  • 内部書式 ⇒ 外部書式・・・CONVERT_DATE_TO_EXTERNAL
  • 外部書式 ⇒ 内部書式・・・CONVERT_DATE_TO_INTERNAL

カスタマイズからの確認方法

一部の項目については、この内部書式と回部書式の変換をカスタマイズで設定することが可能です。
取引先機能(Partner Function)もその1つであり、下記のパスから設定を確認・変更することができます。

SPRO > 販売管理 > 基本機能 > 取引先決定 > 設定: 取引先決定 > 設定: 得意先およびサプライヤマスタの取引先決定

SPRO_Partner Function
取引先機能の内部/外部書式のカスタマイズ

考慮が必要なポイント

レイナ

この外部書式と内部書式を考慮しないと、どんなリスクがあるのかな~?

外部システムとのインターフェイス

外部書式と内部書式の考慮漏れが影響するケースとして、特に外部システムとのインターフェイスがあげられます。

例えば、下記図の様にSAP内の”1,000円”というデータを外部のシステムにインターフェースする時、SAPのデータベース上の情報をそのまま連携してしまうと、受信するシステム側では“10円”と認識してしまいます。また、受信するシステム側も決まった書式がある場合は、受信データを取り込む際に書式変換が必要になります。インターフェース開発時は「外部システムとはどのような書式で連携をするのか」までしっかり確認しておく必要があります。

内部書式と外部書式の考慮点
内部書式と外部書式の考慮点

逆に、外部システムからSAPにインターフェースするケースも同様に書式に注意が必要です。上図の通り、“1,000円”で連携されてきた金額情報をそのままSAPに取り込むことはできません。内部書式を使用している項目は、SAPに取り込む際に内部書式への変換が必要です。

SAP ECCからS/4 HANAへのデータ移行

博士

SAPからSE16Nで抽出したデータを、再度SAPに登録する時も注意じゃぞい!

下記図の通り、SAPのテーブルからT-CODE:SE16Nなどを使用し、内部書式でデータを抽出した場合、そのデータを外部書式に変換してSAPの画面から登録する必要があります。

SE16Nでデータを抽出する場合は、上述の外部書式で表示させる設定にすれば、変換作業は不要ですが、仮にデータベースから直接データを抽出する場合は、内部書式から外部書式に変換してSAPに登録する必要があります。*もし、変換処理(内部→外部)が備わっているプログラムの場合は問題ないです。

まとめ

今回は、SAP独自のデータ構造である内部書式と外部書式の概要について紹介しました。

SAPを長くやっている人にとってはお馴染みの内容だったと思いますが、初学者とっては少し複雑で業務の中でも躓きやすいポイントです。本記事を通して、SAPのデータの持ち方や書式の確認方法を理解する一助になれば幸いです。
最後まで読んでいただきありがとうございました!

新着のSAPフリーランス案件

【MM】

【PP】

製造業向けSAP PP領域の工場展開支援

要スキル:
・PP/MMのSAP導入をコンサルとして要件定義の対応経験のある方 ・顧客と直接対話し、業務を進めて頂く事が可能な方 ・国内の工場への出張対応が可能な方(関西方面や九州など)
月額単価:
~1,700,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
顧客用テンプレートをベースとした国内工場へのSAP展開プロジェクトになります。 PPコンサルタントとしてFit&GAP、課題検討、テストや移行支援を実施頂きます。

【SD】

大手国内SIer関連会社に対するテンプレート展開PJの要件定義支援(SD)

要スキル:
・SD領域における要件定義の対応経験 ・顧客折衝し業務を推進していける方
月額単価:
~1,750,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
関連会社へテンプレートを用いSAP展開していくプロジェクトとなります。 SDのコンサルタントとして要件定義からご担当頂きます。

【FI】

大手国内SIer関連会社に対するテンプレート展開PJの要件定義支援(FI)

要スキル:
・FI領域における要件定義の対応経験 ・顧客折衝し業務を推進していける方
月額単価:
~1,750,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
関連会社へテンプレートを用いSAP展開していくプロジェクトとなります。 FIのコンサルタントとして要件定義からご担当頂きます。

【FI】

輸送用機器企業様向けS/4導入案件支援

要スキル:
S/4HANAでの上流工程の業務経験
月額単価:
~1,600,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
国内基幹システムをSAP S/4HANAへ移行する案件プロジェクトになります。 同社の海外向けS/4販売物流テンプレートを日本向けにロールインするもの。 現在、基本設計フェーズに着手中(~2025/4)。2027/1リリース予定。

【CO】

【FI】

S/4HANA Privateの導入支援(開発~単体テスト)

要スキル:
・ABAP開発経験5年以上の方 【尚可】 ・基本設計者と開発者をつなぐような品質管理やリーダーポジションを対応できる方
月額単価:
~850,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
基本的に会計系のモジュールにおける詳細設計以降の工程を担当頂きます。

【PP】

生産領域(PP)でのテスト工程支援

要スキル:
・テスト工程におけるSAP導入のプロジェクト経験がある方 ・PPモジュール経験があり、顧客と対峙してタスクの推進ができる方 ※コミュニケーション力重視
月額単価:
~1,500,000円 / 月
稼働場所:
フルリモート
稼働率:
100%
作業内容:
国内大手化学品メーカー向けのS/4 HANAへの移行プロジェクトにおいて、S/4チームの生産チームメンバー・タスクリーダーとして稼働頂きます。 ・結合テスト、システムテスト、ユーザテストの計画・推進・実施 ・ユーザ教育(業務変更点説明、オペレーション教育)および移行タスクの推進(業務切替、システム切替の周知や啓蒙活動)

【CO】

【FI】

ハードウエアリプレイスに伴うSAPシステム検証支援

要スキル:
・SAPの会計領域の知識がある方
月額単価:
~800,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
サーバの引っ越しに伴いSAPの機能変更等はないものの、システムが正しく動作するのかを検証するためのプロジェクトです。 対象モジュールはFI/COとなり、該当モジュールにおけるテストシナリオ作成・システムデータ作成・SAPの動作確認を行っております。 業務フローやSAPマニュアルがあるので、それを基にテストシナリオを作成して進めて頂きます。

【SD】

空調機メーカーS/4導入におけるFiori設計支援

要スキル:
・要件確認から設計書修正~開発受入実施ができる方 ・デバックで不具合箇所を特定できる方 ・販売領域における標準テーブルの知識を持っている方
月額単価:
~1,100,000円 / 月
稼働場所:
フルリモート
稼働率:
100%
作業内容:
S/4導入時におけるFioriの設計以降の作業をご担当頂きます。

【MM】

【PP】

電気機器メーカー向けSAPの運用保守支援

要スキル:
業務要件を整理して、設計書、ABAP開発が可能な方。 Jrコンサル、SEレベルの方が望ましい
月額単価:
~1,000,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
SAPのAdd-on追加開発または、運用保守をご担当頂きます。 業務領域としては、MMおよびPP領域となります。

【MM】

【SD】

ERPシステム要件定義支援

要スキル:
パラメータ定義(要件をカスタマイズに落とし込む)やアドオン機能設計ができること
月額単価:
~1,300,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
パラメータ定義(要件をカスタマイズに落とし込む)やアドオン機能設計などをご担当いただきます。

★★★SAPラボのライター募集★★★

SAPラボでは、SAPの知識を活かして副業をしたい方を募集してるのじゃ!

SAPラボのライターの特徴

・ライティング初心者OK!
・報酬高単価!
・業務委託契約なので副業として最適!

SAP記事執筆者としての活動実績として利用可能なので、転職時や案件探しの際に企業へのアピール材料にもなります。

募集要項

・SAP導入や運用保守プロジェクトへの参画経験1年以上

ご応募/お問合せ先

info@sap-labo.com

少しでもご興味ある方、ぜひお気軽にご連絡下さい!

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

事業会社の社内SE(SAP販売・貿易管理領域を担当)

大学卒業後、化学メーカーに社内SEとして勤務し、S/4海外展開プロジェクトに参画しています。主に、SDモジュールのデータ移行を2年間経験し、その後はST/IFテストの推進業務を担当しております。その間にも、SDやGTSの保守・運用に携わりながら、SAPに関する知見を深めている最中です。

業務の中で得られた知見をアウトプットしながら、SAPを利用する方々のお役に立てれば嬉しいです!

この記事のポイント