{"id":2699,"date":"2017-08-21T15:29:08","date_gmt":"2017-08-21T15:29:08","guid":{"rendered":"https:\/\/answers.gurussolutions.com\/answers\/comment-gerer-la-visibilite-des-champs-suitetalk-de-netsuite-dans-les-formulaires-personnalises\/"},"modified":"2026-07-28T18:25:08","modified_gmt":"2026-07-28T18:25:08","slug":"comment-gerer-la-visibilite-des-champs-suitetalk-de-netsuite-dans-les-formulaires-personnalises","status":"publish","type":"qa_entry","link":"https:\/\/answers.gurussolutions.com\/fr\/answers\/comment-gerer-la-visibilite-des-champs-suitetalk-de-netsuite-dans-les-formulaires-personnalises\/","title":{"rendered":"Comment g\u00e9rer la visibilit\u00e9 des champs SuiteTalk de NetSuite dans les formulaires personnalis\u00e9s"},"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":"Apprenez comment vous assurer que les champs sont accessibles via les services Web en ajustant les configurations des formulaires ou en utilisant SuiteScript.","ga_short_answer":"Pour d\u00e9finir des valeurs pour les champs via les services Web SuiteTalk, ceux-ci doivent figurer sur le formulaire NetSuite s\u00e9lectionn\u00e9. Si un champ n\u2019est pas visible, sp\u00e9cifiez un autre formulaire personnalis\u00e9 pour l\u2019appel du service Web, ou utilisez un script d\u2019\u00e9v\u00e9nement utilisateur SuiteScript 2.x afin d\u2019ajuster dynamiquement le type d\u2019affichage du champ lors de l\u2019\u00e9v\u00e9nement `beforeLoad` pour les contextes de service Web.","ga_scenario":"Les utilisateurs qui tentent d\u2019interagir avec des enregistrements NetSuite via les services Web SuiteTalk peuvent rencontrer des probl\u00e8mes lorsqu\u2019ils essaient de d\u00e9finir des valeurs pour des champs qui ne sont ni visibles ni activ\u00e9s dans le formulaire par d\u00e9faut ou dans le formulaire personnalis\u00e9 sp\u00e9cifi\u00e9. Cela se produit souvent avec des champs qui sont g\u00e9n\u00e9ralement masqu\u00e9s ou d\u00e9sactiv\u00e9s dans l\u2019interface utilisateur de NetSuite, mais qui n\u00e9cessitent d\u2019\u00eatre modifi\u00e9s via des int\u00e9grations externes.","ga_solution":"Les champs doivent figurer sur le formulaire utilis\u00e9 par l\u2019appel aux services Web pour permettre la d\u00e9finition des valeurs. Il existe deux approches principales pour y parvenir :\n\n1. Sp\u00e9cifier un formulaire alternatif : lors d\u2019un appel aux services Web SuiteTalk, sp\u00e9cifiez explicitement un formulaire personnalis\u00e9 dans lequel le champ requis est pr\u00e9sent et visible. Cela garantit que le champ est disponible pour l\u2019interaction.\n\n2. Utiliser un script d\u2019\u00e9v\u00e9nement utilisateur : dans les cas o\u00f9 un champ doit \u00eatre rendu visible ou modifiable de mani\u00e8re dynamique, en particulier dans le cadre des services Web, un script d\u2019\u00e9v\u00e9nement utilisateur (SuiteScript 2.x) peut \u00eatre d\u00e9ploy\u00e9. Ce script modifiera le type d\u2019affichage du champ lors de l\u2019\u00e9v\u00e9nement `beforeLoad`.\n\nIl est important de noter que, bien que les propri\u00e9t\u00e9s d\u2019affichage des formulaires puissent \u00eatre modifi\u00e9es lors de l\u2019\u00e9v\u00e9nement `beforeLoad` pour les enregistrements nouveaux et existants, la manipulation directe des donn\u00e9es (d\u00e9finition des valeurs des champs) pour les enregistrements *existants* n\u2019est g\u00e9n\u00e9ralement pas possible dans le contexte de l\u2019\u00e9v\u00e9nement `beforeLoad` sous SuiteScript 2.x. Toutefois, rendre un champ visible permet aux op\u00e9rations suivantes (par exemple, dans `beforeSubmit` ou `afterSubmit`, ou par le service Web lui-m\u00eame) d\u2019interagir avec celui-ci.\n\nVous trouverez ci-dessous un exemple de script d\u2019\u00e9v\u00e9nement utilisateur SuiteScript 2.x qui rend un champ sp\u00e9cifi\u00e9 visible lorsque le contexte d\u2019ex\u00e9cution est `webservices` :\n\n```\njavascript\n\/**\n * @NApiVersion 2.x\n * @NScriptType UserEventScript\n *\/\ndefine(['N\/runtime', 'N\/ui\/serverWidget'], function(runtime, serverWidget) {\n\n    function beforeLoad(context) {\n        if (context.type === context.UserEventType.CREATE || context.type === context.UserEventType.EDIT) {\n            if (runtime.executionContext === runtime.ContextType.WEBSERVICES) {\n                var form = context.form;\n                var field = form.getField({ id: 'field_id' }); \/\/ Replace 'field_id' with the actual field ID\n\n                if (field) {\n                    field.updateDisplayType({\n                        displayType: serverWidget.FieldDisplayType.NORMAL\n                    });\n                }\n            }\n        }\n    }\n\n    return {\n        beforeLoad: beforeLoad\n    };\n});\n```\n\nDans ce script :\n* Les modules `N\/runtime` et `N\/ui\/serverWidget` sont charg\u00e9s pour la gestion du contexte et du formulaire.\n* La fonction `beforeLoad` est d\u00e9clench\u00e9e avant le chargement d\u2019un enregistrement.\n* `runtime.executionContext === runtime.ContextType.WEBSERVICES` v\u00e9rifie si le script s\u2019ex\u00e9cute \u00e0 la suite d\u2019un appel de services Web.\n* `form.getField({ id: 'field_id' })` r\u00e9cup\u00e8re l\u2019objet champ.\n* `field.updateDisplayType({ displayType: serverWidget.FieldDisplayType.NORMAL })` d\u00e9finit le type d\u2019affichage du champ sur \u00ab normal \u00bb, le rendant ainsi visible et modifiable.\n* La v\u00e9rification `context.type` (`CREATE` ou `EDIT`) est ajout\u00e9e \u00e0 des fins de robustesse, car `beforeLoad` peut \u00e9galement se d\u00e9clencher pour des \u00e9v\u00e9nements `VIEW` o\u00f9 les modifications d\u2019affichage pourraient ne pas \u00eatre pertinentes pour les services Web.","ga_source_author":"","ga_source_author_email":"","ga_date_original":"2017-08-21T11:29:08-04:00","ga_date_verified":"2026-07-05","ga_source_subject":"SuiteTalk and Forms","ga_ans_id":"ANS-0960","ga_publish_decision":"publish_with_edits","ga_staleness_risk":"high","ga_review_priority":"verify_soon","ga_tier2_verdict":"partially_outdated","ga_tier2_concerns":"The script provided uses SuiteScript 1.0 APIs (e.g., `nlapiGetContext`, `form.getField`, `setDisplayType`), which are considered legacy; SuiteScript 2.x is the current standard for new development.; The `beforeLoad` function signature (`function beforeLoad_GetInline(type, form)`) is specific to SuiteScript 1.0; SuiteScript 2.x user event scripts use `beforeLoad(context)`.; The `nlapiGetContext().getExecutionContext()` function is outdated; its equivalent in SuiteScript 2.x is `N\/runtime` module's `runtime.executionContext` property.; The method `form.getField('field_id').setDisplayType('normal')` is outdated; in SuiteScript 2.x, the `N\/ui\/serverWidget` module's `Field.updateDisplayType({ displayType: serverWidget.FieldDisplayType.NORMAL })` method is used.; While the original script aimed to display a field, it's important to note that in SuiteScript 2.x, data cannot be manipulated for *existing* records loaded in `beforeLoad` scripts; this is only possible for *new* records.","ga_final_category":"Web Services & Integrations","footnotes":""},"ga_category":[102,28,102],"ga_audience":[10],"ga_difficulty":[92],"class_list":["post-2699","qa_entry","type-qa_entry","status-publish","hentry","ga_category-services-web-et-integrations","ga_category-web-services-integrations","ga_audience-developer-suitescript","ga_difficulty-niveau-intermediaire"],"taxonomy_info":{"ga_category":[{"value":102,"label":"Services Web et int\u00e9grations"},{"value":28,"label":"Web Services & Integrations"},{"value":102,"label":"Services Web et int\u00e9grations"}],"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\/2699","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\/2699\/revisions"}],"predecessor-version":[{"id":4619,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry\/2699\/revisions\/4619"}],"wp:attachment":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/media?parent=2699"}],"wp:term":[{"taxonomy":"ga_category","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_category?post=2699"},{"taxonomy":"ga_audience","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_audience?post=2699"},{"taxonomy":"ga_difficulty","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_difficulty?post=2699"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}