【SAP ABAP】基本構文:条件分岐(IF、CASE)

登場人物紹介

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

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

この記事を読むメリット

  • IF文、CASE文を使用して、条件分岐の処理を作成できるようになります。
博士

今回は条件分岐について説明するぞい!

条件分岐は、プログラムが特定の状況や条件に応じて異なる処理を行うための重要な構文です。これをマスターすることで、プログラムをもっと柔軟かつ効率的に動かすことができます。頻繁に使用されるのでしっかりマスターしておきましょう。

SAPフリーランスバンク SAPフリーランスバンク

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

【CO】

【FI】

製造業様SAP S/4 HANA導入検討支援(コンサルリード)

要スキル:
・会計領域におけるプロジェクト管理の実施 ・10名以上のメンバー管理の経験をお持ちであること ・エンドユーザとの調整を含めたマネジメントスキル ・SAP導入プロジェクトの経験
月額単価:
~1,250,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
SAP新規導入における、プロジェクト管理支援 ・会計・生産領域(FI/CO/PS/PP/QM)におけるプロジェクト管理支援 ・ファシリテート ・領域タスク推進/進捗管理 ・個別課題整理・解決

【CO】

【FI】

【MM】

【PP】

【SD】

【その他】

建設コンサルタント企業向けSAP保守支援(チームリード)

要スキル:
・SAP関連のプロジェクトで複数モジュールでの経験があること 【尚可】 ・ロジから会計に連動するところの知見
月額単価:
~1,300,000円 / 月
稼働場所:
フルリモート
稼働率:
100%
作業内容:
複数モジュールにまたがった保守チームの管理を行っていただきます。 問い合わせや障害等のタスク管理や優先順位付けなどを顧客とやり取りしながら差配していくのが中心となります。

【CO】

【FI】

【MM】

【SD】

製造業会社向けSAP保守支援(会計もしくはロジ)

要スキル:
・会計もしくはロジ領域でのSAPプロジェクトの業務経験 ・ABAPでの開発経験
月額単価:
~950,000円 / 月
稼働場所:
フルリモート
稼働率:
100%
作業内容:
問い合わせ対応や調査等の保守作業(会計/ロジ)

【MM】

【SD】

複数社に対するSAP運用保守とS/4へのVerUp対応支援

要スキル:
SAPロジ領域での保守や導入のプロジェクト経験
月額単価:
~1,300,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
20社前後に対するSAPの保守業務を担当頂きます。 (不具合調査、障害対応、機能追加・改修、法改正対応など) またS/4へのバージョンアップを控えているため、そちらも対応頂きます。

【CO】

【FI】

【MM】

【PP】

【SD】

光学機器製造会社向けSAP導入プロト支援

要スキル:
・SAPの構想策定フェーズからプロジェクトに参画したことがある経験 ・プロト機の設定などをおこなってきた経験
月額単価:
~1,800,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
・業務フローの整理と作成 ・プロト機の準備

【FI】

製造業会社向けS/4導入検討支援(会計リード)

要スキル:
・SAP導入プロジェクトの経験 ・会計領域におけるリード経験(10名以上目安) ・顧客折衝の経験
月額単価:
~1,250,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
海外テンプレート構築検討を進めており、会計チームでのリードを担当頂きます。 ・顧客に対する進捗報告 ・顧客からの相談窓口 ・チーム全体の、品質、進捗、コストの管理 ・領域横断課題の検討(チケット起票単位の整理等)

【SD】

SAP導入コンサル支援(SD)

要スキル:
・SAPプロジェクトにて要件定義経験5年以上 ・要件定義からカスタマイズの設定 ・SAP(SDモジュール)経験5年以上 ・コミュニケーション能力 【尚可】 ・リモート環境での作業経験
月額単価:
~1,300,000円 / 月
稼働場所:
フルリモート
稼働率:
100%
作業内容:
SAP導入コンサルポジションとして要件定義より参画予定となります。 ・要件定義の確認と課題対応 ・残課題の背景・内容を定義 ・SAPソリューションの検討・討議

【FI】

製造業向けS/4新規導入支援(FI-AP/AR)

要スキル:
SAP導入プロジェクトにおいてFI(AP/AR)コンサルタントとしての業務経験
月額単価:
~2,000,000円 / 月
稼働場所:
フルリモート
稼働率:
100%
作業内容:
S/4新規導入PJのFIメ(AP/AR)メンバーとして参画頂きAP/AR領域について以下を担当頂きます。  -業務フロー作成  -プロトシナリオ作成  -プロト用パラメータ設定、プロト実施  -課題対応(SAP標準を使ったソリューション検討)  -議事録作成など

