Servicenow:在范围应用中替换$ sp.getRecord()

时间:2017-09-22 15:54:46

标签: angularjs widget servicenow server-side-scripting

在ServiceNow中的全局应用程序中,您可以使用$ sp.getRecord();来访问当前记录。但是,这在范围环境中不可用。是否有替代方法来访问作用域应用程序中的当前记录?

以下是我尝试范围的代码:

var gr = $sp.getRecord();
if (gr == null)
    return;

data.tableLabel = gr.getLabel();
data.table = gr.getTableName();
data.sys_id = gr.getUniqueValue();
data.status = gr.state.getValue();
data.name = gr.name.getDisplayValue();
data.team_lead = gr.team_leader.getDisplayValue();
data.code = gr.project_charge_code.getDisplayValue();

1 个答案:

答案 0 :(得分:0)

我假设这是服务门户的小部件。我相信你应该能够在范围的应用程序中使用$sp.getRecord()。根据{{​​3}}:

  

请注意:以下API适用于作用域应用程序和   可能在全球范围内表现不同。

但是,如果您仍然遇到麻烦,一种方法是如果您有方法可以将其查询为GlideRecord

var gr = new GlideRecord('x_abcd_my_table');
gr.addQuery('number', 'XMT001245');
gr.query();

while (gr.next()) {
    data.tableLabel = gr.getLabel();
    data.table = gr.getTableName();
    data.sys_id = gr.getUniqueValue();
    data.status = gr.state.getValue();
    data.name = gr.name.getDisplayValue();
    data.team_lead = gr.team_leader.getDisplayValue();
    data.code = gr.project_charge_code.getDisplayValue();
}