SAPの画面バリアントとは検索画面や実行条件指定画面にて入力した項目値を記憶させておく機能のこと。以下のような目的で使用する。
・ジョブ起動時に決まった条件を読み込んで実行させる
今回は画面バリアントの設定方法や、標準で備わっている各種機能について解説する。
画面バリアントは、ジョブ設計やトランザクション設計の基礎となる知識なので、SAP初心者で設計や実装を担当するのであればまず覚えておきたい基本機能だ。
画面バリアントの設定解説
画面バリアントの登録方法
条件指定を行う画面において項目値を入力し、保存ボタンを押すことにより簡単に登録ができる。
保存時に、以下に記述するいくつかの属性設定を行うことができる。
バリアントの属性設定について
バリアント自体の性質を決定するためのいくつかの設定がある。
属性設定画面で指定するのは、バリアントのID、バリアントの名称、そしていくつかの保護設定だ。これらはバリアント全体の設定となる。
・バックグラウンド処理でのみ使用
・バリアント保護
・カタログでのみ照会
バリアント内に保持する各項目ごとの設定については、後述の「項目ごとの属性設定について」で詳述する。
ここではバリアントの保護設定について解説する。
バックグラウンド処理でのみ使用
このフラグをチェックすると、ジョブ実行のみ可とし、オンラインでは使用できないバリアントとなる。
バリアント保護
このフラグをチェックすると、設定者以外は変更できないバリアントとすることができる。
カタログでのみ照会
検索や実行時の画面では、いくつか登録されている画面バリアントの中から、必要な項目値を持った画面バリアントを選んで読み込むことが出来る。
この時、例えばユーザが選択してしまってはまずい値が組まれた画面バリアントなど、「選んでほしくないバリアント」というものがある。
こうした時には、該当の画面バリアントを見えない状態にする必要がある。
それがカタログ設定を行うことにより可能となる。
この「カタログでのみ照会」フラグをチェックすると、バリアント検索のウインドウでは、該当のバリアントIDが表示されなくなるので、当然読み込むことも出来ない。
つまり一般ユーザからバリアントの存在を秘匿する効果がある。
カタログ値に注意!存在するはずのバリアントが見当たらない?
登録されているはずのバリアントを検索するとき、
「あれ?存在するはずのバリアントが無い……」
といったかんじで検索結果の中にIDが見当たらなかった経験はないだろうか。
実際に使っているバリアントのはずで、存在しないはずはないのだが……。と、技術者でも混乱することはある。
そういうときはだいたいカタログ設定にフラグが立っている。
カタログ設定されたバリアントを照会するには以下の手順を辿る。
Tr:SE38でPGMを指定しラジオボタン「バリアント」を選択した状態で、【照会 >上部メニューの「バリアント」 >カタログ】を選ぶ。
検索画面で出てこなかったバリアントIDが見つかるはずだ。
項目ごとの属性設定について
バリアント保存を行う時、画面上の項目ごとの性質を設定することが出来る。
項目属性とは以下のようなもので、各項目に対してチェックボックスによる指定を行うことが出来る。
・必須項目
・GPA スイッチオフ
・項目を値無しで保存
・選択可能
・非表示項目 ‘BIS’
・非表示項目
必須項目
このチェックを有効にすると。バリアントからの制御により、該当項目を必須入力として入力忘れを防ぐ設定が出来る。
GPA スイッチオフ
GPAとはつまりSPA/GPA、Set Parameter, Get Parameterのこと。
SAPメモリ内に保存されている値を取得してセットするかどうかを表すフラグ。
項目を値無しで保存
バリアントを登録する時、どうしても値が入り込んできてしまう項目がある。
・本当は空欄としたいのに、必須項目であるため、何らかの値を入れないとバリアントが保存できない。(必須チェックエラー)
・初期値が読み込まれる項目など
そういった、バリアントの登録値として採用したくない値入力が含まれた場合は、該当項目について「項目を値無しで保存」のフラグを立てる。こうすると空欄として画面バリアントを保存してくれる。
選択可能
このフラグを立てることで、項目ごとに値変数(TVARVC変数)を割り当てたり、自動計算した日付等を設定することが可能になる。
どのプロジェクトでも使うので、ここの使い方は知っておくに越したことはない。
画面バリアント登録時に属性設定の「選択可能」フラグをオンにし、画面上部の「選択変数」ボタンを押すことで、【TVARVC変数を項目に割当てる】または【日付の動的計算を項目に割当てる(DATE項目の場合)】を選ぶ画面に行くことができる。
TVARVC変数を項目に割当てる場合
・TVARVC変数とは?
TVARVC変数については以下記事で解説している。
・使用イメージ
画面バリアントの項目に対して、TVARVC変数を割り当てるというのは、以下のようなケースだ。
例えばある日付項目に対し、可変的に日付を割り当てたい場合があるとする。(「前月の最終営業日」といったように土日祝日の考慮が必要な、ある程度複雑な日付)
バリアントは素の値のまま保存すると、その値が固定値で採用されてしまう。
しかし当然のことながら、今月実行する場合と来月実行する場合では、日付の値は変えたい。
したがってTVARVC変数に「前月の最終営業日」などを保持させておき、その変数IDを画面項目に対して割り当てる、という手段を取る。こうすることで、画面バリアントを読み込むタイミングで、TVARVC変数の現在の値を自動で取得してくれる。
TVARVC変数の中身は定期的に更新することで、画面項目に読み込まれる日付も常に更新された日付になるという仕組みだ。
日付の動的計算を項目に割り当てる場合
複雑な計算を要さない日付設定であれば、TVARVC変数ではなく、日付自動計算による項目値指定も使える。一部抜粋すると以下のような選択肢がある。
・月初から現在
・当月の初日
・当月のn番目の営業日
営業日に関わる日付計算では、上記オプションとともに、カスタマイズ済みのSAPカレンダも指定する。
非表示項目 ‘BIS’
このフラグはSelect Option項目でしか選択できない。
このフラグをチェックすると、項目のFrom – Toで指定する箇所の「To」の部分が非表示となる。
非表示項目
このフラグをチェックすると、該当項目を非表示とすることが出来る。
保護項目
このフラグをチェックすると、画面でバリアントを呼び出した際に項目が非活性(変更不可)となる。デフォルト値をユーザに変更してほしくない時に用いる。
Type
Select Option項目の場合はS、Parameter項目の場合はPと表示される。
Select Option項目とは範囲指定や除外指定ができる項目のことで、Parameter項目とは単一値しか指定できない項目のこと。
既定のバリアントをトランザクション起動時に読み込ませる方法
予めバリアントを登録しておき、トランザクション起動時に既定のものとして読み込ませることができる。
こうすることでトランザクション起動時に項目の初期値を設定することができる。
レポートトランザクション(Tr:SE91)の画面では、トランザクションコードの登録および設定内容の変更を行うことができる。
トランザクションに対しプログラムIDを紐づける設定により、トランザクションを叩くことでプログラムを実行する。この画面には「バリアントによる開始」という項目があり、ここに既定のバリアントをセットすることでトランザクション起動時にバリアントを読み込むようになる。
ジョブ起動時に既定のバリアントの値で実行する方法
Tr:SM36でジョブを定義を行う際に、ABAPプログラムIDと実行バリアントを入力する項目がある。
ここに既定のバリアントIDを設定すれば、バリアントの値を読み込んでジョブを実行してくれる。