ANS-1524 · DéVELOPPEMENT SUITESCRIPT
Comment extraire les noms d’articles « propres » à partir des reçus d’articles dans NetSuite SuiteScript 2.x
Découvrez comment extraire par programmation les noms d'articles à partir des enregistrements de réception d'articles à l'aide de SuiteScript moderne, afin d'éviter les problèmes de mise en forme HTML.
Solution courte
Lorsque vous récupérez les noms d'articles à partir des bons de réception dans NetSuite à l'aide de SuiteScript 2.x, utilisez `record.load` et `getSublistValue`. Sachez que les champs standard `itemname` peuvent renvoyer du code HTML, tandis que les champs personnalisés tels que `sitemname` (le cas échéant) peuvent fournir une valeur de texte brut. N'oubliez pas que l'indexation des sous-listes dans SuiteScript 2.x commence à 0.
Scénario
Les utilisateurs de NetSuite qui développent des solutions SuiteScript peuvent être confrontés à des situations où la récupération du champ `itemname` à partir de la sous-liste d'un enregistrement `itemreceipt` renvoie du texte formaté en HTML au lieu d'un nom d'article au format brut. Cela peut compliquer le traitement et l'affichage des données, ce qui nécessite une méthode permettant d'extraire la valeur au format texte brut.
Solution
Le problème lié au fait que les champs itemname renvoient du code HTML peut être résolu en utilisant un champ alternatif ou en analysant la valeur renvoyée. Alors que le champ standard itemname peut contenir du code HTML, un champ personnalisé, tel que sitemname, s’il est configuré dans la fiche de l’article, peut fournir une valeur textuelle « propre ». Pour récupérer le nom de l’article à l’aide de SuiteScript 2.x, procédez comme suit :
javascript/** * @NApiVersion 2.x * @NModuleScope SameAccount */define(['N/record', 'N/log'], function(record, log) { function getItemNameFromItemReceipt(itemReceiptId) { try { var itemReceiptRecord = record.load({ type: record.Type.ITEM_RECEIPT, id: itemReceiptId, isDynamic: false }); // Note: 'sitemname' is typically a custom field. The standard 'itemname' field may return HTML. // SuiteScript 2.x uses 0-based indexing for sublists. var itemName = itemReceiptRecord.getSublistValue({ sublistId: 'item', fieldId: 'sitemname', line: 0 }); log.debug('Retrieved Item Name', itemName); return itemName; } catch (e) { log.error('Error retrieving item name', e); return null; } } return { getItemNameFromItemReceipt: getItemNameFromItemReceipt };});Cet exemple illustre le chargement d’un enregistrement itemreceipt et l’accès au champ sitemname à partir de la sous-liste « article ». Les développeurs doivent vérifier les identifiants de champ à l’aide du navigateur d’enregistrements SuiteScript, car sitemname n’est pas un champ NetSuite standard et sa disponibilité dépend des configurations des champs personnalisés.
Support expert NetSuite
Besoin d’aide pour cet enjeu NetSuite ?
Accompagnement-conseil et configuration pour Développement SuiteScript
