我想创建一个网页(如仪表板)来显示来自ServiceNow的信息,如:
等
您能否建议我该如何处理?(我了解Java并了解Rest)
由于
答案 0 :(得分:1)
我会像Kirk在上面的评论中所建议的那样,在Servicenow中构建它,但是,如果这不是一个选项,那么这是另一种方式。
找出您列出的四个数据点所需的查询; 例如/cmn_company_list.do?sysparm_query=u_region=europe
然后使用Aggregate API为每个人拨打休息电话。
您可能需要修改Servicenow中的[CORS] [2]以允许您的站点访问此端点,以及使用服务帐户。
您在Java中的代码可能看起来像;
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://something.service-now.com/api/now/stats/incident?sysparm_query=active%3Dtrue&sysparm_sum_fields=active")
.get()
.addHeader("content-type", "application/json")
.addHeader("authorization", "Basic NeverGunnaGetIt")
.addHeader("accept", "application/json")
.build();
Response response = client.newCall(request).execute();
哪个会产生类似的结果;
{
"result": {
"stats": {
"sum": {
"active": "6146"
}
}
}
}
答案 1 :(得分:0)
我建议在ServiceNow中构建它而不是单独的网页,但如果这不是一个选项,您可能需要使用某种JavaScript库创建图表{{3} }
查看文档,但您可以使用通过REST提取的数据执行这些操作。这是一个条形图,但该库有许多图表选项。
<script src="../lib/Chart.min.js" type="text/javascript"></script>
<canvas id="myChart" width="400" height="400"></canvas>
<script>
var data = [12, 19, 3, 5, 2, 3, 12, 19, 3, 5, 2, 3];
var ctx = document.getElementById("myChart").getContext('2d');
var myChart = new Chart(ctx, {
type: 'bar',
data: {
labels: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
datasets: [{
label: '# of Incidents per Month',
backgroundColor: 'rgba(0, 0, 220, 0.5)',
data: data
}]
}
});
</script>
在这里,您需要将data
设置为REST中的数据数组。