{"id":3174,"date":"2020-03-03T21:12:51","date_gmt":"2020-03-03T21:12:51","guid":{"rendered":"https:\/\/answers.gurussolutions.com\/answers\/how-to-programmatically-create-a-netsuite-work-order-from-a-sales-order-line-2\/"},"modified":"2026-07-28T18:25:33","modified_gmt":"2026-07-28T18:25:33","slug":"comment-creer-par-programmation-un-bon-de-travail-netsuite-a-partir-dune-ligne-de-commande-client","status":"publish","type":"qa_entry","link":"https:\/\/answers.gurussolutions.com\/fr\/answers\/comment-creer-par-programmation-un-bon-de-travail-netsuite-a-partir-dune-ligne-de-commande-client\/","title":{"rendered":"Comment cr\u00e9er par programmation un bon de travail NetSuite \u00e0 partir d&rsquo;une ligne de commande 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":"Ce guide d\u00e9crit la m\u00e9thode SuiteScript 2.x permettant de cr\u00e9er et de lier par programmation un ordre de travail \u00e0 une ligne sp\u00e9cifique d'une commande client.","ga_short_answer":"Pour cr\u00e9er par programmation un ordre de travail \u00e0 partir d\u2019une ligne de commande client, instanciez un nouvel enregistrement d\u2019ordre de travail. D\u00e9finissez ses champs \u00ab soid \u00bb, \u00ab soline \u00bb et \u00ab specord \u00bb, puis enregistrez-le. R\u00e9cup\u00e9rez l\u2019identifiant interne du nouvel ordre de travail. Mettez \u00e0 jour le champ \u00ab woid \u00bb de la ligne de commande client d\u2019origine avec cet identifiant, puis enregistrez la commande client afin d\u2019\u00e9tablir le lien.","ga_scenario":"Lors de la gestion de transactions comportant des lignes d\u2019article n\u00e9cessitant la cr\u00e9ation d\u2019un ordre de travail, les utilisateurs peuvent g\u00e9n\u00e9ralement cliquer sur un lien \u00ab Cr\u00e9er un ordre de travail \u00bb dans l\u2019interface utilisateur de NetSuite. Toutefois, lorsque les transactions sont g\u00e9n\u00e9r\u00e9es par programmation via SuiteScript, une m\u00e9thode est n\u00e9cessaire pour reproduire cette fonctionnalit\u00e9 afin de garantir que l\u2019ordre de travail soit correctement associ\u00e9 \u00e0 la ligne de transaction concern\u00e9e.","ga_solution":"Bien que NetSuite documente d\u00e9sormais l\u2019utilisation du script map\/reduce `CPQM-MR-WOC`\n\npour cr\u00e9er des ordres de travail \u00e0 partir de commandes client via SuiteScript 2.x, une autre m\u00e9thode consiste \u00e0 cr\u00e9er directement un enregistrement d\u2019ordre de travail et \u00e0 d\u00e9finir certains champs sp\u00e9cifiques afin d\u2019\u00e9tablir le lien. Le simple fait de d\u00e9finir la valeur du champ \u00ab Create WO \u00bb sur \u00ab true \u00bb ou de saisir un identifiant sur la ligne de transaction ne suffit pas \u00e0 cette fin. L\u2019approche d\u00e9crite ci-dessous d\u00e9coule de l\u2019analyse des param\u00e8tres d\u2019URL utilis\u00e9s lors de la cr\u00e9ation d\u2019un ordre de travail \u00e0 partir de l\u2019interface utilisateur.\n\nLorsqu\u2019un utilisateur clique sur le lien \u00ab Create WO \u00bb dans l\u2019interface utilisateur, l\u2019URL se pr\u00e9sente g\u00e9n\u00e9ralement comme suit :\n`\/app\/accounting\/transactions\/workord.nl?soid=94023&soline=1&specord=T&entity=662&assemblyitem=878&quantity=1`\n\nPour reproduire cette fonctionnalit\u00e9 par programmation :\n\n1. Cr\u00e9ez un nouvel enregistrement d\u2019ordre de travail \u00e0 l\u2019aide de SuiteScript.\n2. Remplissez les champs suivants dans le nouvel enregistrement d\u2019ordre de travail :\n```\nwoRecord.setValue({fieldId: 'soid', value: soRecord.id}); \/\/the transaction id\nwoRecord.setValue({fieldId: 'soline', value: assemblyLineNumber}); \/\/ the line number for the work order item on the transaction (be careful with ss 1.0 vs 2.0)\nwoRecord.setValue({fieldId: 'specord', value: true}); \/\/This field is required for proper linking.\n```\n\n\n3. Enregistrez l\u2019enregistrement d\u2019ordre de travail nouvellement cr\u00e9\u00e9 afin d\u2019obtenir son identifiant interne.\n4. Chargez l\u2019enregistrement de la commande client d\u2019origine.\n5. D\u00e9finissez le champ `woid`\n\nsur la ligne correspondante de la sous-liste des articles de la commande client afin de la lier au nouvel ordre de travail :\n```\nsoRecordLoaded.setSublistValue({\n    sublistId: 'item',\n    fieldId: 'woid',\n    line: assemblyLineNumber,\n    value: woInternalId\n});\n```\n\n6. Enregistrez l\u2019enregistrement de la commande client mis \u00e0 jour.","ga_source_author":"Andrew Kefalas","ga_source_author_email":"","ga_date_original":"2020-03-03T13:12:51-08:00","ga_date_verified":"2026-07-05","ga_source_subject":"Scripting - How to set the 'create WO' line item column on a transaction to create a work order for a specific line","ga_ans_id":"ANS-1435","ga_publish_decision":"publish_with_edits","ga_staleness_risk":"medium","ga_review_priority":"spot_check","ga_tier2_verdict":"partially_outdated","ga_tier2_concerns":"The claim 'There is nothing documented in suitescript for doing this' is outdated, as NetSuite now documents the use of the CPQM-MR-WOC map\/reduce script for creating work orders from sales orders via SuiteScript 2.x.","ga_final_category":"SuiteScript Development","footnotes":""},"ga_category":[108,23,108],"ga_audience":[10],"ga_difficulty":[94],"class_list":["post-3174","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\/3174","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\/3174\/revisions"}],"predecessor-version":[{"id":5094,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry\/3174\/revisions\/5094"}],"wp:attachment":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/media?parent=3174"}],"wp:term":[{"taxonomy":"ga_category","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_category?post=3174"},{"taxonomy":"ga_audience","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_audience?post=3174"},{"taxonomy":"ga_difficulty","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_difficulty?post=3174"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}