【FI】

SAP HANAバージョンアップにおける会計機能設計支援

要スキル:
・FI領域の要件定義書から基本設計を現行を参考に作成し、  後続作業も出来る方。 ・SAP標準機能と会計業務に関する知識 <尚可> FI-AA経験、TRM経験
月額単価:
~900,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
SAP FIコンサルまたはJrコンサル S/4HANAへバージョンアップに向け、会計領域の要件定義フェーズ作業 ・現行SAPの調査支援(標準機能の含む) ・ToBe詳細業務フロー作成支援 ・現行アドオン調査・整理 ・ToBeアドオンへの置き換え時の実現ポイント調査・整理

【FI】

自動車メーカー向けS4HANA導入支援(FI/CO)

要スキル:
・FIもしくはCOモジュールでの業務要件定義の経験(導入~)
月額単価:
~950,000円 / 月
稼働場所:
広島県
稼働率:
100%
作業内容:
S4導入要件定義フェーズにおいて以下の業務を行っていただきます。 ・要件定義 ・業務フロー作成 ・既存Add-On整理&再設計 ・財務関連コード定義
この記事のポイント

条件分岐について

条件分岐とは、プログラム内で特定の条件を判断し、条件を満たしているかどうかに基づいて処理を変更することです。「もし〇〇が△△ならば××をする」というように、条件に応じて処理を分岐させます。条件分岐を実現するためにABAPでは”IF文”と”CASE文”を使用します。

IF文(IF~ENDIF)

博士

まずはIF文じゃ。
IF文は条件式が真(TRUE)か偽(FALSE)かに基づいて異なる処理を実行するぞい!

構文
 IF 条件式1.
  条件式1が真の場合に実行する処理.
 ELSEIF 条件式2.
  条件式2が真の場合に実行する処理.
 ELSE.
  全ての条件が偽の場合に実行する処理.
 ENDIF.
 ※”IF”、”ELSEIF”、”ELSE”、”ENDIF”の後にそれぞれ”.”(ピリオド)が必要です。
 ※複数の条件分岐を行いたい場合は”ELSEIF”を使用します(複数追加可能)。また、
“ELSE”は省略することも可能です。

使用例
DATA: lv_message TYPE string. " メッセージを格納する変数を宣言

PARAMETERS: p_number TYPE i.  " ユーザー入力用のパラメータを宣言

* 入力された数値をチェック
IF p_number > 0.
  lv_message = 'The number is positive.'. " 数値が正の場合のメッセージを設定
" 入力された数値が負の数かどうかをチェック
ELSEIF p_number < 0.
  lv_message = 'The number is negative.'. " 数値が負の場合のメッセージを設定
ELSE.
  lv_message = 'The number is zero.'.     " 数値がゼロの場合のメッセージを設定
ENDIF.

WRITE: lv_message. " メッセージを表示
実行結果

【ABAP】IF文(実行結果)

博士

選択画面で入力した内容で処理が分岐され、条件に合った結果が出力されているぞい!

補足:比較演算子

ABAPにおける比較演算子は、条件式で使用され、2つの値を比較して真偽を判断します。以下に、ABAPでよく使用される比較演算子の一覧を示します。

演算子説明
=(EQ)2つの値が等しい場合に真を返す
<>(NE)2つの値が等しくない場合に真を返す
>(GT)左辺の値が右辺の値より大きい場合に真を返す
<(LT)左辺の値が右辺の値より小さい場合に真を返す
>=(GE)左辺の値が右辺の値以上の場合に真を返す
<=(LE)左辺の値が右辺の値以下の場合に真を返す
ABAPの比較演算子

CASE文(CASE~ENDCASE)

博士

次はCASE文じゃ。
CASE文は変数などのデータオブジェクトの値に基づいて異なる処理を実行するぞい!IF文とは異なり、条件式を使用しての判定はできないぞい。

構文
 CASE 変数.
  WHEN 値1.
   変数が値1に一致する場合の処理.
  WHEN 値2.
   変数が値2に一致する場合の処理.
  WHEN OTHERS.
   どの条件にも一致しない場合の処理.
 ENDCASE.
 ※”CASE”、”WHEN”、”WHEN OTHERS”の後にそれぞれ”.”(ピリオド)が必要です。
 ※IF文と異なり式ではなく変数などのデータオブジェクトを指定します。“WHEN OTHERS”は省略することも可能です。

