在ServiceNow的CSM中无法使用Ajax API异步调用的曲线救国方式

又是一年1024节日,还是应该放点干货出来,才能证明我们还活着!


在CSM(**Customer Service Management**)中我们发现CSM的标准用户是没有SNC_INTERAL角色的,以至于在AJAX代码执行的时候XML方式不会加载ITEM项,导致在ServicePortal页面一直会报AJAX异常(这个坑了我们好久!)。可能SN的初衷就是这么设计的,不允许没有internal角色的用户去使用异步调用。但是现实是很多数据需要在字段onchange的时候就把某些信息填进去,即用户很懒。


既然用户想偷懒,SN又不让我们使用GlideAjax, 我们经过反复的测试还是发现一个曲线救国的方式。具体操作如下:


  1. 使用Inbound Message:创建一个REST API,这时就模拟了GlideAjax去调用的方式去获取服务器数据。

    image.png

  2. 回归原始:使用JQuery去调用REST API来执行异步更新。

    image.png

  3. 在UI Script中将JQuery的原始库代码复制进去,并加入$$j = JQuery.noconfit(),$$J可以自己决定。注意:千万不要勾选global选项。后悔药不好找,当然我有~~~~~。

    image.png

  4. 在service portal端注入对应的依赖关系,其依赖关系对应的JS Include脚本即对应的UI Script库。而在Fufiller端可直接使用上面定义的$$j即可。

    image.png

    image.png




猜你喜欢

转载自blog.51cto.com/13716461/2308385
今日推荐