{"id":3297,"date":"2017-08-21T15:17:19","date_gmt":"2017-08-21T15:17:19","guid":{"rendered":"https:\/\/answers.gurussolutions.com\/answers\/how-to-script-netsuite-next-bill-date-functionality-during-sales-order-transformation-2\/"},"modified":"2026-07-28T18:25:40","modified_gmt":"2026-07-28T18:25:40","slug":"comment-creer-un-script-pour-la-fonctionnalite-date-de-facturation-suivante-de-netsuite-lors-de-la-transformation-des-commandes-client","status":"publish","type":"qa_entry","link":"https:\/\/answers.gurussolutions.com\/fr\/answers\/comment-creer-un-script-pour-la-fonctionnalite-date-de-facturation-suivante-de-netsuite-lors-de-la-transformation-des-commandes-client\/","title":{"rendered":"Comment cr\u00e9er un script pour la fonctionnalit\u00e9 \u00ab Date de facturation suivante \u00bb de NetSuite lors de la transformation des commandes client"},"content":{"rendered":"","protected":false},"template":"","meta":{"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","ga_subtitle":"Automatisez la d\u00e9finition de la prochaine date de facturation lors de la conversion d'une commande client en facture ou en vente au comptant \u00e0 l'aide de SuiteScript 2.x.","ga_short_answer":"Pour utiliser la fonctionnalit\u00e9 \u00ab Next Bill \u00bb de NetSuite via un script, initialisez la date de facturation lors du processus de transformation de la commande client. Cela implique de rechercher la valeur \u00ab nextbilldate \u00bb dans la commande client et de la transmettre en tant que valeur par d\u00e9faut lors de la cr\u00e9ation du nouvel enregistrement de transaction (facture ou vente au comptant) \u00e0 l'aide de SuiteScript 2.x.","ga_scenario":"Les utilisateurs doivent d\u00e9finir par programmation la date de facturation des commandes client transform\u00e9es, en utilisant notamment la fonctionnalit\u00e9 \u00ab Facture suivante \u00bb. Cela est essentiel pour automatiser les processus de facturation lorsque la date de facturation doit correspondre \u00e0 un calendrier pr\u00e9d\u00e9fini figurant sur la commande client d\u2019origine, afin de garantir l\u2019exactitude de la comptabilit\u00e9.","ga_solution":"Pour exploiter la fonctionnalit\u00e9 \u00ab Next Bill \u00bb via un script, la date de facturation doit \u00eatre initialis\u00e9e lors du processus de transformation de la commande client. Cela implique de r\u00e9cup\u00e9rer la valeur \u00ab nextbilldate \u00bb de la commande client d\u2019origine et de la transmettre en tant que valeur par d\u00e9faut lors de la cr\u00e9ation du nouvel enregistrement de transaction (par exemple, une facture ou une vente au comptant) \u00e0 l\u2019aide de SuiteScript 2.x. L\u2019exemple SuiteScript 2.x suivant illustre ce processus. Assurez-vous que les modules `N\/record` et `N\/search` sont charg\u00e9s dans votre script (par exemple, via l\u2019instruction `define` dans un module ou un fichier de script SuiteScript 2.x).\n```\njavascript\nvar salesOrderId = 'xxx'; \/\/ Replace 'xxx' with the actual sales order internal ID\nvar nextBillDate = search.lookupFields({\n    type: search.Type.SALES_ORDER,\n    id: salesOrderId,\n    columns: ['nextbilldate']\n}).nextbilldate;\n\nvar transformedRecord = record.transform({\n    fromType: record.Type.SALES_ORDER,\n    fromId: salesOrderId,\n    toType: record.Type.CASH_SALE, \/\/ Can also be record.Type.INVOICE\n    defaultValues: {\n        billdate: nextBillDate\n    }\n});\n\ntransformedRecord.save();\n```\nIl est important de noter que \u00ab nextbilldate \u00bb n\u2019est pas directement document\u00e9 en tant que champ de corps standard, mais qu\u2019il est disponible en tant que colonne de recherche ; c\u2019est pourquoi une op\u00e9ration de recherche est n\u00e9cessaire pour r\u00e9cup\u00e9rer sa valeur.\n\nLes points cl\u00e9s \u00e0 prendre en compte pour la mise en \u0153uvre sont les suivants :\n1. Cette approche peut s\u2019appliquer aux commandes client sans \u00e9ch\u00e9ancier de facturation, mais une logique de validation suppl\u00e9mentaire peut s\u2019av\u00e9rer utile pour s\u2019assurer de la pr\u00e9sence d\u2019un \u00e9ch\u00e9ancier de facturation si cela est requis.\n2. Le type d\u2019enregistrement cible pour la transformation peut \u00eatre soit GA_KEEP_0005, soit `record.Type.CASH_SALE`.","ga_source_author":"","ga_source_author_email":"","ga_date_original":"2017-08-21T17:17:19+02:00","ga_date_verified":"2026-07-05","ga_source_subject":"How can I use the Next Bill functionality though scripting?","ga_ans_id":"ANS-1558","ga_publish_decision":"publish_with_edits","ga_staleness_risk":"high","ga_review_priority":"spot_check","ga_tier2_verdict":"partially_outdated","ga_tier2_concerns":"The functions 'nlapiTransformRecord', 'nlapiLookupField', and 'nlapiSubmitRecord' are SuiteScript 1.0 functions and have been superseded by SuiteScript 2.x equivalents (e.g., 'N\/record.transform', 'N\/search.lookupFields', 'N\/record.save' or 'N\/record.submitFields').; The syntax for transforming records and setting field values has changed significantly from SuiteScript 1.0 to SuiteScript 2.x. In SuiteScript 2.x, 'billdate' would be passed within a 'defaultValues' object to the 'record.transform' method, not as a direct parameter to the transform function.","ga_final_category":"SuiteScript Development","footnotes":""},"ga_category":[108,23,108],"ga_audience":[10],"ga_difficulty":[94],"class_list":["post-3297","qa_entry","type-qa_entry","status-publish","hentry","ga_category-developpement-suitescript","ga_category-suitescript-development","ga_audience-developer-suitescript","ga_difficulty-avance"],"taxonomy_info":{"ga_category":[{"value":108,"label":"D\u00e9veloppement SuiteScript"},{"value":23,"label":"SuiteScript Development"},{"value":108,"label":"D\u00e9veloppement SuiteScript"}],"ga_audience":[{"value":10,"label":"Developer\/SuiteScript"}],"ga_difficulty":[{"value":94,"label":"Avanc\u00e9"}]},"featured_image_src_large":[],"author_info":[],"comment_info":"","_links":{"self":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry\/3297","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry"}],"about":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/types\/qa_entry"}],"version-history":[{"count":1,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry\/3297\/revisions"}],"predecessor-version":[{"id":5217,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry\/3297\/revisions\/5217"}],"wp:attachment":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/media?parent=3297"}],"wp:term":[{"taxonomy":"ga_category","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_category?post=3297"},{"taxonomy":"ga_audience","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_audience?post=3297"},{"taxonomy":"ga_difficulty","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_difficulty?post=3297"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}