使用例
DATA: lv_message TYPE string. " メッセージを格納する変数を宣言

PARAMETERS: p_month TYPE i.   " ユーザー入力用のパラメータを宣言

* 入力された月の日数を設定
CASE p_month.
  WHEN 1 OR 3 OR 5 OR 7 OR 8 OR 10 OR 12.
    lv_message = 'Days in the month: 31'. " 31日の月の場合
  WHEN 4 OR 6 OR 9 OR 11.
    lv_message = 'Days in the month: 30'. " 30日の月の場合
  WHEN 2.
    lv_message = 'Days in the month: 28'. " 2月の場合は通常は28日
  WHEN OTHERS.
    lv_message = 'Invalid month'. " 1から12以外の数値が入力された場合
ENDCASE.

WRITE: lv_message. " メッセージを表示
実行結果

【ABAP】CASE文(実行結果)

博士

IF文と同じように選択画面で入力した内容で処理が分岐され、条件に合った結果が出力されているぞい!

IF文とCASE文の共通のポイント

処理順序

IF文もCASE文も、条件は上から下へと順番にチェックされ、条件に一致した時点でそのブロックの処理が実行されます。また、条件に一致した以降の条件はチェックされません

ネスト(入れ子)、複数の組み合わせ

IF文、CASE文の中にさらに別のIF文やCASE文をネスト(入れ子)することが可能です。これにより、複数の条件の組み合わせを表現することができます。例えば、ある条件が成り立った場合に、さらに別の条件をチェックする必要がある場合などに使用されます。
また、複数の条件を論理演算子(AND、OR)を使って組み合わせることが可能です。これにより、複数の条件を一つのブロックで表現することができます。

ネストの例
* 1つ目の例
IF lv_age >= 18.       " 年齢が18歳以上であることをチェック
  IF lv_height >= 170. " 身長が170cm以上であることをチェック
    WRITE: / 'You are an adult and tall enough.'. " 成人で、かつ170cm以上の場合の処理
  ENDIF.
ENDIF.

* 2つ目の例
CASE weather.
  WHEN 'Sunny'.        " 天気が晴れであることのチェック
    CASE time.
      WHEN 12.         " 時間が正午であることのチェック
        WRITE: / 'It is sunny at noon.'. " 天気が晴れで、時間が正午の場合の処理
    ENDCASE.
ENDCASE.

IF文とCASE文の使い分け

IF文とCASE文はどちらも条件分岐を行うための命令ですが、どちらを使用するかは状況によります。
適切に使い分けることでコードの可読性とメンテナンス性を向上させることができます。

IF文は条件が比較的少ない場合に適しており、CASE文は条件が多い場合や特定の変数に応じて分岐する場合に適しています。
また、一般的にはCASE文の方が少し処理速度は速いです。かといってIF文からCASE文に変更したとしても劇的な改善は期待できません。したがって、条件分岐の数に応じて適切な構文を選択することが重要です。

博士

今回はABAPの条件分岐で使用されるIF文、CASE文についてと、使い分けについて紹介したぞい!

レイナ

ありがとうございます!
これから条件分岐を使用したプログラムも作成していきます!

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

【CO】

【FI】

製造業様SAP S/4 HANA導入検討支援(コンサルリード)

要スキル:
・会計領域におけるプロジェクト管理の実施 ・10名以上のメンバー管理の経験をお持ちであること ・エンドユーザとの調整を含めたマネジメントスキル ・SAP導入プロジェクトの経験
月額単価:
~1,250,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
SAP新規導入における、プロジェクト管理支援 ・会計・生産領域(FI/CO/PS/PP/QM)におけるプロジェクト管理支援 ・ファシリテート ・領域タスク推進/進捗管理 ・個別課題整理・解決

【CO】

【FI】

【MM】

【PP】

【SD】

【その他】

建設コンサルタント企業向けSAP保守支援(チームリード)

要スキル:
・SAP関連のプロジェクトで複数モジュールでの経験があること 【尚可】 ・ロジから会計に連動するところの知見
月額単価:
~1,300,000円 / 月
稼働場所:
フルリモート
稼働率:
100%
作業内容:
複数モジュールにまたがった保守チームの管理を行っていただきます。 問い合わせや障害等のタスク管理や優先順位付けなどを顧客とやり取りしながら差配していくのが中心となります。

