ANS-1288 · DéVELOPPEMENT SUITESCRIPT
Comment récupérer efficacement des résultats de recherche dans NetSuite SuiteScript 2.0 ?
NetSuite SuiteScript 2.0 propose trois méthodes distinctes pour récupérer des résultats de recherche, chacune présentant des considérations spécifiques en matière de performances et de cas d'utilisation.
Solution courte
SuiteScript 2.0 propose trois méthodes principales pour récupérer des résultats de recherche : `search.ResultSet.getRange()`, `search.ResultSet.each()` et `search.PagedData.fetch()`. Chaque méthode présente des avantages différents en termes d’unités de mesure, de limites de résultats et de facilité d’utilisation ; le choix dépend donc des exigences spécifiques du script et du volume de données.
Scénario
Les développeurs travaillant avec NetSuite SuiteScript 2.0 ont souvent besoin de récupérer des données à partir de recherches enregistrées ou de recherches créées dynamiquement. La difficulté réside dans le choix de la méthode la plus appropriée pour la récupération des résultats, en tenant compte de facteurs tels que le nombre total de résultats attendus, les limites de gouvernance des scripts et l’efficacité de performance souhaitée. Le choix d’une méthode inadaptée peut entraîner des erreurs de script, une consommation excessive d’unités de facturation ou un traitement inefficace des données.
Solution
SuiteScript 2.0 propose trois méthodes distinctes pour récupérer des résultats de recherche, chacune étant adaptée à différents scénarios en fonction des performances, de la facturation et du volume de résultats. Le choix optimal dépend des exigences spécifiques du script.
search.ResultSet.getRange()
Cette méthode permet de récupérer une partie spécifique des résultats, avec une prise en charge allant jusqu’à 1 000 résultats par exécution, pour un coût de 10 unités de facturation par exécution.
Avantages :
- Permet de récupérer tous les résultats
- Permet de renvoyer facilement un sous-ensemble spécifique de résultats (par exemple, le premier enregistrement)
- Syntaxe similaire à celle de la version 1.0 utilisée par
guruSearchRecord()
.
Inconvénients :
- La plus gourmande en unités de mesure (10 unités pour 1 000 résultats)
search.ResultSet.each()
Cette méthode facilite l’itération sur les résultats de recherche et permet de récupérer jusqu’à 4 000 résultats en une seule exécution.
Avantages :
- Seulement 10 unités de facturation pour récupérer jusqu’à 4 000 résultats (coût de facturation le plus faible)
- Code clair et simple (pas besoin de gérer la récupération de tous les résultats)
Inconvénients :
- Ne permet de récupérer que 4 000 résultats (à partir du 4 001e résultat, une erreur sera générée !).
search.PagedData.fetch()
Cette méthode reproduit fidèlement la manière dont les résultats de recherche sont présentés dans l’interface utilisateur et autorise des pages contenant jusqu’à 1 000 résultats.
Avantages :
- Efficacité de comptage optimale lors de la récupération de plus de 4 000 enregistrements (5 unités + 5 unités par tranche de 1 000 résultats)
- Permet aux utilisateurs de voir combien il y a de résultats sans avoir à tout récupérer.
- Comprend des données clé->valeur pouvant être facilement utilisées pour un menu déroulant de pagination.
Inconvénients :
- Légèrement plus complexe à utiliser que les deux autres méthodes.
Support expert NetSuite
Besoin d’aide pour cet enjeu NetSuite ?
Accompagnement-conseil et configuration pour Développement SuiteScript
