ABAP の変更点
Top/ABAP
- 追加された行はこの色です。
- 削除された行はこの色です。
- ABAP へ行く。
- ABAP の差分を削除
Advanced Business Application Programmingの略で、SAPが追加開発の手段として提供している言語。読みはアバップ。 テーブル名をダブルクリックすると項目照会画面に飛べたり、[[レポートプログラム>ABAP/レポートプログラム]]であれば入力項目を書いただけで勝手に画面([[Dynpro>ABAP/Dynpro]]:1000)が生成されたり、他の言語と比べると簡易に組むことができる。 ---- #contents ---- * はじめに [#s6145255] どの言語でも一緒だが、コードの振る舞いには順次・選択・繰返しか存在しない。 どの言語でも一緒だが、コードには順次・選択・繰返の三種類しか存在しない。 このシンプルな使い分けに即したコードを如何に書いていくか、部品レベルで言及していこうと思う。 なお、考え方や姿勢については[[実装>アドオン/実装]]の項、作りが大きく異なるため別出しした[[Dynpro>ABAP/Dynpro]]をそれぞれ参照されたい。 よく筆者は「料理人が包丁や鍋を使い分けるのは、何故だと思う?」と[[開発者>プロジェクト/開発者]]に問いかける。 それなりの答えが返ってくることもあるが、''じゃあ、できているか?''と更に問うと、Yesと言う人もソースを見れば「嘘でーす」と書いてある。 食材相手ならできて、コードが相手ならできないという道理はない。 ジュニアはより留意し、シニアも自分のモノ作りを今一度見直してみようじゃないか。 * 基本的なルール [#b2efe828] ** 記述ルール [#q4c889e5] -命令と命令の区切り文字はピリオド。 -値そのものを除いては、大文字と小文字の区別は無い。 -丸括弧は、複数の式をまとめる場合、メソッド等の呼び出し、[[SELECT>ABAP/SELECT]]のINTO句などに使用する。 -[[チェーン命令>ABAP/チェーン命令]]が使用可能。'':''と'',''で区切る。 -プログラムに直接干渉しない = コンパイラが無視するソースをコメントと呼び、下記の規則で記載する。 --行コメント ''*''はじまりの場合、行自体がコメントとなる。 --部分コメント 行の途中で''"''が存在すると、その文字以降~行末までがコメント扱いとなる。 --疑似コメント 部分コメントとして''#EC''と記述すると、[[拡張構文チェック>ABAP/拡張構文チェック]]で引っ掛からなくなる。 ぶっちゃけ誤魔化し以外の何物でもないので、忘れていい。 -[[変数>アドオン/変数]]や[[定数>アドオン/定数]]、[[データオブジェクト>アドオン/データオブジェクト]]など定義可能な全てに共通の命名規約は下記の通り。 --[[予約語>アドオン/予約語]]は使えない。''!''を頭に付けると(Ex. ![[CHANGING>ABAP/CHANGING]])使えるらしいが、使うな。 --事前定義されたもの([[リポジトリオブジェクト>SAPのオブジェクト#ref1984a]])の使用も不可。 --''/''も可だが、使用可能な文字は、''A~Z''、''0~9''、''_''のいずれか。 --長さは最大30文字まで。 --[[FIELD-SYMBOLS>ABAP/FIELD-SYMBOLS]]を使用する場合は、オブジェクト名を''<''と''>''で囲むこと。 -[[オフセット>ABAP/オフセット]] 長いので、リンク先参照のこと。 ** 演算子 [#o0e89a52] -代入演算子(''=''、''?='') 基本のき。 「EQ」でも代替できるが、混在させる理由はないためレンジテーブルでの指定を除きイコールの方に統一するのが一般的。 -算術演算子(''+''、''-''、''*''、''**''、''/'') この辺は、見ての通り四則演算に使用する。 加算は[[ADD>ABAP/ADD]]、減算は[[SUBTRACT>ABAP/SUBTRACT]]、乗算は[[MULTIPLY>ABAP/MULTIPLY]]、除算は[[DIVIDE>ABAP/DIVIDE]]や[[DIV>ABAP/DIV]]でも代替可能だが、EQと同じく混在させることに意味がないため、一文字記号の方で統一するのが一般的。 -関係演算子(''=''、''<>''、''>''、''<''、''>=''、''<='') これらは比較に用いるが、以上・以下を表す場合のイコールは、<=のように右側に書く。 理由は、SAPがそうしろと言っているから。((恐らく、[[正規化>アドオン/正規化]]の観点かと思う)) 上記の代入演算子や算術演算子と同じく、レンジテーブルでの指定を除きGTやLTなどの指定は行わずこれらの記号に寄せるのが一般的。 -ブール演算子(''[[AND>ABAP/AND]]''、''[[OR>ABAP/OR]]''、''[[NOT>ABAP/NOT]]'') [[IF>ABAP/IF]]や[[CHECK>ABAP/CHECK]]など、分岐や判定でよく用いる。 -ビット演算子(''[[BIT-AND>ABAP/BIT-AND]]''、''[[BIT-OR>ABAP/BIT-OR]]''、''[[BIT-XOR>ABAP/BIT-XOR]]''、''[[BIT-NOT>ABAP/BIT-NOT]]'') 筆者は使用したことが無く、具体的な用途がわからん。 -リテラル演算子(''&'') これも。 ** 代表的な用語 [#tfc1d2d2] -[[オペランド>ABAP/オペランド]] 処理の対象となるもの。[[変数>アドオン/変数]]だったり[[定数>アドオン/定数]]だったり。 -[[リテラル>ABAP/リテラル]] ベタ打ちされた値、と解釈して構わない。これを使用するとトレーサビリティの低下や修正の抜け漏れが発生しやすいので、お勧めしない。 * 命令 [#a1076caa] ** イベント [#g608cdfb] -[[AT SELECTION-SCREEN>ABAP/AT SELECTION-SCREEN]] -[[START-OF-SELECTION>ABAP/START-OF-SELECTION]] -[[INITIALIZATION>ABAP/INITIALIZATION]] -[[END-OF-SELECTION>ABAP/END-OF-SELECTION]] -[[LOAD-OF-PROGRAM>ABAP/LOAD-OF-PROGRAM]] ** 宣言 [#bcd76ade] -変数等の宣言 --[[DATA>ABAP/DATA]] --[[TYPES>ABAP/TYPES]] --[[TYPE>ABAP/TYPE]] --[[LIKE>ABAP/LIKE]] --[[CONSTANTS>ABAP/CONSTANTS]] -画面パラメータ --[[PARAMETERS>ABAP/PARAMETERS]] --[[SELECT-OPTIONS>ABAP/SELECT-OPTIONS]] -受け渡し --[[USING>ABAP/USING]] --[[CHANGING>ABAP/CHANGING]] --[[TABLES>ABAP/TABLES]] ** 処理 [#yd7e2932] -順次 --[[ADD>ABAP/ADD]] --[[MOVE>ABAP/MOVE]] --[[WRITE>ABAP/WRITE]] --[[TRANSLATE>ABAP/TRANSLATE]] --[[READ TABLE>ABAP/READ TABLE]] --[[ASSIGN>ABAP/ASSIGN]] --[[CREATE DATA>ABAP/CREATE DATA]] -選択 --[[IF>ABAP/IF]] --[[CASE>ABAP/CASE]] -繰返 --[[LOOP>ABAP/LOOP]] --[[DO>ABAP/DO]] --[[WHILE>ABAP/WHILE]] * 関連 [#v6abd598] [[ABAP/トランザクションコード]] [[ABAP/関連テーブル]] [[ABAP/分野メニュー]] ~ ~ CENTER:【スポンサードリンク】 #htmlinsert(amazon_book_sap_system_implement) ~ ~ ---- #pcomment(reply)