2490-RBA-CaseExamp-F01
Copyright 2018 FUJITSU LIMITED
Systemwalker Runbook Automation 自動運用プロセス 作成事例集
第1.0版
富士通株式会社
1
Copyright 2018 FUJITSU LIMITED
まえがき
本資料は、Systemwalker Runbook Automationの自動運用プロセスの作成に関する問合せ事例をまとめ
たものです。
自動運用プロセスの作成時の参考としてください。
お願い
● 本書を無断で他に流用および転載しないようお願いします。
改版履歴(外部公開し改版した履歴)
版 発行日 修正内容
1.0 2018.11.05 初版
目次
Systemwalker Runbook Automation 自動運用プロセス 作成事例集 .............................................0 第1章 フォーム(UI部品) .............................................................................2
1.1 Select部品について選択肢をUDAで設定したい。 .................................................. 3 1.2 フォームの初期表示時に、Select部品の表示を未選択状態に設定したい。 ............................ 5 1.3 フォームに配置したSelect部品で選択肢が選択されたか未選択状態か、プロセス内で判定したい。 ...... 6 1.4 Calendar部品で選択した日付を、別のプログラムに渡すため、YYYYMMDDhhmmss形式に変換したい。 ...... 9
第2章 プロセス定義 .................................................................................. 13 2.1 自動運用プロセスにて、ユーザー名を取得したい。 .............................................. 14 2.2 Webコンソールのタスク画面にてアップロードしたファイルを、メールに添付して通知させたい。 ...... 16 2.3 翌日をYYYYMMDDの形式で取得したい。 .......................................................... 23 2.4 運用操作部品「ファイルに文字列追加」で、4096文字より大きい文字列をファイルに出力したい。 ..... 26 2.5 Systemwalker Runbook Automation Studioのデバック機能でデバックする際に、アプリケーション変数を使用
したい。 ........................................................................................ 47 2.6 フォームにて1つのUDAで2つ以上のRadioButtonの選択状態を管理したい。 ........................... 50
2
Copyright 2018 FUJITSU LIMITED
第1章 フォーム(UI部品)
Select部品について選択肢をUDAで設定したい。
フォームの初期表示時に、Select部品の表示を未選択状態に設定したい。
フォームに配置したSelect部品で選択肢が選択されたか未選択状態か、プロセス内で判定したい。
Calendar部品で選択した日付を、別のプログラムに渡すため、YYYYMMDDhhssmm形式に変換したい。
3
Copyright 2018 FUJITSU LIMITED
1.1 Select部品について選択肢をUDAで設定したい。
[概要]
Select部品について選択肢をUDAの値を使用し、以下の内容としたい。
A
B
C
D
[条件]
Systemwalker Runbook Automation V15.0.0以降
[対処方法]
Select部品の以下のプロパティを設定してください。
rcf:prop_options
表示する項目を設定したUDAを指定します。
[概要]に記載の通り、初期値として"A,B,C,D"が設定されたUDAを指定します。
"list"というUDAに値が格納されている場合は、"uda_list"と指定します。
rcf:id
選択した値を格納するUDAを指定します。
"value1"というUDAに値を格納する場合は、"uda_value1"と指定します。
ここに指定したUDAが、プロセス定義に定義されていない場合は、Select部品に値が表示されませ
ん。
なお、Select部品をフォームに設定した際、rcf:idプロパティには初期値として、"uda_nnnnnnnnn"
(n:数字)が設定されています。
n部分を適切なUDAの名前に変更してください。
4
Copyright 2018 FUJITSU LIMITED
初期値
設定内容
5
Copyright 2018 FUJITSU LIMITED
1.2 フォームの初期表示時に、Select部品の表示を未選択
状態に設定したい。
[概要]
フォームにドロップダウンを配置し、外部から取得した選択肢を格納したUDAを設定しています。
フォームの初期表示時にUDAに設定された先頭の値が表示されてしまうので、Select部品の表示を未
選択状態に設定したい。
[条件]
Systemwalker Runbook Automation V15.0.0以降
[対処方法]
1) Select部品の選択結果を格納するUDAを追加します。UDAは初期値の指定なしで、STRING型で定義し
ます。
2) rcf:idプロパティに、1)で定義したUDAを指定します。
UDAに値が設定されていた場合、先頭の内容が表示されます。
3) rcf:prop_optionsプロパティに、Select部品で選択させるリストが設定されているUDAを指定しま
す。このUDAには、Select部品で選択させるリストをカンマ区切りで登録します。
4) rcf:selectedIndexプロパティには何も指定されていない、または、"-1"が指定されていることを確
認します。
<注意事項>
rcf:prop_optionsプロパティにUDAを指定する場合、rcf:idプロパティに指定したUDAと同じUDA
を指定すると、リストの先頭が表示されます。また、UDAの内容は選択した結果に置き換わりま
す。
例えば、UDAに"a,b,c"と設定されていた場合、フォームには"a"が表示されます。フォームにて
"b"を選択した場合、UDAの値は"b"に置き換わります。
このため、rcf:idプロパティとrcf:prop_optionsプロパティには異なるUDAを指定してください。
rcf:idプロパティに指定したUDAに値が設定されていた場合、フォームには以下が表示されます。
Select部品で選択させるリストに存在する値が設定されていた場合:
・ 値が1つだけ設定されている場合:
UDAに設定されている値が表示されます。
・ 複数の値が設定されている場合:
UDAに設定されている値のうち、リストの登録順が先の値が表示されます。
rcf:idプロパティに指定したUDAの値が"D,B"、 rcf:prop_optionsプロパティに指定
したUDAの値が"A,B,C,D"の場合、"B"が表示されます。
6
Copyright 2018 FUJITSU LIMITED
Select部品で選択させるリストに存在しない値が設定されていた場合:
何も表示されません。
<例>
<div rcf:id="uda_value1" rcf:type="IBPMSelect" rcf:width="189px" rcf:height="22px"
style="left: 12px; top: 12px; position: absolute" rcf:prop_options="uda_list1"
rcf:mandatory="true"></div>
1.3 フォームに配置したSelect部品で選択肢が選択され
たか未選択状態か、プロセス内で判定したい。
[概要]
タスク完了後に、フォームに配置したSelect部品で選択肢が選択されているか未選択状態か、プロセ
7
Copyright 2018 FUJITSU LIMITED
ス内で判定したい。
[条件]
Systemwalker Runbook Automation V15.0.0以降
[対処方法]
<前提>
デフォルトの選択肢を設定しないため、rcf:idプロパティにSTRING型のUDA (初期値:空文字)を設
定します。
なお、Select部品をフォームに設定した際、rcf:idプロパティには初期値として、[uda_nnnnnnnnn]
(n:数字)が設定されています。
n部分を適切なUDAの名前に変更してください。
Select部品のrcf:idプロパティに指定したUDAを、Complex Conditionalノードで以下のように判定す
れば、空文字かどうか判別可能です。
uda.get("<UDA名>") == "" ←空文字である。
uda.get("<UDA名>") != "" ←空文字でない。
また、Select部品での指定を必須にしたい場合は、rcf:mandatoryプロパティに"true"を指定してくだ
さい。Select部品で選択肢が未選択状態の場合に、エラーメッセージを表示させることができます。
8
Copyright 2018 FUJITSU LIMITED
Select部品のrcf:mandatoryプロパティを"true"にし、Select部品と同時に貼り付けられたテキストボ
ックスのrcf:idプロパティを、"error_<Select部品のrcf:idプロパティに指定したUDA名>"としてく
ださい。
なお、rcf:mandatoryプロパティを指定したことで表示されるメッセージは固定であり、変更できませ
ん。
9
Copyright 2018 FUJITSU LIMITED
1.4 Calendar部品で選択した日付を、別のプログラムに渡
すため、YYYYMMDDhhmmss形式に変換したい。
[概要]
Calendar部品で入力された値をテキストに表示するため、STRING型のUDAに格納しています。入力した
値が2017/8/8の場合、ミリ秒表記の"1504796400000"となっています。
別のプログラムに渡すため、YYYYMMDDhhmmss形式に変換したい。
[条件]
Systemwalker Runbook Automation V15.0.0以降
[対処方法]
Calendar部品で入力された値は、DATE型の値になります。
DATE型の値をSTRING型のUDAに格納した場合、ミリ秒表記の"1504796400000"となります。
10
Copyright 2018 FUJITSU LIMITED
<参考>
----------------------------------------------------
Systemwalker Runbook Automation Studio利用ガイド
変数(UDA)の値を指定する
ポイント
----------------------------------------------------
DATE型の値からYYYYMMDDhhmmss形式に変換する場合は、JavaActionを用いてください。
Java Actionの例を以下に示します。
1) ORノード等、[アクションセット]を設定するノードを配置します。
2) [アクションセット]の[追加]ボタンをクリックします。
上記の例では、Activityノードの終了アクションに設定しています。
3) [サーバアクション]の[UDA割当て]を選択し[作成]ボタンをクリックします。
4) 以下の値を設定します。
アクション名 :任意の文字列を記入します。
ノート :任意の文字列を記入します(指定は必須ではありません)。
ターゲットUDA:結果を出力するSTRING型のUDAを選択します。
値 :[C]をクリックして[E]にします。[A+B]ボタンをクリックします。
11
Copyright 2018 FUJITSU LIMITED
5) [式の作成]画面で以下のような式を記載します。
var v = uda.get("<※>")
var d = new Date(Packages.java.lang.Long.parseLong(v));
var year = d.getFullYear();
var month = d.getMonth() + 1;
var month_str = (month < 10) ? '0' + month : month
var date = d.getDate();
var date_str = (date < 10) ? '0' + date : date
var hour = d.getHours();
var hour_str = (hour < 10) ? '0' + hour : hour
var min = d.getMinutes();
var min_str = (min < 10) ? '0' + min : min
var sec = d.getSeconds();
var sec_str = (sec < 10) ? '0' + sec : sec
'' + year + month_str + date_str + hour_str + min_str + sec_str
<※>には、Calendar部品で選択した値を格納したSTRING型のUDAを指定します。
記載後、[OK]ボタンをクリックします。
12
Copyright 2018 FUJITSU LIMITED
6) [UDA割当て]画面で[OK]ボタンをクリックします。
13
Copyright 2018 FUJITSU LIMITED
第2章 プロセス定義
自動運用プロセスにて、ユーザー名を取得したい。
Webコンソールのタスク画面にてアップロードしたファイルを、メールに添付して通知させたい。
翌日をYYYYMMDDの形式で取得したい。
運用操作部品「ファイルに文字列追加」で、4096文字より大きい文字列をファイルに出力したい。
Systemwalker Runbook Automation Studioのデバック機能でデバックする際に、アプリケーショ
ン変数を使用したい。
フォームにて1つのUDAで2つ以上のRadioButtonの選択状態を管理したい。
14
Copyright 2018 FUJITSU LIMITED
2.1 自動運用プロセスにて、ユーザー名を取得したい。
[概要]
自動運用プロセスにて、次のユーザー名を取得してUDAに設定したい。
プロセスを起動したユーザー
タスクを処理したユーザー
[条件]
Systemwalker Runbook Automation V15.0.0以降
[対処方法]
サーバアクションを利用する方法とJava Actionを利用する方法の2種類があります。
方法1:サーバアクションを利用する方法
[サーバアクション]の以下を使用し、ユーザー名をUDAに設定します。
プロセスを起動したユーザー:プロセス起案者の取得
タスクを処理したユーザー:実行者の取得
<参考>
----------------------------------------------------
Systemwalker Runbook Automation Studio利用ガイド
プロセスの高度なモデル化
サーバアクションの使用
・ アクティビティの実行者を取得する
・ プロセス起案者を取得する
----------------------------------------------------
方法2:Java Actionを利用する方法
以下のJava Actionを利用します。
--------------------------------------------------------------------------
String sec.getProcessInitiator()
Returns the name of the user who started the current process instance.
--------------------------------------------------------------------------
<使用例:サーバアクションにてプロセス起動ユーザーをUDAに設定する>
15
Copyright 2018 FUJITSU LIMITED
以下のように設定します。
1) ログインIDを格納するUDAを作成します。STRING型で定義します。
2) ORノードを配置します。
3) ORノードの[プロパティ]の[アクションセット]で、[終了アクション]の[追加]ボタンを選択
します。
4) [サーバアクション]の[UDA割当て]を選択し[作成]ボタンをクリックします。
5) 以下のように設定し、[OK]ボタンをクリックします。
アクション名 :任意の文字列を記入します。
ノート :任意の文字列を記入します(指定は必須ではありません)。
ターゲットUDA:「1)で作成したUDA」を選択します。
値 :[C]をクリックして[E]にします。右の欄に以下を設定します。
sec.getProcessInitiator()
16
Copyright 2018 FUJITSU LIMITED
6) ORノードに矢印をつなぎます。分岐させる必要はありません。
2.2 Webコンソールのタスク画面にてアップロードしたフ
ァイルを、メールに添付して通知させたい。
[概要]
自動運用プロセスの申請者がファイルをタスク画面からアップロード。その後、メールにアップロー
ドしたファイルを添付して通知したい。
[条件]
Systemwalker Runbook Automation V15.0.0以降
[対処方法]
以下のJava Actionを利用することで、タスク画面から管理サーバにアップロードしたファイルのフ
17
Copyright 2018 FUJITSU LIMITED
ァイルパスが取得できます。
sec.getAttachment(<添付名>)
<例>
sec.getAttachment("AttachedFile")
<添付名>には、タスク画面で添付ファイルをアップロードした際に指定する[添付名]を指定してくだ
さい。
"sec.getAttachment(<添付名>)"を用いて取得したファイルパスをUDAに格納し、運用操作部品「メー
ルを送信」のfilenameオプション(メールに添付するファイルの名前)にUDAを指定します。
<注意事項>
sec.getAttachmentで取得したファイルパスは区切り文字が"/(スラッシュ)"になります。
必要に応じて"\"に変更してください。
なお、sec.getAttachmentで取得したファイルを絶対に更新(変更・削除)しないでください。更新
した場合、実行したプロセスインスタンスの動作が保証できません。
更新する場合は、ファイルをコピーして、コピー先を更新してください。
<使用例>
ファイルが1つの場合の設定例
以下のように指定してください。
1) Activityノードを選択し、[アクションセット]の[終了アクション]を追加します。
2) [サーバアクション]の[UDA割当て]を選択し、[作成]ボタンをクリックします。
18
Copyright 2018 FUJITSU LIMITED
3) 以下の値を設定し、[OK]ボタンをクリックします。
アクション名 :任意の文字列を記入します。
ノート :任意の文字列を記入します(指定は必須ではありません)。
ターゲットUDA:ファイルパスを格納するUDAを選択します。
値 :[C]をクリックして[E]にします。右の欄に以下を設定します。
sec.getAttachment("AttachedFile")
4) 運用操作部品「メールを送信」の[入力情報]のfilenameオプションに、ファイルパスを格納
19
Copyright 2018 FUJITSU LIMITED
したUDAを設定します。
種別 :変数(uda)を選択します。
変数 :ファイルパスを格納したUDAを選択します。3)で [ターゲットUDA]に指定したUDA
を選択します。
上記の例の場合、タスク画面でファイルをアップロードする時の [添付名]には"AttachedFile"と
指定し、プロセスインスタンスを起動してください。
※ sec.getAttachment()に指定した値を、[添付名]に指定してください。
複数ファイルの場合の設定例
sec.getAllAttachmentNames()で添付名の一覧を取得し、 sec.getAttachment()で添付名からファ
イルパスを取得してください。
以下のように指定してください。
1) Activityノードを選択し、[アクションセット]の[終了アクション]を追加します。
2) [サーバアクション]の[UDA割当て]を選択し、[作成]ボタンをクリックします。
20
Copyright 2018 FUJITSU LIMITED
3) 以下の値を設定します。
アクション名 :任意の文字列を記入します。
ノート :任意の文字列を記入します(指定は必須ではありません)。
ターゲットUDA:ファイルパスを格納するUDAを選択します。
値 :[C]をクリックして[E]にします。[A+B]ボタンをクリックします。
4) [式の作成]画面で以下のような式を記載し、[OK]ボタンをクリックします。
var name = sec.getAllAttachmentNames();
21
Copyright 2018 FUJITSU LIMITED
var fileList = ""
for (var i = 0; i < name.length; i++) {
if ( i == 0 ) {
fileList = sec.getAttachment(name[i]);
} else {
fileList = fileList + ";" + sec.getAttachment(name[i]);
}
}
※ 添付名の一覧を取得し、各添付名からファイルパスを取得します。取得したファイ
ルパスを";"(セミコロン)でつなぎます。
5) [UDA割当て]画面で[OK]ボタンをクリックします。
22
Copyright 2018 FUJITSU LIMITED
6) 運用操作部品「メールを送信」の[入力情報]のfilenameオプションに、ファイルパスを格納
したUDAを設定します。
種別 :変数(uda)を選択します。
変数 :ファイルパスを格納したUDAを選択します。5)で[ターゲットUDA]に指定したUDA
を選択します。
23
Copyright 2018 FUJITSU LIMITED
2.3 翌日をYYYYMMDDの形式で取得したい。
[概要]
翌日の情報を、運用操作部品「現在日時を取得」と同様の結果(YYYYMMDDの形式)で取得したい。
[条件]
Systemwalker Runbook Automation V15.0.0以降
[対処方法]
翌日をYYYYMMDDの形式で取得する場合は、JavaScriptを利用してください。
例えば、ORノードを配置して以下のように設定してください。
1) ORノードの[アクションセット]で、[終了アクション]を追加します。
2) [サーバアクション]の[UDA割当て]を選択し、[作成]ボタンをクリックします。
24
Copyright 2018 FUJITSU LIMITED
3) 以下のように指定します。
アクション名 :任意の文字列を記入します。
ノート :任意の文字列を記入します(指定は必須ではありません)。
ターゲットUDA:結果を格納するUDAを選択します。
値 :[C]をクリックして[E]にします。[A+B]ボタンをクリックします。
4) [式の作成]にて以下のように記入し、[OK]ボタンをクリックします。
var now = new Date();
var tomorrow = new Date(DateAdd(now, 1, "dd").getTime());
var year = tomorrow.getFullYear();
var month = tomorrow.getMonth() + 1;
25
Copyright 2018 FUJITSU LIMITED
var month_str = (month < 10) ? '0' + month : month
var date = tomorrow.getDate();
var date_str = (date < 10) ? '0' + date : date
'' + year + month_str + date_str
5) [UDA割当て]画面で[OK]ボタンをクリックします。
26
Copyright 2018 FUJITSU LIMITED
2.4 運用操作部品「ファイルに文字列追加」で、4096文字
より大きい文字列をファイルに出力したい。
[概要]
運用操作部品「ファイルに文字列を追加」を使用して、4096文字より大きい運用操作部品「複数のコ
マンドを実行」の実行結果(出力情報:command_result)をログとしてファイルに出力したい。
[条件]
Systemwalker Runbook Automation V15.0.0以降
[対処方法]
運用操作部品「複数のコマンドを実行」の出力情報:command_resultに格納されたデータを、4096文字
以下になる一定行数で分割して、運用操作部品「ファイルに文字列追加」で繰り返しファイルに追加
します。
<使用例>
1) プロセス定義に以下のUDAを定義します。
linecnt : 出力するデータの行数を格納します。
27
Copyright 2018 FUJITSU LIMITED
タイプは"INTEGER"にします。
cnt1 : 抽出対象とする最初の行番号を指定します。初期値に1を設定します。
タイプは"INTEGER"にします。
cnt2 : 抽出対象とする最後の行番号を指定します。初期値に4096文字以下になる一定行
数の値(※1)を設定します。
タイプは"INTEGER"にします。
data : 抽出したデータを格納します。
タイプは"STRING"にします。
(※1)運用操作部品「複数のコマンドを実行」での操作結果(出力内容)から、UDA"cnt2"に指
定した行数分を抜き出し、運用操作部品「ファイルに文字列追加」にてファイルに出力
します。
UDA"cnt2"に指定する数値を小さくするとループする回数が増えるため、プロセスイン
スタンスが終了するまでの時間が長くなります。
数値を大きくすると、運用操作部品「ファイルに文字列追加」のaddstringオプションの
上限4096文字を超えてエラーになります。
環境に合わせて適切な値にしてください。
例えば、運用操作部品「複数のコマンドを実行」での操作結果(出力内容)が80文字で改
行していると仮定した場合、4096÷80≒50 (最大で50行指定可能)から、安全を考えて40
とします。
2) 運用操作部品「複数のコマンドを実行1」の出力情報:command_resultに格納されたデータの行数
をカウントします。
UDA"linecnt"に、カウントした値を格納します。
運用操作部品「データを実行結果に格納1」で以下のように設定します。
入力情報
○ input1
[設定内容]
28
Copyright 2018 FUJITSU LIMITED
種別 :実行結果(result)
ノード名:運用操作部品「複数のコマンドを実行1」
実行結果:command_result
出力情報
[追加]ボタンをクリックし、以下を設定します。
[設定内容]
実行結果:result1
変数 :linecnt
以下のようにフィルター定義を追加します。
1. [フィルター定義]の[追加]ボタンをクリックします。
29
Copyright 2018 FUJITSU LIMITED
2. [フィルター設定]画面の[フィルター一覧]から"行カウント"を選択し、[追加>>]ボタ
ンをクリックします。
3. [OK]ボタンをクリックします。
30
Copyright 2018 FUJITSU LIMITED
運用操作部品「複数のコマンドを実行1」から3)の運用操作部品「ファイルを作成1」へ、成功の
矢印をつなぎます。
3) 運用操作部品「ファイルを作成1」にて、出力先のファイルを作成します。
なお、textオプションの指定を空(何も指定しない)にすることで、空ファイルを作成します。
運用操作部品「ファイルを作成1」から、8)のループ判定へ、成功の矢印をつなぎます。
4) 運用操作部品「複数のコマンドを実行1」の出力情報:command_resultに格納されたデータから、目
的の行数を抽出します。
運用操作部品「データを実行結果に格納2」を配置します。
# 8)の[継続]の矢印の接続先になります。
運用操作部品「データを実行結果に格納2」で以下のように設定します。
入力情報
○ input1
[設定内容]
種別 :実行結果(result)
31
Copyright 2018 FUJITSU LIMITED
ノード名:運用操作部品「複数のコマンドを実行1」
実行結果:command_result
出力情報
[追加]ボタンをクリックし、以下を設定します。
[設定内容]
実行結果:result1
変数 :data
以下のようにフィルター定義を3つ追加します。
以下の順で定義してください。
1つ目
1. [フィルター定義]の[追加]ボタンをクリックします。
32
Copyright 2018 FUJITSU LIMITED
2. [フィルター設定]画面の[フィルター一覧]から"置換"を選択し、[追加>>]ボタン
をクリックします。
3. 以下のように設定します。
検索 :' (半角のシングルクォーテーションを1つ)
[正規表現を使用する] :チェックしない
[大文字と小文字を区別する]:チェックしない
置換 :'' (半角のシングルクォーテーションを2つ)
対象 :[一致したすべての文字列(A)]を選択
33
Copyright 2018 FUJITSU LIMITED
2つ目
1. [フィルター設定]画面の[フィルター一覧]から"CSV形式データの抽出"を選択し、
[追加>>]ボタンをクリックします。
34
Copyright 2018 FUJITSU LIMITED
2. 以下のように設定します。
区切り文字 :"タブ"にチェック (※2)
囲み文字 :"シングルクォーテーション"にチェック
最初の行をヘッダとして扱う:チェックしない
抽出する行 :@{uda:cnt1}-@{uda:cnt2}
35
Copyright 2018 FUJITSU LIMITED
(※2)運用操作部品「複数のコマンドを実行1」での操作結果(編集するデータ)にタブ
が含まれていないと仮定して、[タブ]にチェックを入れています。
環境に合わせて適切な値にしてください。
3つ目
1. [フィルター設定]画面の[フィルター一覧]から"置換"を選択し、[追加>>]ボタン
をクリックします。
36
Copyright 2018 FUJITSU LIMITED
2. 以下のように設定し、[OK]ボタンをクリックします。
検索 :'' (半角のシングルクォーテーションを2つ)
[正規表現を使用する」 :チェックしない
[大文字と小文字を区別する]:チェックしない
置換 :' (半角のシングルクォーテーションを1つ)
対象 :[一致したすべての文字列(A)]を選択
37
Copyright 2018 FUJITSU LIMITED
運用操作部品「データを実行結果に格納2」から5)の運用操作部品「ファイルに文字列を追加1」
へ、成功の矢印をつなぎます。
====================================================================
編集する文字列にシングルクォーテーションが含まれない場合は、以下のように簡略化する
38
Copyright 2018 FUJITSU LIMITED
ことも可能です。
以下のようにフィルター定義を追加します。
1. [フィルター定義]の[追加]ボタンをクリックします。
2. [フィルター設定]画面の[フィルター一覧]から"CSV形式データの抽出"を選択し、[追
加>>]ボタンをクリックします。
3. 以下のように設定し、[OK]ボタンをクリックします。
区切り文字 :"タブ"にチェック (※2)
囲み文字 :"ダブルクォーテーション"または
"シングルクォーテーション"にチェック
最初の行をヘッダとして扱う:チェックしない
抽出する行 :@{uda:cnt1}-@{uda:cnt2}
39
Copyright 2018 FUJITSU LIMITED
(※2)運用操作部品「複数のコマンドを実行1」での操作結果(編集するデータ)にタブが
含まれていないと仮定して、[タブ]にチェックを入れています。
環境に合わせて適切な値にしてください。
====================================================================
5) 運用操作部品「ファイルに文字列追加1」で、出力先ファイルへUDA"data"に格納したデータを追加
します。
運用操作部品「ファイルに文字列追加1」には以下のように設定します。
入力情報
hostname : 運用操作部品「ファイルを作成1」のhostnameオプションと同じ値
fiename : 運用操作部品「ファイルを作成1」のfilenameオプションと同じ値
addstring : UDA"data"
40
Copyright 2018 FUJITSU LIMITED
運用操作部品「ファイルに文字列追加1」から6)の運用操作部品「データを実行結果に格納3」へ、
成功の矢印をつなぎます。
6) 運用操作部品「データを実行結果に格納3」で、UDAの"cnt1"と"cnt2"の数値を加算します。
運用操作部品「データを実行結果に格納3」で以下のように設定します。
入力情報
○ input1
[設定内容]
種別:変数(uda)
変数:cnt1
○ input2
[設定内容]
種別:変数(uda)
変数:cnt2
出力情報(2つ設定します)
1つ目
[追加]ボタンをクリックします。
以下を設定します。
[設定内容]
41
Copyright 2018 FUJITSU LIMITED
実行結果:result1
変数 :cnt1
以下のようにフィルター定義を追加します。
1. [フィルター定義]の[追加]ボタンをクリックします。
2. [フィルター設定]画面の[フィルター一覧]から"演算"を選択し、[追加>>]ボタンを
クリックします。
42
Copyright 2018 FUJITSU LIMITED
3. 以下のように設定し、[OK]ボタンをクリックします。
演算方法 :"加算(A)"にチェック
演算値の種類:"固定値(F)"にチェック
加算値 :4096文字以下になる一定行数の値
UDA"cnt2"の初期値と同じ値を設定してください。
43
Copyright 2018 FUJITSU LIMITED
2つ目
[追加]ボタンをクリックします。
以下を設定します。
[設定内容]
実行結果:result2
変数 :cnt2
44
Copyright 2018 FUJITSU LIMITED
以下のようにフィルター定義を追加します。
1. [フィルター定義]の[追加]ボタンをクリックします。
2. [フィルター設定]画面の[フィルター一覧]から"演算"を選択し、[追加>>]ボタンを
クリックします。
45
Copyright 2018 FUJITSU LIMITED
3. 以下のように設定し、[OK]ボタンをクリックします。
演算方法 :"加算(A)"にチェック
演算値の種類:"固定値(F)"にチェック
加算値 :4096文字以下になる一定行数の値
UDA"cnt2"の初期値と同じ値を設定してください。
46
Copyright 2018 FUJITSU LIMITED
運用操作部品「データを実行結果に格納3」から7)のループ判定へ、成功の矢印をつなぎます。
7) ループの判定を行います。
1. Complex Conditionalノードを配置します。
2. Complex Conditionalノードから出る[継続]と[終了]の矢印を配置します。
[継続]の矢印は、4)の運用操作部品「データを実行結果に格納2」につなぎます。
[終了]の矢印は、Exitノードにつなぎます。
3. Complex Conditionalノードを選択し、[決定ルール]に以下のように設定します。
条件
uda.get("linecnt") >= uda.get("cnt1") 実行する矢印:継続
uda.get("linecnt") < uda.get("cnt1") 実行する矢印:終了
47
Copyright 2018 FUJITSU LIMITED
2.5 Systemwalker Runbook Automation Studioのデバッ
ク機能でデバックする際に、アプリケーション変数を
使用したい。
[概要]
Systemwalker Runbook Automation Studioのデバック機能でデバックする際に、アプリケーション変
数を使用して、以下を行いたい。
1) アプリケーション変数を設定
2) プロセスを1つ作成
3) プロセスのなにもセットしていない時のアクションセットの初期化アクションでUDA割り当てを
選んでアプリケーション変数をローカル変数(UDA)に渡す。
4) アクションセットのUDA割り当てを使う時にif文でどのアプリケーション変数をターゲットUDA
に渡すかを制御したい。
[条件]
Systemwalker Runbook Automation V15.0.0以降
[対処方法]
初期化アクションは、最初のアクティビティ(STARTノード)が実行される前にUDAを初期化します。
if文の判定にUDAを用いる場合、初期値が設定される前に初期化アクションが動作します。
このため、STARTノードの後ろにORノードを接続し、ORノードにアクションセットを設定します。
<使用例>
以下を前提としています。
・アプリケーション変数は"AppVar"です。
・アプリケーション変数の値を使用するかの判定には、STRING型のUDA"input"の値を用いています。
1) アプリケーション変数を設定します。
<参考>
----------------------------------------------------
Systemwalker Runbook Automation Studio利用ガイド
プロジェクトの管理
ワークフローアプリケーションプロジェクトの管理
アプリケーション変数の定義
48
Copyright 2018 FUJITSU LIMITED
----------------------------------------------------
2) プロセス定義を作成します。
3) STARTノードの後ろにORノードを接続します。
このとき、ORノードの入力/出力の矢印はそれぞれ1つで構いません。
4) ORノードの[アクションセット]で[終了アクション]を選択し、[追加]ボタンをクリックします。
5) [サーバアクション]の[UDA割当て]を選択し、[作成]ボタンをクリックします。
6) 以下のように設定します。
アクション名 :任意の文字列を記入します。
ノート :任意の文字列を記入します(指定は必須ではありません)。
ターゲットUDA:結果を格納するUDAを選択します。
値 :[C]をクリックして[E]にします。[A+B]ボタンをクリックします。
49
Copyright 2018 FUJITSU LIMITED
7) [式の作成]画面で以下のような式を記載し、[OK]ボタンをクリックします。
init_var = "";
chk_var = uda.get("input");
if ( chk_var == "1" ) {
sec.getApplicationVariable("AppVar");
} else {
init_var;
}
50
Copyright 2018 FUJITSU LIMITED
8) 必要に応じて、4)~7)を繰り返します。
なお、アクションセットに設定したJava Actionを、Systemwalker Runbook Automation Studioのデバ
ッグ機能でデバッグすることはできません。
2.6 フォームにて1つのUDAで2つ以上のRadioButtonの選
択状態を管理したい。
[概要]
Java Action(Scriptの評価)と組み合わせることで複数のRadioButtonの選択肢を管理する方法につい
て、“Systemwalker Runbook Automation リファレンスガイド”の“QuickForm UI部品リファレンス”
の“RadioButton”に記載されているが、ここで説明されている以下の具体的な手順を知りたい。
「QuickFormを追加したActivityノードに終了アクション(Scriptの評価)を追加し、スクリプト
フィールドを次のように記述します。」のActivityノードから終了アクション(Scriptの評価)を
追加する手順
[条件]
Systemwalker Runbook Automation V15.0.0以降
51
Copyright 2018 FUJITSU LIMITED
[対処方法]
以下のように、終了アクションを追加してください。
<前提>
以下のマニュアルの「注意」に記載されている例で説明しています。この例と同様のRadioButton部
品を配置し、"lang", "lang_en", "lang_jp"という3つのUDAを定義していることを前提としていま
す。
----------------------------------------------------
Systemwalker Runbook Automation リファレンスガイド
QuickForm UI部品リファレンス
画面部品
フォーム部品
RadioButton
----------------------------------------------------
<終了アクションを追加する方法>
Systemwalker Runbook Automation Studioで以下のように操作します。
1) プロセス定義を開き、RadioButton部品を配置したQuickFormを関連付けているActivityノード
を選択します。
2) [プロパティ]の、[アクションセット]を選択します。
3) [終了アクションタブ]を選択します。
4) [追加]ボタンをクリックします。
52
Copyright 2018 FUJITSU LIMITED
5) [アクションタイプリスト]画面で、[サーバアクション]をダブルクリックして開きます。
6) [スクリプトの評価]を選択し、[作成]ボタンをクリックします。
7) 表示されたウィンドウの[スクリプト]タブに、マニュアルに記載した以下のスクリプトを記載
します。
53
Copyright 2018 FUJITSU LIMITED
if (uda.get("lang_en") == "true") {
uda.set("lang", "English");
} else if (uda.get("lang_jp") == "true") {
uda.set("lang", "Japanese");
}
8) [OK]ボタンをクリックします。
54
Copyright 2018 FUJITSU LIMITED
<参考>
----------------------------------------------------
Systemwalker Runbook Automation Studio利用ガイド
プロセスの高度なモデル化
サーバアクションの使用
JavaScriptの評価
----------------------------------------------------
上記で、終了アクションが設定できます。
Top Related