ABAP の概要: データ型、 Operaトールとエディタ – チュートリアル

⚡ スマートサマリー

ABAP入門では、言語について説明します。 SAP R/3システム上でアプリケーションを構築するために作成された資料です。この資料では、データ型、演算子、制御文、内部テーブル、およびすべてのABAPプログラムの開始点となるSE38エディタについて解説しています。

  • 🔤 宣言構文: DATA variable_name TYPE variable_type は、ABAP のすべての変数を宣言します。
  • 🔢 データ型: I、F、Pには数値が格納され、C、D、N、Tには文字が格納され、Xには16進数のデータが格納されます。
  • Operators: 算術演算子は値を変更する一方、EQ、NE、GT、LTなどの論理演算子は判断を下す。
  • 🔁 制御文: IF、CASE、WHILE、DOは、プログラムのどの行が実際に実行されるかを決定します。
  • ???? 内部テーブル: 内部テーブルはメモリ上に複数の行を保持し、すべてのABAPレポートの中核を成すものです。
  • 甘いもの<XNUMXxXNUMX><XNUMXxXNUMX><XNUMXxAXNUMX><XNUMXxAXNUMX>️️ エディタ: トランザクションSE38はABAPエディタであり、プログラムの作成、チェック、実行を行う場所です。

はじめに SAP ABAP

ABAPとは何ですか?

ABAPはAdvanced Business Application Programmingの略です。これは、開発のためのプログラミング言語です。ping アプリケーション SAP R/3 システム。

ABAPの最新バージョンはABAP Objectsと呼ばれ、オブジェクト指向プログラミングをサポートしています。 SAP ABAP/4、以前の ABAP バージョン、および ABAP オブジェクトを使用するアプリケーションを使用して作成されたアプリケーションを実行します。

この序文は、すべてを文書化しようとするものではありません。 ABAP言語 本書は、重要な概念を素早く紹介することで、実際に動作するプログラムの作成を開始し、その後、より高度なトピックへと進むことができるように設計されています。

データ型

すべてのABAPプログラムは、まず扱うデータを宣言することから始まります。

ABAP で変数を宣言するための構文 –

DATA Variable_Name TYPE Variable_Type.

例:

DATA employee_number TYPE I.

以下は、ABAPでサポートされているデータ型の一覧です。

Data Type 初期フィールド長 有効なフィールド長 初期値 意味
数値型
I 4 4 0 整数(整数)
F 8 8 0 浮動小数点数
P 8 1 – 16 0 パック数
文字の種類
C 1 1 – 65535 「…」 テキストフィールド(英数字)
D 8 8 '00000000' 日付フィールド(形式:YYYYMMDD)
N 1 1 – 65535 「0…0」 数値テキストフィールド(数字文字)
T 6 6 '000000' 時刻フィールド(形式:HHMMSS)
XNUMX進数タイプ
X 1 1 – 65535 X'0 … 0' XNUMX 進フィールド

上記の8種類は、古典的な固定長タイプです。ABAPには、初心者がすぐに遭遇する2種類の可変長タイプもあります。 STRING 任意の長さのテキストに対して、 XSTRING 任意の長さのバイナリデータに対応。

ABAP Operaトー

データが宣言されると、それを変更したり比較したりするのは演算子です。

値の割り当て

a = 16.
MOVE 16 TO a.
WRITE a TO b.

これら3つのステートメントはすべて値を移動します。等号は現代的な形式であり、MOVEとWRITE TOは古い形式の同等物で、レガシープログラムで今でも見かけることがあります。

算術演算

COMPUTE a = a * 100.

ABAPはADD、SUBもサポートしていますTRACT、MULTIPLY、DIVIDEは単独のキーワードとして使用できますが、上記に示したCOMPUTE形式が最もよく使用されます。

論理演算子

論理演算子は真または偽を返し、次のセクションのすべての制御文はこれらをテストします。それぞれに単語形式と記号形式があり、両者は互換性があります。

ワードフォーム 記号形式 意味
EQ = に等しい
NE <> 等しくない
GT > 越える
GE >= 以上
LT < Less より
LE <= Less 以上

制御ステートメント

制御文は、上記の論理演算子を使用して、どのコード行を実行するか、またどのくらいの頻度で実行するかを決定します。

IF … ENDIF

IF [NOT] exp [ AND / OR [NOT] exp ].
  ........
[ELSEIF exp.
  .......]
[ELSE.
  .......]
ENDIF.

CASE文

CASE variable.
  WHEN value1.
    .........
  WHEN value2.
    .........
  [WHEN OTHERS.
    .........]
ENDCASE.

WHILEループ

WHILE <logical expression>.
  .....
ENDWHILE.

DOループ

DO <n> TIMES.
  .....
ENDDO.

WHILEループは、条件が満たされている間実行されます。DOループは、一定回数実行されるか、EXIT文によって停止されるまで無限に実行されます。

ABAPにおける内部テーブル

単一の変数だけでは不十分な場合がほとんどです。ビジネスプログラムは一度に多数の行を読み込み、内部テーブルはそれらをメモリ内に保持するための構造体です。

