从服务门户小部件中访问 GlideRecord

Access GlideRecord from within service portal widget

我如何 运行 从小部件中进行 Glide 查询? (服务门户)

此代码 运行 在脚本背景编辑器中没问题,但在我的小部件的服务器脚本部分不起作用:

var grTask = new GlideRecord('task');
grTask.get('number', "REQ0323232");  // hardcoded good sample
destination_sys_id = grTask.sys_id;

当我 运行 脚本中的代码时,我得到: *** Script: sys_id: 0f4d[...]905

当我在小部件中 运行 时,我得到:{}

详细说明我的Widget代码:

正文HTML模板

data.destination_sys_id = {{data.destination_sys_id }}

服务器脚本

(function(){
  var destination_sys_id = "initialized";
  var grTask = new GlideRecord('task');
  grTask.get('number', "REQ0323232");
  destination_sys_id = grTask.sys_id;
  data.destination_sys_id = destination_sys_id;
})()

我的服务器脚本中需要 .toString();

(function(){
  var destination_sys_id = "initialized";
  var grTask = new GlideRecord('task');
  grTask.get('number', "REQ0323232");
  destination_sys_id = grTask.sys_id.toString();  // <- note the addition of .toString()
  data.destination_sys_id = destination_sys_id;
})()

另一种方法是使用 grTask.getUniqueValue() 而不是 grTask.sys_id.toString()

此外,GlideRecord 推荐使用 getter 和 setter,因此请使用 grTask.getValue('sys_id') 而不是 grTask.sys_id.toString()

您可以将其添加为 c.data.destination_sys_id nad 在将值分配给对象时始终使用 .toString() 以将字段值字符串化。