{"id":4180,"date":"2017-08-21T15:12:36","date_gmt":"2017-08-21T15:12:36","guid":{"rendered":"https:\/\/answers.gurussolutions.com\/answers\/how-to-manage-and-optimize-netsuite-script-execution-limits-2\/"},"modified":"2026-07-28T18:26:29","modified_gmt":"2026-07-28T18:26:29","slug":"comment-gerer-et-optimiser-les-limites-dexecution-des-scripts-netsuite","status":"publish","type":"qa_entry","link":"https:\/\/answers.gurussolutions.com\/fr\/answers\/comment-gerer-et-optimiser-les-limites-dexecution-des-scripts-netsuite\/","title":{"rendered":"Comment g\u00e9rer et optimiser les limites d&rsquo;ex\u00e9cution des scripts NetSuite ?"},"content":{"rendered":"","protected":false},"template":"","meta":{"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","ga_subtitle":"Comprenez les trois facteurs principaux \u2014 le temps, la gouvernance et le nombre d\u2019ex\u00e9cutions \u2014 susceptibles de limiter les performances des scripts, et d\u00e9couvrez les strat\u00e9gies permettant d\u2019\u00e9viter leur interruption.","ga_short_answer":"Les scripts NetSuite sont soumis \u00e0 des limites de dur\u00e9e, de gouvernance et de nombre d\u2019ex\u00e9cutions. Pour \u00e9viter l\u2019interruption des scripts, les d\u00e9veloppeurs doivent mettre en \u0153uvre une logique de replanification pour les scripts planifi\u00e9s \u00e0 l\u2019aide des modules N\/task et N\/runtime, optimiser le code afin de r\u00e9duire le temps d\u2019ex\u00e9cution et le nombre d\u2019appels d\u2019API, et simplifier les fonctions complexes pour ne pas d\u00e9passer la taille de la pile d\u2019appels JavaScript. Il est \u00e9galement essentiel de surveiller l\u2019utilisation de la m\u00e9moire.","ga_scenario":"Les scripts NetSuite, y compris les scripts planifi\u00e9s, les scripts client et les scripts d\u2019\u00e9v\u00e9nements utilisateur, peuvent \u00eatre <a class=\"ga-interlink\" href=\"https:\/\/answers.gurussolutions.com\/fr\/answers\/how-do-netsuite-script-deployment-and-execution-statuses-work\/\">interrompus<\/a> de mani\u00e8re inattendue en raison de diverses limitations du syst\u00e8me. Les d\u00e9veloppeurs sont souvent confront\u00e9s \u00e0 des difficult\u00e9s lorsque les scripts d\u00e9passent le temps de traitement allou\u00e9, consomment trop d\u2019unit\u00e9s de gouvernance ou \u00e9puisent le nombre d\u2019ex\u00e9cutions autoris\u00e9 par la machine virtuelle JavaScript. Il est essentiel de bien comprendre ces limitations pour concevoir des automatisations NetSuite robustes et efficaces.","ga_solution":"Les scripts NetSuite sont soumis \u00e0 trois limites d\u2019ex\u00e9cution principales : la dur\u00e9e, la gouvernance et le nombre d\u2019ex\u00e9cutions. Il est essentiel de prendre en compte ces \u00e9l\u00e9ments de mani\u00e8re proactive pour garantir un fonctionnement stable des scripts. NetSuite impose une limite de temps \u00e0 l\u2019ex\u00e9cution des scripts. Les scripts planifi\u00e9s s\u2019ex\u00e9cutent g\u00e9n\u00e9ralement pendant environ une heure avant d\u2019\u00eatre interrompus. L\u2019appel \u00e0 l\u2019API nlapiRequestURL est \u00e9galement soumis \u00e0 un d\u00e9lai d\u2019expiration : \u00ab Notez qu\u2019un d\u00e9lai d\u2019expiration survient si la connexion initiale prend plus de 5 secondes et\/ou si la r\u00e9ponse \u00e0 la requ\u00eate prend plus de 45 secondes. \u00bb De plus, la plupart des navigateurs ont mis en place un d\u00e9lai d\u2019expiration pour les requ\u00eates HTTP, la norme \u00e9tant de 5 minutes. Ainsi, si le chargement d\u2019un script prend trop de temps, cela pourrait d\u00e9clencher le d\u00e9lai d\u2019expiration de la requ\u00eate du navigateur.Pour les scripts planifi\u00e9s, les d\u00e9veloppeurs doivent mettre en \u0153uvre <a class=\"ga-interlink\" href=\"https:\/\/answers.gurussolutions.com\/fr\/answers\/does-nlapiyieldscript-function-reliably-with-try-catch-blocks-in-suitescript-1-0\/\">une logique de replanification \u00e0 l\u2019aide des modules N\/task et N\/runtime<\/a>\n\nafin de g\u00e9rer efficacement le temps d\u2019ex\u00e9cution. Pour tout autre type de script, il est recommand\u00e9 de revoir la conception du script afin de r\u00e9duire son temps d\u2019ex\u00e9cution ou de d\u00e9l\u00e9guer la logique \u00e0 un script planifi\u00e9. \u00c9viter les boucles longues et les appels \u00e0 des services externes peut am\u00e9liorer consid\u00e9rablement les performances. La gouvernance des API de NetSuite emp\u00eache les scripts d\u2019effectuer un nombre excessif d\u2019appels API lourds qui ralentiraient le syst\u00e8me et l\u2019utilisateur. Le d\u00e9passement de la limite de mesure d\u2019un type de script interrompra l\u2019ex\u00e9cution de ce dernier. Pour plus d\u2019informations \u00e0 ce sujet, veuillez consulter le Centre d\u2019aide NetSuite. Pour les scripts planifi\u00e9s, les d\u00e9veloppeurs doivent mettre en \u0153uvre une logique de replanification \u00e0 l\u2019aide des modules N\/task et N\/runtime afin de g\u00e9rer la consommation des unit\u00e9s de gouvernance et de permettre au script d\u2019interrompre son ex\u00e9cution, puis de red\u00e9marrer l\u00e0 o\u00f9 il s\u2019\u00e9tait arr\u00eat\u00e9 apr\u00e8s r\u00e9initialisation de son compteur. Pour tout autre type de script, il est recommand\u00e9 de revoir la conception du script afin de r\u00e9duire le nombre d\u2019appels d\u2019API ou de d\u00e9l\u00e9guer la logique \u00e0 un script planifi\u00e9. Il s\u2019agit davantage d\u2019une limitation de JavaScript que d\u2019une limitation proprement dite de NetSuite. En effet, chaque script est ex\u00e9cut\u00e9 dans une machine virtuelle au niveau du navigateur ou du serveur, au lieu d\u2019\u00eatre compil\u00e9 comme c\u2019est le cas pour d\u2019autres langages. Cela signifie qu\u2019il existe une limite \u00e0 la quantit\u00e9 de donn\u00e9es que la machine virtuelle peut contenir et traiter. Chaque appel de fonction, d\u00e9claration de variable, instruction \u00ab if \u00bb et boucle peut \u00eatre comptabilis\u00e9 dans le \u00ab nombre d\u2019ex\u00e9cutions \u00bb du script. Si le nombre d\u2019ex\u00e9cutions d\u2019un script est d\u00e9pass\u00e9, celui-ci se bloque. Une erreur \u00ab Taille maximale de la pile d\u2019appels d\u00e9pass\u00e9e \u00bb peut illustrer un d\u00e9passement du nombre d\u2019ex\u00e9cutions. Le meilleur moyen de d\u00e9passer ce seuil consiste \u00e0 effectuer un appel de fonction r\u00e9cursif. Appeler des fonctions au sein d\u2019une fonction, a fortiori en pr\u00e9sence de boucles, sollicite fortement le syst\u00e8me et finit par provoquer son plantage.Il n\u2019existe pas de solution miracle \u00e0 ce probl\u00e8me ; les d\u00e9veloppeurs doivent revoir leur conception et essayer de trouver un moyen de r\u00e9duire le nombre d\u2019appels effectu\u00e9s par leur script. Par exemple, ils peuvent supprimer les variables qui ne sont pas n\u00e9cessaires :\n\n```\nvar x = i + j;var text = \"The number is \" + x;\n```\n\nVous pouvez facilement int\u00e9grer \u00ab i+j \u00bb dans votre cha\u00eene de caract\u00e8res au lieu de d\u00e9finir une nouvelle variable uniquement \u00e0 cette fin. Si la complexit\u00e9 du script reste un probl\u00e8me, il est recommand\u00e9 de consulter un responsable technique ou un d\u00e9veloppeur senior. NetSuite surveille \u00e9galement l\u2019utilisation de la m\u00e9moire par les scripts planifi\u00e9s et impose une limite de 50 m\u00e9gaoctets par script. Le d\u00e9passement de cette limite entra\u00eenerait une erreur SS_EXCESSIVE_MEMORY_FOOTPRINT. Pour plus d\u2019informations, consultez le Centre d\u2019aide NetSuite.","ga_source_author":"","ga_source_author_email":"","ga_date_original":"2017-08-21T17:12:36+02:00","ga_date_verified":"2026-07-05","ga_source_subject":"NetSuite Script Execution Limits","ga_ans_id":"ANS-0521","ga_publish_decision":"publish_with_edits","ga_staleness_risk":"high","ga_review_priority":"spot_check","ga_tier2_verdict":"partially_outdated","ga_tier2_concerns":"The functions 'verifyExecutionTimeAndYield()' and 'verifyMeteringAndYield()' are not standard SuiteScript 2.x APIs and the 'ITR_GeneralLibrary.js' is not a standard NetSuite library. SuiteScript 2.x requires developers to implement rescheduling logic using the N\/task and N\/runtime modules.; The provided NetSuite Help Center URL (https:\/\/system.netsuite.com\/help\/helpcenter\/en_US\/Output\/Help\/chapter_N3350651.html) is outdated.","ga_final_category":"SuiteScript Development","footnotes":""},"ga_category":[108,23,108],"ga_audience":[10],"ga_difficulty":[92],"class_list":["post-4180","qa_entry","type-qa_entry","status-publish","hentry","ga_category-developpement-suitescript","ga_category-suitescript-development","ga_audience-developer-suitescript","ga_difficulty-niveau-intermediaire"],"taxonomy_info":{"ga_category":[{"value":108,"label":"D\u00e9veloppement SuiteScript"},{"value":23,"label":"SuiteScript Development"},{"value":108,"label":"D\u00e9veloppement SuiteScript"}],"ga_audience":[{"value":10,"label":"Developer\/SuiteScript"}],"ga_difficulty":[{"value":92,"label":"Niveau interm\u00e9diaire"}]},"featured_image_src_large":[],"author_info":[],"comment_info":"","_links":{"self":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry\/4180","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry"}],"about":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/types\/qa_entry"}],"version-history":[{"count":1,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry\/4180\/revisions"}],"predecessor-version":[{"id":6101,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry\/4180\/revisions\/6101"}],"wp:attachment":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/media?parent=4180"}],"wp:term":[{"taxonomy":"ga_category","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_category?post=4180"},{"taxonomy":"ga_audience","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_audience?post=4180"},{"taxonomy":"ga_difficulty","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_difficulty?post=4180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}