{"id":3163,"date":"2019-09-26T19:01:26","date_gmt":"2019-09-26T19:01:26","guid":{"rendered":"https:\/\/answers.gurussolutions.com\/answers\/comment-supprimer-les-balises-de-quantite-du-fichier-pdf-advanced-inventory-detail-de-netsuite\/"},"modified":"2026-07-28T18:25:32","modified_gmt":"2026-07-28T18:25:32","slug":"comment-supprimer-les-balises-de-quantite-du-fichier-pdf-advanced-inventory-detail-de-netsuite","status":"publish","type":"qa_entry","link":"https:\/\/answers.gurussolutions.com\/fr\/answers\/comment-supprimer-les-balises-de-quantite-du-fichier-pdf-advanced-inventory-detail-de-netsuite\/","title":{"rendered":"Comment supprimer les balises de quantit\u00e9 du fichier PDF \u00ab Advanced Inventory Detail \u00bb de NetSuite"},"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":"D\u00e9couvrez comment utiliser la fonction \u00ab replace \u00bb de FreeMarker avec des expressions r\u00e9guli\u00e8res pour nettoyer les champs de d\u00e9tails des stocks sur les bordereaux d'exp\u00e9dition NetSuite.","ga_short_answer":"Pour supprimer les balises de quantit\u00e9 telles que (99) des champs de d\u00e9tails d'inventaire multilignes dans les mod\u00e8les PDF avanc\u00e9s de NetSuite, utilisez la fonction de remplacement de FreeMarker avec une expression r\u00e9guli\u00e8re. La syntaxe correcte, tenant compte du traitement sp\u00e9cifique des barres obliques invers\u00e9es et des sauts de ligne par FreeMarker dans les expressions r\u00e9guli\u00e8res, est la suivante : ${tranline.inventorydetail?replace(\"(d*)\",\" \",\"r\")}. Cette expression cible et supprime les quantit\u00e9s num\u00e9riques entre parenth\u00e8ses.","ga_scenario":"Les mod\u00e8les PDF avanc\u00e9s de NetSuite utilisent souvent les d\u00e9tails d\u2019inventaire issus des \u00ab Item Fulfillments \u00bb pour g\u00e9n\u00e9rer des bordereaux d\u2019exp\u00e9dition imprimables. Une exigence courante consiste \u00e0 afficher les num\u00e9ros de compartiment sans les quantit\u00e9s associ\u00e9es, qui peuvent appara\u00eetre entre parenth\u00e8ses (par exemple, AB1234(99)). Le d\u00e9fi consiste \u00e0 supprimer ces indications de quantit\u00e9 du champ de d\u00e9tails de stock multiligne directement dans le mod\u00e8le PDF sans recourir \u00e0 des scripts, afin d\u2019obtenir un r\u00e9sultat \u00e9pur\u00e9 tel que \u00ab AB1234 \u00bb.","ga_solution":"Oui, FreeMarker prend en charge l\u2019utilisation d\u2019expressions r\u00e9guli\u00e8res au sein de sa fonction `replace`\n\n. L\u2019utilisation standard de la fonction `replace`\n\n, qui ne fonctionne qu\u2019avec des correspondances exactes de cha\u00eenes de caract\u00e8res, est illustr\u00e9e ci-dessous :\n\n```\n${tranline.inventorydetail?replace(\"car\", \"bulldozer\")}\n```\n\nCela donnerait : \u00ab this is a bulldozer abulldozerus \u00bb\n\nEn ajoutant l\u2019indicateur \u00ab r \u00bb en tant que troisi\u00e8me param\u00e8tre facultatif, vous indiquez au compilateur FreeMarker de traiter la cha\u00eene de recherche comme une expression r\u00e9guli\u00e8re. Pour supprimer les parenth\u00e8ses et les caract\u00e8res qu\u2019elles renferment, une premi\u00e8re tentative d\u2019expression r\u00e9guli\u00e8re pourrait \u00eatre la suivante :\n\n```\n${tranline.inventorydetail?replace(\"(.*)\",\" \",\"r\")}\n```\n\nCependant, ce code d\u2019expression r\u00e9guli\u00e8re standard provoque un plantage du compilateur FreeMarker en raison de la mani\u00e8re dont il interpr\u00e8te les barres obliques invers\u00e9es. Le caract\u00e8re barre oblique invers\u00e9e doit \u00eatre doubl\u00e9 :\n\n```\n${tranline.inventorydetail?replace(\"(.*)\",\" \",\"r\")}\n```\n\n\n\nIl faut \u00e9galement tenir compte du fait que la s\u00e9quence `.*`\n\n, par d\u00e9faut, ne devrait pas prendre en compte les caract\u00e8res de saut de ligne, mais que dans FreeMarker, elle le fait. Pour cibler sp\u00e9cifiquement les chiffres situ\u00e9s entre parenth\u00e8ses et \u00e9viter les correspondances involontaires entre les lignes, `.*`\n\ndoit \u00eatre remplac\u00e9 par `d*`\n\n. La solution finale, qui fonctionne, est la suivante :\n\n```\n${tranline.inventorydetail?replace(\"(d*)\",\" \",\"r\")}\n```","ga_source_author":"Isaiah Riesman-Tremonte","ga_source_author_email":"","ga_date_original":"2019-09-26T12:01:26-07:00","ga_date_verified":"2026-07-05","ga_source_subject":"How can I remove a quantity tag from a multiline inventory detail field in freemarker?","ga_ans_id":"ANS-1424","ga_publish_decision":"publish","ga_staleness_risk":"high","ga_review_priority":"verify_first","ga_tier2_verdict":"still_accurate","ga_tier2_concerns":"","ga_final_category":"Printing, PDF & Email Templates","footnotes":""},"ga_category":[95,19,95],"ga_audience":[10],"ga_difficulty":[92],"class_list":["post-3163","qa_entry","type-qa_entry","status-publish","hentry","ga_category-impression-pdf-et-modeles-de-mails","ga_category-printing-pdf-email-templates","ga_audience-developer-suitescript","ga_difficulty-niveau-intermediaire"],"taxonomy_info":{"ga_category":[{"value":95,"label":"Impression, PDF et mod\u00e8les d\u2019e-mails"},{"value":19,"label":"Printing, PDF & Email Templates"},{"value":95,"label":"Impression, PDF et mod\u00e8les d\u2019e-mails"}],"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\/3163","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\/3163\/revisions"}],"predecessor-version":[{"id":5083,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/qa_entry\/3163\/revisions\/5083"}],"wp:attachment":[{"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/media?parent=3163"}],"wp:term":[{"taxonomy":"ga_category","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_category?post=3163"},{"taxonomy":"ga_audience","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_audience?post=3163"},{"taxonomy":"ga_difficulty","embeddable":true,"href":"https:\/\/answers.gurussolutions.com\/fr\/wp-json\/wp\/v2\/ga_difficulty?post=3163"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}