ANS-0870 · DéVELOPPEMENT SUITESCRIPT
Comment définir la valeur d’un champ de date personnalisé dans NetSuite SuiteScript 2.x
Découvrez la méthode SuiteScript 2.x appropriée pour mettre à jour par programmation les champs de date personnalisés des enregistrements NetSuite et vous assurer que les modifications sont bien enregistrées.
Solution courte
Pour définir un champ de date personnalisé dans SuiteScript 2.x, utilisez `record.setValue({ fieldId: 'your_field_id', value: new Date() })` sur un objet d'enregistrement chargé ou créé. N'oubliez jamais d'enregistrer l'objet à l'aide de `record.save()` après avoir défini les valeurs des champs afin de conserver les modifications ; en effet, si vous oubliez de valider l'objet, les modifications ne seront pas appliquées.
Scénario
Un utilisateur doit mettre à jour par programmation un champ de date personnalisé dans un enregistrement NetSuite à l’aide de SuiteScript. Il rencontre des difficultés pour définir correctement la valeur du champ et s’assurer que les modifications sont bien enregistrées dans l’enregistrement.
Solution
La procédure permettant de définir la valeur d’un champ de date personnalisé dans SuiteScript 2.x consiste à charger ou à créer l’enregistrement cible, à utiliser la méthode record.setValue(options) avec le type de données approprié, puis à enregistrer l’enregistrement pour que les modifications soient prises en compte.
Commencez par obtenir une référence à l’objet d’enregistrement. Pour ce faire, il suffit généralement de charger un enregistrement existant à l’aide de
record.load()ou d’en créer un nouveau avecrecord.create()à partir du moduleN/record.Pour définir la valeur d’un champ de date personnalisé, utilisez la méthode
record.setValue(). Il est essentiel de fournir un objet JavaScriptDatecomme valeur ; toute tentative d’attribuer une chaîne de caractères (par exemple, « hello ») à un champ de date entraînera une erreurINVALID_FLD_VALUE.Une fois la valeur du champ définie, l’enregistrement doit être explicitement enregistré à l’aide de
record.save()pour que les modifications soient prises en compte dans NetSuite.L'exemple SuiteScript 2.x suivant montre comment charger un enregistrement, définir un champ de date personnalisé (custevent_assignee_email_date) sur la date du jour, puis enregistrer l'enregistrement :
javascript/** * @NApiVersion 2.x * @NScriptType UserEventScript */define(['N/record', 'N/log'], function(record, log) { function afterSubmit(context) { if (context.type === context.UserEventType.CREATE || context.type === context.UserEventType.EDIT) { try { // Load the current record in dynamic mode to easily set values var currentRecord = record.load({ type: context.newRecord.type, id: context.newRecord.id, isDynamic: true }); // Set the custom date field 'custevent_assignee_email_date' with a Date object // Note: Setting a string like 'hello' to a date field will cause an INVALID_FLD_VALUE error. currentRecord.setValue({ fieldId: 'custevent_assignee_email_date', value: new Date() // Sets the field to the current date and time }); // Save the record to persist the changes var recordId = currentRecord.save(); log.debug('Record Update', 'Record ID: ' + recordId + ' updated with new date for custevent_assignee_email_date.'); } catch (e) { log.error('Error setting custom date field', e.toString()); } } } return { afterSubmit: afterSubmit };});Support expert NetSuite
Besoin d’aide pour cet enjeu NetSuite ?
Accompagnement-conseil et configuration pour Développement SuiteScript
