トランザクションバリアント
SAPシステムのトランザクション SHD0では、スクリーンおよびトランザクションのバリアントを作成できます。
スクリーンバリアントにGuiXTが自動的にダウンロードするGuiXTスクリプトを含めることができます。
スクリーンバリアントをGuiXTスクリプトと共に定義するには、以下の手順で行ってください。
トランザクション “MIRA”のトランザクションバリアント”ZZV1”を定義します。
バリアントの属性を設定する画面で “GuiXT”ボタンをクリックします。
編集用ウィンドウが開きますので、ここでGuiXTコマンドを入力します。(ヒント:長めのスクリプトの場合は、まずScriptEditorを使ってローカルGuiXTスクリプトディレクトリで開発及び検証を行います。その後エディタからスクリプトをスクリーンバリアントの中にコピーします。)
検証用のローカルオブジェクトとして、または、本番システムへ移送可能なパッケージがあればその中にトランザクションバリアントを保存します。GuiXTスクリプトは、スクリーンバリアントといっしょに移送されるようになります。
独自のバリアントをトランザクションMIRAの “標準バリアント”として設定するとユーザーがMIRAを呼び出したとき、自動的に適用させることが可能です。(さらに – 新規のトランザクションコード(ZZMIRA等)を定義しておけば、標準のトランザクションMIRAとカスタマイズトランザクションZZMIRAの両方を使用できるようになります。)
MIRAを呼び出してみると、GuiXTスクリプトで設定した “Document type”を確認することができます。
この方法を使用するには、GuiXTプロファイルに必要な、有効な権限のあるRFCユーザーとパスワードの設定が必要です。RFCユーザーの情報が記述されていない場合は、エラーメッセージが表示されます。
スクリプトをダウンロードするには、RFCユーザーの権限が必要です。
S_RFC: RFC_TYPE=FUGR, RFC_NAME=SHD0, ACTVT=16
GuiXT profileに”Script download via current client”を指定していない場合、client 000で行われます。
開発中は、処理内容をコントロールできるようにGuiXTのスクリプトウインドウを表示させておいてください。スクリーンバリアントにコメント行が自動的に追加されていることが確認できます。
トランザクションバリアントの中にある中央のスクリプトが変更されない限り、GuiXTがキャッシュされたスクリプトを使用するためのタイムスタンプがコメント行に含まれています。
注:ローカルのスクリプトフォルダにGuiXTスクリプトが含まれている場合、このローカルスクリプトはトランザクションバリアントスクリプトではなく、ローカルのスクリプトが使用されるようになります。
例:
“C:\GuiXT\Scripts”のローカルフォルダの下記のスクリプトを使用してみます。
画面は以下のように表示されます。
ローカルスクリプトファイルが空になっていたとしても、ローカルにスクリプトファイルがあれば、スクリーンバリアントスクリプトを上書きしてしまうため、トランザクションバリアントの変更が確認できません。
必要であれば下記の構文を使用してスクリーンバリアントの定義とローカルスクリプトを統合することができます(まれなケースとは思いますが)。
if Q[ScreenVariant=…
トランザクションMIRA用の”標準”バリアントを定義しないで、ZZMIRAなど独自のバリアント用の新しいトランザクションコードを作成することもできます。
MIRAの標準バリアントを無効にして、ZZMIRAを使用します。
SAPGUIのSystem ->Statusで”Status”画面を表示すると有効なバリアントが表示されます。
スクリーンバリアントのスクリプトを変更するには、SHD0で”Change screen variant”を選択し、”GuiXT Script”ボタンをクリックします。
エディタが起動しますので、スクリプトを変更する、またはGuiXT Script Editorから新しいバージョンのスクリプトをコピーします。
トランザクションZZMIRAの結果です。