{"id":2851,"date":"2017-08-21T15:45:13","date_gmt":"2017-08-21T15:45:13","guid":{"rendered":"https:\/\/answers.gurussolutions.com\/answers\/how-to-identify-item-options-on-a-sales-order-in-netsuite-suitescript-2-x-2\/"},"modified":"2026-07-28T18:25:16","modified_gmt":"2026-07-28T18:25:16","slug":"comment-identifier-les-options-darticle-sur-une-commande-client-dans-netsuite-suitescript-2-x","status":"publish","type":"qa_entry","link":"https:\/\/answers.gurussolutions.com\/fr\/answers\/comment-identifier-les-options-darticle-sur-une-commande-client-dans-netsuite-suitescript-2-x\/","title":{"rendered":"Comment identifier les options d&rsquo;article sur une commande client dans NetSuite SuiteScript 2.x"},"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":"L'acc\u00e8s aux d\u00e9tails des options d'article dans les sous-listes des commandes client n\u00e9cessite l'utilisation de m\u00e9thodes sp\u00e9cifiques de SuiteScript 2.x.","ga_short_answer":"Pour v\u00e9rifier les options d'un article sur une commande client, utilisez la fonction `record.load` de SuiteScript 2.x afin d'obtenir l'enregistrement de la commande client. Utilisez ensuite la fonction GA_KEEP_0002 sur la sous-liste \u00ab item \u00bb pour r\u00e9cup\u00e9rer le champ \u00ab options \u00bb d'une ligne sp\u00e9cifique. N'oubliez pas que SuiteScript 2.x utilise un indexage \u00e0 partir de 0 et que le champ \u00ab options \u00bb renvoie souvent un objet n\u00e9cessitant un analyse syntaxique.","ga_scenario":"Les utilisateurs ont souvent besoin d\u2019inspecter par programmation les lignes de commande client afin de d\u00e9terminer si des options sp\u00e9cifiques ont \u00e9t\u00e9 s\u00e9lectionn\u00e9es pour ces lignes. Cela est essentiel pour les validations personnalis\u00e9es, les int\u00e9grations ou les rapports qui d\u00e9pendent de la configuration des lignes comportant des options personnalis\u00e9es. L\u2019identification de la pr\u00e9sence et des valeurs de ces options n\u00e9cessite des m\u00e9thodes SuiteScript sp\u00e9cifiques.","ga_solution":"La solution consiste \u00e0 utiliser les fonctions SuiteScript 2.x pour <a class=\"ga-interlink\" href=\"https:\/\/answers.gurussolutions.com\/fr\/answers\/can-you-load-netsuite-records-with-view-permissions-in-suitescript\/\">charger l\u2019enregistrement de la commande client<\/a>, puis r\u00e9cup\u00e9rer la valeur du champ \u00ab options \u00bb pour une ligne d\u2019article sp\u00e9cifique. Cette approche remplace les anciennes fonctions SuiteScript 1.0 telles que `nlapiLoadRecord` et `getLineItemValue` par leurs \u00e9quivalents modulaires SuiteScript 2.x.\n\n1.  **Chargement de l\u2019enregistrement de commande client :**\n    Utilisez la fonction `record.load` du module `N\/record`. Cette fonction n\u00e9cessite un objet contenant les champs `type` et `id` de l\u2019enregistrement.\n\n```\njavascript\n    var salesOrderRecord = record.load({\n        type: record.Type.SALES_ORDER,\n        id: salesOrderId \/\/ Replace salesOrderId with the internal ID of the sales order\n    });\n```\n\n2.  **R\u00e9cup\u00e9rer les options d\u2019un article \u00e0 partir d\u2019une ligne sp\u00e9cifique :**\n    Acc\u00e9dez au champ \u00ab options \u00bb de la sous-liste \u00ab item \u00bb \u00e0 l\u2019aide de `record.getSublistValue`.\n\n```\njavascript\n    var itemOptions = salesOrderRecord.getSublistValue({\n        sublistId: 'item',\n        fieldId: 'options',\n        line: lineNumber \/\/ Replace lineNumber with the 0-based index of the item line\n    });\n```\n    **Consid\u00e9rations importantes pour SuiteScript 2.x :**\n    *   **Approche modulaire :** SuiteScript 2.x utilise une approche modulaire, ce qui n\u00e9cessite que `N\/record` soit d\u00e9fini et transmis en tant que param\u00e8tre \u00e0 la fonction principale de votre script.\n    *   **Indexation \u00e0 partir de 0 :** L\u2019indexation des lignes des sous-listes dans SuiteScript 2.x commence \u00e0 0 (par exemple, la premi\u00e8re ligne est `line: 0`), ce qui diff\u00e8re de SuiteScript 1.0.\n    *   **Valeur du champ \u00ab options \u00bb :** Le champ \u00ab options \u00bb renvoie g\u00e9n\u00e9ralement un objet ou un objet JSON converti en cha\u00eene de caract\u00e8res contenant les identifiants internes et les valeurs des options d\u2019\u00e9l\u00e9ments personnalis\u00e9s, plut\u00f4t qu\u2019une simple valeur directe comme pourraient le laisser entendre les anciens exemples de SuiteScript 1.0. Un analyse syntaxique suppl\u00e9mentaire peut s\u2019av\u00e9rer n\u00e9cessaire pour extraire des valeurs d\u2019options sp\u00e9cifiques.","ga_source_author":"","ga_source_author_email":"","ga_date_original":"2017-08-21T08:45:13-07:00","ga_date_verified":"2026-07-05","ga_source_subject":"How to find if item has item options under SO","ga_ans_id":"ANS-1112","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 `nlapiLoadRecord` and `getLineItemValue` are SuiteScript 1.0 functions and have been replaced by SuiteScript 2.x equivalents (`N\/record` module's `record.load` and `record.getSublistValue` or `N\/currentRecord` module's `currentRecord.getSublistValue`).; SuiteScript 2.x uses a modular approach for loading APIs and object-based parameters for functions, which is different from the global functions used in SuiteScript 1.0.; Line indexing in SuiteScript 2.x for sublists starts at 0, which is a change from SuiteScript 1.0.; Accessing and setting item options in SuiteScript 2.x for the 'options' field typically involves working with an object containing the internal IDs of the custom item option fields, rather than a direct 'options' field as implied by the SuiteScript 1.0 example.","ga_final_category":"SuiteScript Development","footnotes":""},"ga_category":[108,23,108],"ga_audience":[10],"ga_difficulty":[92],"class_list":["post-2851","qa_entry","type-qa_entry","status-publish","hentry","ga_category-developpement-suitescript","ga_category-suitescript-development","ga_audience-developer-suitescript","ga_difficulty-niveau-intermediaire"],"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":92,"label":"Niveau interm\u00e9diaire"}]},"featured_image_src_large":[],"author_info":[],"comment_info":"","_links":{"self":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry\/2851","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\/2851\/revisions"}],"predecessor-version":[{"id":4771,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry\/2851\/revisions\/4771"}],"wp:attachment":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/media?parent=2851"}],"wp:term":[{"taxonomy":"ga_category","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_category?post=2851"},{"taxonomy":"ga_audience","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_audience?post=2851"},{"taxonomy":"ga_difficulty","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_difficulty?post=2851"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}