【学習】SAP:ABAPの記述をしてみた【文法ルールの把握です】

CODE


ABAPの初学者
「SAPのプログラミング言語であるABAPを勉強したいです。ただ、どんな開発をして、何を学習したら良いのか?がよく分かっていないです。とりあえず、パッとコード記述して開発できる記事があれば助かるんだけどなぁ〜!」

こういった、疑問に答えます。

今日のポイント

  • 手順1:「処理選択」の部分を開発する方法
  • 手順2:「選択条件」の部分を開発する方法
完成図はこちらです。(SE38を使ってこちらを作成します。)
完成コードも載せておきます。
DATA:
	GW_LFART TYPE LIKP-LFART, "伝票タイプ
	GW_EBELN TYPE EKKO-EBELN, "購買発注
	GW_BSARK TYPE VBAK-BSARK, "購買発注タイプ
	GW_EKGRP TYPE EKKO-EKGRP, "購買グループ
	GW_CMNGV TYPE LIKP-CMNGV, "出荷日
	GW_VBELN TYPE LIKP-VBELN, "出荷伝票
	GW_BSTKD TYPE VBKD-BSTKD, "得意先参照
	GW_MATNR TYPE VBAP-MATNR, "品目コード
	GW_VSTEL TYPE VBAP-VSTEL. "出荷ポイント

SELECTION-SCREEN BEGIN OF BLOCK BL1 WITH FRAME TITLE TEXT-S01. 
PARAMETERS:
	R_JTSKSJ RADIOBUTTON GROUP RD1,
	R_XKTSSJ RADIOBUTTON GROUP RD1.
PARAMETERS:
	C_SISTRK AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK BL1.

SELECTION-SCREEN BEGIN OF BLOCK BL2 WITH FRAME TITLE TEXT-S02.
PARAMETERS:
	P_VKBUR TYPE LIPS-VKBUR,
	P_PRCTR TYPE LIPS-PRCTR,
	P_KUNAG TYPE LIKP-KUNAG,
	P_KUNNR TYPE VBAK-KUNNR,
	P_PERNR TYPE VBPA-PERNR,
	P_VBELN TYPE VBAK-VBELN.	
SELECT-OPTIONS:
	S_LFART FOR GW_LFART,
	S_EBELN FOR GW_EBELN,
	S_BSARK FOR GW_BSARK,
	S_EKGRP FOR GW_EKGRP,
	S_CMNGV FOR GW_CMNGV,
	S_VBELN FOR GW_VBELN,
	S_BSTKD FOR GW_BSTKD,
	S_MATNR FOR GW_MATNR,
	S_VSTEL FOR GW_VSTEL.
SELECTION-SCREEN END OF BLOCK BL2.

手順1:「処理選択」の部分を開発する方法

こちらを作成していきます。

外枠を作成する

  • ルール1:「枠」の記述は「SELECTION-SCREEN BEGIN OF BLOCK ブロック名」で記述する
  • ルール2:「枠」の「タイトル」は「WITH FRAME TITLE TEXT-SXX(XXは数字入力)」で記述する
  • ルール3:記述の「閉じタグ」である「SELECTION-SCREEN END OF BLOCK ブロック名」が必要
  • ルール4:「ブロック名」は「BEGIN OF」と「END OF」共に合わせる
SELECTION-SCREEN BEGIN OF BLOCK BL1 WITH FRAME TITLE TEXT-S01.
-------------コード記述-------------
SELECTION-SCREEN END OF BLOCK BL1.

枠のタイトル登録方法

※「有効化」しないと入力できないはずなので注意してください!

ラジオボタンの作成方法

  • ルール1:ラジオボタンを作成する際の変数名の頭文字は「R」にする
  • ルール2:変数の文字数は8文字「R_XXXXXX」で定義する
  • ルール3:ラジオボタンは「唯一性(1つのみ選択)」なので同じグループを2つ以上作成する

コードはこんな感じです。

PARAMETERS:
	R_JTSKSJ RADIOBUTTON GROUP RD1,
	R_XKTSSJ RADIOBUTTON GROUP RD1.

