2017-07-09 3 views
0

Je ne suis pas en mesure d'afficher les enregistrements sur mon rapport.tableaux sys_id à est l'un de ne pas afficher des enregistrements sur mon rapport

Source du Rapport: Group Approval (sysapproval_group) table Condition: Sys Id - est l'un de - javascript: new GetMyGroupApprovals(). GetSysIds();

Script Inclure: MyGroupApproval Note: active est cochée, est accesible toutes les applications client partition & appelable sans contrôle

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' 
 
};

Veuillez noter que je dois réaliser avec l'approche de script. Je ne suis pas en mesure d'obtenir des enregistrements sur mon rapport.

Répondre

1

Cette ligne est probablement à un comportement inattendu: sysIdArray.push(ga.sys_id);

ga.sys_id retourne un objet GlideElement, qui change pour chacune des itérations du GlideRecord, de sorte que le contenu de sysIdArray sera juste une instance du même objet pour chaque ligne dans le jeu de résultats, mais la valeur sera juste la dernière rangée de l'ensemble.

Vous devez vous assurer que vous appuyez sur une chaîne au tableau en utilisant l'une des méthodes suivantes:

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

Cette réponse est tout à fait correct, et voici un article sur pourquoi cela se produit et quelles sont les causes: https://snprotips.com/blog/2017/4/9/always-use-getters-and-setters –