ANS-1484 · DéVELOPPEMENT SUITESCRIPT
Comment résoudre l’erreur SSS_MISSING_REQD_ARGUMENT pour les sous-listes de tarification des articles
Lors de la création de scripts de tarification des articles dans NetSuite avec l'option « plusieurs devises » activée, une erreur SSS_MISSING_REQD_ARGUMENT peut se produire lors de la génération dynamique des identifiants de sous-listes.
Solution courte
L'erreur SSS_MISSING_REQD_ARGUMENT, qui survient lors de la création dynamique d'identifiants de sous-listes pour la tarification des articles dans SuiteScript, peut être résolue en utilisant la fonction concat() à la place de l'opérateur + pour la concaténation de chaînes de caractères. Cela garantit que l'argument sublistId est correctement transmis à des fonctions telles que getLineCount.
Scénario
Les environnements NetSuite dans lesquels la fonctionnalité « Devises multiples » est activée utilisent des sous-listes de prix distinctes pour chaque devise dans l’onglet « Ventes/Prix » des fiches d’articles. Lorsque vous tentez d’accéder à ces sous-listes de tarification ou de les manipuler par programmation via SuiteScript, en particulier lors de la construction dynamique de l’identifiant de la sous-liste (par exemple, « price » + identifiant interne de la devise), une erreur SSS_MISSING_REQD_ARGUMENT peut se produire. Cette erreur indique que l’argument « sublistId » n’est pas correctement reconnu par les fonctions SuiteScript telles que « getLineCount », ce qui affecte aussi bien les fiches en mode dynamique qu’en mode standard.
Solution
L'identifiant interne de chaque liste de prix par devise est formé en concaténant l'identifiant de base « price » avec l'identifiant interne de la devise. Par exemple, l'identifiant interne de la devise des États-Unis (identifiant interne 1) donnerait « price1 ». Les exemples antérieurs de SuiteScript pouvaient illustrer l’accès à ces listes comme suit :
GA_KEEP_0001.
Cependant, lorsque vous tentez de construire dynamiquement l’identifiant « sublistId » dans SuiteScript 2.0 à l’aide de l’opérateur « + », comme indiqué ci-dessous :
javascript
var priceID = "price";
var currency = salesOrderRecord.getValue({
fieldId: 'currency'
});
priceID = priceID + currency;
// ...
var itemCount = itemRecord.getLineCount({
sublistId: priceID
});Cela peut entraîner une erreur SSS_MISSING_REQD_ARGUMENT :
json
"name":"SSS_MISSING_REQD_ARGUMENT",
"message":"DeferredDynamicRecord.getLineCount: Missing a required argument: sublistId"Dans ce contexte spécifique, il a été constaté que l’utilisation de la fonction concat() à la place de l’opérateur d’affectation « + » pour l’identifiant de la liste de prix permettait de résoudre le problème.
L’approche corrigée pour construire le sublistId est la suivante :
javascript
priceID.concat(currency)Cela garantit que le sublistId est correctement transmis aux fonctions SuiteScript.
Support expert NetSuite
Besoin d’aide pour cet enjeu NetSuite ?
Accompagnement-conseil et configuration pour Développement SuiteScript
