{"id":4074,"date":"2017-08-21T14:35:32","date_gmt":"2017-08-21T14:35:32","guid":{"rendered":"https:\/\/answers.gurussolutions.com\/answers\/how-to-hide-netsuite-fields-while-maintaining-script-access-2\/"},"modified":"2026-07-28T18:26:23","modified_gmt":"2026-07-28T18:26:23","slug":"comment-masquer-des-champs-netsuite-tout-en-conservant-lacces-aux-scripts","status":"publish","type":"qa_entry","link":"https:\/\/answers.gurussolutions.com\/fr\/answers\/comment-masquer-des-champs-netsuite-tout-en-conservant-lacces-aux-scripts\/","title":{"rendered":"Comment masquer des champs NetSuite tout en conservant l&rsquo;acc\u00e8s aux scripts"},"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":"NetSuite propose plusieurs m\u00e9thodes pour masquer des champs dans les enregistrements, notamment la configuration de l'interface utilisateur et l'utilisation de scripts, chacune ayant des implications sp\u00e9cifiques selon les types de champs et les contextes de script.","ga_short_answer":"Les champs NetSuite peuvent \u00eatre masqu\u00e9s via la personnalisation des formulaires ou SuiteScript. Lorsqu\u2019un champ d\u00e9pend d\u2019un script mais doit rester invisible, la m\u00e9thode \u00e0 utiliser d\u00e9pend du type de champ (corps ou colonne) et du contexte du script (c\u00f4t\u00e9 serveur ou c\u00f4t\u00e9 client). Les scripts c\u00f4t\u00e9 serveur permettent de masquer des champs par programmation, tandis que les interactions c\u00f4t\u00e9 client avec des champs masqu\u00e9s n\u00e9cessitent une attention particuli\u00e8re.","ga_scenario":"Les utilisateurs de NetSuite sont souvent confront\u00e9s \u00e0 des situations o\u00f9 un champ d\u2019un enregistrement est essentiel au bon fonctionnement d\u2019un script, mais ne doit pas \u00eatre visible par les utilisateurs finaux. Il peut s\u2019av\u00e9rer difficile de d\u00e9terminer la m\u00e9thode optimale pour masquer ces champs tout en garantissant que les scripts puissent continuer \u00e0 interagir efficacement avec eux, car les diff\u00e9rents types de champs et contextes de script pr\u00e9sentent des comportements vari\u00e9s.","ga_solution":"NetSuite propose deux m\u00e9thodes principales pour masquer des champs dans un enregistrement :n\n1.  Masquer le champ directement dans le formulaire \u00e0 l\u2019aide de la personnalisation de l\u2019interface utilisateur.n\n2.  Masquer le champ par programmation \u00e0 l\u2019aide de SuiteScript.\n\nLorsqu\u2019un script interagit avec un champ qui doit \u00eatre masqu\u00e9 de l\u2019interface utilisateur, la m\u00e9thode appropri\u00e9e d\u00e9pend du type de champ et du contexte d\u2019ex\u00e9cution du script (c\u00f4t\u00e9 serveur ou c\u00f4t\u00e9 client).\n\nExemples SuiteScript 2.x pour masquer des champs :\n\nPour les champs du corps (c\u00f4t\u00e9 serveur \u2013 \u00e9v\u00e9nement utilisateur\/Suitelet) :n\n\n```\njavascriptn\/\/ Assuming 'scriptContext.form' is available in a User Event or Suitelet scriptnscriptContext.form.getField({ id: 'FIELDID' }).updateDisplayType({ displayType: serverWidget.FieldDisplayType.HIDDEN });n\n```\n\n\n\nPour les champs du corps (c\u00f4t\u00e9 client \u2013 N\/currentRecord) :n\n\n```\njavascriptn\/\/ Assuming 'currentRecord' is an instance of N\/currentRecord in a Client ScriptncurrentRecord.getField({ fieldId: 'FIELDID' }).isDisplay = false;n\n```\n\n\n\nPour les champs de colonne de sous-liste (c\u00f4t\u00e9 serveur - \u00c9v\u00e9nement utilisateur\/Suitelet) :n\n\n```\njavascriptn\/\/ Assuming 'scriptContext.form' is available in a User Event or Suitelet scriptn\/\/ Example for 'item' sublist and 'custcol_mycolumnid' columnnvar sublist = scriptContext.form.getSublist({ id: 'item' });nif (sublist) {n    var columnField = sublist.getColumn({ id: 'custcol_mycolumnid' });n    if (columnField) {n        columnField.updateDisplayType({ displayType: serverWidget.FieldDisplayType.HIDDEN });n    }n}n\n```\n\n\n\n\n\n\n\nRecommandations concernant les champs utilis\u00e9s par les scripts :\n\nPour les champs du corps :\n\nLa personnalisation des formulaires et les scripts peuvent tous deux \u00eatre utilis\u00e9s pour masquer les champs du corps. Les scripts conserveront la possibilit\u00e9 de d\u00e9finir et de lire les valeurs de ces champs, quelle que soit la m\u00e9thode de masquage utilis\u00e9e.\n\nPour les champs de colonne de sous-liste :\n\nPour les scripts c\u00f4t\u00e9 serveur (\u00e9v\u00e9nement utilisateur, Suitelet, RESTlet, mise \u00e0 jour en masse) :\n\nLes champs de colonne de sous-liste peuvent \u00eatre masqu\u00e9s \u00e0 l\u2019aide de scripts. Les scripts c\u00f4t\u00e9 serveur resteront capables de d\u00e9finir et de lire la valeur du champ.\n\nPour les scripts c\u00f4t\u00e9 client :\n\nDans le cas des scripts c\u00f4t\u00e9 client, le masquage direct des champs de colonne de sous-liste \u00e0 l\u2019aide d\u2019API c\u00f4t\u00e9 client est plus complexe et plus limit\u00e9. La propri\u00e9t\u00e9 `isDisplay`\n\n\n\npour les champs de sous-liste n\u2019est pas disponible en mode dynamique et est en lecture seule dans le module `N\/currentRecord`\n\n\n\n. Par cons\u00e9quent, si un champ de colonne de sous-liste doit \u00eatre masqu\u00e9 tout en restant accessible \u00e0 un script c\u00f4t\u00e9 client, il est g\u00e9n\u00e9ralement recommand\u00e9 de masquer ce champ via la personnalisation du formulaire ou un script c\u00f4t\u00e9 serveur (par exemple, un script d\u2019\u00e9v\u00e9nement utilisateur).","ga_source_author":"","ga_source_author_email":"","ga_date_original":"2017-08-21T10:35:32-04:00","ga_date_verified":"2026-07-05","ga_source_subject":"Hiding a field used by a script","ga_ans_id":"ANS-0415","ga_publish_decision":"publish_with_edits","ga_staleness_risk":"high","ga_review_priority":"spot_check","ga_tier2_verdict":"partially_outdated","ga_tier2_concerns":"The `nlapiGetField` and `nlapiGetLineItemField` functions are specific to SuiteScript 1.0, which is a legacy API. Current NetSuite development primarily uses SuiteScript 2.x, which employs a modular architecture and different function calls (e.g., `scriptContext.form.getField` for server-side and `currentRecord.getField` for client-side).; The `setDisplayType('hidden')` method is outdated. In SuiteScript 2.x, the equivalent for server-side scripts (User Event, Suitelet) is `field.updateDisplayType({displayType : serverWidget.FieldDisplayType.HIDDEN})`. For client-side scripts, body fields are typically hidden using `field.isDisplay = false`.; The example `nlapiGetLineItemField('SublistName', 'FieldName', 1)` uses 1-based indexing for sublist lines, which is characteristic of SuiteScript 1.0. SuiteScript 2.x uses 0-based indexing for sublists and columns.; The claim that for client-side scripts, one 'should use only method #1, by hiding the field by a user event script' for column fields is misleading. While user event scripts can hide sublist columns, the `isDisplay` property for client-side scripts is not available for sublist fields in dynamic mode and is read-only for sublist fields in the `N\/currentRecord` module, making direct client-side hiding of column fields more complex than for body fields.","ga_final_category":"SuiteScript Development","footnotes":""},"ga_category":[108,23,108],"ga_audience":[10],"ga_difficulty":[92],"class_list":["post-4074","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\/4074","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\/4074\/revisions"}],"predecessor-version":[{"id":5995,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry\/4074\/revisions\/5995"}],"wp:attachment":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/media?parent=4074"}],"wp:term":[{"taxonomy":"ga_category","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_category?post=4074"},{"taxonomy":"ga_audience","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_audience?post=4074"},{"taxonomy":"ga_difficulty","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_difficulty?post=4074"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}