この記事を読むメリット
- SAPのトランザクションバリアントの登録ができます。
- トランザクションバリアントについて理解できます。
SAPでは、トランザクションコードを実行すると、基本的に画面上に入力欄が表示され、何らかの値を入力してから実行する流れになります。
その中には、毎回同じ値を入力する項目もあれば、都度異なる値を入力する項目もあります。毎回同じ値を手動で入力するのは手間ですし、「最初から自動で入力されていればいいのに」と思ったことはないでしょうか。
実はSAPには「トランザクションバリアント」という機能があり、これを利用することでユーザーの入力作業を簡素化・標準化することが可能です。
早速、SAPのトランザクションバリアントについての詳細を紹介していくぞい!
この記事のポイント
トランザクションバリアントとは
SAPにおける「トランザクションバリアント(Transaction Variant)」とは、特定のトランザクション(Tコード)の画面表示や動作をカスタマイズして、ユーザーの入力作業を簡単化・標準化するための機能です。業務効率を上げたり、入力ミスを防止したりするためによく使用されます。
早速ですが、トランザクションコード:SHD0 の画面を見てましょう。
画面の赤枠部分をご覧ください。そこには、3つのタブが表示されています。
標準バリアント
SAPのレポートや選択画面で使用されるのが「バリアント」です。これは、最もシンプルな機能のひとつです。
標準バリアントで実現できるのは、選択画面に入力する値の保存のみです。
画面の構成変更などはできませんので、ご注意ください。
たとえば、トランザクションコード FBL1N(仕入先明細照会) において、会社コード Z005 を毎回自動的に入力されるようにしたい場合は、標準バリアントを登録しておくことで、都度会社コードを入力する手間を省くことができます。
※このような場合、わざわざ SHD0 を使用して登録する必要はありません。
通常は、対象のトランザクションコードを実行し、選択画面上からバリアントを作成・保存する方法が一般的です。
トランザクションバリアント(Transaction Variant)
特定のトランザクション(例えば:FB60
, ME21N
など)に対して、以下のような画面項目の表示制御や入力補助を設定することができます。
作成方法としては、まずトランザクションコード SHD0を実行し、「Transaction Code」欄 に FB60 を入力します。
その後、「Transaction Variant」タブ を選択し、「作成(登録)」ボタンを押します。
以下のようなメッセージが出ました。
トランザクションVar.:の欄がブランクの場合、画面バリアントだけ登録され、トランザクションバリアント作成されないです。
では、トランザクションVar.:の欄に内容を入力して、登録ボタンを押してみます。
以下のメッセージが出ました。
このトランザクションバリアントは、ローカルパッケージ「$TMP」には登録できません。
そのため、どのパッケージに登録すべきかについては、プロジェクトの ABAP チームや BASIS 担当者に確認するのが適切です。
私は会社コードZ005を入力しましたので、入力した項目に対する制御がこの画面にて行います。
✔ボタンを押すと、FB60の画面に遷移します。
FB60画面の項目が表示されて、各項目に対して制御することができます。
すべての項目に対して制御の設定ができましたら、保存ボタンを押します。
オブジェクトパッケージがリクエストされ、プロジェクトのZ始まりの適切なパッケージを選択して保存します。
最後に、トランザクションバリアントと画面バリアントが保存されました。
画面バリアント
トランザクションの中で使われる個々の画面の項目構成をカスタマイズします。
「トランザクションバリアントとの違いは何だろう?」と疑問に思っている方もいらっしゃるかもしれません。
そこで、先ほどの FB60 のトランザクションバリアント作成の流れ を思い出してみてください。
実は、トランザクションバリアントを作成する際に、画面バリアントも自動的に作成されていましたよね。
画面バリアントのタブでは上記図で表示されているFB60_NEW_0100、FB60_NEW_1000などのような個別の画面バリアントを作成することができます。
ただし、画面バリアントだけを作成しても、それ単体では呼び出すことはできません。作成した画面バリアントを利用するためには、トランザクションバリアントに割り当てる必要があります。
なお、特別な要件がない限り、トランザクションバリアントを作成時に自動的に画面バリアントも作成できるので、それは最も一般的で効率的な方法です!
トランザクションコード:「SHD0」でできることについて理解できました!
SHD0でバリアントを登録するチーム(開発チームなのか、プロセスチームなのか)は各プロジェクトにおいてそれぞれ異なるぞい。SAPコンサルタントとして、トラバリ(=トランザクションバリアント)の基本的な使い方を把握しておくのじゃ!