ANS-0119 · RECHERCHES ENREGISTRéES ET FORMULES
Comment rechercher des SKU en double dans NetSuite en excluant les préfixes parents ?
Identifiez les références (SKU) en double dans NetSuite en utilisant des recherches enregistrées avec des expressions régulières afin de supprimer les préfixes des articles parents des noms d'articles.
Solution courte
Pour rechercher des SKU en double dans NetSuite, créez une recherche d'articles enregistrée. Utilisez une colonne de formule avec REGEXP_REPLACE({name}, '^((.)+ : )', '') afin de supprimer les préfixes parents des noms d'articles. Regroupez les résultats selon cette formule et appliquez un filtre sur COUNT(ID interne) supérieur à 1 pour identifier les références en double.
Scénario
Les entreprises ont souvent besoin d’identifier les articles présentant des SKU en double au sein de NetSuite, que ce soit pour garantir l’intégrité des données ou pour faciliter la gestion des stocks. Une difficulté courante survient lorsque les noms d’articles comportent des préfixes de parent (par exemple, « Parent : SKU enfant »), ce qui rend difficile la comparaison directe des SKU. Ce scénario nécessite une méthode permettant d’isoler efficacement le SKU de base afin de détecter avec précision les doublons.
Solution
Bien que le comportement de NetSuite concernant les références (SKU) en double entre différents types d’enregistrements d’articles puisse varier, la documentation actuelle de NetSuite recommande vivement de conserver des références uniques pour tous les types d’articles afin d’éviter d’éventuels problèmes d’intégrité des données. Pour identifier les articles présentant des références en double, en particulier lorsque les noms d’articles comportent des préfixes de parent, une recherche enregistrée NetSuite peut être configurée comme suit :
Créez une nouvelle recherche enregistrée d’articles.
Définissez les colonnes :
- Ajoutez une colonne « Formule (Texte) ». Cette colonne supprimera tous les préfixes de parent du nom de l’article, ce qui permettra une comparaison claire du SKU de base.
- Définissez le « Type de synthèse » de cette colonne sur « GROUPE ».
- Saisissez la formule suivante :
GA_KEEP_0001*
Ajoutez une colonne « ID interne ». Cette colonne servira à compter le nombre d’occurrences de chaque SKU unique après suppression des préfixes.
- Définissez le « Type de synthèse » de cette colonne sur « COUNT ».
Appliquer des filtres :
- Les filtres de recherche doivent cibler des types d’articles spécifiques et identifier les groupes comportant plusieurs identifiants internes. Les critères de filtrage seraient les suivants :
[["type","anyof","Assembly","InvtPart"],"AND",["count(internalid)","greaterthan","1"]]Cela se traduit par :
- Filtrer par « Type » pour inclure « Assemblage » et « Article en stock ».
- Appliquerun filtre de synthèse sur « COUNT(Identifiant interne) »
pour n’afficher que les résultats dont le nombre est « supérieur à 1 ».Cette configuration de recherche enregistrée regroupe efficacement les articles par leur SKU de base (après suppression des préfixes parents) et met en évidence tous les cas où ce SKU de base est utilisé par plusieurs articles. Pour la mise en œuvre programmatique d’une telle recherche, la logique implique de définir des colonnes de recherche et des filtres. L’exemple fourni utilise les fonctions SuiteScript 1.0, qui sont considérées comme obsolètes. Pour les nouveaux développements, SuiteScript 2.x constitue actuellement la meilleure pratique. La définition conceptuelle de la recherche en SuiteScript 1.0 se présenterait comme suit :
var cols = [];cols[0] = new nlobjSearchColumn('formulatext', null, 'GROUP');cols[0].setFormula('REGEXP_REPLACE({name}, '^((.)+ : )', '')');cols[1] = new nlobjSearchColumn('internalid', null, 'COUNT');var filters = [ ["type","anyof","Assembly","InvtPart"], "AND", ["count(internalid)","greaterthan","1"]];var results = nlapiSearchRecord('item', null, filters, cols);Cet extrait de script illustre la logique sous-jacente de la définition de la recherche, où nlobjSearchColumn définit les colonnes et leurs types de synthèse, et nlapiSearchRecord exécute la recherche avec les filtres et les colonnes spécifiés.
Support expert NetSuite
Besoin d’aide pour cet enjeu NetSuite ?
Accompagnement-conseil et configuration pour Recherches enregistrées et formules
