トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

ABAP/IF の変更点


判断分岐に用いる。

* 概要 [#y2116fb4]
IF (条件)~ENDIF形式で記述。
[[CASE>ABAP/CASE]]の用途に合致しない場合は、こちらを使用する。

** ELSE, ELSEIF [#va3cd30d]
*** 用法 [#z818a9b8]
通常は真の場合のみだが、偽の場合の処理を記述する。
[[例外処理>アドオン/例外処理]]などでよく使う。

*** サンプル [#j126505c]
 IF ( L_SCORE = 100 )
   MESSAGE S001(ZZ00).
 ELSEIF ( L_SCORE > 40 )
   MESSAGE W002(ZZ00).
 ELSE.
   MESSAGE E002(ZZ00).
 ENDIF.

** [[OR>ABAP/OR]], [[AND>ABAP/AND]] [#ga1fe172]
*** 用法 [#p51199d4]
文字通り、''または''と''かつ''の表現に用いる。
文字通り、''または([[OR>ABAP/OR]])''と''かつ([[AND>ABAP/AND]])''の表現に用いる。

なお、括弧の書き方によって判定が異なるため留意が必要であり、また複雑な条件になる場合はいっそのこと判定を分けたりした方が良い場合もある。

ただ、安易にフラグ形式にしてしまうと、今後の判定変更や追加が煩雑になったり当初の実装者以外にわかりづらくなってしまうことは忘れてはならない。

*** サンプル [#x90b5905]
 IF ( BKPF-BUKRS = C_BUKRS_JAPAN )
   MESSAGE S001(ZZ00).
 ELSEIF ( BKPF-BUKRS = C_BUKRS_CHINA OR BKPF-BUKRS = C_BUKRS_SINGAPORE ) AND ( L_AMOUNT < 100 ).
   MESSAGE W002(ZZ00).
 ELSE.
   MESSAGE E002(ZZ00).
 ENDIF.

* その他 [#z7b4d605]
関連する命令は、[[CASE>ABAP/CASE]]、[[OR>ABAP/OR]]、[[AND>ABAP/AND]]、[[NOT>ABAP/NOT]]、[[CHECK>ABAP/CHECK]]など。

~
~
CENTER:【スポンサードリンク】
#htmlinsert(amazon_book_sap_system_implement)
~
~
----
#pcomment(reply)