0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

HULFT Scriptで転送前後処理を自動配布、自動反映してみた (3/3)

Last updated at Posted at 2019-09-06

はじめに

こんにちは、よろず相談担当 すぎもん :yum: です。

前回の記事では、お客様の課題を解決する方法として
「HULFT Script オートマティック・アップデート」
というワザの概要をご紹介いたしました。

今回は、実際に作成したサンプルを処理の流れに沿ってご紹介します。

処理の流れ

■本社側の流れ

1. 配布処理実行
本社の担当者が配布実行したいタイミングで、HULFT Scriptの処理を実行します。
自動化するなら、深夜などにスケジュール実行しても良さそうです。
2. 処理のエクスポート
各拠点に配布したい処理を「CLI Console」でエクスポートします。
「CLI Console」とは、HULFT Scriptの管理機能をコマンド実行できるツールです。
3. HULFT配信
HULFTを使用し、「2.」でエクスポートした処理を転送します。

■支店側の流れ

4. HULFT集信
HULFTで本社から送信されたファイルを受け取ります。
5. 処理のインポート
HULFT Scriptの処理を実行し、「CLI Console」で処理をインポートします。
処理は、HULFT Scriptトリガーを使用して、HULFTの集信を契機として実行されます。
インポートには「サーバ移行機能」を使用するため、忘れずに再起動しましょう。

1.配布処理実行

まず、本社側で下記のようなスクリプトを作成し、配置します。
本社側スクリプトイメージ
最初の「delete(ファイル/ディレクトリ削除処理)」アイコンでは、初期処理としてワークフォルダをクリアしています。

次の「launch(外部アプリケーション起動処理)」アイコンでは、下記のとおり設定し、「CLI Console」を起動しています。
外部アプリケーション起動処理
引数として、「CLIコマンド設定ファイル」のパスを記述します。「-M」に続いて、スペースを空けずにパス指定します。
※「CLI Console」をバッチ実行する場合、各コマンドは「CLIコマンド設定ファイル」に記載し、 "ファイル渡し" する必要があります。

2.処理のエクスポート

「CLI Console」は、HULFT Scriptインストールフォルダの「/server/bin/CLI.exe」にあります。
CLI.exe
CLI.exeに "ファイル渡し" する「CLIコマンド設定ファイル」の内容は以下のとおり。
cli_serverdl.cli

cli_serverdl.cli
# サービスをエクスポートします
exp --service="HULFTScriptテンプレート基礎編" "C:\hulft\export"

※行頭が「#」から始まるものはコメントとして扱います。
上記コマンドを実行することで、「HULFTScriptテンプレート基礎編」というサービスが「C:\hulft\export」にエクスポートされます。
exportファイル
なお、ファイル名(export_xxxxxxxxxx)はエクスポート時に動的に付与されます。
ファイル名はHULFT配信時に使用するので、スクリプト内でファイル名を取得し、変数に退避しておきます。
ここでは、「list(ファイル名一覧取得処理)」アイコンでファイル名を取得し、「variable(変数代入)」アイコンで変数に退避しています。

3. HULFT配信

続いて、HULFTによる配信を行うため、「配信要求処理」を行います。
ここでは、使用するHULFTのファイルID(FILE_001)を指定します。
配信要求処理(必須設定)
配信要求処理のポイントは、下記のとおり「配信ファイル名」を動的指定していることです。
上述のとおり、サービスをエクスポートした際のファイル名は毎回変わるからです。
配信要求処理(任意設定)
ここで、HULFTの設定内容を見てみましょう。
HULFTの「配信管理情報」に入力されているファイル名は、仮のファイル名となります。
ここに値が記載されていても、HULFT Scriptからファイル名を渡すので、そちらが優先されます。
配信管理情報

4. HULFT集信

HULFTの集信を監視し、処理を実行するため、HULFT Scriptトリガーを使用します。
HULFT Scriptトリガーは、HULFTのファイル転送を検知して、条件に一致した場合にスクリプトを実行する機能です。
HULFT Scriptトリガーの設定
ここでは、「ファイルID(FILE_001)」の「集信」が「正常(完了コード="0")」のときのみ起動するように設定しました。

そして、監視対象となるHULFTの「集信管理情報」です。
集信管理情報
「集信管理情報」のファイル名ですが、こちらは「固定のファイル名(service.zip)」にしました。
こちらのファイル名は、次のステップで使用します。
service.zip

5. 処理のインポート

HULFT ScriptトリガーでHULFTの集信を検知したら、下記のスクリプトを実行します。
配置するのは、「launch(外部アプリケーション起動処理)」アイコンだけですね。
支店側スクリプトイメージ
下記のとおり設定し、「CLI Console」を起動します。
引数として、「CLIコマンド設定ファイル」のあるパスを記述します。
外部アプリケーション起動処理
CLI.exeに "ファイル渡し" する「CLIコマンド設定ファイル」の内容は以下のとおり。
集信したファイル名(service.zip)を固定で記載しています。
cli_serverul.cli

cli_serverul.cli
# サービスをインポートします
imp -m "C:\hulft\import\service.zip"

# 有効化するため再起動します
shutdown --reboot

インポート後、HULFT Script Serverの再起動も行っています。
再起動を伴うので、当然ですが、運用外の時間帯に実行すべきですね。

テスト実行してみよう!

本社側のスクリプトをデザイナから実行します。
デザイナから実行
HULFTの配信履歴です。「完了コード="0"」ですね。
配信状況一覧
配信が正常終了ということは、集信も正常終了です。
集信状況一覧
支店側のサービスです。
処理の実行前は、「HULFTScriptテンプレート基礎編」の登録日時が「2019/08/19 14:22:26」ですね。
マイサービス(実行前)
処理の実行後、登録日時が「2019/08/19 14:28:08」になりました。
マイサービス(実行後)
サービスを更新していれば、バージョンも上がるはずです。
今回はループバックで実施したため、「登録日時」で成功を確認しています。

さいごに

いかがでしたか?
この**「HULFT Script オートマティック・アップデート」**を使用すれば、開発環境で作成した処理を自動配布し、簡単に本番適用できます。

実際の運用に至るには、まだまだ考慮点はあると思います。
が! お客様の課題を必ずや解決の方向に導くハズ!

【課題1】内部統制の不全
:arrow_forward: 一元管理 開発環境で作成した処理を配布し、簡単に本番適用が可能
【課題2】属人化
:arrow_forward: 標準化 開発者のスキルに依存しにくいノンプログラミング開発
【課題3】開発コスト増大
:arrow_forward: 高生産性 豊富なテンプレートをベースに、パターン化しつつ実装

:runner: :runner: :runner: :runner: :runner:

いや~、製品や機能を組み合わせることで、今までになかった使い方が出てくるものですね。
頭を柔軟にすれば、フレキシブルな課題解決案が浮かぶもんだ、と再認識した次第です。(←自画自賛)

このブログでは、技術の「よろず相談窓口」で相談を受けた内容や、誕生したワザをご紹介していけたらな、と思っています。
これからも是非チェックいただき、宜しければフォローをお願いします。

それでは、また!


:arrow_backward: HULFT Scriptで転送前後処理を自動配布、自動反映してみた (1/3)
:arrow_backward: HULFT Scriptで転送前後処理を自動配布、自動反映してみた (2/3)


0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?