在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




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章