ANS-1667 · DéVELOPPEMENT SUITESCRIPT
Comment définir les valeurs des cases à cocher dans une sous-liste de Suitelet NetSuite (SuiteScript 2.0)
Lorsqu’ils renseignent un champ de liste déroulante à cases à cocher dans un Suitelet avec SuiteScript 2.0, les développeurs doivent utiliser les chaînes de caractères « T » ou « F » au lieu des valeurs booléennes true/false.
Solution courte
Lorsque vous définissez la valeur d’un champ de case à cocher dans une sous-liste de Suitelet sous SuiteScript 2.0, les valeurs booléennes `true` ou `false` ne sont pas acceptées. La méthode `setSublistValue` requiert en revanche des représentations sous forme de chaînes de caractères : « T » pour coché et « F » pour non coché. L'utilisation de valeurs booléennes entraînera une erreur, tandis que les valeurs sous forme de chaînes de caractères permettront de cocher correctement la case.
Scénario
Les développeurs qui créent des Suitelets dans NetSuite SuiteScript 2.0 rencontrent souvent des problèmes lorsqu’ils tentent de définir par programmation la valeur d’un champ de case à cocher au sein d’une sous-liste. On s'attendrait à ce que les valeurs booléennes standard `true` ou `false` soient acceptées pour les champs de case à cocher. Cependant, l'utilisation de ces types booléens entraîne des erreurs inattendues lorsque la Suitelet tente d'afficher ou de traiter la sous-liste.
Solution
Lorsque vous définissez les valeurs des cases à cocher dans une sous-liste de Suitelet sous SuiteScript 2.0, il est essentiel d’utiliser les chaînes de caractères « T » ou « F » plutôt que les valeurs booléennes true
ou false
. Ce comportement est conforme à celui de SuiteScript 1.0 et s’applique à la méthode setSublistValue
. L’exemple suivant illustre les méthodes correctes et incorrectes pour définir la valeur d’une case à cocher :
javascript var subcomponentSublist = form.addSublist({ id: 'custpage_subcomponents', type: uiModule.SublistType.INLINEEDITOR, label: 'Subcomponents' }); subcomponentSublist.addField({ id: 'custpage_mandatory', label: 'Mandatory', type: uiModule.FieldType.CHECKBOX }).updateDisplayType({displayType:uiModule.FieldDisplayType.DISABLED});Toute tentative de définition de la valeur à l’aide d’une valeur booléenne entraînera une erreur :
javascriptsubcomponentSublist.setSublistValue({id: 'custpage_mandatory', line: 0,value: true}); //THIS WILL CRASHLa bonne approche consiste à utiliser la chaîne de caractères « T » ou « F » :
javascriptsubcomponentSublist.setSublistValue({id: 'custpage_mandatory', line: 0,value: 'T'}); //THIS WILL WORKSupport expert NetSuite
Besoin d’aide pour cet enjeu NetSuite ?
Accompagnement-conseil et configuration pour Développement SuiteScript