ラジオボタンの名前を変更する


Text部分に打ち込んだ文字が出力されるようになります。

チェックボックスの作成

  • ルール1:チェックボックスを作成する際の変数名の頭文字は「C」にする
  • ルール2:変数の文字数は8文字「C_XXXXXX」で定義する
  • ルール3:DEFAULTはオプション | ‘X’を入れると最初からチェックが入っている

コードはこんな感じです。

PARAMETERS:
	C_SISTRK AS CHECKBOX DEFAULT 'X'.

手順2:「選択条件」の部分を開発する方法

「選択条件」を作成していきます。

枠を作成する

要領は手順1で行ったこととほぼ同じです。

SELECTION-SCREEN BEGIN OF BLOCK BL2 WITH FRAME TITLE TEXT-S02.
---------------コード記述-----------------
SELECTION-SCREEN END OF BLOCK BL2.

フォーム作成

  • ルール1:PARAMETERSを使用する
  • ルール2:変数名は「P_項目名」で定義
  • ルール3:変数名の後はTYPEを用いる(基本・構造・テーブルデータの3つ)
  • ルール4:TYPEの後は「テーブル名ー項目名」で定義する
  • ルール5:テーブル名・項目名は「標準テーブル」を参照する

また、標準テーブルについてはこちらのサイトが
非常に参考になりましたので、シェアします。
標準テーブル
コードはこんな感じです。(とりあえず6つ)

PARAMETERS:
	P_VKBUR TYPE LIPS-VKBUR, "営業所
	P_PRCTR TYPE LIPS-PRCTR, "利益センタ
	P_KUNAG TYPE LIKP-KUNAG, "受注先
	P_KUNNR TYPE VBAK-KUNNR, "出荷先
	P_PERNR TYPE VBPA-PERNR, "営業担当
	P_VBELN TYPE VBAK-VBELN. "受注伝票

PARAMETERSの名前を変数名→日本語にする

要領は手順1と同じく「ジャンプタブ」から設定します。

こんな感じになります。

「」to「」フォーム作成:SELECT-OPTIONS

  • ルール1:SELECT-OPTIONSの変数名は「S」から始める
  • ルール2:FORの後は変数名を使う(変数名 FOR DATAで定義した変数名)
  • ルール3:FORで使う変数を「DATA」で定義する必要がある
  • ルール4:DATAで定義する変数名は頭文字に「GW_項目名」を記述する(GW=Global Work)

コードはこんな感じです。

DATA:
	GW_LFART TYPE LIKP-LFART, "伝票タイプ
	GW_EBELN TYPE EKKO-EBELN, "購買発注
	GW_BSARK TYPE VBAK-BSARK, "購買発注タイプ
	GW_EKGRP TYPE EKKO-EKGRP, "購買グループ
	GW_CMNGV TYPE LIKP-CMNGV, "出荷日
	GW_VBELN TYPE LIKP-VBELN, "出荷伝票
	GW_BSTKD TYPE VBKD-BSTKD, "得意先参照
	GW_MATNR TYPE VBAP-MATNR, "品目コード
	GW_VSTEL TYPE VBAP-VSTEL. "出荷ポイント

SELECT-OPTIONS:
	S_LFART FOR GW_LFART, "伝票タイプ
	S_EBELN FOR GW_EBELN, "購買発注
	S_BSARK FOR GW_BSARK, "購買発注タイプ
	S_EKGRP FOR GW_EKGRP, "購買グループ
	S_CMNGV FOR GW_CMNGV, "出荷日
	S_VBELN FOR GW_VBELN, "出荷伝票
	S_BSTKD FOR GW_BSTKD, "得意先参照         
	S_MATNR FOR GW_MATNR, "品目コード
	S_VSTEL FOR GW_VSTEL. "出荷ポイント

こんな感じで完成します。

完成エディタも載せておきます。

まとめ

今日のポイント

  • 手順1:「処理選択」の部分を開発する方法
  • 手順2:「選択条件」の部分を開発する方法

以上になります。
TwitterYouTubeStand.fmもしています。
フォロー・視聴していただけると泣いて喜びます。