【CO】

【FI】

【MM】

【SD】

製造業会社向けSAP保守支援(会計もしくはロジ)

要スキル:
・会計もしくはロジ領域でのSAPプロジェクトの業務経験 ・ABAPでの開発経験
月額単価:
~950,000円 / 月
稼働場所:
フルリモート
稼働率:
100%
作業内容:
問い合わせ対応や調査等の保守作業(会計/ロジ)

【MM】

【SD】

複数社に対するSAP運用保守とS/4へのVerUp対応支援

要スキル:
SAPロジ領域での保守や導入のプロジェクト経験
月額単価:
~1,300,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
20社前後に対するSAPの保守業務を担当頂きます。 (不具合調査、障害対応、機能追加・改修、法改正対応など) またS/4へのバージョンアップを控えているため、そちらも対応頂きます。

【CO】

【FI】

【MM】

【PP】

【SD】

光学機器製造会社向けSAP導入プロト支援

要スキル:
・SAPの構想策定フェーズからプロジェクトに参画したことがある経験 ・プロト機の設定などをおこなってきた経験
月額単価:
~1,800,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
・業務フローの整理と作成 ・プロト機の準備

【FI】

製造業会社向けS/4導入検討支援(会計リード)

要スキル:
・SAP導入プロジェクトの経験 ・会計領域におけるリード経験(10名以上目安) ・顧客折衝の経験
月額単価:
~1,250,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
海外テンプレート構築検討を進めており、会計チームでのリードを担当頂きます。 ・顧客に対する進捗報告 ・顧客からの相談窓口 ・チーム全体の、品質、進捗、コストの管理 ・領域横断課題の検討(チケット起票単位の整理等)

【SD】

SAP導入コンサル支援(SD)

要スキル:
・SAPプロジェクトにて要件定義経験5年以上 ・要件定義からカスタマイズの設定 ・SAP(SDモジュール)経験5年以上 ・コミュニケーション能力 【尚可】 ・リモート環境での作業経験
月額単価:
~1,300,000円 / 月
稼働場所:
フルリモート
稼働率:
100%
作業内容:
SAP導入コンサルポジションとして要件定義より参画予定となります。 ・要件定義の確認と課題対応 ・残課題の背景・内容を定義 ・SAPソリューションの検討・討議

【FI】

製造業向けS/4新規導入支援(FI-AP/AR)

要スキル:
SAP導入プロジェクトにおいてFI(AP/AR)コンサルタントとしての業務経験
月額単価:
~2,000,000円 / 月
稼働場所:
フルリモート
稼働率:
100%
作業内容:
S/4新規導入PJのFIメ(AP/AR)メンバーとして参画頂きAP/AR領域について以下を担当頂きます。  -業務フロー作成  -プロトシナリオ作成  -プロト用パラメータ設定、プロト実施  -課題対応(SAP標準を使ったソリューション検討)  -議事録作成など

【FI】

SAP HANAバージョンアップにおける会計機能設計支援

要スキル:
・FI領域の要件定義書から基本設計を現行を参考に作成し、  後続作業も出来る方。 ・SAP標準機能と会計業務に関する知識 <尚可> FI-AA経験、TRM経験
月額単価:
~900,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
SAP FIコンサルまたはJrコンサル S/4HANAへバージョンアップに向け、会計領域の要件定義フェーズ作業 ・現行SAPの調査支援(標準機能の含む) ・ToBe詳細業務フロー作成支援 ・現行アドオン調査・整理 ・ToBeアドオンへの置き換え時の実現ポイント調査・整理

【FI】

自動車メーカー向けS4HANA導入支援(FI/CO)

要スキル:
・FIもしくはCOモジュールでの業務要件定義の経験(導入~)
月額単価:
~950,000円 / 月
稼働場所:
広島県
稼働率:
100%
作業内容:
S4導入要件定義フェーズにおいて以下の業務を行っていただきます。 ・要件定義 ・業務フロー作成 ・既存Add-On整理&再設計 ・財務関連コード定義

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

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

SAPラボのライターの特徴

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

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

募集要項

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

ご応募/お問合せ先

info@sap-labo.com

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

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

この記事を書いた人

新卒でSAPエンジニアとしてABAPでの新規開発や保守業務を担当。
業務内容としてはロジ系(MM/SD)がメインで、ABAPの開発が最も得意。

この記事のポイント