【初心者向け】SAP ABAP言語の基本構文数値計算(DIVIDE、SUM)等について

SAPのERP開発において使用される

ABAP(Advanced Business Application Programming)では、

業務ロジックの中で数値演算を扱うことが非常に多くあります。

本記事では、除算(DIVIDE)合計(SUM)に焦点を当て、

基本構文と実用例をわかりやすく紹介します。

ぜひ参考にしてみてください!

目次

【初心者向け】SAP ABAP言語の基本構文数値計算

早速SAP ABAP言語の基本構文数値計算について、

見出し別にご紹介していきます!

DIVIDE除算処理

DIVIDEは、ある値を別の値で割るときに使うABAPの命令文です。

🔹 基本構文

DIVIDE <割られる値> BY <割る値>.

この命令では、割られる変数の値が上書きされます
COMPUTE lv_result = lv_a + lv_b * lv_c.

🔹 使用例

DATA: lv_total    TYPE i VALUE 100,
lv_quantity TYPE i VALUE 4.

DIVIDE lv_total BY lv_quantity. "→ lv_total = 25

この場合、lv_total に 100 ÷ 4 の結果である 25 が代入されます。


ゼロ除算の注意点

DIVIDEを使用する際、割る値がゼロの場合はエラーになるため、

必ずゼロチェックを行う必要があります。

例:ゼロチェック付きのDIVIDE

IF lv_quantity <> 0.
DIVIDE lv_total BY lv_quantity.
ELSE.
WRITE: '割る数が0のため、処理をスキップしました'.
ENDIF.

小数の除算には「P型」データ型を使う

DATA: lv_price     TYPE p DECIMALS 2 VALUE 100.00,
lv_quantity TYPE p DECIMALS 2 VALUE 3.00.

DIVIDE lv_price BY lv_quantity. "→ lv_price = 33.33...

SUM内部テーブルの合計処理

SUM は、内部テーブル内の指定列の合計を算出する命令で、LOOP構文の中で使用されます。


基本構文

LOOP AT <内テーブル>.
SUM.
ENDLOOP.

この構文で、数値列の合計がワークエリアの対応フィールドに自動的に入ります


使用例

TYPES: BEGIN OF ty_sales,
amount TYPE i,
END OF ty_sales.

DATA: lt_sales TYPE TABLE OF ty_sales,
ls_sales TYPE ty_sales.

APPEND VALUE #( amount = 100 ) TO lt_sales.
APPEND VALUE #( amount = 150 ) TO lt_sales.
APPEND VALUE #( amount = 200 ) TO lt_sales.

LOOP AT lt_sales INTO ls_sales.
SUM.
ENDLOOP.

WRITE: / '合計金額:', ls_sales-amount. "→ 合計金額:450

補足:SUMは「LOOP内の同一構造の合計」に限定される

  • SUMは、現在LOOPしている構造体のうち、数値フィールドにだけ適用されます。
  • READ TABLEFOR EACHでは使えません。

まとめ:DIVIDEとSUMの違いと使い所

まとめとして、DIVIDEとSUMの違いと使い所について

ご紹介していきます!

命令目的用途例
DIVIDE除算(割り算)単価の計算、平均値の算出など
SUM合計処理(内部テーブル)売上合計、在庫総数、工数合計など

実務での活用シーン

実務での活用シーンについてご紹介していきます!

DIVIDE:請求書作成時の「合計金額 ÷ 数量」= 単価計算

SUM:日次レポートの「全社員の残業時間合計」や「全製品の売上合計」

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

この記事を書いた人

アラサー。国内~海外と親&自分も転勤を経験してきました。
就職で関西配属。妻からのDV・モラハラに苦しみながも、スポーツ関連のトレンドを発信していきます!自衛隊訓練経験あり
ジャンル:#国内・海外旅行(30か国放浪) #海外勤務 #英語学習
スポーツ経験:サッカー(10年以上、下手くそでいじめに遭う)、ラグビー(1年)   
家族:妻、子供

コメント

コメントする

目次