我正在創建一個報告。在報告條件中,我使用'是其中之一'並通過調用客戶端可調用腳本傳遞sys_id數組,包括javascript:new GetMoreInfoUpdatedChangeTickets()。getSysIds(); as。我可以將sys_ids看作「數據源條件:60a219744fc73200d6940e428110c72b中的系統ID」。但相應的記錄沒有得到顯示。但是相應的sys_id記錄是可用的。sys_id數組爲不顯示記錄
回答
我想我在這裏看到問題。不幸的是,這不是通常包含客戶端可調用腳本的工作方式。腳本包括甚至客戶端可調用的腳本,總是在服務器上執行。它們旨在通過來自客戶端腳本的異步GlideAjax調用來調用。
欲瞭解更多信息,我鼓勵你看看GlideAjax的this article。
但是,幸運的是,您的實際查詢在服務器上執行,而不是在客戶端上執行。所以腳本包括是可能是正確的路要走,但是你面臨的問題是(可能)通過使其成爲GlideAjax腳本包含,你告訴ServiceNow重寫構造函數(initialize())方法,但把它作爲一個類。
既然你說你得到一個sys_id返回,這可能是我所描述的不是這個問題,而這個解決方案將無法工作。但是,我沒有足夠的信息給出任何其他答案;所以如果是這種情況,請運行沒有顯示正確結果的查詢,然後右鍵單擊列表頂部的最後一個查詢麪包屑,然後單擊「複製查詢」,然後將查詢粘貼到在這個線程上的回覆(專門回覆我的評論,所以我得到通知),所以我可以看看。
請明顯地請在您的腳本中提供代碼,包括,以便我可以幫助您排除故障。
編輯: 現在你已經添加了什麼在此評論的回覆你的代碼,我可以看到幾個問題。
您的原始:
var GetMoreInfoUpdatedChangeTickets = Class.create();
GetMoreInfoUpdatedChangeTickets.prototype = {
initialize: function() {
}, getSysIds: function getMyGroupMembers() {
var ga = new GlideRecord('sysapproval_group');
ga.addQuery('parent.sys_class_name', '=', 'change_request');
ga.query();
gs.log("TotalRecords1 Before:: " + ga.getRowCount());
var sysIdArray = [];
while (ga.next()) {
sysIdArray.push(ga.sys_id);
}
return sysIdArray;
}, type: 'GetMoreInfoUpdatedChangeTickets'
}
這裏是所有我對你的代碼所做的更改,併爲每個的解釋:
首先,在下面的代碼線5,我已經改變了你的成員函數(又名:「方法」)的聲明方式。你有這樣的聲明: getSysIds: function getMyGroupMembers() {}
所以在這裏,你基本上給了它兩個名字,並一次以兩種方式聲明它。 通常,函數聲明如下: function functionName(args) {}
但是,在一個對象內(或者在這種情況下,一個類 - 這是一個具有使用「new」關鍵字返回自身副本的構造函數的對象),我們聲明函數像這樣: functionName: function(args) {},
所以你可以在下面的代碼中看到,我已經爲你做了調整。
接着,在線以下8,我已經從您的addQuery()
方法調用被移去的冗餘「=」運算符,如沒有指定時「=」被暗示。這不是必需的,但它看起來更乾淨。 (我也改名爲您GlideRecord變量從ga
到grApprovalGroup
貫穿始終,使之更有意義。)
我感動的sysIdArray
的聲明的一致性功能的頂部,它是如何執行(和爲了清楚起見)。這也不是必需的,但通常建議。
線12的下方,在原始代碼中,看起來像這樣: sysIdArray.push(grApprovalGroup.sys_id);
然而,由於gr.sys_id
是對象(型號: 「GlideElement」 - documentation here),這是推參考到對象放入數組中。作爲對象(一個在位置gr.sys_id
變化的字符串值屬性,也是如此每個的字符串值屬性和陣列在每個元件中,由於每一個元素是一個參考相同的對象!更多在這(我寫的)that you can find here。 信息,在一篇文章中我只想說,這不是一個好主意,並會導致相同sys_id列表一遍又一遍!爲了解決這個問題,我們只是用最好的-practice推薦「消氣」的方法(如我聯繫文章建議),你可以在下面的代碼在網上看到12。
var GetMoreInfoUpdatedChangeTickets = Class.create();
GetMoreInfoUpdatedChangeTickets.prototype = {
initialize: function() {
},
getSysIds: function() {
var sysIdArray = [];
var grApprovalGroup = new GlideRecord('sysapproval_group');
grApprovalGroup.addQuery('parent.sys_class_name', 'change_request');
grApprovalGroup.query();
while (grApprovalGroup.next()) {
sysIdArray.push(grApprovalGroup.getValue('sys_id'));
}
return sysIdArray;
},
type: 'GetMoreInfoUpdatedChangeTickets'
};
最後,我們需要實際從類中提取函數並對其進行重命名,以便腳本包含其本身就是函數。
function GetMoreInfoUpdatedChangeTickets() {
var sysIdArray = [];
var grApprovalGroup = new GlideRecord('sysapproval_group');
grApprovalGroup.addQuery('parent.sys_class_name', 'change_request');
grApprovalGroup.query();
while (grApprovalGroup.next()) {
sysIdArray.push(grApprovalGroup.getValue('sys_id'));
}
return sysIdArray;
}
因爲你不能使用查詢JavaScript中的「新」的關鍵字,有必要定義它像這樣(沒有類),一旦我們做到了這一點,我們可以重新啓用「客戶端可調用「選項,您以前啓用。
一旦你做到了這一點,你應該能夠去下面的網址,並查看查詢腳本動作:
- 1. 顯示記錄組
- 2. 記錄不顯示
- 3. 分組時不顯示軌道記錄
- 4. 顯示記錄數
- 5. SQL組記錄但在組中顯示不爲空
- 6. sqlite的記錄不會顯示爲iPhone
- 7. 爲什麼預期記錄不顯示?
- 8. JQuery模板不顯示記錄集作爲組由
- 9. Gridview不顯示記錄?
- 10. 查詢不顯示記錄
- 11. Telerik RadGrid不顯示記錄
- 12. JTable JQuery不顯示記錄
- 13. 記錄不會顯示
- 14. DataGridView不顯示ShortTime記錄
- 15. DBGrid不顯示記錄
- 16. 顯示記錄
- 17. 顯示記錄
- 18. 笨查詢數組不顯示第一個記錄,但沒有別的顯示
- 19. MySQL更新記錄,但頁面顯示不顯示新數據
- 20. 組合框只顯示一條記錄
- 21. SQL顯示組缺少記錄
- 22. 導軌 - 顯示分組的記錄
- 23. 按jquery按月顯示組合記錄
- 24. 爲什麼我的數據庫對象不顯示記錄集?
- 25. 將組記錄並在一行中顯示每個記錄值
- 26. SQL顯示記錄
- 27. 顯示記錄meteorjs
- 28. 顯示MySQL記錄
- 29. 多記錄顯示
- 30. xslt記錄顯示
實現你的建議我的代碼如下類似後:VAR GetMoreInfoUpdatedChangeTickets = Class.create(); GetMoreInfoUpdatedChangeTickets.prototype = {initialize:function(){},getSysIds:function getMyGroupMembers(){var sk = new GlideRecord('sysapproval_group'); ga.addQuery('parent.sys_class_name','=','change_request'); ga.query(); gs.log(「TotalRecords1 Before ::」+ ga.getRowCount()); var sysIdArray = []; while(ga.next()){sysIdArray.push(ga.sys_id); \t} \t return sysIdArray; },輸入:'GetMoreInfoUpdatedChangeTickets'}; –
你實際上並沒有提及是否它的工作或不... –
在那裏,我更新了我最初的註釋有更多的信息和解決方案。請參閱它,並在下次嘗試提供所需的信息,如果您需要幫助。 –