スクリプト更新の浸透方法
スクリプトを加工したライブラリを使用中のかた向けです。
多数のシナリオにスクリプトの更新を行き渡らせる方法を考えてみました。
考えた方法3つ
- 今はまだ叶わない理想
- トリッキーなチカラワザ
- 灯台下暗しな借り物リレー式
きっかけのスレッド
※ むしろこちらの別回答用に考えてた
1. 今はまだ叶わない理想
ライブラリ最新化機能の拡張希望
- シナリオ内のパーツ名(各ノードの名前)、もしくは既成と同じライブラリ名.ums7 のスクリプトを更新、所定のフォルダに格納
例:
ドキュメント\WinActor\libralies\priorityブラウザ操作(値の取得).ums7
もしくは
Browser_GetValue.ums7
- このスクリプトでシナリオ内の対象パーツが更新される
- 英語表記のライブラリ名は.dataを.zipにリネーム、解凍して特定
ホスピタリティ
- 既成ライブラリはスクリプトを編集すると、バージョン情報のタブが消えちゃう
- とりあえずスクリプトの1行目に所定の書式でバージョン情報のコメントを入れとく
例:
'ver,user1.0
'by,名前
'of,組織
'memo,変更内容
- ファイルメニューからCSVにエクスポートできるとベター
挙動
- ライブラリ最新化の後に、priorityのライブラリでも更新が走る
- ライブラリ最新化機能から見ると、更新のフローを2回繰り返す感じ
- 1回目はサーバーと交信、2回目はpriorityフォルダと交信
しくみを妄想した所感
- マイナーバージョンアップあたりで採用してくれたら助かる向きも多そう
- リクエストを上げれば検討してくれるのかも
2. トリッキーなチカラワザ
最大のトリッキーポイント
- Ver.7のシナリオをVer.6から編集
https://winactor.com/questions/question/ライブラリの設定をver-7から6に転記してみた/
しくみ
- 該当のノードIDを把握
Ver.7.3.0 リリースノート
https://winactor.biz/update/docs/WinActor_v730_releasenote_20211004.pdf#page=8ドキュメント生成機能
https://winactor.com/questions/question/意外と知らなかったwinactorのあれこれ⑥~「名前・コ/
- ノードIDを検索してスクリプトを編集
- ノードIDリストをループするフローにして、シナリオ内の全対象ライブラリのスクリプトを置き換える
- 必要なら設定タブの値や変数も書き換える
- 対象のシナリオファイルを1フォルダに集め、ファイルリストをループさせるフローにして、全ファイル内の全対象ライブラリのスクリプトを置き換える
天秤にかけることがら
- スポット作業のためにシナリオを作るコスト
- 何も見通しが立ってない機能拡張版のリリースまでの機会損失
- まったく別のアプローチによる目的のクリア
- スクリプトを書き換えなくて良い方法が見つかるかどうか
サンプルシナリオがリリースされたら、助かる向きも多そうな予感。
来るVer.8時代には、WinActorでWinActorシナリオを編集の道が閉ざされちゃったりするのかも。
恒久化検討
スポットにしてはコストがかかりすぎると感じるなら、、
priorityフォルダに新しいライブラリがあれば更新するしくみを恒久化しちゃう。
起動ショートカットのVBS内で6と7を順に起動し、シナリオ冒頭で6と7が相互にやり取りして新しいライブラリがあれば更新。
なければシナリオの目的とする処理に進む。
恒久化はさらにトリッキー、、
やっぱりサンプルシナリオが欲しい。
6と7を同時実行できることの価値
今って改めて考えてみると2ライセンス分の仕事をこなさせるポテンシャルがあるんですよね。
- 受信メールをExcelにリストアップしつつ、.msgファイルと添付ファイルをフォルダに格納
- フォルダ内のWordファイルのPDF化
2つを同時並行で稼働させられる。
添付ファイルがWordなら、非同期だけど関連性のある処理の直列稼働のイメージ止まり。
- WebシステムAからBへの登録
- WebサイトからCSVをダウンロードしてExcelでグラフを作ってメール配信
こんなまったく関連性のない処理の並行稼働も目指せる。
多方面からタブー視されそうな6と7の同時実行。
きっとライセンスで許されてる範囲に収まってますよね。
3. 灯台下暗しな借り物リレー式
しくみ
ここまで書いといてアレですが、同梱ライブラリの標準的な使いかたの範囲でも目的をクリアできますね。
- オリジナル/加工済みライブラリは、シナリオの外部、ネットワークフォルダ等で共有しておく
- シナリオからは「シナリオGoto」や「シナリオ呼び出し」で使う
このほうがメンテコストを抑えられそうですね。
追加で必要な準備があるとしたら、ネットワークフォルダのアクセス権調整くらい。
運用の工夫の範囲。
シナリオファイルは実行時にメモリに読み込まれて動く。
Excelみたいにほかに使われていると読み取り専用になっちゃうようなこともない。
運用として成り立ちそう。
ネガティブ要素
シナリオ内で、1ライブラリ入りの別シナリオを何度も行き来するスタイル。
- 「シナリオGoto」や「シナリオ呼び出し」が余分にかかる
- オリジナル/加工済みライブラリの使用数によっては、所要時間が長くなる
- ネットワークフォルダだと、アクセスから開くまでが重くなりがち
(どなたかがシナリオ冒頭とか1日の始まりあたりにローカルにコピーする運用/バッチを紹介されてたかも) - .ums7が追加で読み込まれる
- 加工したライブラリがたくさんあると、その分メモリを圧迫するのかしないのか
(使い終わったら勝手に閉じてくれるのかどうか) - ライブラリをシナリオに取り込んだ途端にスクリプト更新の浸透問題がつきまとう
実際に運用してるかたから所感が寄せられると嬉しいです。