ANS-1813 · SERVICES WEB ET INTéGRATIONS

Comment activer les champs intégrés modifiables dans les services Web NetSuite

Un script d'événement utilisateur peut modifier les types d'affichage des champs afin de permettre la saisie de données via SuiteScript 2.x lors d'une interaction avec NetSuite par le biais de services Web.

Solution courte

Pour permettre l'écriture dans des champs en ligne, désactivés ou masqués via les services Web, implémentez un script d'événement utilisateur « beforeLoad ». Ce script vérifie si le contexte d'exécution est « webservices » et, le cas échéant, met à jour le type d'affichage des champs spécifiés en « serverWidget.FieldDisplayType.NORMAL », ce qui les rend modifiables pour les interactions programmatiques.

Scénario

Lors de l’intégration à NetSuite via des services Web, certains champs qui s’affichent généralement en ligne, désactivés ou masqués dans les formulaires standard peuvent ne pas être modifiables. Cette limitation peut empêcher les systèmes externes de mettre à jour ces champs spécifiques par programmation, ce qui entrave la synchronisation des données et les efforts d’intégration.

Solution

Pour permettre la modification via des services Web de champs qui ne sont généralement pas modifiables (en ligne, désactivés ou masqués), implémentez un script d’événement utilisateur configuré pour s’exécuter avant le chargement (beforeLoad). Ce script vérifiera le contexte d’exécution actuel et, s’il s’agit de « webservices », mettra à jour le type d’affichage des champs cibles sur « normal », les rendant ainsi accessibles pour des mises à jour programmatiques. L’exemple SuiteScript 2.x suivant illustre cette approche :

javascript/** * @NApiVersion 2.x * @NScriptType UserEventScript */define(['N/runtime', 'N/ui/serverWidget'], function(runtime, serverWidget) { function beforeLoad(scriptContext) { var form = scriptContext.form; if (runtime.executionContext === runtime.ContextType.WEBSERVICES) { form.getField('custcol_origin_state_v2').updateDisplayType({ displayType: serverWidget.FieldDisplayType.NORMAL }); form.getField('custcol_origin_city_v2').updateDisplayType({ displayType: serverWidget.FieldDisplayType.NORMAL }); form.getField('custcol_destination_state_v2').updateDisplayType({ displayType: serverWidget.FieldDisplayType.NORMAL }); form.getField('custcol_destination_city_v2').updateDisplayType({ displayType: serverWidget.FieldDisplayType.NORMAL }); } } return { beforeLoad: beforeLoad };});

Ce script doit être déployé sur le type d’enregistrement contenant les champs custcol_origin_state_v2, custcol_origin_city_v2, custcol_destination_state_v2 et custcol_destination_city_v2.

Support expert NetSuite

Besoin d’aide pour cet enjeu NetSuite ?

Accompagnement-conseil et configuration pour Services Web et intégrations

Parler à un consultant