Reliable for Large-scale Organizational Change! Method for Realizing Automatic Release (Revised)

Using the API for [Release] an App under development, you can realize automatic release of the group of specified Apps. The mechanism of the automatic release is implemented by automatic processing Step (Add-on XML).

Hi, there!

On the other day (March 27, 2018) I wrote “Reliable for Large-scale Organizational Change! Method for Realizing Automatic Release“.

v11.6 2018-03-12 Corresponds to HTTP Start which can Receive Request Body as It Is
Changes of Functions for System Engineer

Added API to acquire App list (/API/Admin/ProcessModel/list)
Added API to [Release] a version under development App (/API/PMM/ProcessModel/{processModelInfoId}/release)

https://www.questetra.com/info/version-1160/

It was an “Auto- Release” App using those APIs.

And soon after I wrote it, I received an inquiry below. I appreciate it!

<The inquiry>
* You cannot be aware of when the automatic release processing fails!
* It is a problem if I can’t take any kind of recovery measures when processing fails!

Thank you for your suggestion. My apologies.
Thus, I will make some improvements.

Points to improve for handling processing failure

As for the points to improve, there are

* To detect an occurrence of API execution error, and to make it possible to record its corresponding notification and the result of manual handling.
* To enable detection of not only execution errors of API but also unknown errors (script error, etc.).

In addition, it is good to be able to notify the end even when it ends without errors.

Improvements

Flow Diagram

Implementation of Error detection

We placed a Split in case of occurrence of processing failures in the flow.
Prepare a Select type Data Item (“Processing result”) as a Split condition and set the result by the “Processing result” option data matching with the processing result in the Automatic processing Step (“Auto-Release service”). (“true” for Normal processing, “false” for abnormal processing)

I will also change the config of the automatic processing Step (“Auto-Release service”) so that the result is set to “Processing result” no matter what.

<Config screen of “Auto-Release service”>

<”Auto-Release service” script excerpt (error detection part)>

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 += "Normal End StatusCode:" + response.getStatusCode() + ":" + responseJson + "\n";
    }else{
    	result = "false";
    	debug += "Ab-End StatusCode:" + response.getStatusCode() + ":" + responseJson + "\n";
    }
}
}catch(e){
	debug += "Excelption:notSending\n";
	result = "false";
}

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

Notifications

I prepared an example of notification with arranging the contents to be set in its destination and email body based on the data that has been acquired.

<Example of notification when an error is detected>

<Example of notification at completion>

Closing

Although it is a simple improvement, I posted this article since there is a customer who would like to “use the sample soon”.

Download: Auto-release service App (Revised)
* As the Service Task definition file (add-on XML) is App-specific management, so please refer it to
“App details” → “▼ App” → “Manage Add-on”.

When implementing APIs, people tend to be satisfied with only the Happy Path.
No matter the reason, it is necessary to perform the appropriate recovery when processing fails.
Please be aware of this.

I hope you use it.
If you have any questions, please feel free to contact us.

2018-04-03

About Masato Furukubo

Questetra, Inc. Sales Department
View all posts by Masato Furukubo

Recommendations
Prev article - 50. Questetra Tips Reliable for Large-scale Organizational Change! Method for Realizing Automatic Release
Next article - 50. Questetra Tips About Performance after Ver. 11.6 Release
Another article - Masato Furukubo Implement Customer Master using Options-XML (Part 1)

Archive

 RSS