2017-07-09 1 views
0

Ich bin nicht in der Lage, Datensätze auf meinem Bericht anzuzeigen.sys_id arrays to ist einer der keine Datensätze auf meinem Bericht anzeigen

Bericht Quelle: Group Approval (sysapproval_group) Tabelle Bedingung: Sys-ID - ist eine der - javascript: neue GetMyGroupApprovals(). GetSysIds();

Script umfassen: MyGroupApproval Hinweis: Aktiv aktiviert ist, ist Accesible alle Anwendung &-Client aufrufbar ungeprüft

var GetMyGroupApprovals = Class.create(); 
 
GetMyGroupApprovals.prototype = { 
 
    initialize: function() { 
 
    }, \t 
 
\t getSysIds : function getMyGroupMembers(){ \t \t 
 
\t \t var ga = new GlideRecord('sysapproval_group'); 
 
\t \t ga.addQuery('parent.sys_class_name', '=', 'change_request'); \t \t 
 
\t \t ga.query(); 
 
\t \t gs.log("TotalRecords1 Before:: " + ga.getRowCount()); 
 
\t \t var sysIdArray = []; 
 
\t \t \t while(ga.next()){ \t \t \t \t \t 
 
\t \t \t \t \t sysIdArray.push(ga.sys_id); \t \t \t 
 
\t \t \t } \t \t 
 
\t \t return sysIdArray; 
 
\t \t }, 
 
\t 
 
    type: 'GetMyGroupApprovals' 
 
};

Bitte beachten Sie, dass ich ein Tor mit Skript Ansatz zu erreichen haben. Ich kann keine Aufzeichnungen über meinen Bericht erhalten.

Antwort

1

Diese Linie wahrscheinlich verursacht unerwartetes Verhalten: sysIdArray.push(ga.sys_id);

ga.sys_id gibt ein GlideElement Objekt, das für jede der Iterationen in der GlideRecord, so wird der Inhalt von sysIdArray verändert wird nur eine Instanz des gleichen Objekts sein, jede Zeile in der Ergebnismenge, aber der Wert wird nur die letzte Zeile in der Menge sein.

Sie müssen sicherstellen, dass Sie eine Zeichenfolge in das Array schieben durch eine der folgenden Methoden:

sysIdArray.push(ga.sys_id+''); // implicitly call toString 
sysIdArray.push(ga.getValue('sys_id')); // return string value 
+1

Diese Antwort genau richtig ist, und hier ist ein Artikel darüber, warum dies geschieht und was es bewirkt: https://snprotips.com/blog/2017/4/9/always-use-getters-and-setters –

Verwandte Themen