ANS-1059 · DéVELOPPEMENT SUITESCRIPT
Comment soumettre des transactions NetSuite sans lignes obligatoires
Découvrez une méthode de script côté client permettant de contourner les contraintes relatives aux lignes de sous-liste obligatoires, afin que les scripts côté serveur puissent gérer la création des lignes de transaction.
Solution courte
Pour soumettre des transactions NetSuite sans validation obligatoire des lignes côté client, mettez en œuvre un script client qui définit de manière conditionnelle la valeur d’un champ spécifique. Cela permet aux scripts côté serveur de gérer la création des lignes de commande, contournant ainsi efficacement les contraintes du front-end dans le cadre de scénarios spécifiques d’intégration ou de traitement des données.
Scénario
Les utilisateurs peuvent être confrontés à des situations où une transaction NetSuite doit être soumise sans aucune ligne de détail initiale, même lorsque la validation côté client impose la présence de lignes de sous-liste obligatoires. Cela se produit souvent dans des scénarios d’intégration où les données des lignes sont renseignées par des processus côté serveur ou des systèmes externes après l’enregistrement initial de l’enregistrement. Le défi consiste à contourner la contrainte côté client afin de permettre l’enregistrement de la transaction.
Solution
Pour contourner les contraintes obligatoires liées aux lignes côté client et permettre aux scripts côté serveur de gérer la création des lignes de transaction, un script client peut être mis en œuvre. Cette approche peut s’avérer particulièrement utile dans les cas où les données initiales des lignes ne sont pas disponibles côté client, mais seront renseignées ultérieurement par des processus serveur. La fonction de script client SuiteScript 2.x suivante, généralement déployée en tant que point d’entrée saveRecord, montre comment procéder :
javascript
function onSave_HandleEasyAskData(context) {
var currentRecord = context.currentRecord;
var hasHiddenData = CP_CUE_QuoteEasyAskIntegration.HIDDEN_DATA.items.length > 0;
if (hasHiddenData) {
// This method has been observed to potentially bypass client-side mandatory line constraints.
// Note: The direct manipulation of a field like 'haslines' for this specific purpose
// is not widely documented as a standard practice in current NetSuite SuiteScript 2.x.
currentRecord.setValue({ fieldId: 'haslines', value: true });
}
return true;
}Support expert NetSuite
Besoin d’aide pour cet enjeu NetSuite ?
Accompagnement-conseil et configuration pour Développement SuiteScript
