{"id":21259,"date":"2026-08-04T12:03:06","date_gmt":"2026-08-04T12:03:06","guid":{"rendered":"https:\/\/tenthplanet.in\/idempiere\/?p=21259"},"modified":"2026-08-04T12:03:06","modified_gmt":"2026-08-04T12:03:06","slug":"how-to-use-universal-substitution-in-idempiere","status":"publish","type":"post","link":"https:\/\/tenthplanet.in\/idempiere\/how-to-use-universal-substitution-in-idempiere\/","title":{"rendered":"How to Use Universal Substitution in iDempiere"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Universal Substitution is an iDempiere Manufacturing process that replaces one product with another across every Bill of Material (BOM) in the system.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The change updates BOM lines instantly, keeping production kits, hampers, and assembled retail sets accurate for costing, inventory, and order fulfillment.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Business Rules<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Substitution updates every active BOM line referencing the original product, not just one BOM.<\/li>\n\n\n\n<li>Both Product and Substitute fields are mandatory before the process can run.<\/li>\n\n\n\n<li>The Substitute product must already exist as a valid, active iDempiere product record.<\/li>\n\n\n\n<li>Running without Run as Job processes the substitution immediately and shows results on screen.<\/li>\n\n\n\n<li>Enabling Run as Job queues the substitution as a background process for large data volumes.<\/li>\n\n\n\n<li>The system reports the number of BOM lines updated after execution completes.<\/li>\n\n\n\n<li>Substitution updates BOM line references only; it does not delete the original product record.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Process Flow<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"364\" src=\"https:\/\/tenthplanet.in\/idempiere\/wp-content\/uploads\/sites\/13\/2026\/07\/TenthPlanet-iDempiere-Universal-Substitution-1024x364.png\" alt=\"\" class=\"wp-image-21263\" title=\"\" srcset=\"https:\/\/tenthplanet.in\/idempiere\/wp-content\/uploads\/sites\/13\/2026\/07\/TenthPlanet-iDempiere-Universal-Substitution-1024x364.png 1024w, https:\/\/tenthplanet.in\/idempiere\/wp-content\/uploads\/sites\/13\/2026\/07\/TenthPlanet-iDempiere-Universal-Substitution-300x107.png 300w, https:\/\/tenthplanet.in\/idempiere\/wp-content\/uploads\/sites\/13\/2026\/07\/TenthPlanet-iDempiere-Universal-Substitution-768x273.png 768w, https:\/\/tenthplanet.in\/idempiere\/wp-content\/uploads\/sites\/13\/2026\/07\/TenthPlanet-iDempiere-Universal-Substitution.png 1523w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Prerequisites<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Original product configured and referenced in one or more Bills of Material.<\/li>\n\n\n\n<li>Substitute product created and marked Active in the Product window.<\/li>\n\n\n\n<li>Product Category and UOM configured correctly for the substitute product.<\/li>\n\n\n\n<li>Bill of Materials (BOM) structures already defined for the affected products.<\/li>\n\n\n\n<li>User assigned a Manufacturing role with rights to run this process.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Navigation<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Menu \u2192 Manufacturing \u2192 Universal Substitution<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Configuration Steps<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 1: Select the Product to Replace<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In the Product field, search and select the product being discontinued or replaced, e.g., CARD-01_Greeting Card. Use the picker icon if the exact code is unknown.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 2: Select the Substitute Product<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In the Substitute field, select the new product record, e.g., CARD-02_Greeting Card New. Confirm it is Active and correctly categorized before proceeding.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Field Reference<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><td><strong>Field<\/strong><\/td><td><strong>Sample Value<\/strong><\/td><td><strong>Description<\/strong><\/td><\/tr><\/thead><tbody><tr><td>Product<\/td><td>CARD-01_Greeting Card<\/td><td>Existing product to be replaced in all BOMs<\/td><\/tr><tr><td>Substitute<\/td><td>CARD-02_Greeting Card New<\/td><td>New product that will replace the original<\/td><\/tr><tr><td>Run as Job<\/td><td>Unchecked<\/td><td>Runs substitution immediately instead of as a background job<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 3: Decide the Run as Job Option<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Leave Run as Job unchecked for small updates that need instant confirmation. Check it when substituting products across a large number of BOMs to avoid session timeouts.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 4: Execute and Verify the Substitution<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Click OK to run the process. Review the confirmation message, e.g., &#8220;1 BOM Line products updated,&#8221; then verify the affected BOMs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Common Issues and Resolutions<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><td><strong>Issue<\/strong><\/td><td><strong>Cause<\/strong><\/td><td><strong>Resolution<\/strong><\/td><\/tr><\/thead><tbody><tr><td>No BOM lines updated<\/td><td>Original product not referenced in any active BOM<\/td><td>Verify the product exists in a BOM before running the substitution<\/td><\/tr><tr><td>Substitute field rejects entry<\/td><td>Substitute product not marked Active<\/td><td>Activate the substitute product in the Product window first<\/td><\/tr><tr><td>Process appears to hang<\/td><td>Large dataset run without Run as Job<\/td><td>Re-run with Run as Job checked for bulk substitutions<\/td><\/tr><tr><td>Same product selected twice<\/td><td>Product and Substitute fields match<\/td><td>Choose a different product code for Substitute<\/td><\/tr><tr><td>Substitution not reflected in costing<\/td><td>BOM not re-costed after the update<\/td><td>Reprocess or re-cost the affected BOM manually<\/td><\/tr><tr><td>Access denied error<\/td><td>User role lacks Manufacturing process rights<\/td><td>Assign the correct role permissions in the User\/Role window<\/td><\/tr><tr><td>Confirmation message not visible<\/td><td>Run as Job checked, process runs in background<\/td><td>Check background job status in the Process Monitor window<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Next Steps<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Review the updated Bill of Materials (BOM) window to confirm new product references.<\/li>\n\n\n\n<li>Update Product Costing for the substitute product if pricing differs from the original.<\/li>\n\n\n\n<li>Check open Manufacturing Orders for any that still reference the old product.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Universal Substitution is an iDempiere Manufacturing process that replaces one product with another across every Bill of Material (BOM) in [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[86,10],"tags":[],"class_list":["post-21259","post","type-post","status-publish","format-standard","hentry","category-idempiere-manufacturing","category-idempiere-product"],"_links":{"self":[{"href":"https:\/\/tenthplanet.in\/idempiere\/wp-json\/wp\/v2\/posts\/21259","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tenthplanet.in\/idempiere\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tenthplanet.in\/idempiere\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tenthplanet.in\/idempiere\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/tenthplanet.in\/idempiere\/wp-json\/wp\/v2\/comments?post=21259"}],"version-history":[{"count":0,"href":"https:\/\/tenthplanet.in\/idempiere\/wp-json\/wp\/v2\/posts\/21259\/revisions"}],"wp:attachment":[{"href":"https:\/\/tenthplanet.in\/idempiere\/wp-json\/wp\/v2\/media?parent=21259"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tenthplanet.in\/idempiere\/wp-json\/wp\/v2\/categories?post=21259"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tenthplanet.in\/idempiere\/wp-json\/wp\/v2\/tags?post=21259"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}