{"id":4386,"date":"2017-08-21T15:21:39","date_gmt":"2017-08-21T15:21:39","guid":{"rendered":"https:\/\/answers.gurussolutions.com\/answers\/how-to-access-all-record-fields-during-netsuite-xedit-events-in-before-submit-2\/"},"modified":"2026-07-28T18:26:42","modified_gmt":"2026-07-28T18:26:42","slug":"comment-acceder-a-tous-les-champs-dun-enregistrement-lors-des-evenements-xedit-de-netsuite-avant-la-soumission","status":"publish","type":"qa_entry","link":"https:\/\/answers.gurussolutions.com\/fr\/answers\/comment-acceder-a-tous-les-champs-dun-enregistrement-lors-des-evenements-xedit-de-netsuite-avant-la-soumission\/","title":{"rendered":"Comment acc\u00e9der \u00e0 tous les champs d&rsquo;un enregistrement lors des \u00e9v\u00e9nements XEDIT de NetSuite avant la soumission"},"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":"Il est essentiel de comprendre comment l'\u00e9v\u00e9nement \u00ab xedit \u00bb de NetSuite limite l'acc\u00e8s direct \u00e0 tous les champs d'enregistrement dans les scripts d'\u00e9v\u00e9nement utilisateur \u00ab beforeSubmit \u00bb pour d\u00e9velopper des scripts fiables.","ga_short_answer":"Lors des \u00e9v\u00e9nements \u00ab xedit \u00bb (\u00e9dition en ligne, mise \u00e0 jour en masse, \u00ab N\/record.submitFields \u00bb), le contexte \u00ab newRecord \u00bb ne fournit que les champs modifi\u00e9s. Pour acc\u00e9der aux champs non modifi\u00e9s dans un script \u00ab beforeSubmit \u00bb, les d\u00e9veloppeurs doivent charger explicitement l\u2019enregistrement ou utiliser \u00ab N\/search \u00bb ou \u00ab N\/record.lookupFields \u00bb pour r\u00e9cup\u00e9rer leurs valeurs, car \u00ab newRecord \u00bb ne les contiendra pas.","ga_scenario":"Lorsqu\u2019un enregistrement NetSuite est modifi\u00e9 via l\u2019\u00e9dition directe de liste (DLE), une mise \u00e0 jour en masse ou la fonction \u00ab N\/record.submitFields \u00bb, le syst\u00e8me d\u00e9clenche un \u00e9v\u00e9nement \u00ab xedit \u00bb. Dans un script d\u2019\u00e9v\u00e9nement utilisateur \u00ab beforeSubmit \u00bb, les d\u00e9veloppeurs peuvent \u00eatre confront\u00e9s \u00e0 des situations o\u00f9 le contexte \u00ab newRecord \u00bb ne donne pas acc\u00e8s \u00e0 tous les champs de l\u2019enregistrement, mais uniquement \u00e0 ceux qui ont \u00e9t\u00e9 explicitement modifi\u00e9s. Cette limitation n\u00e9cessite une approche sp\u00e9cifique pour r\u00e9cup\u00e9rer les valeurs des champs non modifi\u00e9s.","ga_solution":"L'\u00e9v\u00e9nement \u00ab xedit \u00bb est d\u00e9clench\u00e9 lorsqu'un enregistrement est modifi\u00e9 via l'\u00e9dition directe de liste (DLE), une mise \u00e0 jour en masse ou la fonction \u00ab N\/record.submitFields \u00bb. Contrairement aux types d\u2019ex\u00e9cution \u00ab create \u00bb ou \u00ab edit \u00bb, lors d\u2019un \u00e9v\u00e9nement \u00ab xedit \u00bb, le contexte \u00ab newRecord \u00bb (accessible via \u00ab context.newRecord \u00bb dans SuiteScript 2.0) ne donne pas acc\u00e8s \u00e0 tous les champs de l\u2019enregistrement. Les d\u00e9veloppeurs peuvent r\u00e9cup\u00e9rer la liste des champs disponibles \u00e0 l\u2019aide de \u00ab context.newRecord.getFields() \u00bb, qui renvoie les identifiants des champs tels que l\u2019identifiant interne de l\u2019enregistrement, son type et les champs sp\u00e9cifiques qui ont \u00e9t\u00e9 modifi\u00e9s. Les valeurs des champs pr\u00e9sents dans ce tableau peuvent \u00eatre r\u00e9cup\u00e9r\u00e9es \u00e0 l\u2019aide de \u00ab context.newRecord.getValue({fieldId: 'fieldName'}) \u00bb. Pour acc\u00e9der aux valeurs des champs non inclus dans \u00ab context.newRecord \u00bb lors d\u2019un \u00e9v\u00e9nement \u00ab xedit \u00bb, il est n\u00e9cessaire de charger explicitement l\u2019enregistrement \u00e0 l\u2019aide de \u00ab N\/record.load \u00bb, d\u2019effectuer une recherche \u00e0 l\u2019aide de \u00ab N\/search \u00bb ou d\u2019utiliser \u00ab N\/record.lookupFields \u00bb. Il est important de noter que les valeurs de champ r\u00e9cup\u00e9r\u00e9es via ces m\u00e9thodes refl\u00e9teront l\u2019\u00e9tat de l\u2019enregistrement *avant* la soumission en cours, car le script s\u2019ex\u00e9cute dans le contexte \u00ab beforeSubmit \u00bb. Le code conceptuel suivant illustre comment r\u00e9cup\u00e9rer la valeur d\u2019un champ, en tenant compte du comportement de l\u2019\u00e9v\u00e9nement \u00ab xedit \u00bb dans un script d\u2019\u00e9v\u00e9nement utilisateur \u00ab beforeSubmit \u00bb de SuiteScript 2.0. Cet exemple part du principe que \u00ab N\/record \u00bb est d\u00e9fini dans l\u2019instruction \u00ab define \u00bb du script (par exemple, \u00ab define(['N\/record'], function(record) { ... }) \u00bb).","ga_source_author":"","ga_source_author_email":"","ga_date_original":"2017-08-21T11:21:39-04:00","ga_date_verified":"2026-07-05","ga_source_subject":"Supporting XEDIT with other types in before submit","ga_ans_id":"ANS-0727","ga_publish_decision":"publish_with_edits","ga_staleness_risk":"high","ga_review_priority":"spot_check","ga_tier2_verdict":"partially_outdated","ga_tier2_concerns":"The `nlapi` prefix for all functions (`nlapiGetNewRecord`, `nlapiGetOldRecord`, `nlapiLookupField`, `nlapiSubmitField`) is specific to SuiteScript 1.0 and has been replaced by modular SuiteScript 2.0 APIs (e.g., `context.newRecord`, `context.oldRecord`, `N\/record` module functions, `N\/search` module functions).; `getAllFields()` is a SuiteScript 1.0 function; the SuiteScript 2.0 equivalent is `record.getFields()` (from the `N\/record` module).; The provided code example uses SuiteScript 1.0 syntax and functions, which are not directly compatible with current SuiteScript 2.0\/2.1 standards.","ga_final_category":"SuiteScript Development","footnotes":""},"ga_category":[108,23,108],"ga_audience":[10],"ga_difficulty":[92],"class_list":["post-4386","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\/4386","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\/4386\/revisions"}],"predecessor-version":[{"id":6307,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry\/4386\/revisions\/6307"}],"wp:attachment":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/media?parent=4386"}],"wp:term":[{"taxonomy":"ga_category","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_category?post=4386"},{"taxonomy":"ga_audience","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_audience?post=4386"},{"taxonomy":"ga_difficulty","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_difficulty?post=4386"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}