J'ai soql dans le déclencheur Apex où il récupère tous les enregistrements de l'objet de test. SOQl récupère plus de 50000 enregistrements donc quand je mets à jour les enregistrements, je suis confronté à cette erreur de limite de gouverneur. s'il vous plaît laissez-moi savoir comment résoudre cette erreur.System.LimitException: trop de lignes de requête: erreur 50001 dans le déclencheur
List<test__c> ocrInformation = new List<test__c>();
Map<String,String> Opporgcode=new Map<String,String>();
ocrInformation= [select id,Team__c,Org__c from test__c];//facing an error here
for(test__c oct: ocrInformation){
Opporgcode.put(oct.Org__c,oct.Team__c);
}
Merci pour votre information.Existe-t-il un moyen d'augmenter cette limite de 50 000 en utilisant n'importe quelle annotation que certains pensent comme ça.Parce que le déclencheur existe depuis longtemps et pour une nouvelle amélioration, nous obtenons plus d'enregistrements maintenant. la logique n'est pas préférable avec la classe de traitement par lots. – saru
Il y a une annotation '@ReadOnly' qui permet de récupérer jusqu'à 1 million de lignes, mais vous ne pourrez y apporter aucune modification. Cela signifie que vous ne pourrez pas effectuer d'opérations DML lorsque vous exécuterez une transaction. Donc, si vous avez besoin de modifier les données, vous devriez regarder en utilisant Batch Apex. –
J'ajouterais que vous pourriez être autorisé (par votre logique de busines) à filtrer les enregistrements par date, ou Team__c, ou Org__c. Je suggérerais la clause WHERE d'abord. –