ANS-0412 · DéVELOPPEMENT SUITESCRIPT
Comment formater une date JavaScript pour les champs de date/heure de NetSuite dans SuiteScript ?
Découvrez les méthodes appropriées pour convertir les objets Date JavaScript en formats de champs Date/Heure compatibles avec NetSuite, quelle que soit la version de SuiteScript.
Solution courte
Pour SuiteScript 1.0, utilisez `nlapiDateToString(dateObject, 'datetimetz')`. Pour la version moderne de SuiteScript 2.x, utilisez le module `N/format` avec `format.format({value: dateObject, type: format.Type.DATETIMETZ})` ou définissez directement un objet Date natif JavaScript à l’aide de `record.setValue()`. Cela garantit une gestion correcte de la date et du fuseau horaire dans les champs Date/Heure de NetSuite.
Scénario
Lorsqu’ils utilisent NetSuite SuiteScript, les développeurs sont souvent amenés à remplir des champs Date/Heure avec des valeurs issues d’objets Date JavaScript. L’affectation directe d’un objet Date JavaScript à un champ Date/Heure de NetSuite sans mise en forme appropriée peut entraîner des erreurs ou un stockage incorrect des données, notamment en ce qui concerne les fuseaux horaires. Cela nécessite une approche spécifique pour garantir que la date et l’heure soient correctement interprétées et stockées dans NetSuite.
Solution
Pour formater correctement un objet Date JavaScript destiné à un champ Date/Heure de NetSuite, la méthode à utiliser dépend de la version de SuiteScript employée.
Pour les environnements SuiteScript 1.0 :
Les développeurs doivent utiliser la fonction nlapiDateToString
, en spécifiant le format datetimetz
. Cette fonction convertit l’objet Date JavaScript en une chaîne de caractères que les champs Date/Heure de NetSuite peuvent interpréter correctement, y compris les informations relatives au fuseau horaire.
javascript
nlapiDateToString(dateObject, 'datetimetz')Pour les environnements SuiteScript 2.x modernes (approche recommandée) :
Le module N/format
offre des fonctionnalités robustes pour le formatage de la date et de l’heure. Il convient d’utiliser la méthode format.format()
en spécifiant format.Type.DATETIMETZ
pour les champs nécessitant une date, une heure et un fuseau horaire.
javascript
require(['N/format'], function(format) {
var myDate = new Date(); // Your JavaScript Date object
var formattedDateString = format.format({
value: myDate,
type: format.Type.DATETIMETZ
});
// Use formattedDateString to set the field value, e.g., record.setValue({fieldId: 'yourfield', value: formattedDateString});
});Par ailleurs, pour de nombreuses opérations record.setValue()
dans SuiteScript 2.x, un objet Date natif de JavaScript peut souvent être transmis directement au champ. NetSuite se chargera alors de la conversion en fonction du type du champ et des paramètres de fuseau horaire de l’utilisateur.
javascript
record.setValue({
fieldId: 'custrecord_yourdatetimefield',
value: new Date() // Pass native JavaScript Date object
});Cela garantit que la date et l’heure, ainsi que le fuseau horaire associé, sont correctement enregistrés dans les champs Date/Heure de NetSuite, ce qui évite toute divergence dans les données.
Support expert NetSuite
Besoin d’aide pour cet enjeu NetSuite ?
Accompagnement-conseil et configuration pour Développement SuiteScript
