ダッシュボードでの表示方法について

Tsukuru Yuasa
Tera Contributor

お世話になっております。

ダッシュボードでの表示方法について伺いたく、投稿しました。

 

やりたい内容としては、あるテーブルのフィールドAとフィールドB(ともに時間や金額などのが入っている想定)の
合計値(もしくは平均値)を比較して、例えばA=<Bであれば「達成」、A>Bであれば「未達」のように
ダッシュボードに表示したいです。どのようにすれば良いでしょうか?

 

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

5 REPLIES 5

iwai
Giga Sage

Widget の Dynamic Content で 比較した結果を表示する方法はどうでしょうか。コードは下記のようになります。Configure dynamic blocks (servicenow.com)

<?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">
		var result = '';
		var sumA;
		var sumB;
		var gr = new GlideAggregate('u_test_excel_20221031');
		gr.addAggregate('SUM', 'u_field_a');
		gr.addAggregate('SUM', 'u_field_b');
		gr.setGroup(false);
		gr.query();
		if (gr.next()) {
			sumA = Number(gr.getAggregate('SUM', 'u_field_a'));
			sumB = Number(gr.getAggregate('SUM', 'u_field_b'));
			if (sumA &lt;= sumB) {
				result = '達成 A '+sumA+', B '+sumB;
			} else {
				result = '未達成 A '+sumA+', B '+sumB;
			}
		}
		result;
	</g:evaluate>
	<p style="text-align:center; font-size: xx-large;">${jvar_result}</p>
</j:jelly>

 

リプライありがとうございます。
Content BlocksのDynamic Contentで、いただいた情報を試してみます。

本件、コメントありがとうございました。

 

追加でご存知でしたら教えていただきたいのですが、

達成の場合には緑文字、未達成の場合には赤文字で

表示させるようなことは可能か、わかりますでしょうか?

色付きにしました。XMLに記載のjelly についてはServiceNowの説明ページを参照してください。Jelly tags (servicenow.com)

<?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 sumA;
		var sumB;
		var valueC;
		var valueD;
		var gr = new GlideAggregate('u_test_excel_20221031');
		gr.addAggregate('SUM', 'u_field_a');
		gr.addAggregate('SUM', 'u_field_b');
		gr.setGroup(false);
		gr.query();
		if (gr.next()) {
			sumA = parseFloat(gr.getAggregate('SUM', 'u_field_a'));
			sumB = parseFloat(gr.getAggregate('SUM', 'u_field_b'));
			valueC = sumA / sumB;
			valueD = parseFloat(1);
			if (valueC &lt;= valueD) {
				result = {
					"result":'達成 A '+sumA+', B '+sumB + ', valueC ' + valueC.toFixed(2),
					"valueC":(valueC*100).toFixed(2),
					"color":"green"
				};
			} else {
				result = {
					"result":'未達成 A '+sumA+', B '+sumB + ', valueC ' + valueC.toFixed(2),
					"valueC":(valueC*100).toFixed(2),
					"color":"red"
				};
			}
		}
		result;
	</g:evaluate>
	<p style="text-align:center; font-size: xx-large; color:${jvar_result.color};">${jvar_result.result}</p>
	<p style="text-align:center; font-size: xx-large; color:${jvar_result.color}">${jvar_result.valueC} %</p>
</j:jelly>