この記事を読むメリット
- 選択画面バリアントの基本概念が体系的に理解できます
- 選択画面バリアントの作成・変更・削除・保護の操作手順が分かります
SAPでは、同じレポートやトランザクションを「毎回ほぼ同じ条件で実行する」ことが多くあります。
こうした「よく使う選択条件のセット」を保存して再利用できるのが「選択画面バリアント(Selection Variant)」です。一度バリアントを作っておけば、ダイアログ実行でもJOB実行でも再利用でき、運用の手間とミスをかなり減らせます。
本記事では、選択画面バリアントの概要、JOB用の動的変数、設定方法まで、実務で押さえておきたいポイントをまとめて解説します。
この記事のポイント
選択画面バリアントとは?
選択画面バリアント(Selection Screen Variant)は、「選択画面や初期画面に入力した値一式を、名前付きのセットとして保存しておける仕組み」です。
対象はレポートプログラムだけではなく、独自開発の画面でも、上部に「バリアント」ボタンがあるものは同じ仕組みでバリアントを使えます。
バリアントは「プログラム名/トランザクションに紐づく選択画面+バリアント名」で一意に管理されます。ユーザがSAP GUIでその場で実行するダイアログ処理(オンライン実行)でも、SM36 から登録したバックグラウンドジョブでも、同じバリアントを指定して実行できます。もちろん、バックグラウンド処理専用としても作成可能です。
選択バリアントを使用するメリット
- 入力の手間削減
- 入力ミスの防止・再現性の確保
- 手入力の場合、値の打ち間違いなどの人為的ミス発生する可能性がありますが、バリアントを使えば、同じ条件で何度でも実行できるので、人為的ミスや操作の再現性が保つことができます。
- 業務パターンごとの使い分け
- 「国内向け」「海外向け」「特定顧客グループ向け」のように、業務パターンごとにバリアントを分けておくことで、担当者ごとに迷わず使うことができます。
- ジョブ運用との連携
- JOB用に「日次締め処理」「月次レポート」などのバリアントを作っておけば、T-CODE:SM36 のステップ定義でそのバリアントを指定するだけで済みます。
- ダイアログで試した条件をそのままJOBに流用できるので、本番JOBの条件ミスを減らすことができます。
- 動的な条件の自動化
- バリアントには「本日」「前月」「TVARVCの値」などの動的選択変数を組み込めます。これを使えば、「毎日前営業日だけ処理する」「常に当期だけを見る」といった条件を、JOB実行日ごとに自動で切り替えられます。バリアントを作り直す必要がありません。
よく使われる場面
- 毎回同じ条件で実行するレポート
- JOB実行で毎日・毎月繰り返し動かす処理
- 特定部門用にパラメータを固定した「運用用レポート」を配布したいとき
- 本番で使う条件を誤変更の回避目的で保護したいとき
選択画面バリアントの設定
基本的なバリアントの作成・変更・削除
作成
作成の手順
- 対象プログラムの実行画面を開く
- 選択画面に、指定したい条件を入力
- 画面上部の 「保存」 を選択
- バリアント名と説明を入力
- 必要に応じて「保護」「ユーザ固有」などの属性を設定し、保存
※T-CODE:SE38からでも作成可能(変更の手順で解説します)
今回は、T-CODE:VA05(受注伝票一覧)の選択画面バリアントを作成していきます。
まずは、実行画面を開き、指定したい条件を入力していきます
次に、メニューバーのジャンプ > バリアント > バリアント保存を押下します。
(そのまま保存ボタンを押下してもバリアント保存の処理がはしります。)
選択画面バリアントの作成_値
遷移したバリアント属性の設定画面で、バリアント名と内容説明を入力します。
その他にも以下の機能を使って、属性を設定していきます。
選択画面バリアントの作成_属性
よく使う属性設定
- バリアント自体に対する属性
- バックグラウンド処理専用:バックグラウンド処理でのみしか使用できなくなります
- バリアント保護:登録者または最終変更者のみが変更できるようになります
- カタログでの照会のみ:入力ヘルプ一覧には表示されず、カタログでのみ表示されます
- 各項目に対する属性
- 保護項目:ユーザは選択画面でその項目の値を上書きできなくなります
- 非表示項目(FROM/TO):ユーザがそのバリアントをロードした後に、対応する項目が表示されなくなります
- 必須項目:必須項目として定義されます
変更
変更の手順
- T-CODE:SE38で対象プログラム名を入力
- サブオブジェクトでバリアントを指定し変更ボタンを押下
- 変更対象のバリアントを入力し、変更したいサブオブジェクト指定し変更ボタンを押下
- 変更後に保存ボタンを押下
※値の変更自体は、バリアント作成と同様に対象プログラムの実行画面からもできます。
注意:バリアントが「保護」されていると、所有者以外は変更できません。必要なら、管理者が一時的に保護解除する運用を検討する必要があります。そのユーザがシステムで存在しなくなった場合など、緊急の場合は、レポート:RSVARENT を使用して、保護されたバリアントを「保護なし」にできます 。
選択画面バリアントの変更
もっと詳しく💡
日付フィールドなどには、標準の動的選択変数を設定できます。
手順は
- 対象バリアントを「変更」モードで開く
- 「属性」画面から対象のフィールド行に移動
- 「選択変数」を入力(X: 動的日付計算 (システム日付))
- 「変数名」をF4ヘルプから選び、入力する(「当月 / 昨日 / 当月初日 / 前月末日」など)
このように、JOB実行などで使用する「実行日に応じて自動で日付が変わるバリアント」が作ることができます。
選択画面バリアントの動的変数
会計年度や特定の会社コードなど、標準の動的選択変数だけでは対応しきれない場合は、SAP標準のバリアント変数テーブル「TVARVC」を使うとよいぞい!
削除
削除の手順
- 対象プログラムの実行画面を開く
- 実行画面で メニューバーからバリアントの「削除」 を選択
- 不要なバリアントを選択し、削除ボタンで削除します
JOB実行用バリアント
JOB(T-CODE:SM36)を設定する際、ステップにレポート/プログラムを登録するときにバリアント名を指定できます。
- T-CODE:SM36でJOB定義
- 「ステップ」ボタン → プログラム名を指定
- 「バリアント」欄に、事前に作成したバリアント名を入力
- JOBを保存・スケジュール
これで、JOB実行時に常に同じ選択条件が使われます。
選択画面バリアントのJOB設定
関連知識
移送方法
番環境でも同じバリアントを使いたい場合、本番環境で手作業で再入力することもできますが移送で本番環境でもバリアントを使えるようにすることも可能です。
選択画面バリアントの移送方法については、近日記事を執筆予定です!
関連テーブル
選択画面バリアントのメインテーブルは以下の通りです。
| テーブルID | テーブル内容 |
|---|
| VARI | バリアント本体データ(プログラム名とバリアント名の紐付き)。 |
| VARIT | バリアントのテキスト(説明)。言語別のテキストが格納されます。 |
| VARID | 権限グループやバックグラウンド専用やバリアント保護などの情報。 |
MMの出力マスタ関連テーブル
これらのテーブルの関係図や詳細情報は以下の記事をご参考ください!
あわせて読みたい
【SAP 基礎】選択画面バリアントのテーブル関連図
この記事を読むメリット 選択画面バリアントの関連テーブルについて理解することができます。 T-CODE:SE16Nのバリアントの関連テーブルについて理解することができます…
まとめ
選択画面バリアントは、レポートやプログラムのよく使う選択条件を保存し、再利用するための仕組みです。ダイアログ実行でもJOB実行でも共通で利用でき、一度バリアントを作成しておけば、誰が実行しても同じ条件で安定した処理が行えます。標準の動的日付を組み合わせれば、日次・月次のJOBでも毎回条件を入力し直す必要がなくなり、運用ミスの防止と作業効率の向上に大きく貢献します。
本記事を参考に選択画面バリアントをぜひ使いこなしてみてください!最後まで読んでくださりありがとうございました。