{"id":2891,"date":"2017-08-21T15:42:09","date_gmt":"2017-08-21T15:42:09","guid":{"rendered":"https:\/\/answers.gurussolutions.com\/answers\/how-to-dynamically-remove-sublist-line-items-in-netsuite-client-scripts-2\/"},"modified":"2026-07-28T18:25:17","modified_gmt":"2026-07-28T18:25:17","slug":"comment-supprimer-dynamiquement-des-lignes-de-sous-liste-dans-les-scripts-client-netsuite","status":"publish","type":"qa_entry","link":"https:\/\/answers.gurussolutions.com\/fr\/answers\/comment-supprimer-dynamiquement-des-lignes-de-sous-liste-dans-les-scripts-client-netsuite\/","title":{"rendered":"Comment supprimer dynamiquement des lignes de sous-liste dans les scripts client 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":"D\u00e9couvrez comment effacer efficacement les entr\u00e9es d'une sous-liste personnalis\u00e9e \u00e0 l'aide des d\u00e9clencheurs d'\u00e9v\u00e9nements SuiteScript 2.x tels que PostSourcing.","ga_short_answer":"Pour supprimer de mani\u00e8re fiable les lignes d\u2019une sous-liste dans les scripts client NetSuite, impl\u00e9mentez la logique au sein de l\u2019\u00e9v\u00e9nement PostSourcing. Alors que l\u2019\u00e9v\u00e9nement fieldChanged peut ne pas d\u00e9clencher syst\u00e9matiquement la suppression des lignes, l\u2019\u00e9v\u00e9nement PostSourcing garantit une ex\u00e9cution correcte pour les sous-listes personnalis\u00e9es. Utilisez les fonctions SuiteScript 2.x telles que currentRecord.getLineCount() et currentRecord.removeLine() conform\u00e9ment aux meilleures pratiques actuelles.","ga_scenario":"Les utilisateurs qui tentent de supprimer dynamiquement des lignes d'une sous-liste personnalis\u00e9e dans des scripts client NetSuite peuvent rencontrer des probl\u00e8mes li\u00e9s \u00e0 une ex\u00e9cution incoh\u00e9rente de la logique de suppression, en particulier lorsque celle-ci est d\u00e9clench\u00e9e par un \u00e9v\u00e9nement \u00ab fieldChanged \u00bb. Le comportement souhait\u00e9 consiste \u00e0 effacer toutes les lignes existantes d'une sous-liste personnalis\u00e9e sp\u00e9cifique lorsqu'un champ associ\u00e9, tel que \u00ab client \u00bb, est modifi\u00e9.","ga_solution":"Pour garantir la suppression correcte des lignes de sous-liste, en particulier celles issues de sous-listes personnalis\u00e9es, la logique doit \u00eatre plac\u00e9e au sein de l\u2019\u00e9v\u00e9nement de script client PostSourcing. Alors que les tentatives d\u2019utilisation de l\u2019\u00e9v\u00e9nement fieldChanged \u00e0 cette fin peuvent ne pas donner de r\u00e9sultats coh\u00e9rents, PostSourcing ex\u00e9cute de mani\u00e8re fiable les op\u00e9rations n\u00e9cessaires. L\u2019\u00e9v\u00e9nement PostSourcing est d\u00e9clench\u00e9 une fois que la valeur d\u2019un champ a \u00e9t\u00e9 r\u00e9cup\u00e9r\u00e9e, ce qui en fait le moment id\u00e9al pour ajuster les donn\u00e9es associ\u00e9es aux sous-listes. L\u2019exemple SuiteScript 2.x suivant montre comment effacer toutes les lignes d\u2019une sous-liste personnalis\u00e9e portant l\u2019identifiant `custpage_rebate_discount` lorsque le champ \u00ab client \u00bb est r\u00e9cup\u00e9r\u00e9 ou modifi\u00e9 :\n\n```\njavascript\n\/**\n * @NApiVersion 2.x\n * @NScriptType ClientScript\n *\/\ndefine(['N\/currentRecord'], function(currentRecord) {\n    function postSourcing(context) {\n        var rec = context.currentRecord;\n        var fieldName = context.fieldId;\n\n        if (fieldName'customer')\n        {\n            while (rec.getLineCount({ sublistId: 'custpage_rebate_discount' }) > 0)\n            {\n                rec.removeLine({\n                    sublistId: 'custpage_rebate_discount',\n                    line: 0\n                });\n            }\n        }\n    }\n    return {\n        postSourcing: postSourcing\n    };\n});\n```\nCe script utilise `currentRecord.getLineCount()` pour d\u00e9terminer le nombre de lignes et `currentRecord.removeLine()` pour les supprimer de mani\u00e8re it\u00e9rative en ciblant syst\u00e9matiquement la premi\u00e8re ligne (index 0) jusqu\u2019\u00e0 ce que la sous-liste soit vide.","ga_source_author":"","ga_source_author_email":"","ga_date_original":"2017-08-21T11:42:09-04:00","ga_date_verified":"2026-07-05","ga_source_subject":"Not able to RemoveLineItem in a field change","ga_ans_id":"ANS-1152","ga_publish_decision":"publish_with_edits","ga_staleness_risk":"high","ga_review_priority":"spot_check","ga_tier2_verdict":"partially_outdated","ga_tier2_concerns":"The use of SuiteScript 1.0 functions (nlapiGetLineItemCount, nlapiRemoveLineItem) is outdated; SuiteScript 2.x equivalents are the current best practice.","ga_final_category":"SuiteScript Development","footnotes":""},"ga_category":[108,23,108],"ga_audience":[10],"ga_difficulty":[92],"class_list":["post-2891","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\/2891","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\/2891\/revisions"}],"predecessor-version":[{"id":4811,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry\/2891\/revisions\/4811"}],"wp:attachment":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/media?parent=2891"}],"wp:term":[{"taxonomy":"ga_category","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_category?post=2891"},{"taxonomy":"ga_audience","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_audience?post=2891"},{"taxonomy":"ga_difficulty","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_difficulty?post=2891"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}