{"id":4426,"date":"2017-08-21T15:10:04","date_gmt":"2017-08-21T15:10:04","guid":{"rendered":"https:\/\/answers.gurussolutions.com\/answers\/how-to-declare-and-manage-constants-in-netsuite-suitescript-2\/"},"modified":"2026-07-28T18:26:45","modified_gmt":"2026-07-28T18:26:45","slug":"comment-declarer-et-gerer-les-constantes-dans-netsuite-suitescript","status":"publish","type":"qa_entry","link":"https:\/\/answers.gurussolutions.com\/fr\/answers\/comment-declarer-et-gerer-les-constantes-dans-netsuite-suitescript\/","title":{"rendered":"Comment d\u00e9clarer et g\u00e9rer les constantes dans NetSuite SuiteScript ?"},"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\u00e9clarez correctement les constantes dans SuiteScript afin d\u2019\u00e9viter tout conflit avec les variables du navigateur et les autres scripts d\u00e9ploy\u00e9s.","ga_short_answer":"Pour \u00e9viter tout conflit avec les objets du navigateur et d\u2019autres scripts, encapsulez les constantes au sein d\u2019un objet unique. Bien que l\u2019encapsulation manuelle soit efficace, les versions modernes de SuiteScript 2.x et 2.1 tirent parti de l\u2019architecture modulaire (AMD) pour une encapsulation int\u00e9gr\u00e9e et une gestion des d\u00e9pendances, offrant ainsi une approche plus structur\u00e9e. Utilisez toujours \u00ab const \u00bb pour les v\u00e9ritables constantes.","ga_scenario":"Lors du d\u00e9veloppement de SuiteScript, en particulier de scripts c\u00f4t\u00e9 client, les d\u00e9veloppeurs peuvent rencontrer des probl\u00e8mes li\u00e9s \u00e0 des conflits de variables globales. Ces conflits peuvent r\u00e9sulter de constantes partageant des noms avec des variables de l\u2019objet Window du navigateur ou avec des constantes d\u00e9clar\u00e9es dans d\u2019autres scripts d\u00e9ploy\u00e9s sur le m\u00eame enregistrement, ce qui entra\u00eene un comportement inattendu et des divergences de donn\u00e9es.","ga_solution":"Afin de limiter les conflits potentiels avec les variables du navigateur et d\u2019autres scripts, les constantes doivent \u00eatre encapsul\u00e9es dans un objet. Cet objet n\u00e9cessite un identifiant unique, tel que le nom du script, afin de garantir son caract\u00e8re unique et d\u2019\u00e9viter les conflits de nommage. Bien que cette encapsulation manuelle des objets constitue une m\u00e9thode efficace pour pr\u00e9venir les conflits de variables globales, il est important de noter que le d\u00e9veloppement moderne avec SuiteScript 2.x et 2.1 s'appuie sur une architecture modulaire (AMD) qui offre une encapsulation et une gestion des d\u00e9pendances int\u00e9gr\u00e9es, proposant ainsi une mani\u00e8re plus structur\u00e9e et plus conforme aux conventions de gestion du code et permettant d'\u00e9viter la pollution de l'espace de noms global. De plus, les bonnes pratiques JavaScript modernes, prises en charge par SuiteScript 2.1, recommandent d\u2019utiliser `const`\npour d\u00e9clarer de v\u00e9ritables constantes plut\u00f4t que `var`\n.\n\nConsid\u00e9rez les exemples suivants illustrant les probl\u00e8mes et la solution encapsul\u00e9e :\n\nProbl\u00e8me n\u00b0 1 : conflits avec les variables du navigateur\n1. Pour acc\u00e9der aux informations client du navigateur :\n```\njavascript\nwindow.clientInformation\n```\n2. Cela renvoie un objet tel que :\n```\nNavigator {geolocation: Geolocation, doNotTrack: null, webkitPersistentStorage: StorageQuota, webkitTemporaryStorage: StorageQuota, onLine: true\u2026}\n```\n3. Cependant, si une constante globale portant le m\u00eame nom est d\u00e9clar\u00e9e \u00e0 d\u2019autres fins :\n```\njavascript\nconst clientInformation = 989;\n```\n4. Et si l\u2019on tente \u00e0 nouveau d\u2019acc\u00e9der aux informations du client du navigateur, cela renverra :\n```\n989\n```\n. Cela d\u00e9montre que toute variable d\u2019objet Window peut \u00eatre remplac\u00e9e si une constante porte le m\u00eame nom.\n\nProbl\u00e8me n\u00b0 2 : scripts partageant les m\u00eames noms de constantes\nLorsque plusieurs scripts sont d\u00e9ploy\u00e9s sur le m\u00eame enregistrement, ils peuvent partager leurs constantes globales. Prenons les exemples suivants avec deux scripts c\u00f4t\u00e9 client, tous deux d\u00e9clench\u00e9s lors de l\u2019initialisation de la page, o\u00f9 une constante porte le m\u00eame nom :\n\n1. Script n\u00b0 1\n```\njavascript\nconst GOOSE_EGG = 0;\nfunction pageInit_test(type) {\n    alert(GOOSE_EGG);\n}\n```\n2. Script n\u00b0 2\n```\njavascript\nconst GOOSE_EGG = 1;\nfunction pageInit_test2(type) {\n    alert(GOOSE_EGG);\n}\n```\nLors de la cr\u00e9ation ou de la modification de l\u2019enregistrement sur lequel ces scripts sont d\u00e9ploy\u00e9s, deux fen\u00eatres d\u2019alerte s\u2019afficheront, indiquant toutes deux la valeur :\n```\n1\n```\nLes deux scripts utiliseront la valeur du script n\u00b0 2 (le dernier script cr\u00e9\u00e9 dans NetSuite).\n\nSolution : encapsuler les constantes dans un objet\nPour garantir que les noms de constantes soient uniques et n\u2019entrent pas en conflit avec les variables du navigateur ou d\u2019autres scripts, encapsulez-les dans un objet. Le nom du script peut servir d\u2019identifiant unique pour cet objet.\n\nExemple :\n```\njavascript\nconst ITR_SUE_AUTOPOPULATE = {};\nITR_SUE_AUTOPOPULATE.MAX_RESULTS = 1000;\n```\nIl peut alors \u00eatre r\u00e9f\u00e9renc\u00e9 comme suit :\n```\njavascript\nITR_SUE_AUTOPOPULATE.MAX_RESULTS\n```\nCette approche permet d\u2019\u00e9viter les incoh\u00e9rences et garantit que les valeurs des constantes sont confin\u00e9es \u00e0 leurs scripts respectifs.","ga_source_author":"","ga_source_author_email":"","ga_date_original":"2017-08-21T11:10:04-04:00","ga_date_verified":"2026-07-05","ga_source_subject":"How should I declare constants in my script?","ga_ans_id":"ANS-0767","ga_publish_decision":"publish_with_edits","ga_staleness_risk":"high","ga_review_priority":"spot_check","ga_tier2_verdict":"partially_outdated","ga_tier2_concerns":"The original answer's solution of manually encapsulating constants into a global object, while still functional JavaScript, is largely superseded by the modular architecture of SuiteScript 2.x (and 2.1), which provides built-in encapsulation and dependency management to prevent global variable conflicts.; The examples use 'var' for declaring constants, whereas modern JavaScript best practices (supported by SuiteScript 2.1) recommend 'const' for true constants.","ga_final_category":"SuiteScript Development","footnotes":""},"ga_category":[108,23,108],"ga_audience":[10],"ga_difficulty":[92],"class_list":["post-4426","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\/4426","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\/4426\/revisions"}],"predecessor-version":[{"id":6347,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry\/4426\/revisions\/6347"}],"wp:attachment":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/media?parent=4426"}],"wp:term":[{"taxonomy":"ga_category","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_category?post=4426"},{"taxonomy":"ga_audience","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_audience?post=4426"},{"taxonomy":"ga_difficulty","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_difficulty?post=4426"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}