大規模組織変更にも安心!自動リリース実現方法(改)

アプリの開発中バージョンを[リリース]するAPIを用い、指定されたアプリ群の自動リリースを実現します。 自動リリース部分は、自動処理工程(アドオンXML)で実装。

こんにちは、古久保です。

先日(2018年03月27日)に「大規模組織変更にも安心!自動リリース実現方法」を書きました。

Ver.11.6 リクエストボディをそのまま受信できる HTTP 開始に対応 (2018年3月12日)
◆ システムエンジニア向け機能の変更
(中略)
アプリ一覧を取得する API (/API/Admin/ProcessModel/list) を追加
アプリの開発中バージョンを[リリース]する API (/API/PMM/ProcessModel/{processModelInfoId}/release) を追加

http://www.questetra.com/ja/info/version-1160/

これらのAPIを用いた「自動リリース」アプリであります。

で、早速、お問い合わせを頂きました!ありがとうございます!

<お問い合わせ>
* 自動リリース処理が失敗した時に気づくことができないじゃないか!
* 処理失敗時、何らかのリカバリ手段が講じられないのは、困る!

ご指摘、ごもっともでございます。申し訳ございません。
ということで改良を行います。

◆異常処理時対応の改良ポイント

改良ポイントとしては、

* APIの実行エラーが発生した時に検知し、通知と手動対応した結果を残せるようにする。
* APIの実行エラーだけではなく、よくわからないエラー(スクリプトのエラー等)の時も検知できるようにする。

ということになります。
ついでに正常終了した時にも終了通知できるようにすると良いですね。

◆改良内容

◆◆フロー図

◆◆エラー検知実装

フローで異常処理時の分岐があります。
分岐の条件として選択肢型データ項目(「処理結果」)を用意し、自動処理工程(「自動リリースサービス」)内で処理結果に合わせて「処理結果」選択肢データに合わせた結果をセットします。(正常処理時:”true” 異常処理時:”false” )

間違いなく「処理結果」に処理結果がセットされるよう自動処理工程(「自動リリースサービス」)の設定も変更します。

<「自動リリースサービス」設定画面>

<「自動リリースサービス」スクリプト抜粋(エラー検知部分)>

var result = "true";

//// == 演算 / Calculating ==
try{
for (var i=0; i < apliRows.length; i++){
	apliId = apliRows[i].split(",");
	uri = uriHalf + apliId[0] + "/release";
	debug += "◆" + apliRows[i] + ":" + uri + "\n";
	var response = httpClient.begin()
		.basic(userName, apiPass)
		.formParam( "note", releaseNote)
		.post( uri );
    responseJson = response.getResponseAsString();
    if (response.getStatusCode() == "200"){
    	debug += "◯正常終了 StatusCode:" + response.getStatusCode() + ":" + responseJson + "\n";
    }else{
    	result = "false";
    	debug += "☓異常終了 StatusCode:" + response.getStatusCode() + ":" + responseJson + "\n";
    }
}
}catch(e){
	debug += "Excelption:notSending\n";
	result = "false";
}

engine.setDataByNumber(resultNum,[result]);
engine.setDataByNumber(debugPrintNum,debug);

◆◆通知内容

取得できているデータを元に送信先や本文にセットする内容を整えて通知例を作っています。

<異常検知時通知内容例>

<終了時通知内容例>

◆あとがき

簡易な改良ではありますが、「急ぎサンプルの活用を考えたい!」というお客様がいらっしゃったので急ぎ、記載しました。

ダウンロード:自動リリースアプリ(改)
※サービスタスクの定義ファイル(アドオンXML)は、アプリ固有の管理ですので
「アプリ詳細」→「▼アプリ」→「アドオンの管理」より参照して下さい。

API実装時は、正常処理による実現で満足しがちでございます。
何の要因であれ、処理失敗時にはタイムリーなリカバリを行う必要がございます。
皆様もお気をつけください。

ご活用頂けますと幸いです。
不明点がありましたら遠慮なくご連絡を下さい。

2018-04-03

Masato Furukubo の紹介

Questetra, Inc. Sales Department
Masato Furukubo の投稿をすべて表示

あわせて読みたい
50.Questetra Tips の前の記事 大規模組織変更にも安心!自動リリース実現方法
Masato Furukubo の他の記事 予算オーバー稟議を撲滅できる予算管理とは?

アーカイブ

 RSS