{"id":4165,"date":"2017-08-21T15:19:03","date_gmt":"2017-08-21T15:19:03","guid":{"rendered":"https:\/\/answers.gurussolutions.com\/answers\/how-to-resolve-nlapiyieldscript-errors-in-netsuite-scheduled-scripts-2\/"},"modified":"2026-07-28T18:26:28","modified_gmt":"2026-07-28T18:26:28","slug":"comment-resoudre-les-erreurs-nlapiyieldscript-dans-les-scripts-planifies-de-netsuite","status":"publish","type":"qa_entry","link":"https:\/\/answers.gurussolutions.com\/fr\/answers\/comment-resoudre-les-erreurs-nlapiyieldscript-dans-les-scripts-planifies-de-netsuite\/","title":{"rendered":"Comment r\u00e9soudre les erreurs nlapiYieldScript dans les scripts planifi\u00e9s de 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 pourquoi la fonction nlapiYieldScript de SuiteScript 1.0 peut renvoyer une erreur inattendue lors du traitement des r\u00e9sultats de recherche, et d\u00e9couvrez la marche \u00e0 suivre appropri\u00e9e.","ga_short_answer":"La fonction nlapiYieldScript de SuiteScript 1.0 ne prend pas en charge les objets nlobjSearchResultSet. Pour r\u00e9soudre l'erreur \u00ab doit \u00eatre appel\u00e9 depuis un script planifi\u00e9 \u00bb, assurez-vous que votre script utilise nlapiSearchRecord et traite les r\u00e9sultats \u00e0 l'aide d'une boucle FOR standard au lieu de nlapiCreateSearch().runSearch() lorsqu'un yield est n\u00e9cessaire.","ga_scenario":"Lors du d\u00e9veloppement d\u2019un script planifi\u00e9 SuiteScript 1.0 traitant un volume important de donn\u00e9es, les d\u00e9veloppeurs peuvent rencontrer une erreur indiquant \u00ab nlapiYieldScript doit \u00eatre appel\u00e9 depuis un script planifi\u00e9 \u00bb, m\u00eame lorsque la fonction est correctement invoqu\u00e9e au sein d\u2019un script planifi\u00e9. Cette erreur trompeuse survient g\u00e9n\u00e9ralement lorsque l\u2019on tente d\u2019utiliser nlapiYieldScript avec des types d\u2019objets non pris en charge.","ga_solution":"L'erreur \u00ab nlapiYieldScript doit \u00eatre appel\u00e9 \u00e0 partir d'un script planifi\u00e9 \u00bb dans SuiteScript 1.0 est souvent trompeuse. La cause r\u00e9elle r\u00e9side g\u00e9n\u00e9ralement dans l'utilisation d'un type d'objet non pris en charge avec la fonction `nlapiYieldScript`.\n\nPour SuiteScript 1.0, `nlapiYieldScript` prend en charge les types d\u2019objets suivants :\n`nlobjConfiguration`, `nlobjContext`, `nlobjFile`, `nlobjRecord`, `nlobjSubrecord`, `nlobjSearchColumn`, `nlobjSearchFilter`, `nlobjSearchResult`, ainsi que tous les objets de biblioth\u00e8ques XML tierces. Tous les autres types d\u2019objets ne sont pas pris en charge.\n\nPlus pr\u00e9cis\u00e9ment, `nlapiYieldScript` dans SuiteScript 1.0 ne prend pas en charge les objets `nlobjSearchResultSet`, qui sont renvoy\u00e9s par `nlapiCreateSearch().runSearch()`.\n\nPour r\u00e9soudre ce probl\u00e8me dans SuiteScript 1.0, les d\u00e9veloppeurs doivent modifier leur script afin d\u2019utiliser `nlapiSearchRecord` \u00e0 la place de `nlapiCreateSearch().runSearch()`. La fonction `nlapiSearchRecord` renvoie un tableau d\u2019objets `nlobjSearchResult`, qui sont compatibles avec `nlapiYieldScript`. Les r\u00e9sultats doivent ensuite \u00eatre parcourus \u00e0 l\u2019aide d\u2019une boucle `FOR` standard.\n\n**Remarque importante concernant les versions de SuiteScript :**\nLa fonction `nlapiYieldScript` fait partie de SuiteScript 1.0. Dans le d\u00e9veloppement NetSuite moderne, SuiteScript 2.x est la plateforme recommand\u00e9e. SuiteScript 2.x ne dispose pas d\u2019\u00e9quivalent direct pour `nlapiYieldScript` ou `nlapiSetRecoveryPoint`. Pour les scripts de longue dur\u00e9e sous SuiteScript 2.x, la fonctionnalit\u00e9 de \u00ab yielding \u00bb est g\u00e9n\u00e9ralement g\u00e9r\u00e9e de la mani\u00e8re suivante :\n1. En utilisant le type de script Map\/Reduce, qui int\u00e8gre automatiquement le \u00ab yielding \u00bb.\n2. En g\u00e9rant manuellement l\u2019\u00e9tat du script et en le replanifiant \u00e0 l\u2019aide du module `N\/task` pour les autres types de scripts.","ga_source_author":"","ga_source_author_email":"","ga_date_original":"2017-08-21T11:19:03-04:00","ga_date_verified":"2026-07-05","ga_source_subject":"nlapiYieldScript return \"nlapiYieldScript must be called from a scheduled script.\" when calling it in a Scheduled Script.","ga_ans_id":"ANS-0506","ga_publish_decision":"publish_with_edits","ga_staleness_risk":"high","ga_review_priority":"spot_check","ga_tier2_verdict":"partially_outdated","ga_tier2_concerns":"The `nlapiYieldScript` function is part of SuiteScript 1.0, which is an older version of NetSuite's scripting platform.; SuiteScript 2.x (the current recommended version) does not have a direct equivalent for `nlapiYieldScript` or `nlapiSetRecoveryPoint`.; In SuiteScript 2.x, yielding functionality for long-running scripts is typically handled by using the Map\/Reduce script type, which automatically incorporates yielding, or by manually managing script state and rescheduling using the `N\/task` module.","ga_final_category":"SuiteScript Development","footnotes":""},"ga_category":[108,23,108],"ga_audience":[10],"ga_difficulty":[92],"class_list":["post-4165","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\/4165","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\/4165\/revisions"}],"predecessor-version":[{"id":6086,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry\/4165\/revisions\/6086"}],"wp:attachment":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/media?parent=4165"}],"wp:term":[{"taxonomy":"ga_category","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_category?post=4165"},{"taxonomy":"ga_audience","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_audience?post=4165"},{"taxonomy":"ga_difficulty","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_difficulty?post=4165"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}