Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

アンケート結果から満足度を算出し、ダッシュボードに表示する方法について

Tsukuru Yuasa
Tera Contributor

お世話になっております。
アンケート結果から満足度を算出し、ダッシュボードに表示する方法について伺いたく、投稿しました。

 

やりたい内容としては、ServiceNow画面の見やすさや使い勝手をユーザーたちにアンケート回答してもらい、
その結果を満足度(以下Aと記載)として%で表示させ、

 

さらにそのA(%)と、基準値B(%)を比較して、A=<Bであれば「達成」、A>Bであれば「未達」のように
ダッシュボードに表示したいです。どのようにすれば良いでしょうか?

 

よろしくお願いいたします。

2 REPLIES 2

iwai
Giga Sage

アンケート結果を集計するにはAssessment Instance Questions [asmt_assessment_instance_question] Tableを集計します。後は別の投稿で回答した通りWidget の Dynamic Content で実装すると良いかと思います。

<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
	<g:evaluate var="jvar_result" object="true" >
		var result = {};
		var avgA;
		var valueB;
		var gr = new GlideAggregate('asmt_assessment_instance_question');
		gr.addQuery('source_id','502a2c44d7211100158ba6859e6103a3');// Survey Definitin
		gr.addQuery('metric','d02a2c44d7211100158ba6859e6103a4');// Survey Question
		gr.addAggregate('AVG', 'value'); // 満足度の平均
		gr.setGroup(false);
		gr.query();
		if (gr.next()) {
			avgA = parseFloat(gr.getAggregate('AVG', 'value'));
			valueB = parseFloat(5);
			if (avgA &lt;= valueB) {
				result = {
					"result":'達成 A '+avgA.toFixed(2)+', valueB ' + valueB.toFixed(2),
					"color":"green"
				};
			} else {
				result = {
					"result":'未達成 A '+avgA.toFixed(2)+', valueB ' + valueB.toFixed(2),
					"color":"red"
				};
			}
		}
		result;
	</g:evaluate>
	<p style="text-align:center; font-size: xx-large; color:${jvar_result.color};">${jvar_result.result}</p>
</j:jelly>

ありがとうございます。

確認させていただきます。