初心者向けに分かりやすく画面バリアントとは何か?について解説します。
画面バリアントとは、その名の通り1つ1つの画面に対して設定するバリアントのことで、画面の表示/非表示や初期値などの項目属性の集合体。画面バリアントの集合体が、トランザクションバリアントです。
この記事では画面バリアントの登録方法までを3分で解説します。
SAPエンジニアであれば常識として知っておきたい超・基本知識です。是非最後までご覧ください。
画面バリアントとは?
画面バリアントとは、画面1つ1つに対する表示・非表示などの項目属性のセットです。
文字の説明だけではイメージを持ちづらいはずなので、早速画面バリアントの設定画面の一例をご覧ください。

ご覧のように、各項目ごとに 値保持 / 出力専用 / 非表示 / 必要 の設定を行えるようになっています。
画面バリアント設定:値保持(W.content)
値保持にチェックを入れることで、内容欄の値を初期値として表示させることができます。
例えば、ビジネスパートナの住所タブの項目に値保持の設定を行っていた場合。以下のような画面が表示されることになります。

あくまでも初期値なので変更は可能です。
画面バリアント設定:出力専用(Output only)
出力専用にチェックすると、当該項目は変更することができなくなります。

画面バリアント設定:非表示(Invisible)
その名の通りです。非表示設定を行うと、当該項目は画面上から見えなくなります。
勘違いしてはいけないのが、あくまでも画面上から「見えなくなるだけ」であって存在自体がなくなるわけではありません。つまり、本来必須入力の項目に対して非表示設定をしてしまうと必ずエラーが出る画面を作成してしまうことにつながります。
画面バリアント設定:必要(Required)
必須入力させたい場合にチェックします。

例えば必須入力にチェックしている項目に対して、同時に非表示設定を行っている項目があったり、値保持している項目がSAP標準では許可できない文字だったりする場合。
このような画面バリアントを作成してしまうとバグの原因となってしまいます。SAPの標準機能としてこのような不整合を未然に防ぐために画面バリアントのチェックが行えます。
メニュー>バリアント>チェック
SHD0:画面バリアントの登録
さて、先に画面バリアントのイメージを掴んでもらうために設定内容の解説から進めてきましたがここからは実際に画面バリアントの登録方法を解説します。
と言っても、実は非常に簡単。
トランザクションコード:SHD0
画面バリアントを設定したいトランザクションコードを入力。画面バリアントタブにて画面バリアント名を入力し登録ボタンを押すだけ。
あとは、対象のトランザクションコードが起動され、いつもと同じように画面に値を入力していきます。画面の入力が完了すると、先ほど同様以下の設定画面が表示される仕組みです。

トランザクションバリアントとは?
画面バリアントはあくまでも1つの画面に対する設定値をまとめたものでしかありません。そして、もう少し具体的に言えば画面バリアントは、トランザクションバリアントの1構成要素でしかありません。
実際には、1つ以上の画面バリアントから構成されるトランザクションバリアントをトランザクションコードに割り当てることによって画面の表示制御を行うわけです。
トランザクションコード:SHD0の画面に戻ります。

Transaction Variantタブ でトランザクションバリアント名称を入力。そして、そのトランザクションバリアントを構成する画面バリアントを割り当てていきます。
割り当てる画面バリアントの個数は1つ以上で何個あってもOKです。
バリアントトランザクションの作成
最後に、バリアントトランザクションを作成します。

ややこしいのですが、バリアントトランザクションとはトランザクションコードとトランザクションバリアントの組み合わせです。
つまり、どのトランザクションコードをどのバリアントトランザクションを用いて利用するか?を設定したトランザクションコードを新規に作成するイメージです。
実際のSAPユーザにはバリアントトランザクションを解放することで、表示・非表示設定のされた画面を見せる仕組みとなっているのです。
最後、この章だけ唐突に理解しがたい表現となっているため何度か読み返しをおすすめします。
バリアントトランザクションの作成方法は、以下の記事で解説しております。
トランザクションコードをアドオンで作成する方法も合わせて学べますので是非この機会に合わせてご覧ください。
ABAPを1から勉強したい方は

初めてABAPを勉強するのは結構難しいですよね。
でもその悩みを抱えているのは一人じゃありません。全てのABAP使いが同じ道を進んできました。
ABAPをはじめとするプログラミングスキルを武器に、時間と場所に捉われない自由な生き方を目指してみませんか?
読者料典 【完全無料】ABAP:学習カリキュラム ←こちらから!