ServiceNow-查询表并插入事件

我正在尝试实现一个查询表并检查某些条件的脚本。 如果为true,则将插入事件。

我不确定这是哪里出了问题,我想这是while循环。

如果有人可以协助,我是servicenow脚本编写的新手。 代码在下面

var kc = new GlideRecord('cmdb_ci_web_site');
   kc.addQuery('owned_by','=',current.u_caller_id.sys_id).addOrCondition('u_secondary_site_owner',current.user.sys_id);
   kc.query();

   While (kc.next()) 
    {

          var inc = new GlideRecord('incident');
                  inc.initialize();
                  inc.short_description ='Assign New User to PSO or SSO';
                  inc.u_category = 'KCCC';
                  inc.current.u_caller_id.sys_id.setDisplayValue();
                  inc.to_be_encrypted ='Assign New User to PSO or SSO';
          inc.impact ='3';
          inc.urgency = '3';
                  inc.insert();
    }
wocaonimasibusi 回答:ServiceNow-查询表并插入事件

不太确定您要通过此行实现什么目标:inc.current.u_caller_id.sys_id.setDisplayValue();。由于 caller_id 是一个引用字段,所以你不需要到它的 sys_id 去 dot walk 来获取它的值,系统默认会自动获取 sys_id。

您可以将脚本更改为:

var kc = new GlideRecord('cmdb_ci_web_site');
kc.addEncodedQuery('owned_by='+current.u_caller_id+'^OR u_secondary_site_owner='+current.user);
kc.query();
while (kc.next()) 
   {
       var inc = new GlideRecord('incident');
       inc.initialize();
       inc.setValue("short_description","Assign New User to PSO or SSO");
       inc.setValue("u_category","KCCC");
       inc.setValue("to_be_encrypted","Assign New User to PSO or SSO");
       //inc.setValue(relevant_incident_field,current.u_caller_id);
       inc.setValue("impact","3");
       inc.setValue("urgency","3");
       inc.insert();
   }
,

这行是可疑的friend,我想inc.current.u_caller_id.sys_id.setDisplayValue();是不确定的。

如果仍然无法使用:我在直接链接OR条件时遇到了问题。尝试为您的OR条件设置一个新变量:

inc.current
,

尝试更改以下语句: inc.current.u_caller_id.sys_id.setDisplayValue();

如果要使用当前值在inc中设置特定字段,请尝试以下操作: inc.somefieldininc = current.u_caller_id.sys_id;

本文链接:https://www.f2er.com/3110601.html

大家都在问