ANS-0916 · DéVELOPPEMENT SUITESCRIPT
Comment filtrer les champs vides d’une liste ou d’un enregistrement dans les recherches scriptées de NetSuite
Découvrez la méthode SuiteScript 2.0 appropriée pour identifier les enregistrements dans lesquels une liste ou un champ d'enregistrement spécifique est vide à l'aide de la valeur « @NONE@ ».
Solution courte
Pour rechercher des champs de liste ou d'enregistrement vides dans les recherches scriptées de NetSuite, utilisez la valeur « @NONE@ » avec l'opérateur ANYOF ou NONEOF. Dans SuiteScript 2.0, cela s'effectue à l'aide de la fonction search.createFilter avec l'identifiant interne du champ et search.Operator.ANYOF ou search.Operator.NONEOF pour le paramètre de valeur : ['@NONE@'].
Scénario
Les utilisateurs ont souvent besoin d’identifier dans NetSuite les enregistrements pour lesquels une liste ou un champ d’enregistrement spécifique ne comporte aucune valeur. Ce besoin se présente généralement lors du nettoyage des données, de la création de rapports ou de l’automatisation de processus qui dépendent de la présence ou de l’absence d’enregistrements liés ou de sélections. Les filtres de recherche standard ne permettent pas toujours de déterminer intuitivement comment cibler ces champs vides dans le cadre d’un script.
Solution
Pour identifier les enregistrements dans lesquels un champ de liste ou d’enregistrement spécifique est vide au sein d’une recherche scriptée NetSuite, utilisez la valeur « @NONE@ » avec l’opérateur ANYOF ou NONEOF. Dans SuiteScript 2.0, cela s’effectue en créant un filtre de recherche à l’aide de la méthode search.createFilter.
Assurez-vous que votre script SuiteScript 2.0 charge le module N/search.
Créez le filtre en utilisant l’identifiant interne du champ, l’opérateur search.Operator.ANYOF (ou NONEOF) et ['@NONE@'] comme valeur.Par exemple, pour rechercher les enregistrements dans lesquels le champ « custrecord_fabrication_wo_linked » est vide :
javascript/** * @NApiVersion 2.x * @NModuleScope SameAccount */define(['N/search'], function(search) { // ... your script logic ... var emptyFieldFilter = search.createFilter({ name: 'custrecord_fabrication_wo_linked', operator: search.Operator.ANYOF, values: ['@NONE@'] }); // This filter can then be added to a search.create or search.load operation. // Example: // var mySearch = search.create({ // type: search.Type.TRANSACTION, // filters: [emptyFieldFilter], // columns: ['internalid'] // }); // ...});. Ce filtre cible effectivement les enregistrements pour lesquels aucune valeur n’est sélectionnée dans le champ de liste/d’enregistrement spécifié.
Support expert NetSuite
Besoin d’aide pour cet enjeu NetSuite ?
Accompagnement-conseil et configuration pour Développement SuiteScript
