2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【SAP】内部書式と外部書式

Posted at

はじめに

SAP S/4HANA Cloud(以降、S4HC)のデータを扱う際に、内部書式と外部書式に関する内容で苦労した点がございましたので、事象と対処法について当記事に記します。

内部書式と外部書式について

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

image.png

躓いた内容

事象

S4HCの購買依頼画面から、評価額(金額の項目)に11桁の金額を入力して保存ボタンを押下すると、データが登録されます。

しかし、APIを使用してデータの登録を行う際に、評価額に11桁(※1)のデータをセットして登録すると、桁数オーバーのエラーが発生しました。
※1…ビューブラウザで定義されている最大桁数

・エラーの内容

Overflow converting from '10000000000.00'

原因

原因としては、通貨に"JPY"を設定せずに登録処理をかけていたため、最大桁数が9桁になっていたことから、桁数オーバーのエラーが発生していました。

画面上にはある金額情報として 「10,000,000,000」 と表示されているものが外部書式に該当します。一方、システム内部のデータベース上では、金額の数値が「100000000.00」、通貨は「JPY(日本円)」となっています。

つまり、SAP内部では金額情報のもととなる数値通貨をセットで管理しています。
画面上に金額情報を表示する際は、この通貨をもとに金額情報のもととなる数値を外部書式に変換しています。
通貨が「JPY」であれば、金額のもととなる数値を100倍して表示する流れになります。(日本円では小数点以下が存在しないため)

解決策

登録する際に、通貨に「JPY」をセットすると、11桁で登録が可能になります。
※購買依頼画面では、デフォルトで通貨に「JRY」が設定されているため、最初から11桁で登録ができました。
image.png

おわりに

今回は、S4HCで使用している画面とデータを用いて記事にしましたが、SAPを使用する上では、外部書式と内部書式は意識するべき内容になります。
金額の他にも、日付やコード値などの項目も該当するため、結構身近な存在です。開発を行う方は、是非、頭の片隅に入れて実装いただければと思います。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?