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

ABAP/PARAMETERS の変更点

Top/ABAP/PARAMETERS

画面の項目を定義する命令の一つ。
この命令を記述すると、[[Dynpro>ABAP/Dynpro]]1000が生成される。

* 概要 [#jbc9669d]
選択画面に実行条件を入力させるために利用し、形式については型やラジオボタンに関わるオプションで規定する。

特徴としては、パラメータの名称は8文字までであること、[[SELECT-OPTIONS>ABAP/SELECT-OPTIONS]]と違いアスタリスクによるワイルドカードが利用できないことなどが挙げられる。

** DEFAULT x [#l31fb800]
*** 用法 [#ka667410]
そのパラメータの初期値を定義する。
ユーザマスタに割当済の[[ユーザパラメータ>SAPの共通用語/ユーザパラメータ]]や[[システム変数>ABAP/システム変数]]などを利用する目的が一般的か。

なお、上記以外のものを使う場合は、この値が設定されるのはごく初期のタイミングであるため、[[変数>アドオン/変数]]でなく[[リテラル>ABAP/リテラル]]とするのが適切のようだ。

*** サンプル [#g5777804]
# PARAMETERS : P_DATE TYPE SY-DATLO DEFAULT SY-DATLO.
 PARAMETERS : P_DATE TYPE SY-DATLO DEFAULT SY-DATLO.

** TYPE x [#d327ae37]
*** 用法 [#s49ae800]
選択項目の型を規定する方法。
ただ、ラジオボタンやチェックボックスを除けば選択項目はそもそもデータ抽出に使われることが多いので、あまり使用頻度は高くないだろう。
*** サンプル [#y017ff19]
# PARAMETERS : P_CHAR(4) TYPE C.
 PARAMETERS : P_CHAR(4) TYPE C.

** LENGTH x [#kaf7ed8d]
*** 用法 [#t53c780b]
上記TYPEの長さを規定するオプション。
当然ながら、型はCNXPの何れかに限られる。
*** サンプル [#ve93734f]
# PARAMETERS : P_CHAR TYPE C LENGTH 4.
 PARAMETERS : P_CHAR TYPE C LENGTH 4.

** DECIMALS x [#j17266f8]
*** 用法 [#la53f663]
業務アプリケーションではあまり使わないかと思うが、指定の小数点以下桁数を持つパラメータを定義する。
型はPである必要がある。
*** サンプル [#fedf041f]
# PARAMETERS : P_AMOUNT TYPE P DECIMALS 5.
 PARAMETERS : P_AMOUNT TYPE P DECIMALS 5.

** LIKE x [#zb28d8ad]
*** 用法 [#f990cc71]
[[データオブジェクト>アドオン/データオブジェクト]]を参照する場合に利用する。
が、パラメータ宣言時点で定義されている[[データオブジェクト>アドオン/データオブジェクト]]、更に言えば[[グローバル変数>アドオン/グローバル変数]]である必要があるため、これを参照しなければならないシーンはあまりないだろう。
当然ながら、参照元がリポジトリオブジェクトの場合は[[TYPE>ABAP/TYPE]]を使うこと。
*** サンプル [#fac01305]
# PARAMETERS : P_AMOUNT LIKE G_AMOUNT.
 PARAMETERS : P_AMOUNT LIKE G_AMOUNT.

** MEMORY ID x [#g262c8cf]
*** 用法 [#r79de630]
選択画面の値に[[ユーザパラメータ>SAPの共通用語/ユーザパラメータ]]を採用する場合。
[[ユーザマスタ>SAPの共通用語/ユーザマスタ]]に予め設定してある値、あるいは直前に入力または処理した値が表示されるため、大した手間ではないがコレをつけるだけで利用者にとっての使い心地はかなり上がる。

具体的には伝票番号や[[品目マスタ]]などの各種マスタが相当するが、''心して入力・選択してほしい''という場合には敢えて実装しないことも必要。

ちなみに引用符なしで直接入力すること。
*** サンプル [#rbf3ddc8]
# PARAMETERS : P_VKORG TYPE VBAK-VKORG MEMORY ID VKO/
 PARAMETERS : P_VKORG TYPE VBAK-VKORG MEMORY ID VKO/

** MATCHCODE OBJECT x [#kb25fe31]
項目に[[検索ヘルプ>SAPのオブジェクト/検索ヘルプ]]を設定する場合に利用する。
通常はリポジトリ参照で定義すれば、その項目の[[データエレメント>SAPのオブジェクト/データエレメント]]や割り当てられている[[ドメイン>SAPのオブジェクト/ドメイン]]が自動的に割り当てられるが、標準とは異なるものを[[アドオン]]で利用したい場合、リポジトリを参照せずに割り当てたい場合などに利用する。

*** 用法 [#g7941638]
*** サンプル [#j19bee13]
# PARAMETERS P_VBELN TYPE VBRK-VBELN MATCHCODE OBJECT VMCF.
 PARAMETERS P_VBELN TYPE VBRK-VBELN MATCHCODE OBJECT VMCF.

** MODIF ID x [#d1c2e6d9]
*** 用法 [#e046b785]
[[Dynpro>ABAP/Dynpro]]項目をグルーピングすることで、画面上の属性を制御する。

*** サンプル [#p9c5a4d9]
下記は、パラメータに割り当て、[[イベントブロック>ABAP/イベントブロック]]で制御するというもの。

# PARAMETERS :
#   P_PROC  AS CHECKBOX,
#   P_MATNR TYPE MARA-MATNR MODIF ID xx.
# 
# AT SELECTION-SCREEN OUTPUT.
# 
#   IF ( P_PROC = 'X' )
#     LOOP AT SCREEN.
#       IF ( SCREEN-GROUP = xx ).
#         SCREEN-INPUT
#       ENDIF.
#     ENDLOOP.
#   ENDIF.
 PARAMETERS :
   P_PROC  AS CHECKBOX,
   P_MATNR TYPE MARA-MATNR MODIF ID xx.
 
 AT SELECTION-SCREEN OUTPUT.
 
   IF ( P_PROC = 'X' )
     LOOP AT SCREEN.
       IF ( SCREEN-GROUP = xx ).
         SCREEN-INPUT
       ENDIF.
     ENDLOOP.
   ENDIF.

** NO-DISPLAY [#l718d0bd]
*** 用法 [#u43b69fe]
非表示パラメータの定義に使用する。
例えば[[ユーザパラメータ>SAPの共通用語/ユーザパラメータ]]からの誘導や[[会社コード>財務会計/会社コード]]から誘導する[[勘定コード表>財務会計/勘定コード表]]の退避など。

が、別に[[バリアント>SAPのオブジェクト/バリアント]]による非表示で困ることもあまりないので、敢えて使う機会は多くないだろう。
*** サンプル [#s05ab85b]
# PARAMETERS :
#   P_BUKRS TYPE BKPF-BUKRS NO-DISPLAY.
 PARAMETERS :
   P_BUKRS TYPE BKPF-BUKRS NO-DISPLAY.

** LOWER CASE [#af34a89a]
*** 用法 [#m26691fe]
SAPでは[[ドメイン>SAPのオブジェクト/ドメイン]]で小文字を認識するフラグが設定されている場合を除いては全てが大文字で認識されるが、これにより小文字も認識されることとなる。
小文字として認識したい場合についても多くはリポジトリ参照で型を切るため、あまり使う機会はない。
*** サンプル [#v5eef481]
# PARAMETERS :
#   P_CHAR TYPE C LOWER CASE.
 PARAMETERS :
   P_CHAR TYPE C LOWER CASE.

** OBLIGATORY [#o0ed85c8]
*** 用法 [#t67d3a36]
項目を必須入力としたい場合に用いる。
注意すべきなのは、SAPでは必須チェックは非常に速いタイミングで実行されるため、特定のラジオボタンやチェックボックスが指定された場合など''条件付きで必須とするケースでは利用できない''こと。
[[会計伝票>財務会計/会計伝票]]検索系のレポートにおける[[会社コード>財務会計/会社コード]]やパフォーマンス対策上で指定させたい抽出項目など、無条件で必須とする場合には有用。
*** サンプル [#ld5226e1]
# PARAMETERS :
#   P_BUKRS TYPE BKPF-BUKRS OBLIGATORY.
 PARAMETERS :
   P_BUKRS TYPE BKPF-BUKRS OBLIGATORY.

** AS CHECKBOX [#g7fd4b93]
*** 用法 [#x9c2023b]
画面上にチェックボックスを設けたい場合に使用する。
型はCHARの1と決まっており、取り得る値はブランクと大文字Xの二つ。

USER-COMMANDオプションでイベントを割り当てることもできる。

なお、デフォルトではチェックボックスの右側にキャプションが表示されるため、並びや配置が気に入らなければ[[SELECTION-SCREEN>ABAP/SELECTION-SCREEN]]命令で調整するといい。
*** サンプル [#e5beaf3d]
# PARAMETERS :
#   P_CB1 AS CHECKBOX.
 PARAMETERS :
   P_CB1 AS CHECKBOX.

** RADIOBUTTON GROUP x [#b91373fc]
*** 用法 [#h915ebd9]
いわゆるラジオボタン。
なお、[[Dynpro>ABAP/Dynpro]]にリンクするエレメントの一つで、ラジオボタングループに割り当てることで、グルーピングする。

チェックボックスと同じく、型はCHARの1と決まっており取り得る値はブランクと大文字Xの二つで、USER-COMMANDオプションでイベントを割り当てることもできる。

[[AT SELECTION-SCREEN>ABAP/AT SELECTION-SCREEN]]イベントを利用する場合は、ON〜でなくON RADIOBUTTON GROUP〜を用いること。

*** サンプル [#u3b3ee87]
# PARAMETERS :
#   P_RAD1 RADIOBUTTON GROUP Z1 DEFAULT 'X',
#   P_RAD2 RADIOBUTTON GROUP Z1.
 PARAMETERS :
   P_RAD1 RADIOBUTTON GROUP Z1 DEFAULT 'X',
   P_RAD2 RADIOBUTTON GROUP Z1.

**  FOR TABLE x [#leb6a1c3]
*** 用法 [#kc0ca899]
*** サンプル [#p01883ca]
# 
# 
 
 

** FOR NODE x [#hb3c5dd0]
*** 用法 [#ke97ea20]
*** サンプル [#j1936270]
# 
# 
 
 

** AS SEARCH PATTERN x [#l12e0fdc]
*** 用法 [#s041bb12]
*** サンプル [#u6033120]
# 
# 
 
 

** VALUE-REQUEST [#n5634c3d]
*** 用法 [#c3edb417]
*** サンプル [#u1578a32]
# 
# 
 
 

** HELP-REQUEST [#d6847e88]
*** 用法 [#r560ebcd]
*** サンプル [#lb69bb1c]
# 
# 
 
 

** VISIBLE LENGTH x [#j2596c51]
*** 用法 [#y4027d2f]
*** サンプル [#oe2d29ae]
# 
# 
 
 

** VALUE CHECK [#t42908c7]
*** 用法 [#a636c54c]
*** サンプル [#d73865ce]
# 
# 
 
 

** LIKE (x) [#ff9edc56]
*** 用法 [#p006c537]
*** サンプル [#v8defc60]
# 
# 
 
 

** AS LISTBOX [#sf24decf]
*** 用法 [#w7f91a8d]
*** サンプル [#j4dc3a0f]
# 
# 
 
 

** AS USER-COMMAND x [#u428188e]
*** 用法 [#hc49c9e0]
*** サンプル [#ma6cded0]
# 
# 
 
 

* その他 [#bd1eb80f]
メニューから[[テキストエレメント>ABAP/テキストエレメント]]→選択テキストと進み、パラメータのテキストを定義可能で、ディクショナリ参照にもできる。
翻訳漏れの防止や標準化の観点から、余程わかりにくいものでなければディクショナリ参照を推奨。

~
~
CENTER:【スポンサードリンク】
#htmlinsert(amazon_book_sap_system_implement)
~
~
----
#pcomment(reply)