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

ABAP

Last-modified: 2020-07-02 (木) 13:20:00
Top/ABAP

Advanced Business Application Programmingの略で、SAPが追加開発の手段として提供している言語。読みはアバップ。

テーブル名をダブルクリックすると項目照会画面に飛べたり、レポートプログラムであれば入力項目を書いただけで勝手に画面(Dynpro:1000)が生成されたり、他の言語と比べると簡易に組むことができる。



はじめに

どの言語でも一緒だが、コードには順次・選択・繰返の三種類しか存在しない。

このシンプルな使い分けに即したコードを如何に書いていくか、部品レベルで言及していこうと思う。 なお、考え方や姿勢については実装の項、作りが大きく異なるため別出ししたDynproをそれぞれ参照されたい。

よく筆者は「料理人が包丁や鍋を使い分けるのは、何故だと思う?」と開発者に問いかける。 それなりの答えが返ってくることもあるが、じゃあ、できているか?と更に問うと、Yesと言う人もソースを見れば「嘘でーす」と書いてある。

食材相手ならできて、コードが相手ならできないという道理はない。 ジュニアはより留意し、シニアも自分のモノ作りを今一度見直してみようじゃないか。

基本的なルール

記述ルール

  • 命令と命令の区切り文字はピリオド。
  • 値そのものを除いては、大文字と小文字の区別は無い。
  • 丸括弧は、複数の式をまとめる場合、メソッド等の呼び出し、SELECTのINTO句などに使用する。
  • チェーン命令が使用可能。:,で区切る。
  • プログラムに直接干渉しない = コンパイラが無視するソースをコメントと呼び、下記の規則で記載する。
    • 行コメント *はじまりの場合、行自体がコメントとなる。
    • 部分コメント 行の途中で"が存在すると、その文字以降~行末までがコメント扱いとなる。
    • 疑似コメント 部分コメントとして#ECと記述すると、拡張構文チェックで引っ掛からなくなる。 ぶっちゃけ誤魔化し以外の何物でもないので、忘れていい。
  • 変数定数データオブジェクトなど定義可能な全てに共通の命名規約は下記の通り。
    • 予約語は使えない。!を頭に付けると(Ex. !CHANGING)使えるらしいが、使うな。
    • 事前定義されたもの(リポジトリオブジェクト)の使用も不可。
    • /も可だが、使用可能な文字は、A~Z0~9_のいずれか。
    • 長さは最大30文字まで。
    • FIELD-SYMBOLSを使用する場合は、オブジェクト名を<>で囲むこと。
  • オフセット 長いので、リンク先参照のこと。

演算子

  • 代入演算子(=?=) 基本のき。 「EQ」でも代替できるが、混在させる理由はないためレンジテーブルでの指定を除きイコールの方に統一するのが一般的。
  • 算術演算子(+-***/) この辺は、見ての通り四則演算に使用する。 加算はADD、減算はSUBTRACT、乗算はMULTIPLY、除算はDIVIDEDIVでも代替可能だが、EQと同じく混在させることに意味がないため、一文字記号の方で統一するのが一般的。
  • 関係演算子(=<>><>=<=) これらは比較に用いるが、以上・以下を表す場合のイコールは、<=のように右側に書く。 理由は、SAPがそうしろと言っているから。*1 上記の代入演算子や算術演算子と同じく、レンジテーブルでの指定を除きGTやLTなどの指定は行わずこれらの記号に寄せるのが一般的。
  • ブール演算子(ANDORNOTIFCHECKなど、分岐や判定でよく用いる。
  • ビット演算子(BIT-ANDBIT-ORBIT-XORBIT-NOT) 筆者は使用したことが無く、具体的な用途がわからん。
  • リテラル演算子(&) これも。

代表的な用語

  • オペランド 処理の対象となるもの。変数だったり定数だったり。
  • リテラル ベタ打ちされた値、と解釈して構わない。これを使用するとトレーサビリティの低下や修正の抜け漏れが発生しやすいので、お勧めしない。

命令

イベント

宣言

処理

関連

ABAP/トランザクションコード ABAP/関連テーブル ABAP/分野メニュー



【スポンサードリンク】
  




コメントはありません。 Comments/ABAP

お名前: