Sap-abap-basic-syntax

提供:Dev Guides
移動先:案内検索

SAP ABAP-基本構文

声明

ABAPソースプログラムは、コメントとABAPステートメントで構成されています。 ABAPのすべてのステートメントはキーワードで始まり、ピリオドで終わります。ABAPでは大文字と小文字が区別されません。

プログラムの最初の非コメント行は、REPORTという単語で始まります。 レポートは常に、作成された実行可能プログラムの最初の行になります。 ステートメントの後に、以前に作成されたプログラム名が続きます。 その後、回線は完全に停止して終了します。

構文は-

REPORT [Program_Name].

[Statements…].

これにより、ステートメントは必要なだけエディター内の行を使用できます。 たとえば、レポートは次のようになります-

REPORT Z_Test123_01.

ステートメントは、コマンドと、ピリオドで終わる変数とオプションで構成されます。 期間がステートメントの最後に表示されている限り、問題は発生しません。 文が終了する場所をマークするのはこの期間です。

コードを書きましょう。

REPORTステートメントの下の行に、次のステートメントを入力します。「ABAPチュートリアル」と記述します。

REPORT Z_Test123_01.

Write 'This is ABAP Tutorial'.

文を書く際に考慮すべき4つのこと-

  • writeステートメントは、引用符で囲まれているものをすべて出力ウィンドウに書き込みます。
  • ABAPエディターは、単一引用符で囲まれたテキスト文字列を除くすべてのテキストを大文字に変換します。
  • 一部の古いプログラミング言語とは異なり、ABAPはステートメントが行のどこから始まるかを気にしません。 これを利用して、インデントを使用してコードのブロックを示すことにより、プログラムの可読性を向上させることができます。
  • ABAPには、ステートメントのレイアウトに関する制限はありません。 つまり、複数のステートメントを1行に配置したり、1つのステートメントを複数行に広げることができます。

コロン表記

各ステートメントの先頭が同一の場合、連続するステートメントを連結できます。 これは、コロン(:)演算子とコンマを使用して行われます。コンマは、ピリオドが通常のステートメントを終了するように、個々のステートメントを終了するために使用されます。

以下は、いくつかのキーストロークを保存できるプログラムの例です-

WRITE 'Hello'.
WRITE 'ABAP'.
WRITE 'World'.

コロン表記を使用して、このように書き換えることができます-

WRITE: 'Hello',
       'ABAP',
       'World'.

他のABAPステートメントと同様に、レイアウトは重要ではありません。 これは同様に正しい文です-

WRITE: 'Hello', 'ABAP', 'World'.

コメント

インラインコメントは、2つの方法のいずれかによってプログラム内のどこでも宣言することができます-

  • 行全体のコメントは、行の最初の位置にアスタリスク(*)を置くことで示されます。この場合、システムは行全体をコメントと見なします。 コメントは複数の行にまたがることはないため、ピリオドで終了する必要はありません-
* This is the comment line
  • 部分行コメントは、ステートメントの後に二重引用符( ")を入力することにより示されます。 二重引用符に続くすべてのテキストは、システムによってコメントと見なされます。 部分的な行のコメントは、複数の行にまたがってはならないため、ピリオドで終了する必要はありません-
WRITE 'Hello'. "Here is the partial comment

注意-コメント付きのコードは、ABAPエディターでは大文字になりません。

空白の抑制

NO-ZEROコマンドは、DATAステートメントの後に続きます。 空白を含む数値フィールドのすべての先行ゼロを抑制します。 通常、出力はユーザーにとって読みやすいです。

REPORT Z_Test123_01.

DATA: W_NUR(10) TYPE N.
      MOVE 50 TO W_NUR.
      WRITE W_NUR NO-ZERO.

上記のコードは、次の出力を生成します-

50

注意-NO-ZEROコマンドがない場合、出力は0000000050

空白行

SKIPコマンドは、ページに空白行を挿入するのに役立ちます。

メッセージコマンドは次のとおりです-

WRITE 'This is the 1st line'.
SKIP.
WRITE 'This is the 2nd line'.

上記のメッセージコマンドは、次の出力を生成します-

This is the 1st line
This is the 2nd line

SKIPコマンドを使用して、複数の空白行を挿入できます。

SKIP number_of_lines.

出力は、行数で定義される複数の空白行になります。 SKIPコマンドは、ページ上の目的の行にカーソルを置くこともできます。

SKIP TO LINE line_number.

このコマンドは、ページの上下にカーソルを動的に移動するために使用されます。 通常、このコマンドの後にWRITEステートメントが発生して、目的の行に出力が書き込まれます。

行の挿入

ULINEコマンドは、出力に水平線を自動的に挿入します。 線の位置と長さを制御することもできます。 構文は非常に簡単です-

ULINE.

メッセージコマンドは次のとおりです-

WRITE 'This is Underlined'.
ULINE.

上記のコードは、次の出力を生成します-

This is Underlined (and a horizontal line below this).

メッセージ

MESSAGEコマンドは、プログラムの先頭にあるREPORTステートメントで指定されたメッセージIDで定義されたメッセージを表示します。 メッセージIDは、MESSAGEコマンドが使用されたときにプログラムがアクセスする1,000メッセージのセットを定義する2文字のコードです。

メッセージには、000から999までの番号が付けられています。 各番号には、最大80文字のメッセージテキストが関連付けられています。 メッセージ番号が呼び出されると、対応するテキストが表示されます。

以下は、Messageコマンドで使用する文字です-

Message Type Consequences
E Error The message appears and the application halts at its current point. If the program is running in background mode, the job is canceled and the message is recorded in the job log.
W Warning The message appears and the user must press Enter for the application to continue. In background mode, the message is recorded in the job log.
I Information A pop-up window opens with the message text and the user must press Enter to continue. In background mode, the message is recorded in the job log.
A Abend This message class cancels the transaction that the user is currently using.
S Success This provides an informational message at the bottom of the screen. The information displayed is positive in nature and it is just meant for user feedback. The message does not impede the program in any way.
X Abort This message aborts the program and generates an ABAP short dump.

通常、エラーメッセージは、ユーザーが行うべきではないことをユーザーが実行できないようにするために使用されます。 警告メッセージは、通常、ユーザーにアクションの結果を思い出させるために使用されます。 情報メッセージは、ユーザーに役立つ情報を提供します。

メッセージID ID ABのメッセージを作成すると、MESSAGEコマンド-MESSAGE E011は次の出力を与えます-

EAB011 This report does not support sub-number summarization.