内部テーブルは動的配列です。固定サイズはなく、プログラムの実行期間中のみ存在し、データベースと画面間で行をやり取りする標準的な方法です。

" Declare an internal table and a work area
DATA: lt_employees TYPE TABLE OF pa0001,
      ls_employee  TYPE pa0001.

" Fill it from the database
SELECT * FROM pa0001 INTO TABLE lt_employees UP TO 10 ROWS.

" Read it row by row
LOOP AT lt_employees INTO ls_employee.
  WRITE: / ls_employee-pernr, ls_employee-ename.
ENDLOOP.

上記の3つの操作は、日常業務のほとんどをカバーします。テーブルの宣言、SELECT文によるデータの挿入、そしてLOOP ATによるテーブル内のデータの走査です。APPENDは行を追加し、READ TABLEは行を検索し、DELETEは条件に一致する行を削除します。

ABAP/4 エディター

上記の構文はすべて一箇所に入力されます。

トランザクション SE38 ABAPエディタが開きます。開発者として、プログラムの作成や修正にほとんどの時間を費やすことになります。

ABAP/4 エディター

ABAP/4エディタ、トランザクションSE38

初めてのABAPプログラムの書き方

上記の画面は、以下の手順を実行する場所です。以下の手順を実行すると、数分で実用的なレポートが作成されます。

  1. エディターを開きます。 トランザクションコードを入力してください SE38 に選出しました。 SAP GUIコマンドフィールドに入力し、Enterキーを押してください。
  2. プログラム名を挙げてください。 で始まる名前を入力してください Z or Y例えば、 ZHELLO_WORLDそれらの2文字は顧客ネームスペースであり、 SAP アップグレード中にそれらを上書きしないことを保証します。
  3. 作成する。 詳しくはこちら 創造する短い説明を入力し、 実行可能プログラム タイプとしては。
  4. パッケージを割り当てます。 選択する ローカルオブジェクト 練習用です。ローカルオブジェクトはシステム内に保持され、転送リクエストは不要です。
  5. コードを書いてください。
REPORT zhello_world.

DATA employee_name TYPE string.
employee_name = 'Guru99'.

WRITE: / 'Hello, ABAP!',
       / 'Welcome', employee_name.
  1. 構文を確認してください。 メディア掲載 Ctrlキー+ F2ステータスバーには、エラーとその原因となった行番号が表示されます。
  2. プログラムを有効化してください。 メディア掲載 Ctrlキー+ F3非アクティブなプログラムは実行できません。
  3. 実行します。 メディア掲載 F8出力リストが開き、両方のWRITE行が表示されます。

WRITE文のスラッシュは改行を強制します。これを削除すると、すべてが1行に表示されます。これは、初心者が最初に身につける書式設定の習慣です。

共通ABAPトランザクション Codes

少数のトランザクションコードで、新規ABAP開発者が必要とするほぼすべての機能を網羅できます。

トランザクション 目的
SE38 ABAPエディタ。プログラムの作成、編集、チェック、実行が可能です。
SE80 オブジェクトナビゲーター。プログラム、クラス、パッケージ、画面をまとめて操作できる単一のワークベンチ。
SE11 ABAPディクショナリ。データベーステーブル、データ要素、ドメインを定義および検査します。
SE16N データブラウザ。SELECT文を書かずに、任意のテーブルの内容を表示できます。
SE37 関数ビルダー。関数モジュールを作成してテストします。
SE24 クラスビルダー。ABAPオブジェクト用のグローバルクラスを作成します。
ST22 ダンプ解析。プログラム終了時に発生する実行時エラーを読み取ります。

SE38とSE11があれば、最初のレポートを作成するのに十分です。ST22は、プログラムがクラッシュした瞬間に、このグループの中で最も価値の高いものとなります。

よくあるご質問

ZとYは顧客ネームスペースを構成する。 SAP これらの接頭辞を持つオブジェクトは出荷されないため、アップグレードによってプログラムが上書きされることはありません。ただし、その名前空間外の名前は置き換えられる可能性があります。

ABAP/4は、レポートとサブルーチンを基盤とした手続き型言語です。ABAP Objectsは、クラス、インターフェース、継承といった機能を追加します。どちらも同じシステム上で動作するため、古いコードと新しいコードが共存できます。

パック型であるPを使用してください。Pは小数点以下の桁数を正確に格納できるため、お金の計算には最適です。F型は浮動小数点数であり、丸め誤差が生じるため、合計金額の計算結果が信頼できなくなります。

はい。AIアシスタントはダンプの説明、擬似コードのABAPへの変換、より簡潔なループの提案などを行うことができます。生成されたコードはシステムに存在しないテーブルを参照する可能性があるため、必ず構文チェックを実行してください。

レビューなしでは使用しないでください。生成されたコードは、権限チェック、パフォーマンスルール、ABAP Cloudで公開されているAPIリストを無視していることがよくあります。これはあくまでも最初のドラフトとして扱い、他のコードと同様にテストしてください。