【问题标题】:ServiceNow: dynamically create table from arrayServiceNow:从数组动态创建表
【发布时间】:2017-09-14 18:22:47
【问题描述】:

我正在尝试在 ServiceNow 中创建一个小部件,该小部件根据用户的位置和职业显示与用户相关的所有知识文章。在某些情况下,应该返回多篇 KA 文章,我想动态创建一个表格,列出所有适用的文章。下面是我的服务器脚本,我从 HR_Profile 中检索用户的职业和位置。然后,我打开一个空数组,在其中循环遍历适合过滤器的每篇知识文章,获取 KA 编号和简短描述,然后将其推送到我的空数组中:

var gr = new GlideRecord('hr_profile');
    gr.addQuery('user', gs.getUserID());
    gr.query();
    if(gr.next())
    {
  var occ = gr.occupation;
  var loc = gr.user.location;
  }

var kaArray = [];
var ka = new GlideRecord('x_81991_knowledge');
     ka.addQuery('workflow_state', 'Published');
     ka.addQuery('kb_category.label', 'Benefits');
     var qc1 = ka.addQuery('occupation', 'CONTAINS', occ);
     qc1.addOrCondition('location', 'CONTAINS', loc);
     ka.orderByDesc('sys_updated_on');
     ka.query();
     while(ka.next()) {
            obj = {number: ka.number,
            short_desc: ka.short_description,
             url: 'kb_view.do?sysparm_article=' + ka.number}
   kaArray.push(obj);
  }

我的问题是如何访问数组并循环创建一个包含三列(数字、描述、URL)的 HTML 表格以及与该个人相关的所有文章?

谢谢。

【问题讨论】:

    标签: javascript arrays html-table servicenow


    【解决方案1】:

    嗯,这似乎与您在 StackOverflow 上发表的上一篇文章非常相似。我假设它们是相关的。请注意,如果在该帖子中提供此上下文信息,可能会成功,因此我可以提供一个更完整的答案来更好地帮助您。

    您需要做的就是让小部件完成您正在寻找的工作,即您的小部件 HTML 中的 <div> 标记,带有 ng-repeat 属性。在您的服务器端代码中,您需要使用data 对象来填充小部件的列,正如您在无数小部件中看到的那样,这些小部件包含使用 Angular 呈现的表的现有示例。 (您也可以使用<table>,并重复您的列标签。确实有无数其他方法可以做到这一点)。

    这是一个小部件,它可能非常接近您想要完成的功能,您只需要稍微调整一下(您可以使用我在回答您的另一个问题时提供的代码进行部分调整):

    https://your_instance.service-now.com/nav_to.do?uri=sp_widget.do?sys_id=3c817b52cb30020000f8d856634c9cfb

    (假设您在伊斯坦布尔,可能是赫尔辛基)。

    【讨论】:

      猜你喜欢
      • 2021-07-24
      • 1970-01-01
      • 2018-01-23
      • 2019-05-10
      • 2018-01-13
      • 1970-01-01
      • 1970-01-01
      • 2016-06-16
      • 2018-10-04
      相关资源
      最近更新 更多