3 votes

Le module N/currentRecord n'existe pas lors du téléchargement du script User Event dans NetSuite (SuiteScript 2.0)

Je suis en train d'essayer de télécharger le script ci-dessous dans NetSuite afin de réaliser une conversion de devises de la devise de la commande d'achat en USD.

J'aimerais qu'un champ personnalisé soit mis à jour avec le montant en USD chaque fois qu'un utilisateur saisit des articles dans une commande d'achat.

Lorsque je télécharge le script, je reçois le message d'erreur suivant:

Échec de l'évaluation du script: {"type":"error.SuiteScriptModuleLoaderError","name":"MODULE_DOES_NOT_EXIST","message":"Module does not exist: N/currentRecord.js","stack":[]}**

Je serais très reconnaissant pour quelques conseils. Merci.

/**
 *@NApiVersion 2.x
 *@NModuleScope Public
 *@NScriptType UserEventScript
 */

define(['N/currency', 'N/currentRecord'],function(currency, currentRecord) {
        function POCurrencyConversion() {
            var Fixed_Currency = 'USD';
            var Transaction_Currency = currentRecord.getValue('currency');
            var Tx_currency_total = currentRecord.getValue('total');
            var rate = currency.exchangeRate({
                source: Transaction_Currency,
                target: Fixed_Currency
            });
            var ConvertedAmount = Tx_currency_total * rate;
            currentRecord.setValue('custbody_po_total_usd',ConvertedAmount)
        }
        POCurrencyConversion();
    });

3voto

erictgrubaugh Points 5440

Dans les événements utilisateur, vous n'avez pas besoin du module currentRecord. Au lieu de cela, vous pouvez récupérer l'enregistrement en contexte à partir du paramètre que NetSuite passe à votre fonction de gestionnaire d'événements :

function beforeSubmit(context) {
    var Transaction_Currency = context.newRecord.getValue({fieldId: "currency"});
    var Tx_currency_total = context.newRecord.getValue({fieldId: "total"});
    // etc
}

0voto

Dilip Points 8

Vous ne pouvez pas utiliser le module "N/currentRecord" dans un script d'événement utilisateur. Ce module est pris en charge dans le script client. Vous pouvez plutôt utiliser context.newRecord.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X