<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Biz-Tech Services</title>
	<atom:link href="https://biz-techservices.com/feed" rel="self" type="application/rss+xml" />
	<link>https://biz-techservices.com/</link>
	<description>Ignite your business with us!</description>
	<lastBuildDate>Wed, 21 Oct 2026 06:47:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>

<image>
	<url>https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:32/h:32/q:mauto/g:sm/ig:avif/dpr:2/https://biz-techservices.com/wp-content/uploads/cropped-Biz-Tech-Services-Favicon-1.png</url>
	<title>Biz-Tech Services</title>
	<link>https://biz-techservices.com/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Available-to-Promise in Acumatica 2026 R2: Setup, Sales-Order Behavior, and Pitfalls</title>
		<link>https://biz-techservices.com/archives/10882</link>
		
		<dc:creator><![CDATA[Gary]]></dc:creator>
		<pubDate>Wed, 21 Oct 2026 06:47:48 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<guid isPermaLink="false">https://biz-techservices.com/?p=10882</guid>

					<description><![CDATA[<p>Configure Acumatica Available-to-Promise in 2026 R2 with ATP rules, order types, safety stock, worked examples, testing, and rollout controls.</p>
<p>The post <a href="https://biz-techservices.com/archives/10882">Available-to-Promise in Acumatica 2026 R2: Setup, Sales-Order Behavior, and Pitfalls</a> appeared first on <a href="https://biz-techservices.com">Biz-Tech Services</a>.</p>
]]></description>
										<content:encoded><![CDATA[<figure class="wp-caption aligncenter"><img class="size-full wp-image-10879 aligncenter" src="https://mlt1wwte1gj9.i.optimole.com/cb:NqQW.f8d/w:auto/h:auto/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/acumatica-available-to-promise_Blog_Hero_Wide_3x1.png" alt="Acumatica Available-to-Promise workflow showing warehouse supply, demand, protected inventory, and a confirmed shipment date." width="2172" height="724" fetchpriority="high" decoding="async" srcset="https://mlt1wwte1gj9.i.optimole.com/cb:NqQW.f8d/w:1920/h:640/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/acumatica-available-to-promise_Blog_Hero_Wide_3x1.png 2172w, https://mlt1wwte1gj9.i.optimole.com/cb:NqQW.f8d/w:300/h:100/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/acumatica-available-to-promise_Blog_Hero_Wide_3x1.png 300w, https://mlt1wwte1gj9.i.optimole.com/cb:NqQW.f8d/w:1024/h:341/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/acumatica-available-to-promise_Blog_Hero_Wide_3x1.png 1024w, https://mlt1wwte1gj9.i.optimole.com/cb:NqQW.f8d/w:768/h:256/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/acumatica-available-to-promise_Blog_Hero_Wide_3x1.png 768w, https://mlt1wwte1gj9.i.optimole.com/cb:NqQW.f8d/w:1536/h:512/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/acumatica-available-to-promise_Blog_Hero_Wide_3x1.png 1536w, https://mlt1wwte1gj9.i.optimole.com/cb:NqQW.f8d/w:1920/h:640/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/acumatica-available-to-promise_Blog_Hero_Wide_3x1.png 2048w, https://mlt1wwte1gj9.i.optimole.com/cb:NqQW.f8d/w:350/h:117/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/acumatica-available-to-promise_Blog_Hero_Wide_3x1.png 350w, https://mlt1wwte1gj9.i.optimole.com/cb:NqQW.f8d/w:720/h:240/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/acumatica-available-to-promise_Blog_Hero_Wide_3x1.png 720w, https://mlt1wwte1gj9.i.optimole.com/cb:NqQW.f8d/w:1032/h:344/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/acumatica-available-to-promise_Blog_Hero_Wide_3x1.png 1032w" sizes="(max-width: 840px) 100vw, 840px" /></figure>
<p class="article-reading-time"><strong>Estimated reading time:</strong> approximately 58 minutes.</p>
<p>Available-to-Promise in Acumatica 2026 R2 helps a distributor answer a practical question during sales-order entry: when can the full open quantity of this stock item be covered and shipped from the selected warehouse? The calculation looks beyond current on-hand inventory. It processes configured supply and demand in date order, applies the order type&#x27;s ATP horizon and safety-stock policy, and returns an ATP date for an eligible line. It can also calculate the date on which the entire order can ship in full.</p>
<p>That answer is useful only when the inputs reflect the company&#x27;s fulfillment policy. An ATP date is not a guarantee from a supplier, a warehouse reservation, or a substitute for allocation and shipment processing. It is a calculated commitment signal based on the documents, dates, warehouses, item classes, order types, and quantities that the configuration tells Acumatica to consider. A sound rollout therefore combines setup, data review, worked scenarios, reconciliation, user guidance, and post-launch monitoring.</p>
<p>This guide explains the 2026 R2 feature, the distinction between ATP and familiar inventory quantities, the configuration sequence, sales-order behavior, a detailed example, testing, governance, integrations, and common failure patterns. Product behavior and field names are based on the Acumatica 2026 R2 form reference and release materials available on 21 October 2026. Validate the process in the organization&#x27;s exact build before using ATP dates in customer commitments.</p>
<h2 id="table-of-contents">Table of Contents</h2>
<ol>
<li><a href="#what-available-to-promise-means-in-acumatica-2026-r2">What Available-to-Promise means in Acumatica 2026 R2</a></li>
<li><a href="#why-distributors-need-a-date-based-promise">Why distributors need a date-based promise</a></li>
<li><a href="#atp-compared-with-on-hand-available-and-available-for-shipping">ATP compared with on hand available and available for shipping</a></li>
<li><a href="#atp-compared-with-capable-to-promise-and-inventory-planning">ATP compared with capable to promise and inventory planning</a></li>
<li><a href="#the-four-configuration-layers-behind-an-atp-date">The four configuration layers behind an ATP date</a></li>
<li><a href="#enable-the-available-to-promise-feature-deliberately">Enable the Available-to-Promise feature deliberately</a></li>
<li><a href="#create-atp-calculation-rules-that-match-fulfillment-policy">Create ATP calculation rules that match fulfillment policy</a></li>
<li><a href="#assign-atp-rules-through-item-classes">Assign ATP rules through item classes</a></li>
<li><a href="#configure-order-types-for-cumulative-look-ahead">Configure order types for cumulative look-ahead</a></li>
<li><a href="#choose-an-atp-horizon-that-covers-relevant-supply">Choose an ATP horizon that covers relevant supply</a></li>
<li><a href="#decide-whether-atp-should-protect-safety-stock">Decide whether ATP should protect safety stock</a></li>
<li><a href="#understand-the-dates-used-on-a-sales-order">Understand the dates used on a sales order</a></li>
<li><a href="#how-the-cumulative-look-ahead-calculation-works">How the cumulative look-ahead calculation works</a></li>
<li><a href="#how-line-level-and-order-level-atp-differ">How line-level and order-level ATP differ</a></li>
<li><a href="#worked-atp-example-with-supply-demand-and-safety-stock">Worked ATP example with supply demand and safety stock</a></li>
<li><a href="#how-warehouse-selection-changes-the-promise">How warehouse selection changes the promise</a></li>
<li><a href="#which-sales-order-lines-are-eligible-for-atp">Which sales-order lines are eligible for ATP</a></li>
<li><a href="#how-order-status-and-unconfirmed-shipments-affect-the-action">How order status and unconfirmed shipments affect the action</a></li>
<li><a href="#how-shipping-rules-and-back-orders-interact-with-atp">How shipping rules and back orders interact with ATP</a></li>
<li><a href="#allocation-is-different-from-an-atp-calculation">Allocation is different from an ATP calculation</a></li>
<li><a href="#purchase-orders-transfers-and-replenishment-in-the-atp-timeline">Purchase orders transfers and replenishment in the ATP timeline</a></li>
<li><a href="#special-cases-that-need-separate-testing">Special cases that need separate testing</a></li>
<li><a href="#atp-behavior-for-imported-and-integrated-sales-orders">ATP behavior for imported and integrated sales orders</a></li>
<li><a href="#data-quality-controls-before-implementation">Data quality controls before implementation</a></li>
<li><a href="#a-practical-atp-test-plan">A practical ATP test plan</a></li>
<li><a href="#reconcile-an-atp-date-to-its-source-documents">Reconcile an ATP date to its source documents</a></li>
<li><a href="#design-permissions-ownership-and-exception-handling">Design permissions ownership and exception handling</a></li>
<li><a href="#roll-out-atp-without-disrupting-order-entry">Roll out ATP without disrupting order entry</a></li>
<li><a href="#monitor-promise-quality-after-go-live">Monitor promise quality after go-live</a></li>
<li><a href="#common-atp-pitfalls-and-how-to-diagnose-them">Common ATP pitfalls and how to diagnose them</a></li>
<li><a href="#available-to-promise-implementation-checklist">Available-to-Promise implementation checklist</a></li>
<li><a href="#frequently-asked-questions">Frequently Asked Questions</a></li>
<li><a href="#sources">Sources</a></li>
</ol>
<h2 id="what-available-to-promise-means-in-acumatica-2026-r2">What Available-to-Promise means in Acumatica 2026 R2</h2>
<p>Acumatica defines the Available-to-Promise feature as the ability to determine when a sales-order line, or the sales order as a whole, can be shipped to a customer in full. The feature lets an organization create multiple ATP calculation rules, assign them to item classes, select which order types use ATP, and configure the calculation settings for those order types. The <a href="https://beacon.acumatica.com/r/Form-Reference-Guide/Common-Settings-Forms/Enable/Disable-Features">2026 R2 Enable/Disable Features reference</a> describes that scope directly.</p>
<p>The result is a date. For a qualifying sales-order line, Acumatica determines the earliest date on which its full open quantity can be covered. For the order, the system can calculate the date on which all eligible lines can be shipped in full. The <a href="https://beacon.acumatica.com/r/Form-Reference-Guide/Sales-Orders-Forms/Sales-Orders">Sales Orders form reference</a> documents both calculations and the conditions under which the commands appear.</p>
<p>The phrase <em>can be covered</em> is important. ATP considers a time-phased series of quantities. It starts with the applicable available quantity at the beginning of the horizon, then adds supply and subtracts demand in chronological order according to the ATP rule. When the running balance can cover the quantity being evaluated, the system has a candidate coverage date. If the order type requires shipment, lead time to the customer&#x27;s location is part of the displayed ATP result.</p>
<p>ATP is therefore more informative than reading one quantity from an inventory inquiry, but it remains dependent on recorded facts. A purchase order with an optimistic promised date can pull the calculation forward even when the vendor is habitually late. A sales order missing from the included demand categories can make supply look freer than it is. A warehouse with stale transfer dates can produce a technically consistent answer that operations cannot deliver.</p>
<p>Acumatica announced general availability of 2026 R2 on 1 October 2026 and identified Available-to-Promise as a new Distribution capability. The official release announcement says the distribution enhancements are intended to support more reliable customer commitments; the practical control is still the tenant&#x27;s own configuration and data. See the <a href="https://www.acumatica.com/corporate-newsroom/press-releases/acumatica-2026-r2-release-with-embedded-ai/">Acumatica 2026 R2 release announcement</a> and <a href="https://www.acumatica.com/cloud-erp-software/acumatica-release-news/">2026 R2 release overview</a>.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="why-distributors-need-a-date-based-promise">Why distributors need a date-based promise</h2>
<p>Sales teams often receive a simple question: can we deliver the requested quantity by the customer&#x27;s date? Inventory systems commonly show several quantities, but none necessarily answers the date question alone.</p>
<p>On-hand quantity describes what the system records physically. Available quantity applies an availability calculation rule to on-hand inventory and selected additions and deductions. Available for shipping removes quantities that are already shipped, allocated, in unavailable locations, or tied to certain unreleased transactions. These numbers describe a current state. They do not, by themselves, show how future receipts and future demand unfold across a sequence of dates.</p>
<p>A date-based calculation matters when the answer changes over time. Consider an item with 20 units available for shipping today, customer demand for 15 units tomorrow, a purchase receipt for 50 units next Tuesday, and another demand document for 30 units on Wednesday. The business cannot safely tell a customer asking for 40 units that “50 are coming next week” without evaluating what consumes those units and when.</p>
<p>ATP gives order-entry users a documented timeline behind the result. In the line-level calculation dialog, Acumatica lists the supply and demand documents considered, their dates, reference numbers, positive or negative quantities, and the running Available-to-Promise quantity. That transparency makes the answer reviewable. A user can see whether the date depends on a specific purchase order, transfer, return, production supply, or competing demand document.</p>
<p>The business benefit does not come from displaying another date field. It comes from replacing informal promise logic with a shared rule. Customer service, sales, purchasing, inventory planning, and warehouse operations can discuss the same documents instead of relying on different spreadsheets or memory. The rule also exposes disagreements that need policy decisions: whether on-hold orders consume supply, whether safety stock is protected, which inbound documents count, and how far forward the system should look.</p>
<p>The <a href="https://biz-techservices.com/archives/10575">Biz-Tech Acumatica Distribution ERP guide</a> provides broader context for sales orders, availability, allocation, replenishment, purchasing, receiving, and warehouse fulfillment. ATP sits between these processes. It reads their recorded supply and demand to support a promise; it does not execute the downstream work.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="atp-compared-with-on-hand-available-and-available-for-shipping">ATP compared with on hand available and available for shipping</h2>
<p>The safest ATP rollout begins with a shared vocabulary. Users should not use <em>on hand</em>, <em>available</em>, <em>available for shipping</em>, and <em>available to promise</em> as if they were interchangeable.</p>
<p><strong>On hand</strong> is the recorded physical quantity. It is useful for inventory control, but a portion may already be allocated, shipped, stored in a location excluded from availability, expired, or otherwise unsuitable for a new order.</p>
<p><strong>Available</strong> is a configurable quantity. The <a href="https://beacon.acumatica.com/r/Form-Reference-Guide/Inventory-Forms/Inventory-Allocation-Details">Inventory Allocation Details reference</a> describes it as on hand plus total additions minus total deductions. The selected availability calculation rule determines which plan types are additions and deductions. Two item classes can therefore show different available behavior when their rules differ.</p>
<p><strong>Available for Shipping</strong> focuses on what can support shipping from the warehouse. Acumatica calculates it from on hand after deducting shipped quantities, quantities allocated for sales, production, and service orders, quantities in warehouse locations excluded from availability, unreleased issues, certain kit-assembly component demand, and certain kit-disassembly quantities. This value can be lower than on hand for valid operational reasons.</p>
<p><strong>Available to Promise</strong> produces an earliest coverage date based on future supply and demand, the quantity to promise, the selected warehouse, the ATP rule assigned to the item&#x27;s class, the order type&#x27;s horizon, and the safety-stock choice. It uses Available for Shipping as a visible starting context in the calculation dialog, but it answers a different question.</p>
<div class="table-wrap">
<table>
<thead>
<tr>
<th>Measure</th>
<th>Primary question</th>
<th>Time focus</th>
<th>Main limitation</th>
</tr>
</thead>
<tbody>
<tr>
<td>On hand</td>
<td>What quantity is recorded physically?</td>
<td>Current</td>
<td>Does not show commitments or future events</td>
</tr>
<tr>
<td>Available</td>
<td>What quantity remains under the assigned availability rule?</td>
<td>Current with configured plan effects</td>
<td>Depends on rule design and may not represent ship-ready stock</td>
</tr>
<tr>
<td>Available for Shipping</td>
<td>What quantity can support shipment after operational deductions?</td>
<td>Current</td>
<td>Does not determine when future supply will cover a larger request</td>
</tr>
<tr>
<td>Available to Promise</td>
<td>What is the earliest date the full quantity can be covered?</td>
<td>Time-phased future horizon</td>
<td>Depends on document dates, rule scope, warehouse, horizon, and safety-stock policy</td>
</tr>
</tbody>
</table>
</div>
<p>This distinction should appear in training, order-entry procedures, and test scripts. If a salesperson expects ATP to reserve inventory, the process will fail even if the calculated date is correct. If a planner expects the current available quantity to account for future receipts, the planner may reject a valid ATP result because the measures answer different questions.</p>
<p>The same distinction matters for integrations. A commerce connector may publish On Hand, Available, or Available for Shipment, while ATP is evaluated during sales-order work. Biz-Tech&#x27;s <a href="https://biz-techservices.com/archives/10633">DSCO inventory synchronization guide</a> shows why the exported quantity basis and selected warehouses must match the fulfillment policy. Publishing a current quantity to a channel and calculating a future promise date are related but separate controls.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="atp-compared-with-capable-to-promise-and-inventory-planning">ATP compared with capable to promise and inventory planning</h2>
<p>Available-to-Promise should also be separated from Capable-to-Promise and from Distribution Requirements Planning.</p>
<p>Acumatica&#x27;s manufacturing Capable-to-Promise, or CTP, evaluates when manufactured items can be completed by considering production capacity and manufacturing constraints. The official <a href="https://beacon.acumatica.com/r/Manufacturing-Edition-Guide/Processing-Capable-to-Promise/Capable-to-Promise-General-Information">Capable-to-Promise general information</a> describes finite scheduling, resource availability, raw-material lead times, subassemblies, and planning or production orders. CTP is a manufacturing scheduling workflow. The new Distribution ATP feature is a supply-and-demand coverage calculation for sales-order lines and orders.</p>
<p>The two terms can sound similar because both support customer commitments. Their models are not equivalent. ATP does not automatically prove that a production work center has capacity, that engineering is complete, or that a configurable item can be produced on the candidate date. The Sales Orders reference explicitly excludes configurable lines from the ATP calculation. A manufacturer should continue to use the documented CTP workflow where production capacity is central.</p>
<p>Distribution Requirements Planning, or DRP, has another purpose. DRP creates time-phased planning recommendations and exceptions so the organization can procure or transfer inventory when it is needed. ATP reads configured supply and demand to answer a commitment question. DRP helps decide what supply actions should be taken. One can reveal that a quantity is not coverable within the ATP horizon; the other may guide the planner toward a purchase or transfer response.</p>
<p>This boundary prevents overclaiming. ATP can make existing supply-and-demand information more useful at order entry. It does not repair inaccurate lead times, create vendor capacity, reserve transport, authorize procurement, or schedule production. Those responsibilities remain in the appropriate purchasing, transfer, warehouse, planning, and manufacturing processes.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="the-four-configuration-layers-behind-an-atp-date">The four configuration layers behind an ATP date</h2>
<p>An ATP date becomes available only when four layers align.</p>
<ol>
<li><strong>Feature layer.</strong> The Available-to-Promise feature must be enabled on Enable/Disable Features (CS100000).</li>
<li><strong>Rule layer.</strong> An availability calculation rule with the Available-to-Promise rule type must define the supply and demand categories to consider.</li>
<li><strong>Item layer.</strong> The ATP calculation rule must be assigned to the relevant item class on Item Classes (IN201000), so qualifying stock items inherit the rule.</li>
<li><strong>Order layer.</strong> The sales-order type must use Cumulative with Look-Ahead in the ATP Calculation field, with an ATP horizon and an explicit safety-stock decision.</li>
</ol>
<p>The sales-order line then has to meet the documented eligibility conditions. It must contain a stock item, use the Issue operation, remain incomplete, not be configurable, and not have a related unconfirmed shipment. The order must be in a status that permits the ATP command.</p>
<p>This layered design is valuable because it prevents one global rule from being forced onto every item and transaction. A distributor can define different ATP rules for item families that have different supply reliability or demand behavior. It can enable ATP for order types used in customer commitments while leaving other types on the default Do Not Calculate setting.</p>
<p>The flexibility also creates a diagnostic requirement. When Calculate ATP is absent or an ATP Date remains blank, the cause may be at any layer. Troubleshooting should begin with the configuration chain rather than with a code assumption.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="enable-the-available-to-promise-feature-deliberately">Enable the Available-to-Promise feature deliberately</h2>
<p>Enable the feature first in a nonproduction environment. The feature makes ATP controls available on the related forms, but the implementation work begins after the checkbox is enabled.</p>
<p>Before activation, define the business owner and the desired scope. The owner should be able to answer these questions:</p>
<ul>
<li>Which sales-order types create customer-facing commitments?</li>
<li>Which stock-item classes should receive an ATP rule?</li>
<li>Which supply documents are reliable enough to count?</li>
<li>Which demand statuses should reduce promise capacity?</li>
<li>Should safety stock be protected from promises?</li>
<li>How far into the future are inbound dates considered credible?</li>
<li>Who can accept or override the resulting date?</li>
</ul>
<p>Enabling a feature without these decisions can produce inconsistent use. One item class may be configured quickly while another is missed. A test order may show the ATP command, leading users to assume the feature is complete, even though only a subset of items has rules.</p>
<p>Record the configuration baseline before changing it. Export or document the relevant item classes, availability rules, order types, warehouses, locations, safety-stock values, lead times, and representative open documents. This evidence supports testing and rollback. It also helps distinguish a new ATP issue from a pre-existing availability or data-quality problem.</p>
<p>Treat activation as a governed configuration change. Use a sandbox or copy of production data, schedule representative tests, document expected results, and obtain functional approval before deploying. The feature&#x27;s purpose is operational, so a technically successful enablement is not enough.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="create-atp-calculation-rules-that-match-fulfillment-policy">Create ATP calculation rules that match fulfillment policy</h2>
<p>Use Availability Calculation Rules (IN201500) to create a rule whose Rule Type is <strong>Available-to-Promise</strong>. The <a href="https://beacon.acumatica.com/r/Form-Reference-Guide/Inventory-Forms/Availability-Calculation-Rules">2026 R2 Availability Calculation Rules reference</a> distinguishes this rule type from the standard Available type. The ATP rule is used to calculate dates for stock items in sales-order lines and for the order, based on future supply and demand.</p>
<p>The rule&#x27;s checkboxes decide which recorded events affect the timeline. Demand options include issues, prepared sales, open sales orders, shipped quantities, allocations, back orders, service-order demand, production demand, kit demand, transfer demand, and project-material demand where the related features apply. Supply options can include purchase orders, prepared purchases, purchase receipts, transfers, sales returns, kit assembly supply, production supply, and material supply.</p>
<p>Do not select every checkbox because it exists. Each inclusion needs a business interpretation. A prepared purchase order may represent credible supply in one organization and an unapproved draft in another. An on-hold sales order may represent real customer demand or an unqualified quote-like request. The rule should reflect the meaning of statuses in the organization&#x27;s process.</p>
<p>Use a decision worksheet with four columns:</p>
<div class="table-wrap">
<table>
<thead>
<tr>
<th>Plan category</th>
<th>Include or deduct</th>
<th>Business interpretation</th>
<th>Test evidence</th>
</tr>
</thead>
<tbody>
<tr>
<td>Open purchase orders</td>
<td>Include when selected</td>
<td>Approved expected supply with a maintained promised date</td>
<td>PO and receipt scenario</td>
</tr>
<tr>
<td>Purchase orders on hold or pending approval</td>
<td>Include only if policy treats them as credible</td>
<td>Proposed supply that may still change</td>
<td>Approval-status scenario</td>
</tr>
<tr>
<td>Open sales orders</td>
<td>Deduct when they represent active demand</td>
<td>Competing customer demand</td>
<td>Two-order priority scenario</td>
</tr>
<tr>
<td>Prepared or on-hold sales orders</td>
<td>Deduct only when their status consumes promise capacity</td>
<td>Demand not yet released to ordinary processing</td>
<td>Hold and release scenario</td>
</tr>
<tr>
<td>Back orders</td>
<td>Deduct when they remain valid demand</td>
<td>Unfulfilled demand that competes for future supply</td>
<td>Receipt-to-backorder scenario</td>
</tr>
<tr>
<td>Transfer supply and demand</td>
<td>Match the interwarehouse policy</td>
<td>Expected movement into or out of the selected warehouse</td>
<td>Paired transfer scenario</td>
</tr>
<tr>
<td>Sales returns</td>
<td>Include only with a realistic return expectation</td>
<td>Potential inbound stock with condition risk</td>
<td>Return and inspection scenario</td>
</tr>
</tbody>
</table>
</div>
<p>Some items need different policies. Fast-moving stocked goods may rely on purchase orders and transfers. Special-order items may be tied to purchase-to-order documents. Repair parts may receive unpredictable returns. Segmenting item classes can be safer than constructing one permissive rule for the entire catalog.</p>
<p>Document the rationale beside the technical setup. When a result is questioned months later, the team needs to know why a plan type was selected, not merely that the checkbox is selected.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="assign-atp-rules-through-item-classes">Assign ATP rules through item classes</h2>
<p>The ATP rule is assigned in the ATP Calculation Rule field on Item Classes (IN201000). The <a href="https://beacon.acumatica.com/r/Form-Reference-Guide/Accounts-Payable-Forms/Item-Classes">Item Classes reference</a> states that only an availability calculation rule with the Available-to-Promise type can be selected.</p>
<p>This assignment is a major control point. An eligible sales-order line must contain a stock item whose item class has an ATP rule. If the rule is missing, the line will not qualify even when the feature and order type are configured.</p>
<p>Review item-class design before mass assignment. Item classes often group records for financial, replenishment, tax, or reporting reasons, not solely for promise behavior. One class may contain items with very different lead-time reliability. If a single rule would be misleading, consider whether item-class restructuring is appropriate or whether the ATP rollout should begin with a narrower set.</p>
<p>Do not assume that new items will always inherit the intended rule without review. Add the ATP rule to the new-item governance checklist. When a stock item is created or moved between classes, validate its promise behavior with the same care applied to availability, replenishment, and accounting defaults.</p>
<p>For existing catalogs, produce an exception report that shows active stock items with their item class, assigned ATP rule, default warehouse, and relevant planning attributes. Flag items in customer-facing order flows that have no ATP rule. Also flag discontinued, obsolete, non-stock, configurable, or special-process items so the project does not spend time testing lines that are outside the intended scope.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="configure-order-types-for-cumulative-look-ahead">Configure order types for cumulative look-ahead</h2>
<p>On Order Types (SO201000), the Available-to-Promise Settings section appears when the feature is enabled and the order type uses an eligible automation behavior. The <a href="https://beacon.acumatica.com/r/Form-Reference-Guide/Sales-Orders-Forms/Order-Types">Order Types reference</a> lists Invoice, Sales Order, RMA Order, and Mixed Order automation behaviors for this section.</p>
<p>ATP Calculation has two choices:</p>
<ul>
<li><strong>Do Not Calculate</strong>, the default, leaves ATP dates inactive for orders of that type.</li>
<li><strong>Cumulative with Look-Ahead</strong> processes supply and demand in chronological order within the horizon and can consider supply expected after the requested date.</li>
</ul>
<p>Select Cumulative with Look-Ahead only for order types where a promise calculation belongs in the workflow. Review custom order types separately. A copied order type may have different operations, automation behavior, shipping expectations, or integration dependencies even when its code resembles the standard SO type.</p>
<p>An order type is also a contract with integrations. E-commerce, EDI, customer portals, PDF-order automation, and custom connectors frequently choose the destination order type during import. Changing ATP settings on that type can alter what users see on imported orders and what downstream processes might read. The underlying order creation does not automatically calculate or publish an ATP date unless the workflow invokes the appropriate action, but the configuration becomes part of the transaction&#x27;s behavior.</p>
<p>Capture the old and new settings for every affected type. Confirm the automation behavior, default operation, shipping requirement, shipping rule, back-order behavior, quick-process settings, and integration mappings. ATP should be added to the established process, not treated as an isolated checkbox.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="choose-an-atp-horizon-that-covers-relevant-supply">Choose an ATP horizon that covers relevant supply</h2>
<p>ATP Horizon (Days) defines the number of calendar days from the current business date within which Acumatica searches for supply and demand transactions. The system excludes transactions dated beyond the horizon. The Order Types reference states that the default is 90 days when Cumulative with Look-Ahead is selected.</p>
<p>The default is a starting point, not a universal answer. A horizon should be long enough to include supply that the company genuinely uses for promises and short enough to avoid false precision.</p>
<p>A distributor that replenishes domestic stock weekly may not need to consider documents six months out. An importer with ocean freight and seasonal buys may need a longer period. A service-parts business may receive supply sporadically and prefer a conservative horizon because distant purchase dates are less reliable.</p>
<p>Evaluate the horizon with transaction evidence:</p>
<ol>
<li>Measure actual supplier lead-time distribution by item family or vendor.</li>
<li>Identify how far ahead customers normally request delivery.</li>
<li>Review the date quality of purchase orders, transfers, and returns at different ages.</li>
<li>Test whether a longer horizon merely finds uncertain supply instead of improving commitment quality.</li>
<li>Define what users should say when ATP is blank because the quantity cannot be covered within the horizon.</li>
</ol>
<p>A blank ATP Date does not necessarily mean the item can never be supplied. The Sales Orders reference says the field is empty when the quantity cannot be covered within the ATP horizon. The distinction should be explicit in training. The correct next step may be to review purchasing, alternate warehouses, substitutions, transfers, or a manual customer negotiation rather than extending the horizon to make a date appear.</p>
<p>Do not change the horizon casually after go-live. A longer horizon can make more orders appear coverable, while a shorter horizon can remove dates that users previously saw. Treat a horizon change as a policy change and rerun the approved scenarios.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="decide-whether-atp-should-protect-safety-stock">Decide whether ATP should protect safety stock</h2>
<p>Order Types includes <strong>Include Safety Stock in ATP Calculation</strong>. When selected, Acumatica subtracts the safety-stock quantity from the available quantity before calculating ATP so the calculation does not promise inventory below that level. The setting is cleared by default.</p>
<p>The choice is operational. Safety stock may exist to protect service levels during demand variability, supplier delay, or other uncertainty. If ATP ignores it, the promise calculation can consume the buffer in its mathematical coverage. If ATP protects it, an order may receive a later date even though physical units appear to be present.</p>
<p>Neither choice is inherently correct for every order type. Some companies treat safety stock as a firm floor. Others permit selected customer orders to use it with approval. A single checkbox cannot model an informal exception policy by itself.</p>
<p>Use these questions to decide:</p>
<ul>
<li>Is safety stock maintained accurately by item and warehouse?</li>
<li>Does the current process already protect it during allocation and shipment?</li>
<li>Can sales override the buffer, and if so, who approves the exception?</li>
<li>Are strategic customers handled through a separate order type or workflow?</li>
<li>Will users understand why ATP is later than the current physical quantity suggests?</li>
<li>How often is the buffer recalculated, and what evidence supports the quantity?</li>
</ul>
<p>Test both states with the same documents. For example, begin with 25 units available for shipping, safety stock of 10, and a request for 20. With safety stock excluded from the promise calculation, current supply may cover the request. With safety stock protected, only 15 units are promiseable at that point, so ATP should move to a later supply event or remain blank within the horizon.</p>
<p>The test demonstrates why the policy belongs in training and customer-service scripts. The system is not “wrong” when it gives different dates under the two settings. It is applying two different promise policies.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="understand-the-dates-used-on-a-sales-order">Understand the dates used on a sales order</h2>
<p>ATP depends on dates, but sales orders contain several date concepts. Users should know which one they are viewing and who owns its accuracy.</p>
<p><strong>Requested On</strong> is when the customer wants to receive the item. The line can have its own requested date, particularly when the order-level shipping rule allows back orders. This is a customer requirement, not proof that supply exists.</p>
<p><strong>Ship On</strong> is when the item should be shipped. Acumatica normally derives it from Requested On minus the lead days. If that result is earlier than the current business date, the current date is used. The line&#x27;s Ship On date can be editable when Back Order Allowed applies.</p>
<p><strong>ATP Date on the line</strong> is the earliest date on which the full open quantity can be covered under the configured calculation. The calculation dialog also shows Lead Time (Days). When the order type requires shipment, Acumatica adds lead time to the date on which the quantity can be covered to determine the ATP date.</p>
<p><strong>ATP Date on the Shipping tab</strong> is the date on which the sales order can be shipped in full after order-level calculation. It is not necessarily the same as the earliest line date because the order cannot ship in full until its limiting line is ready.</p>
<p><strong>Supply and demand dates</strong> come from the documents included by the ATP rule. A purchase order line&#x27;s expected date, a transfer&#x27;s date, a sales order&#x27;s demand date, or a return&#x27;s date can move the running balance. These dates must be maintained by their process owners.</p>
<p>Use a date dictionary in the rollout documentation. List the source field, business meaning, owner, update trigger, and whether it influences ATP. This small artifact prevents a recurring misunderstanding: users may read an ATP result as a requested delivery date, or may update Requested On without realizing that the calculation relies on different supply dates.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="how-the-cumulative-look-ahead-calculation-works">How the cumulative look-ahead calculation works</h2>
<p>The line-level Available-to-Promise Calculation dialog gives the clearest explanation of the method. Acumatica shows the item&#x27;s warehouse context, quantity to promise, on-hand quantity, available-for-shipping quantity, safety stock, lead time, requested date, and calculated ATP date. Beneath the summary, it lists the supply and demand documents used in the calculation.</p>
<p>Each timeline row has:</p>
<ul>
<li>the date on which the document is expected to increase or decrease availability;</li>
<li>the document type;</li>
<li>a reference number linked to the source document;</li>
<li>a positive quantity for supply or a negative quantity for demand; and</li>
<li>the running Available-to-Promise quantity as of that row.</li>
</ul>
<p>The running balance begins with the available quantity at the start of the ATP horizon. Acumatica then adds each document quantity in chronological order. The quantity to promise is evaluated against this progression. The candidate date is the earliest point at which the applicable balance can cover the full quantity, subject to safety stock and other settings.</p>
<p>This method is called cumulative because earlier supply and demand affect later availability. It uses look-ahead because supply after the requested date can still produce a future ATP result. That does not mean the customer request is met. It means the system has found the earliest later point, within the horizon, at which the full quantity can be covered under the rule.</p>
<p>The calculation is deterministic with respect to its inputs, but the inputs change. A newly entered order, rescheduled purchase, canceled transfer, partial receipt, return, allocation, or warehouse change can alter the result. Users should recalculate before communicating a date when material documents have changed.</p>
<p>Do not create an external simplified formula and assume it will reproduce every tenant result. The selected plan types, statuses, features, warehouse rules, safety stock, and line eligibility all matter. Use the calculation dialog as the primary reconciliation surface because it shows the actual documents Acumatica used.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="how-line-level-and-order-level-atp-differ">How line-level and order-level ATP differ</h2>
<p>The Details tab provides a Calculate ATP action for one selected line. The result can be reviewed in the calculation dialog before it is saved to the line. Users can also change the warehouse or quantity to promise in the dialog; when saved, those changes update the line along with the ATP date.</p>
<p>The More menu provides Calculate ATP Date for the entire order. Acumatica evaluates all eligible lines, inserts their line dates, and calculates the date on which the order can ship in full. The order-level ATP Date appears on the Shipping tab.</p>
<p>The distinction matters when an order has several items:</p>
<ul>
<li>Line A may be coverable today.</li>
<li>Line B may depend on a purchase receipt next Friday.</li>
<li>Line C may be coverable in another warehouse on Wednesday.</li>
<li>The complete order date must reflect the set of eligible lines and the chosen fulfillment behavior.</li>
</ul>
<p>If a customer accepts split shipments, line dates may guide a staged commitment. If the customer requires Ship Complete, the latest constraining line controls the meaningful complete-order promise. The order-level calculation provides a shared reference, but the shipping rule and customer agreement still determine how operations should act.</p>
<p>Line-level review is also useful for diagnostics. A user can change the warehouse or test a smaller quantity without editing several order fields blindly. The dialog should not become an undocumented override mechanism. If warehouse or quantity changes affect the commercial agreement, require the same approval and audit controls used for ordinary order changes.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="worked-atp-example-with-supply-demand-and-safety-stock">Worked ATP example with supply demand and safety stock</h2>
<p>The following example illustrates the logic without claiming to reproduce every tenant&#x27;s plan configuration. It assumes one stock item, one warehouse, a 30-day horizon, an ATP rule that includes the listed documents, and zero delivery lead time unless stated otherwise.</p>
<h3 id="scenario-setup">Scenario setup</h3>
<p>The customer wants 40 units of item A100. The selected warehouse is MAIN.</p>
<ul>
<li>Available for Shipping at the start of the horizon: 20 units</li>
<li>Safety stock: 5 units</li>
<li>23 October: existing open sales-order demand of 8 units</li>
<li>24 October: purchase-order supply of 25 units</li>
<li>25 October: transfer-out demand of 10 units</li>
<li>28 October: purchase-order supply of 30 units</li>
<li>30 October: existing back-order demand of 12 units</li>
</ul>
<p>The new line itself is the quantity being tested, so the example does not subtract it as a separate competing demand row.</p>
<h3 id="timeline-without-safety-stock-protection">Timeline without safety-stock protection</h3>
<div class="table-wrap">
<table>
<thead>
<tr>
<th>Date</th>
<th>Event</th>
<th>Change</th>
<th>Running ATP quantity</th>
</tr>
</thead>
<tbody>
<tr>
<td>Start</td>
<td>Available for Shipping</td>
<td>+20</td>
<td>20</td>
</tr>
<tr>
<td>23 Oct</td>
<td>Existing sales demand</td>
<td>-8</td>
<td>12</td>
</tr>
<tr>
<td>24 Oct</td>
<td>Purchase supply</td>
<td>+25</td>
<td>37</td>
</tr>
<tr>
<td>25 Oct</td>
<td>Transfer-out demand</td>
<td>-10</td>
<td>27</td>
</tr>
<tr>
<td>28 Oct</td>
<td>Purchase supply</td>
<td>+30</td>
<td>57</td>
</tr>
<tr>
<td>30 Oct</td>
<td>Existing back-order demand</td>
<td>-12</td>
<td>45</td>
</tr>
</tbody>
</table>
</div>
<p>The running quantity first reaches 40 on 28 October. It remains above 40 after the 30 October demand, so 28 October is the candidate coverage date in this simplified timeline.</p>
<h3 id="timeline-with-safety-stock-protection">Timeline with safety-stock protection</h3>
<p>If the order type protects 5 units of safety stock, begin from an effective promiseable quantity of 15 rather than 20.</p>
<div class="table-wrap">
<table>
<thead>
<tr>
<th>Date</th>
<th>Event</th>
<th>Change</th>
<th>Running ATP quantity after safety stock</th>
</tr>
</thead>
<tbody>
<tr>
<td>Start</td>
<td>Available for Shipping less safety stock</td>
<td>+15</td>
<td>15</td>
</tr>
<tr>
<td>23 Oct</td>
<td>Existing sales demand</td>
<td>-8</td>
<td>7</td>
</tr>
<tr>
<td>24 Oct</td>
<td>Purchase supply</td>
<td>+25</td>
<td>32</td>
</tr>
<tr>
<td>25 Oct</td>
<td>Transfer-out demand</td>
<td>-10</td>
<td>22</td>
</tr>
<tr>
<td>28 Oct</td>
<td>Purchase supply</td>
<td>+30</td>
<td>52</td>
</tr>
<tr>
<td>30 Oct</td>
<td>Existing back-order demand</td>
<td>-12</td>
<td>40</td>
</tr>
</tbody>
</table>
</div>
<p>The balance reaches 40 on 28 October, but later included demand reduces it to exactly 40. Depending on how the product evaluates coverage against later dated commitments within the configured method, the calculation dialog is the authoritative result. The example&#x27;s purpose is to show that safety stock changes the running balance and can change the date or eliminate coverage near the horizon boundary.</p>
<h3 id="add-customer-delivery-lead-time">Add customer delivery lead time</h3>
<p>Assume the stock is covered on 28 October and the customer location has two lead days. When the order type requires shipment, the documented calculation adds the lead time to determine the ATP date shown to the user. The operational interpretation should distinguish the warehouse coverage date from the customer-facing date.</p>
<h3 id="change-the-warehouse">Change the warehouse</h3>
<p>Suppose warehouse EAST has 45 available-for-shipping units and no earlier included demand. The line-level dialog lets the user change the warehouse and recalculate. EAST may produce an earlier date, but that result is not a command to move the order automatically. The user must consider fulfillment cost, warehouse policy, branch access, shipping zone, customer expectation, and whether the organization uses order orchestration.</p>
<h3 id="what-to-validate-in-the-real-system">What to validate in the real system</h3>
<p>Build the scenario with actual documents and record:</p>
<ol>
<li>Every document that appears in the calculation dialog.</li>
<li>Every expected document that does not appear.</li>
<li>The sign and date of each quantity.</li>
<li>The starting available-for-shipping value.</li>
<li>The safety-stock behavior.</li>
<li>The coverage date before lead time.</li>
<li>The saved line ATP date and order ATP date.</li>
<li>The result after changing one input at a time.</li>
</ol>
<p>This approach tests both configuration and user interpretation. A screenshot of a final date without the document timeline is not enough evidence.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="how-warehouse-selection-changes-the-promise">How warehouse selection changes the promise</h2>
<p>ATP is evaluated for the warehouse selected on the line. In the calculation dialog, changing the warehouse recalculates the date. This is useful when the company can fulfill from multiple sites, but it makes warehouse data part of the promise.</p>
<p>Warehouses may differ in:</p>
<ul>
<li>current available-for-shipping quantity;</li>
<li>inbound purchase schedules;</li>
<li>transfer supply and demand;</li>
<li>safety-stock values;</li>
<li>excluded locations;</li>
<li>customer delivery lead time;</li>
<li>shipping zones and carrier services;</li>
<li>item-specific warehouse settings; and</li>
<li>operational cutoffs or capacity not represented in ATP.</li>
</ul>
<p>The earliest mathematical date is not always the best fulfillment choice. Shipping from a distant site may increase freight cost, split an order, complicate tax or branch handling, or consume supply reserved operationally for another region. Define when users may change the warehouse and whether approval is required.</p>
<p>If Order Orchestration is enabled, do not assume ATP and orchestration make the same decision. Order orchestration chooses fulfillment according to configured strategies and plans; ATP calculates coverage for the selected warehouse and quantity. Test the combined workflow using the actual order type, orchestration strategy, shipping zone, and warehouse priorities.</p>
<p>Unavailable warehouse locations also matter to the starting quantity. Inventory Allocation Details states that Available for Shipping excludes quantities in locations where Include in Qty. Available is cleared. Validate receiving, quarantine, inspection, damaged-goods, and staging locations so physical stock that cannot ship is not mistaken for promiseable stock.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="which-sales-order-lines-are-eligible-for-atp">Which sales-order lines are eligible for ATP</h2>
<p>According to the Sales Orders reference, a line qualifies for ATP calculation only when all of these conditions are met:</p>
<ul>
<li>It contains a stock item.</li>
<li>The item&#x27;s item class has an ATP calculation rule.</li>
<li>The line is not completed.</li>
<li>The operation is Issue.</li>
<li>The line is not configurable.</li>
<li>The line does not have a related unconfirmed shipment.</li>
</ul>
<p>The conditions explain several common cases before troubleshooting begins.</p>
<p>A non-stock service or charge line does not represent warehouse stock and therefore does not receive this ATP calculation. A receipt operation adds inventory rather than issuing it to the customer. A completed line no longer needs a new coverage date. A configurable item may require configuration and manufacturing logic outside the distribution ATP model. A line already tied to an unconfirmed shipment has entered a different fulfillment state.</p>
<p>Create a negative test for each exclusion. The goal is not to force every line to display a date. The goal is to confirm that eligible lines calculate and ineligible lines remain outside the process for the documented reason.</p>
<p>Mixed orders, returns, replacements, kits, drop shipments, and custom line types deserve extra attention because one document can contain different operations and fulfillment paths. Review the line, not only the order header.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="how-order-status-and-unconfirmed-shipments-affect-the-action">How order status and unconfirmed shipments affect the action</h2>
<p>The ATP commands are available only for sales orders in documented working statuses. The 2026 R2 Sales Orders reference lists On Hold, Awaiting Payment, Credit Hold, Open, and Back Order for the calculation actions.</p>
<p>These statuses cover orders that may still need a commitment decision. A canceled or completed order is outside that decision. A line with a related unconfirmed shipment is excluded because fulfillment processing has already created a shipment document whose quantities and status need to be resolved.</p>
<p>Users should calculate at defined checkpoints:</p>
<ol>
<li>During order review, after item, quantity, warehouse, requested date, and shipping information are correct.</li>
<li>After credit or payment status changes when the order remained open long enough for supply and demand to move.</li>
<li>After a material purchasing, transfer, or back-order update.</li>
<li>Before sending a promise externally when the prior calculation is no longer recent.</li>
<li>After changing the warehouse or open quantity.</li>
</ol>
<p>Avoid a rule that says “calculate once at order creation.” ATP is a snapshot of a changing document timeline. The saved date can become stale after other transactions change. The process should define when recalculation is mandatory and how users recognize an old result.</p>
<p>An unconfirmed shipment requires operational review rather than an ATP workaround. Confirm, correct, or delete the shipment according to normal controls. Do not detach or alter shipment records merely to make the ATP button available.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="how-shipping-rules-and-back-orders-interact-with-atp">How shipping rules and back orders interact with ATP</h2>
<p>Shipping rules determine how an order may be fulfilled. Acumatica documents three familiar outcomes on sales orders: Ship Complete, Back Order Allowed, and Cancel Remainder. ATP does not replace these rules.</p>
<p>With <strong>Ship Complete</strong>, the practical commitment centers on the date when the order can ship in full. The order-level ATP date is especially relevant because the latest constraining eligible line controls the complete shipment.</p>
<p>With <strong>Back Order Allowed</strong>, lines can have different requested and ship dates. Line-level ATP can support staged commitments, but the business must explain each shipment and keep the remaining demand visible. Back-order demand should be included or excluded from the ATP rule according to a deliberate policy.</p>
<p>With <strong>Cancel Remainder</strong>, the first shipment can end the remaining obligation according to the order process. An ATP date for the full original open quantity may be less relevant if the customer accepts partial fulfillment and cancellation of the balance. The sales policy should decide whether ATP is used before that decision and how the communicated commitment is recorded.</p>
<p>Test partial availability explicitly. Enter an order larger than current stock, calculate ATP, create a partial shipment where allowed, confirm or leave the shipment unconfirmed, and recalculate the remaining order after the correct operational step. Observe line eligibility, open quantity, back-order status, and the updated timeline.</p>
<p>Back orders can consume future supply when the ATP rule deducts them. This is usually essential for fairness: a new order should not be promised against a receipt already needed for older demand. If back orders are excluded, document the reason and test the priority process that prevents overpromising.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="allocation-is-different-from-an-atp-calculation">Allocation is different from an ATP calculation</h2>
<p>Allocation reserves or associates inventory quantities with demand according to the order and inventory process. ATP estimates the earliest date on which the full open quantity can be covered under a rule. A calculated ATP date does not, by itself, hard-allocate the stock or prevent another transaction from consuming it.</p>
<p>This distinction is critical in high-volume order entry. Two users can calculate similar dates close together while supply and demand continue to change. If the business requires reservation, the allocation workflow must occur and be monitored separately.</p>
<p>Inventory Allocation Details is the main diagnostic surface for current availability and item plans. It shows on-hand, available, available-for-shipping, additions, deductions, and the source documents behind them. The ATP dialog provides the time-phased subset used for the promise calculation. Use both when a user reports that the promise date conflicts with the apparent inventory position.</p>
<p>Training should use precise verbs:</p>
<ul>
<li>“Calculate ATP” means determine an earliest coverage date.</li>
<li>“Save ATP” means write the reviewed result to the line, and possibly save changed warehouse or quantity values from the dialog.</li>
<li>“Allocate” means reserve or designate inventory through the applicable sales-order process.</li>
<li>“Create shipment” moves the order into warehouse fulfillment.</li>
<li>“Confirm shipment” records the completed shipment step according to the configured workflow.</li>
</ul>
<p>Biz-Tech&#x27;s <a href="https://biz-techservices.com/archives/10555">guide to PDF order automation and inventory allocation</a> explains a similar boundary: automation can create clean sales-order demand, while Acumatica still controls allocation, back orders, transfers, and shipment behavior. ATP adds a date calculation to that controlled process; it does not erase the boundary.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="purchase-orders-transfers-and-replenishment-in-the-atp-timeline">Purchase orders transfers and replenishment in the ATP timeline</h2>
<p>Future supply can make ATP valuable, but only when the underlying documents are credible.</p>
<p><strong>Purchase orders.</strong> If the ATP rule includes open purchase orders, their quantities and expected dates can increase the running balance. Review approval status, vendor confirmation, partial receipts, overdue lines, and date-maintenance discipline. An open purchase order is not the same as a confirmed delivery.</p>
<p><strong>Purchase receipts.</strong> Unreleased receipts may represent goods that have arrived but are not yet available under the ordinary inventory process. Test whether the selected plan category belongs in the ATP rule and whether inspection or quality holds create additional constraints.</p>
<p><strong>Transfers.</strong> Transfer supply and demand should be paired by warehouse and date. A transfer into MAIN is potential supply for MAIN and demand against the source warehouse. Late transfer processing can make one warehouse appear short while another appears to have supply in motion.</p>
<p><strong>Replenishment.</strong> A recommendation or planning exception is not necessarily an executable supply document. ATP uses the plan types included in the rule. Confirm which planning outputs become purchase orders, transfers, or other documents before counting them.</p>
<p><strong>Purchase-to-order and drop shipment.</strong> Sales lines linked to purchasing follow specific fulfillment relationships. Test linked quantities, partial documents, vendor dates, and receipt or direct-ship behavior. Do not assume the general warehouse ATP date is the appropriate customer commitment for a drop shipment without validating the documented flow.</p>
<p>Build an exception report for inbound supply used by ATP. Useful conditions include promised dates in the past, lines with no promised date, partially received orders, transfers not released, purchase orders on hold, and vendors whose actual receipts frequently miss recorded dates. ATP quality depends on the owners correcting those records.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="special-cases-that-need-separate-testing">Special cases that need separate testing</h2>
<p>Some inventory and order patterns cannot be covered safely by one ordinary stocked-item scenario.</p>
<h3 id="kits">Kits</h3>
<p>Stock kits and non-stock kits can depend on component availability, kit assembly, disassembly, or customized processing. The ATP line may represent the kit item while operational feasibility depends on components. Test the actual kit configuration and the plan types included in the ATP rule. The <a href="https://biz-techservices.com/archives/10532">Biz-Tech kit component inventory guide</a> explains why On Hand, Available, Available for Shipping, component demand, purchase supply, and assembly documents must be distinguished.</p>
<h3 id="lot-and-serial-tracking">Lot and serial tracking</h3>
<p>A total quantity can appear sufficient while the usable lots do not meet expiration, assignment, customer, project, or quality requirements. Inventory Allocation Details can exclude expired quantities and locations not included in availability, but the business should test its lot and serial workflow through allocation and shipment.</p>
<h3 id="configurable-items">Configurable items</h3>
<p>The documented sales-order ATP calculation excludes configurable lines. Use the applicable configuration and manufacturing process. Do not present a missing ATP date as a defect when the line is outside the feature&#x27;s eligibility.</p>
<h3 id="project-specific-inventory">Project-specific inventory</h3>
<p>Project inventory can restrict which quantity belongs to a customer or project. Test project and task dimensions, warehouse locations, allocations, and item plans. A company-wide quantity may not be available to the specific order.</p>
<h3 id="returns">Returns</h3>
<p>An expected return is uncertain until the goods arrive and their condition is known. If the ATP rule includes sales returns, define when a return can be counted and whether inspection or disposition delays the item becoming ship-ready.</p>
<h3 id="expired-or-quarantined-stock">Expired or quarantined stock</h3>
<p>The warehouse can physically contain units that should not be promised. Confirm location availability settings, lot expiration behavior, quality controls, and the starting Available for Shipping quantity.</p>
<h3 id="units-of-measure">Units of measure</h3>
<p>ATP evaluates quantities in a system that may use different sales, purchase, and base units. Test conversion factors, rounding, divisible-unit settings, pack sizes, and vendor quantities. A conversion error can move the date even when document counts look reasonable.</p>
<h3 id="customizations-and-integrations">Customizations and integrations</h3>
<p>Custom code may set warehouse, requested date, order type, operation, status, plan type, or quantity. Review customizations that extend SO301000, IN201500, IN201000, purchase processing, transfer processing, or integrations. Retest after every upgrade or customization change.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="atp-behavior-for-imported-and-integrated-sales-orders">ATP behavior for imported and integrated sales orders</h2>
<p>Imported orders use the same Acumatica order configuration after they are created. The source system does not bypass the need for a correct Acumatica item, warehouse, order type, quantity, unit of measure, requested date, operation, and status.</p>
<p>This point matters because integrations often apply defaults:</p>
<ul>
<li>A connector may choose one order type for all incoming orders.</li>
<li>A store configuration may assign a default warehouse.</li>
<li>A cross-reference may translate an external SKU or warehouse into Acumatica values.</li>
<li>An import scenario may place orders on hold.</li>
<li>EDI or commerce data may omit a requested delivery date or use a different date definition.</li>
<li>A customization may create allocations, purchase links, or shipments soon after import.</li>
</ul>
<p>Each default can affect ATP eligibility or the resulting timeline. A wrong warehouse can produce a valid date for the wrong supply pool. A wrong item can inherit a different ATP rule. A direct-to-invoice flow may not follow the sales-order process expected by customer service. An automatically created unconfirmed shipment can make the line ineligible for calculation.</p>
<p>Review the integration mapping as part of the ATP design. The <a href="https://biz-techservices.com/archives/10248">Biz-Tech WooCommerce data-flow guide</a> shows how a connector can set the destination document type, order type, and warehouse. The <a href="https://biz-techservices.com/archives/10698">Salesforce inventory-allocation guide</a> reinforces that imported demand affects inventory through the Acumatica sales order that is created, while allocation rules remain in Acumatica.</p>
<p>Create end-to-end tests for each order source:</p>
<ol>
<li>Import a known item and quantity.</li>
<li>Confirm the resulting order type, warehouse, UOM, requested date, status, and line operation.</li>
<li>Calculate ATP and capture the document timeline.</li>
<li>Compare the result with a manually entered order using identical values.</li>
<li>Change one mapping, such as warehouse, and confirm the expected change.</li>
<li>Continue through allocation, shipment, confirmation, and invoice processing.</li>
<li>Verify what date, if any, is returned to the external channel.</li>
</ol>
<p>Do not automatically publish the ATP date to a marketplace, portal, CRM, or EDI acknowledgment without a separate interface design. Define the outbound field, timezone, date semantics, recalculation trigger, error handling, and what happens when the date is blank or later changes.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="data-quality-controls-before-implementation">Data quality controls before implementation</h2>
<p>ATP can expose weak data because it asks the system to connect many ordinary transactions on a timeline. Improve the data before judging the feature.</p>
<h3 id="item-master-data">Item master data</h3>
<p>Confirm that each in-scope stock item has the correct item class, base and sales UOMs, default warehouse, item-warehouse settings, safety stock, lead times, lot or serial settings, and active status. Identify duplicate or obsolete items that should not receive customer demand.</p>
<h3 id="warehouse-and-location-data">Warehouse and location data</h3>
<p>Review warehouse access, defaulting, customer shipping zones, item availability by warehouse, and location flags. Quarantine, damaged, inspection, returns, staging, and consignment locations should reflect whether their stock is eligible for availability and shipping.</p>
<h3 id="supply-dates">Supply dates</h3>
<p>Measure overdue and missing promised dates on purchase orders and transfers. Ask buyers and warehouse planners how dates are updated after vendor acknowledgments, partial receipts, or delays. A daily ATP process needs a daily date-maintenance habit.</p>
<h3 id="demand-status-discipline">Demand status discipline</h3>
<p>Review how long sales orders remain on hold, credit hold, open, or back order. Remove canceled or abandoned demand through the proper workflow. Decide which statuses the ATP rule treats as real demand.</p>
<h3 id="document-quantities">Document quantities</h3>
<p>Look for unusual UOM conversions, negative quantities, partially completed lines, incorrect open quantities, and duplicate integration records. Reconcile linked purchase-to-order and transfer documents.</p>
<h3 id="customer-lead-time-inputs">Customer lead-time inputs</h3>
<p>Confirm that the delivery lead time used in the result corresponds to the customer location and shipping process. Carrier transit time, warehouse cutoff, weekends, holidays, and route schedules may need operational controls beyond the base ATP calculation.</p>
<h3 id="ownership">Ownership</h3>
<p>Assign each data category to a role. Sales owns customer request details; purchasing owns expected vendor dates; inventory control owns location and quantity accuracy; warehouse operations owns shipment state; the ERP team owns configuration; process leadership owns exception policy.</p>
<p>Use measurable entry criteria for the pilot. Examples include no missing ATP rule on pilot item classes, no overdue inbound document without a reviewed date, no unexplained negative Available for Shipping quantity, and signed expected results for representative scenarios.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="a-practical-atp-test-plan">A practical ATP test plan</h2>
<p>A reliable test plan combines configuration coverage, business scenarios, negative cases, and reconciliation. Use a recent copy of production data where permitted, because synthetic master data often misses real item-class, warehouse, and document variation.</p>
<h3 id="establish-the-baseline">Establish the baseline</h3>
<p>Before enabling ATP, record the current promise process. Identify which fields users read, which spreadsheets or inquiries they consult, who approves an exception, and how late promises are tracked. This baseline will show whether ATP reduces ambiguity or simply adds another date.</p>
<h3 id="build-a-scenario-matrix">Build a scenario matrix</h3>
<p>Test at least the following:</p>
<div class="table-wrap">
<table>
<thead>
<tr>
<th>Scenario</th>
<th>Expected focus</th>
</tr>
</thead>
<tbody>
<tr>
<td>Current stock covers full quantity</td>
<td>ATP should reflect immediate coverage plus applicable lead time</td>
</tr>
<tr>
<td>Current stock covers part only</td>
<td>Future supply should determine the earliest full-coverage date</td>
</tr>
<tr>
<td>No supply inside horizon</td>
<td>ATP Date should remain blank</td>
</tr>
<tr>
<td>Supply exists just outside horizon</td>
<td>Confirms horizon exclusion</td>
</tr>
<tr>
<td>Safety stock selected</td>
<td>Buffer reduces the promiseable balance</td>
</tr>
<tr>
<td>Safety stock cleared</td>
<td>Same documents produce the alternate policy result</td>
</tr>
<tr>
<td>Competing open order</td>
<td>Included demand should consume supply</td>
</tr>
<tr>
<td>Back order</td>
<td>Rule should treat older demand according to policy</td>
</tr>
<tr>
<td>Purchase order on hold</td>
<td>Confirms whether prepared supply is included</td>
</tr>
<tr>
<td>Partial purchase receipt</td>
<td>Remaining and received quantities reconcile</td>
</tr>
<tr>
<td>Transfer into target warehouse</td>
<td>Supply appears in the correct warehouse and date</td>
</tr>
<tr>
<td>Transfer out of target warehouse</td>
<td>Demand reduces that warehouse&#x27;s timeline</td>
</tr>
<tr>
<td>Alternate warehouse</td>
<td>Recalculation reflects the alternate supply pool</td>
</tr>
<tr>
<td>Non-stock item</td>
<td>Line remains ineligible</td>
</tr>
<tr>
<td>Configurable item</td>
<td>Line remains ineligible</td>
</tr>
<tr>
<td>Unconfirmed shipment</td>
<td>Line remains ineligible until normal shipment processing resolves it</td>
</tr>
<tr>
<td>Imported order</td>
<td>Defaults and mappings match the manual control order</td>
</tr>
<tr>
<td>Multi-line Ship Complete order</td>
<td>Order ATP reflects the limiting line</td>
</tr>
<tr>
<td>Back Order Allowed</td>
<td>Line dates support the documented staged process</td>
</tr>
</tbody>
</table>
</div>
<h3 id="change-one-variable-at-a-time">Change one variable at a time</h3>
<p>Begin with a known document set. Calculate and capture the result. Then change one input: a PO date, quantity, warehouse, safety-stock setting, horizon, demand status, or rule checkbox. Recalculate and explain the difference. Multiple simultaneous changes make a failed expectation difficult to diagnose.</p>
<h3 id="verify-both-line-and-order-calculations">Verify both line and order calculations</h3>
<p>Test Calculate ATP on a selected line and Calculate ATP Date for the order. Confirm saved values in the line and Shipping tab. Use orders with one line and several lines.</p>
<h3 id="test-user-roles">Test user roles</h3>
<p>Run scenarios under the actual sales, customer-service, purchasing, warehouse, and administrator roles. Confirm that users can see the necessary source documents without receiving unnecessary access. A calculation result that links to documents the user cannot inspect needs an escalation path.</p>
<h3 id="test-concurrency-and-change">Test concurrency and change</h3>
<p>Have one user calculate while another updates an included supply document in a controlled test. Recalculate and confirm the changed result. The purpose is to teach that ATP is time-sensitive, not to prove that a saved date is permanently reserved.</p>
<h3 id="record-evidence">Record evidence</h3>
<p>For each scenario retain the configuration version, build number, user role, starting values, source documents, screenshots of the timeline, expected result, actual result, and reviewer decision. This evidence supports training and future regression tests.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="reconcile-an-atp-date-to-its-source-documents">Reconcile an ATP date to its source documents</h2>
<p>Reconciliation should be a standard response to a questioned ATP date. Avoid debating the final date before reviewing the timeline.</p>
<ol>
<li>Open the sales order and confirm its status, type, warehouse, item, quantity, operation, requested date, open quantity, and shipment state.</li>
<li>Confirm that the Available-to-Promise feature is enabled.</li>
<li>Open the order type and record ATP Calculation, ATP Horizon, and the safety-stock setting.</li>
<li>Open the item&#x27;s item class and record the assigned ATP Calculation Rule.</li>
<li>Open the rule and record every selected supply and demand category.</li>
<li>Open Inventory Allocation Details for the item and warehouse. Reconcile On Hand, Available, Available for Shipping, locations, and item plans.</li>
<li>Open the line-level ATP dialog and export or transcribe the dated document rows.</li>
<li>Follow each reference number to its source document. Confirm date, status, warehouse, open quantity, and link relationships.</li>
<li>Rebuild the running balance in a simple worksheet.</li>
<li>Confirm safety-stock and lead-time effects.</li>
<li>Recalculate after correcting any source document through its normal workflow.</li>
</ol>
<p>Do not edit a transaction merely to force the expected answer. If the calculation uses an unwanted document, determine whether the document is wrong, its status is wrong, its date is stale, or the rule includes a plan category the business does not trust.</p>
<p>The dialog&#x27;s source links are an important control. They turn ATP from an opaque date into an auditable chain. Save that evidence when resolving a customer-impacting exception.</p>
<p>If a customization or build-specific issue is suspected, create the smallest reproducible scenario. Include exact build, enabled features, order type, rule settings, item class, document data, user role, and steps. Compare the result in a clean environment when practical before escalating.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="design-permissions-ownership-and-exception-handling">Design permissions ownership and exception handling</h2>
<p>ATP crosses functional boundaries, so ownership must be explicit.</p>
<p><strong>ERP administrator.</strong> Enables the feature, controls configuration changes, documents versions, and coordinates regression testing.</p>
<p><strong>Distribution functional owner.</strong> Approves the ATP rule, horizon, safety-stock policy, order-type scope, and operational interpretation.</p>
<p><strong>Sales and customer service.</strong> Enters accurate order data, calculates at defined checkpoints, communicates approved dates, and escalates exceptions.</p>
<p><strong>Purchasing.</strong> Maintains credible inbound dates and resolves supplier changes that affect promises.</p>
<p><strong>Inventory and warehouse teams.</strong> Maintain quantity accuracy, location availability, transfers, allocations, shipment status, and exception stock.</p>
<p><strong>Integration owner.</strong> Validates order defaults and controls any outbound use of the ATP date.</p>
<p><strong>Finance or commercial leadership.</strong> Defines which customers, order values, or margin conditions require approval before a later date, split shipment, expedited freight, or safety-stock exception is accepted.</p>
<p>Separate permissions for calculation, transaction editing, and configuration. A sales user may need to calculate and inspect the timeline without being allowed to edit ATP rules or purchase dates. A buyer may maintain purchase dates without changing the order&#x27;s commercial terms.</p>
<p>Define exception categories:</p>
<ul>
<li>blank date within the horizon;</li>
<li>date later than the customer request;</li>
<li>source document with uncertain or overdue supply;</li>
<li>safety-stock override request;</li>
<li>alternate-warehouse request;</li>
<li>split-shipment request;</li>
<li>expedited purchase or freight request;</li>
<li>strategic-customer prioritization;</li>
<li>result that conflicts with a physical or supplier reality.</li>
</ul>
<p>For each category, name the decision owner, required evidence, response time, allowed changes, and where the decision is recorded. ATP should make exceptions visible, not move them into private messages.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="roll-out-atp-without-disrupting-order-entry">Roll out ATP without disrupting order entry</h2>
<p>Use a controlled sequence instead of enabling every order type and item class at once.</p>
<h3 id="phase-1-policy-and-design">Phase 1: policy and design</h3>
<p>Map the current promise process. Approve rule categories, horizon, safety stock, order types, item scope, roles, and exception handling. Identify integrations and customizations.</p>
<h3 id="phase-2-configuration-prototype">Phase 2: configuration prototype</h3>
<p>Enable ATP in a sandbox. Create one ATP rule for a coherent item family, assign it to a pilot item class, and configure one order type. Use a small set of representative warehouses and customers.</p>
<h3 id="phase-3-data-cleanup">Phase 3: data cleanup</h3>
<p>Correct stale dates, class assignments, warehouse defaults, location flags, UOMs, safety stock, back orders, and incomplete supply documents for the pilot scope.</p>
<h3 id="phase-4-scenario-testing">Phase 4: scenario testing</h3>
<p>Execute the approved matrix and reconcile every result. Include integrations, permissions, negative cases, and multi-line orders.</p>
<h3 id="phase-5-user-pilot">Phase 5: user pilot</h3>
<p>Select a small sales and customer-service group. Ask them to use ATP alongside the existing promise process without changing external commitments automatically. Collect discrepancies and classify their causes.</p>
<h3 id="phase-6-operational-integration">Phase 6: operational integration</h3>
<p>Update procedures, customer communication templates, approvals, reports, dashboards, and any intended outbound interfaces. Train purchasing and warehouse users on how their dates and statuses influence promises.</p>
<h3 id="phase-7-production-release">Phase 7: production release</h3>
<p>Deploy the signed configuration through the organization&#x27;s change process. Verify it in production with non-disruptive test orders or carefully selected real orders. Confirm the exact build and enabled feature state.</p>
<h3 id="phase-8-expansion">Phase 8: expansion</h3>
<p>Add item classes, order types, warehouses, and integrations only after the pilot metrics are stable. Reuse regression tests and document rule differences.</p>
<p>The rollout should include an explicit stop condition. Pause expansion if users cannot reconcile dates, overdue inbound records remain common, the integration publishes unreviewed dates, or late commitments increase.</p>
<p>The broader <a href="https://biz-techservices.com/archives/10770">Acumatica 2026 R2 Upgrade Guide</a> provides a framework for sandbox testing, customizations, integrations, training, and cutover. ATP should follow the same controlled upgrade discipline.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="monitor-promise-quality-after-go-live">Monitor promise quality after go-live</h2>
<p>The goal is not to maximize the number of orders with an ATP date. The goal is to improve the reliability and explainability of customer commitments.</p>
<p>Track measures that connect the calculation to outcomes:</p>
<h3 id="promise-adherence">Promise adherence</h3>
<p>Compare the communicated promise date with the actual shipment or delivery result. Segment by item class, warehouse, vendor-dependent supply, order type, and customer.</p>
<h3 id="atp-date-stability">ATP date stability</h3>
<p>Measure how often the saved date changes before shipment and the size of the change. Frequent movement may indicate stale supply dates, volatile demand, weak allocation, or a horizon that reaches too far.</p>
<h3 id="requested-date-gap">Requested-date gap</h3>
<p>Measure the difference between Requested On and ATP Date. This identifies item families and warehouses where demand regularly exceeds the planned supply position.</p>
<h3 id="blank-atp-rate">Blank ATP rate</h3>
<p>Track eligible lines that remain uncovered within the horizon. Do not treat zero as the target. A blank result can be an honest signal. Investigate clusters by item, vendor, warehouse, or rule.</p>
<h3 id="manual-override-rate">Manual override rate</h3>
<p>Record warehouse, quantity, date, or safety-stock exceptions. High volume may mean the policy does not match real operations or users are bypassing it.</p>
<h3 id="source-document-quality">Source-document quality</h3>
<p>Monitor overdue purchase lines, missing promised dates, late transfers, unconfirmed shipments, old back orders, and abandoned on-hold sales orders.</p>
<h3 id="customer-service-handling-time">Customer-service handling time</h3>
<p>Measure the time needed to answer a date inquiry and the number of handoffs. A transparent calculation may reduce manual investigation even before on-time performance changes.</p>
<p>Review results weekly during the pilot and monthly after stabilization. Separate configuration errors, data errors, process exceptions, and supplier or warehouse execution problems. ATP cannot solve every cause, but it can make the causal chain easier to inspect.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="common-atp-pitfalls-and-how-to-diagnose-them">Common ATP pitfalls and how to diagnose them</h2>
<h3 id="calculate-atp-is-missing">Calculate ATP is missing</h3>
<p>Check the feature, order type&#x27;s ATP Calculation setting, order status, item class rule, line operation, completed state, configurable status, and related unconfirmed shipment. Follow the four-layer configuration chain.</p>
<h3 id="atp-date-is-blank">ATP Date is blank</h3>
<p>Confirm that the quantity cannot be covered within the horizon. Review the timeline for missing or excluded supply, competing demand, safety stock, wrong warehouse, and dates beyond the horizon. A blank field can be the correct answer.</p>
<h3 id="the-date-is-much-later-than-expected">The date is much later than expected</h3>
<p>Look for included demand before the anticipated supply, protected safety stock, lead time, back orders, transfer demand, overdue supply moved to a later date, or an item in the wrong class.</p>
<h3 id="the-date-is-earlier-than-operations-believe">The date is earlier than operations believe</h3>
<p>Investigate optimistic purchase dates, on-hold supply counted as credible, missing demand categories, stale canceled or duplicated data, returns counted before inspection, wrong UOM conversion, and stock in an operational state not represented by the rule.</p>
<h3 id="on-hand-is-high-but-atp-is-late">On Hand is high but ATP is late</h3>
<p>Reconcile Available for Shipping. The stock may already be allocated, shipped, located in an excluded location, expired, reserved for another purpose, or protected as safety stock.</p>
<h3 id="available-for-shipping-is-low-but-future-supply-exists">Available for Shipping is low but future supply exists</h3>
<p>Current ship-ready quantity and future promise are different. Confirm that the future document type is included, dated within the horizon, assigned to the same warehouse, and in an eligible status.</p>
<h3 id="a-purchase-order-does-not-appear">A purchase order does not appear</h3>
<p>Check the rule&#x27;s purchase categories, PO status, warehouse, item, UOM, open quantity, date, link type, and whether the transaction is beyond the horizon.</p>
<h3 id="an-old-sales-order-consumes-supply">An old sales order consumes supply</h3>
<p>Confirm whether its status and plan category are included. Resolve the order through the proper cancel, complete, close, or back-order process. Do not exclude valid demand merely to improve dates.</p>
<h3 id="alternate-warehouse-gives-an-attractive-date-that-cannot-be-used">Alternate warehouse gives an attractive date that cannot be used</h3>
<p>Review warehouse access, branch and shipping policy, customer lead time, freight, carrier service, tax implications, order orchestration, item restrictions, and operational capacity.</p>
<h3 id="imported-orders-calculate-differently-from-manual-orders">Imported orders calculate differently from manual orders</h3>
<p>Compare order type, warehouse, status, UOM, requested date, operation, item mapping, quantity, and any automatic shipment or purchase link. Build a paired control test.</p>
<h3 id="users-treat-atp-as-a-reservation">Users treat ATP as a reservation</h3>
<p>Correct the procedure and training. Add an allocation checkpoint and a warning in the work instruction. Track cases where calculated dates change because inventory was not allocated.</p>
<h3 id="users-extend-the-horizon-until-a-date-appears">Users extend the horizon until a date appears</h3>
<p>Return to the data and policy. A farther date is not more reliable merely because the system can see it. Require approval for horizon changes and evaluate inbound-date accuracy.</p>
<h3 id="safety-stock-is-bypassed-informally">Safety stock is bypassed informally</h3>
<p>Choose a governed exception path. Consider a separate order type only if it matches the business process and is tested. Do not encourage users to change item master data temporarily.</p>
<h3 id="the-order-date-and-line-dates-disagree">The order date and line dates disagree</h3>
<p>Review all eligible lines and the shipping rule. The order-level date reflects when the full order can ship, while individual lines can be ready earlier.</p>
<h3 id="the-result-changed-after-a-patch-or-upgrade">The result changed after a patch or upgrade</h3>
<p>Run the saved regression scenarios. Compare build numbers, enabled features, rules, item classes, order types, customizations, plan types, and source documents. Reopen the current Acumatica documentation before escalating.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="available-to-promise-implementation-checklist">Available-to-Promise implementation checklist</h2>
<h3 id="scope-and-policy">Scope and policy</h3>
<ul>
<li>[ ] Name the ATP business owner and technical owner.</li>
<li>[ ] Define which customers, item families, warehouses, and order types are in scope.</li>
<li>[ ] Decide whether safety stock is protected.</li>
<li>[ ] Approve the ATP horizon using lead-time and date-quality evidence.</li>
<li>[ ] Define how blank, late, or changing dates are handled.</li>
<li>[ ] Define when a calculated date may be communicated externally.</li>
</ul>
<h3 id="configuration">Configuration</h3>
<ul>
<li>[ ] Enable Available-to-Promise in a sandbox.</li>
<li>[ ] Create ATP-type calculation rules.</li>
<li>[ ] Document every included supply and demand category.</li>
<li>[ ] Assign ATP rules to the correct item classes.</li>
<li>[ ] Set order types to Cumulative with Look-Ahead where appropriate.</li>
<li>[ ] Record horizon and safety-stock settings for each order type.</li>
<li>[ ] Review custom order types and automation behaviors.</li>
</ul>
<h3 id="master-data-and-transactions">Master data and transactions</h3>
<ul>
<li>[ ] Validate item class, stock status, UOMs, and warehouse defaults.</li>
<li>[ ] Validate item-warehouse safety stock and lead-time inputs.</li>
<li>[ ] Review warehouse-location availability flags.</li>
<li>[ ] Correct overdue or missing purchase and transfer dates.</li>
<li>[ ] Resolve abandoned on-hold orders and invalid back orders.</li>
<li>[ ] Reconcile linked purchase-to-order, drop-ship, kit, and transfer documents.</li>
</ul>
<h3 id="testing">Testing</h3>
<ul>
<li>[ ] Test current stock, future supply, competing demand, and no-supply cases.</li>
<li>[ ] Test the horizon boundary and both safety-stock settings.</li>
<li>[ ] Test line-level and order-level calculations.</li>
<li>[ ] Test alternate warehouses and multi-line orders.</li>
<li>[ ] Test shipping rules and partial fulfillment.</li>
<li>[ ] Test every documented line exclusion.</li>
<li>[ ] Test all user roles.</li>
<li>[ ] Test each integration source against a manual control order.</li>
<li>[ ] Reconcile results to the calculation dialog and source documents.</li>
<li>[ ] Save evidence for future regression testing.</li>
</ul>
<h3 id="rollout-and-operations">Rollout and operations</h3>
<ul>
<li>[ ] Train sales, customer service, purchasing, and warehouse teams.</li>
<li>[ ] Separate ATP calculation from allocation and shipment steps.</li>
<li>[ ] Define recalculation checkpoints.</li>
<li>[ ] Define exception ownership and approval evidence.</li>
<li>[ ] Verify reports, dashboards, and integrations that use the date.</li>
<li>[ ] Monitor promise adherence, date changes, blanks, and overrides.</li>
<li>[ ] Review supplier and warehouse data quality regularly.</li>
<li>[ ] Revalidate after patches, upgrades, or configuration changes.</li>
</ul>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="frequently-asked-questions">Frequently Asked Questions</h2>
<h3 id="what-is-available-to-promise-in-acumatica-2026-r2">What is Available-to-Promise in Acumatica 2026 R2?</h3>
<p>Available-to-Promise, or ATP, is a Distribution feature that calculates the earliest date on which the full open quantity of an eligible sales-order line can be covered in a selected warehouse. It can also calculate the date on which the complete order can ship in full. The result is based on a configured timeline of supply and demand within an ATP horizon.</p>
<h3 id="does-atp-reserve-inventory-for-the-customer">Does ATP reserve inventory for the customer?</h3>
<p>No. ATP calculates a date; it does not replace inventory allocation or shipment processing. If the business needs stock reserved, users must follow the applicable allocation workflow. A saved ATP date can change when other supply and demand documents change.</p>
<h3 id="why-is-calculate-atp-not-visible-on-a-sales-order">Why is Calculate ATP not visible on a sales order?</h3>
<p>Confirm that the Available-to-Promise feature is enabled, the order type uses Cumulative with Look-Ahead, the order has an eligible status, and the line contains an eligible stock item whose item class has an ATP rule. The line must use the Issue operation, remain incomplete, not be configurable, and have no related unconfirmed shipment.</p>
<h3 id="why-is-the-atp-date-blank">Why is the ATP Date blank?</h3>
<p>The requested quantity may not be coverable within the configured ATP horizon. Review the line-level calculation, warehouse, quantity, safety stock, included supply and demand categories, document dates, and competing demand. A blank date can be a correct warning rather than a configuration error.</p>
<h3 id="what-is-the-difference-between-available-for-shipping-and-available-to-promise">What is the difference between Available for Shipping and Available to Promise?</h3>
<p>Available for Shipping is a current quantity after defined operational deductions, including shipped and allocated quantities and inventory in excluded locations. Available to Promise is a future date calculation. It processes configured supply and demand chronologically to find when the full quantity can be covered.</p>
<h3 id="how-does-safety-stock-affect-atp">How does safety stock affect ATP?</h3>
<p>When Include Safety Stock in ATP Calculation is selected for the order type, Acumatica subtracts safety stock from the available quantity before calculating the date. This protects the buffer from being promised through the ATP calculation and may move the result later or leave it blank inside the horizon.</p>
<h3 id="what-does-the-atp-horizon-control">What does the ATP horizon control?</h3>
<p>The horizon is the number of calendar days from the current business date in which Acumatica searches for supply and demand transactions. Documents beyond the horizon are excluded. The Order Types form defaults the value to 90 days, but the organization should choose a horizon that matches credible lead times and date quality.</p>
<h3 id="can-users-calculate-atp-for-another-warehouse">Can users calculate ATP for another warehouse?</h3>
<p>Yes. The line-level calculation dialog lets a user change the warehouse and recalculate. Saving the dialog also updates the line&#x27;s warehouse if it was changed. The organization should govern this choice because freight, branch, customer, tax, orchestration, and operational rules may make the earliest warehouse date unsuitable.</p>
<h3 id="does-atp-work-for-configurable-or-non-stock-items">Does ATP work for configurable or non-stock items?</h3>
<p>The documented sales-order ATP calculation applies to qualifying stock-item lines and excludes configurable lines. Non-stock items do not receive the inventory coverage calculation. Manufacturing organizations should evaluate the applicable Capable-to-Promise workflow for produced items where resource capacity matters.</p>
<h3 id="which-documents-are-included-in-atp">Which documents are included in ATP?</h3>
<p>The ATP calculation rule controls the plan categories. Depending on enabled features and selected checkboxes, the rule can include or deduct sales orders, back orders, allocations, issues, purchase orders, receipts, transfers, returns, kit documents, service demand, production supply and demand, and project-material plans. Review the actual rule and calculation dialog rather than assuming a fixed universal list.</p>
<h3 id="how-often-should-atp-be-recalculated">How often should ATP be recalculated?</h3>
<p>Recalculate after material changes to quantity, warehouse, order status, requested date, purchase or transfer timing, allocation, or other included supply and demand. At minimum, calculate during order review and again before communicating a customer commitment when the earlier result may be stale.</p>
<h3 id="can-atp-dates-be-sent-to-an-e-commerce-or-edi-system">Can ATP dates be sent to an e-commerce or EDI system?</h3>
<p>They can be integrated only through an intentional interface design. Define the outbound field, date meaning, timezone, recalculation trigger, blank-date handling, change notifications, error behavior, and approval policy. Do not assume that enabling ATP automatically publishes its result to an external channel.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<h2 id="sources">Sources</h2>
<ol>
<li><a href="https://www.acumatica.com/corporate-newsroom/press-releases/acumatica-2026-r2-release-with-embedded-ai/">Acumatica 2026 R2 release announcement</a></li>
<li><a href="https://www.acumatica.com/cloud-erp-software/acumatica-release-news/">Acumatica release news and 2026 R2 overview</a></li>
<li><a href="https://community.acumatica.com/acumatica-news-updates-2/introducing-acumatica-cloud-erp-2026r2-37191">Introducing Acumatica Cloud ERP 2026 R2</a></li>
<li><a href="https://beacon.acumatica.com/r/Form-Reference-Guide/Sales-Orders-Forms/Sales-Orders">Sales Orders SO301000 form reference for 2026 R2</a></li>
<li><a href="https://beacon.acumatica.com/r/Form-Reference-Guide/Sales-Orders-Forms/Order-Types">Order Types SO201000 form reference for 2026 R2</a></li>
<li><a href="https://beacon.acumatica.com/r/Form-Reference-Guide/Accounts-Payable-Forms/Item-Classes">Item Classes IN201000 form reference for 2026 R2</a></li>
<li><a href="https://beacon.acumatica.com/r/Form-Reference-Guide/Common-Settings-Forms/Enable/Disable-Features">Enable or Disable Features CS100000 form reference for 2026 R2</a></li>
<li><a href="https://beacon.acumatica.com/r/Form-Reference-Guide/Inventory-Forms/Availability-Calculation-Rules">Availability Calculation Rules IN201500 form reference for 2026 R2</a></li>
<li><a href="https://beacon.acumatica.com/r/Form-Reference-Guide/Inventory-Forms/Inventory-Allocation-Details">Inventory Allocation Details IN402000 form reference for 2026 R2</a></li>
<li><a href="https://beacon.acumatica.com/r/Manufacturing-Edition-Guide/Processing-Capable-to-Promise/Capable-to-Promise-General-Information">Capable-to-Promise general information</a></li>
<li><a href="https://biz-techservices.com/archives/10575">Biz-Tech Acumatica Distribution ERP guide</a></li>
<li><a href="https://biz-techservices.com/archives/10555">Biz-Tech guide to PDF order automation and inventory allocation</a></li>
</ol>
<p>Available-to-Promise can improve order-date decisions when the calculation rule, item classes, order types, warehouses, safety stock, and document dates reflect real operating policy. The next practical step is to choose one item family and one order type, reproduce a small set of supply-and-demand scenarios in a sandbox, and reconcile every date before expanding the rollout. Biz-Tech Services can help with Acumatica 2026 R2 configuration, integration review, test design, and distribution-process optimization through the <a href="https://biz-techservices.com/support">Biz-Tech support and consultation page</a>.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to TOC</a></p>
<p>The post <a href="https://biz-techservices.com/archives/10882">Available-to-Promise in Acumatica 2026 R2: Setup, Sales-Order Behavior, and Pitfalls</a> appeared first on <a href="https://biz-techservices.com">Biz-Tech Services</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Map ShipHero SKUs to Acumatica Inventory Items</title>
		<link>https://biz-techservices.com/archives/10874</link>
		
		<dc:creator><![CDATA[Gary]]></dc:creator>
		<pubDate>Wed, 21 Oct 2026 06:02:27 +0000</pubDate>
				<category><![CDATA[Lesson]]></category>
		<guid isPermaLink="false">https://biz-techservices.com/?p=10874</guid>

					<description><![CDATA[<p>Mapping ShipHero SKUs to Acumatica inventory items requires a careful reading of what the connector documentation actually defines. The manual [&#8230;]</p>
<p>The post <a href="https://biz-techservices.com/archives/10874">How to Map ShipHero SKUs to Acumatica Inventory Items</a> appeared first on <a href="https://biz-techservices.com">Biz-Tech Services</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Mapping ShipHero SKUs to Acumatica inventory items requires a careful reading of what the connector documentation actually defines. The manual documents bidirectional item synchronization, missing-item creation or replacement, item-class defaults, and warehouse cross-references, but it does not name a ShipHero SKU field or state the exact comparison rule that links an SKU to an existing Inventory ID.</p>
<p>The Biz-Tech Services ShipHero Acumatica Connector provides the controls needed to load and synchronize items and to decide what happens when a record is missing. This guide focuses on those documented item-level controls and marks the unsupported areas clearly.</p>
<p><strong>What ShipHero Item Mapping in Acumatica Establishes</strong></p>
<p>The Biz-Tech Services Acumatica ShipHero Connector uses the Inventory Details tab to load and display items from both systems. Load Acumatica Items displays the ERP items, Load Ship Hero Items displays the warehouse management system items, Sync Acumatica Items exports items to ShipHero, and Sync Ship Hero Items imports items into Acumatica.</p>
<p>When an imported ShipHero item does not exist in Acumatica, Import Item controls whether a new inventory record may be created. When that checkbox is selected, imported item type, item class, UOM, and warehouse ID become available as defaults. When it is not selected, the source says the connector does not create a new item and uses the configured Replace Missing Products default instead.</p>
<p>Warehouse Cross-Reference is part of the item synchronization path, but it maps warehouse values rather than item identifiers. The source says the connector creates or assigns the warehouse for an imported item according to this setup. It does not say that Warehouse Cross-Reference maps an SKU, Inventory ID, alias, or product code.</p>
<p><strong>ShipHero Item Mapping at a Glance</strong></p>
<p>Use this sequence to configure the documented item behavior without assuming an undocumented SKU rule.</p>
<p>1 Select the integration direction on Ship Hero Store because the available tabs and processing behavior change between Ship Hero to Acumatica and Acumatica to Ship Hero.</p>
<p>2 Configure Warehouse Cross-Reference for the warehouse values used during item synchronization and order import.</p>
<p>3 On Sync Info, decide whether Import Item should create a missing Acumatica item or whether the connector should use Replace Missing Products.</p>
<p>4 If Import Item is selected, set imported item type, item class, UOM, and warehouse ID as the defaults for a newly created item.</p>
<p>5 Open Inventory Details and use Load Ship Hero Items or Load Acumatica Items to review the records available for processing.</p>
<p>6 Run Sync Ship Hero Items to import selected ShipHero items or Sync Acumatica Items to export ERP items.</p>
<p>7 Open the Ship Hero Item inquiry to review item availability, connected vendors, bin transfers, and the result of Sync Ship Hero Item.</p>
<p>8 Treat the SKU, alias, duplicate, and precedence rules as unresolved until Biz-Tech Services supplies product-specific guidance because the manual does not define them.</p>
<p><strong>Choose the Item Synchronization Direction</strong></p>
<p>Ship Hero Store includes an Integration Option that determines the workflow direction. Ship Hero to Acumatica brings data from the warehouse management system into the ERP and exposes General Info, Import Info, Ship Via Cross Reference, Warehouse Cross Reference, Inventory Details, Sync Info, and Locations.</p>
<p><img decoding="async" src="https://mlt1wwte1gj9.i.optimole.com/cb:Ob-G.f8c/w:auto/h:auto/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/1_StoreCredentialConfiguration.png" alt="ShipHero store credential configuration" /></p>
<p>The Inventory Details actions show the documented item flow. Load Acumatica Items retrieves the ERP item list, and Load Ship Hero Items retrieves the ShipHero item list. Sync Acumatica Items sends ERP items to ShipHero. Sync Ship Hero Items brings ShipHero items into Acumatica. Purge deletes the items displayed on the Inventory Details table, while Sellect All, as written in the source, selects all displayed items.</p>
<p>The manual does not list Inventory Details grid columns or identify an SKU, product ID, inventory code, or line-level key on that tab. It also does not explain whether synchronization updates an existing record or creates a new one based on an SKU comparison. Confirm the visible fields in the installed customization before documenting a local matching procedure.</p>
<p><strong>Configure Missing Item Creation and Item Class Defaults</strong></p>
<p>Import Item is the documented switch for missing inventory records. Select it when the connector should allow a new item to be created during synchronization or order import. The following default fields then appear: imported item type, item class, UOM, and warehouse ID.</p>
<p>Item class is used as a default for new item creation. The source does not describe item class as a cross-reference, a match condition, or a way to resolve multiple records with the same external identifier. It also does not state whether any attributes or settings inherited from the class are required by the connector.</p>
<p>When Import Item is not selected, the manual says that the connector does not create a new item and sets a default item for each missing product. Replace Missing Products supplies that default item, and Warehouse ID supplies the warehouse value. The source also contains an awkward sentence saying it sets Replace Missing Products as the item name; it does not clarify whether this means the selected replacement item, the displayed line description, or another value.</p>
<p><img decoding="async" src="https://mlt1wwte1gj9.i.optimole.com/cb:Ob-G.f8c/w:auto/h:auto/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/9_Item_Setup.png" alt="ShipHero item setup" /></p>
<p>These controls define how an unmapped or missing product can be handled during import, but they do not define the condition that makes a product missing. No rule is given for blank SKUs, unknown SKUs, duplicate SKUs, inactive items, stock versus non-stock items, or a ShipHero record whose code differs from the Acumatica Inventory ID.</p>
<p><strong>Separate Warehouse Cross-References from Item Identity</strong></p>
<p>Warehouse Cross-Reference is explicitly used by item synchronization and order import. Based on that setup, an imported order receives the mapped warehouse on the sales order, and an imported item receives or creates the warehouse associated with that mapping.</p>
<p>The Biz-Tech Services ShipHero Acumatica Integration also uses the mapped warehouses when locations are loaded. The Locations note states that locations are loaded for warehouses configured on Warehouse Cross-Reference. When Use Location Mapping is selected, a grid appears to map locations; otherwise, Sellable Location and Non-Sellable Location provide the documented defaults.</p>
<p>Ship Via Cross-Reference serves a different purpose. The Import Info settings expose Use Cross Ref for Ship Via and Use Cross Ref for Warehouse. Selecting these options shows the corresponding tabs so ShipHero values can be matched with Acumatica values. The manual does not provide an item cross-reference option or an SKU cross-reference tab.</p>
<p><img decoding="async" src="https://mlt1wwte1gj9.i.optimole.com/cb:Ob-G.f8c/w:auto/h:auto/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/2_Warehouse_CrosReference.png" alt="ShipHero warehouse cross-reference" /></p>
<p>Box Mapping and Reason Code Mapping are also named mapping features, but neither identifies an inventory item. Box Mapping pairs Acumatica Box ID with ShipHero Box name. Reason Code Mapping supports return orders. Keep these mappings separate from the unresolved item-identity question.</p>
<p><strong>Validate Imported Items Vendor Data and Locations</strong></p>
<p>When Sync Ship Hero Items imports an item, vendor information is also synchronized if the stock item has a vendor or vendors that have already been synchronized to ShipHero. The source does not state which vendor field is used for the connection or what happens when the vendor has not been synchronized.</p>
<p>The Ship Hero Item inquiry provides three review areas. Warehouse Details displays item availability. Vendors displays the vendor connected with the item in ShipHero. Bin Transfers displays transfers for the item. Update Item displays changes made to the ShipHero item, Sync Ship Hero Item synchronizes the item into Acumatica, and Update Warehouse In Ship Hero updates item quantity in ShipHero.</p>
<p>Location setup should be reviewed with the item. Load Acumatica Locations displays ERP locations, and Sync Acumatica Locations exports them to ShipHero. Load Ship Hero Locations displays warehouse-system locations. The documentation says only locations for warehouses configured on Warehouse Cross-Reference are loaded.</p>
<p>The manual supplies no screen IDs for Ship Hero Store, Inventory Details, Warehouse Cross-Reference, Locations, or Ship Hero Item. The only screen ID stated in the document is Customization Projects (SM204505), which is used for package installation and is not an item-mapping screen.</p>
<p><strong>Apply the Documented Mapping Validation Rules</strong></p>
<p>The source provides configuration dependencies rather than a formal SKU validation table.</p>
<p>1 Select a Ship Hero Store integration direction before expecting the related item and mapping tabs to appear.</p>
<p>2 Select Use Cross Ref for Warehouse before expecting Warehouse Cross-Reference to appear.</p>
<p>3 Configure the mapped warehouse because the setup is used for both item synchronization and order import.</p>
<p>4 Select Import Item before expecting imported item type, item class, UOM, and warehouse ID defaults to appear.</p>
<p>5 If Import Item is not selected, confirm Replace Missing Products and Warehouse ID before importing a product that may not exist.</p>
<p>6 Confirm that a vendor is already synchronized before expecting the vendor information of an imported stock item to synchronize with the item.</p>
<p>7 Configure Warehouse Cross-Reference before loading locations because the source limits loaded locations to configured warehouses.</p>
<p>The documentation does not provide error-message text, validation codes, duplicate handling, or a rejected-record inquiry for item synchronization. It does not say how a failed item appears on Inventory Details or whether Purge removes only the displayed staging records or affects data outside the table.</p>
<p><strong>Document the SKU and Alias Rules the Manual Does Not Define</strong></p>
<p>Despite the business need to map ShipHero SKUs, the source never names an SKU field. It does not say that ShipHero SKU equals Acumatica Inventory ID, Inventory CD, Alternate ID, or another field. It also does not show item-level mapping columns on Inventory Details or provide a sample product-to-item mapping.</p>
<p>No alias mechanism is documented. The manual does not identify customer part numbers, vendor part numbers, global trade item numbers, universal product codes, barcodes, alternate IDs, wildcard matching, or case-insensitive matching as valid connector keys. It does not define which identifier wins if multiple candidates exist.</p>
<p>Unmapped-record behavior is documented only through Import Item and Replace Missing Products. The source does not identify a holding queue, error log, notification, or correction screen for a product that cannot be matched or created. It also does not state whether a later successful match replaces an earlier replacement-product line.</p>
<p>A safe implementation record should therefore distinguish documented configuration from tested local behavior. Record the installed screen fields, the exact ShipHero value, the resulting Inventory ID, the Import Item state, the selected defaults, and the warehouse mapping observed in a controlled test. Do not present the observed key as a product guarantee unless it is confirmed by Biz-Tech Services.</p>
<p><strong>Where to Check Your Work</strong></p>
<p>The Biz-Tech Services ShipHero Acumatica Integrator exposes the documented item result in these locations.</p>
<p>1 Ship Hero Store: confirm Store Code, Integration Option, and the tabs displayed for the selected direction.</p>
<p>2 Import Info: confirm Use Cross Ref for Warehouse and Use Cross Ref for Ship Via when those mappings are required.</p>
<p>3 Warehouse Cross-Reference: compare the ShipHero warehouse value with the Acumatica warehouse value used during item synchronization and order import.</p>
<p>4 Sync Info: check Import Item, imported item type, item class, UOM, warehouse ID, Replace Missing Products, Export Price Type, and Export price Quantity.</p>
<p>5 Inventory Details: load both item lists, review the displayed records, and run only the synchronization direction intended for the test.</p>
<p>6 Ship Hero Item: review Warehouse Details, Vendors, and Bin Transfers, then use Update Item or Sync Ship Hero Item as documented.</p>
<p>7 Locations: confirm that the expected warehouses were mapped before loading locations, and review Use Location Mapping, Sellable Location, and Non-Sellable Location.</p>
<p>8 The resulting Acumatica inventory item and sales order line: compare the item, warehouse, UOM, and replacement-product outcome with the configured defaults. The manual does not provide a specific screen ID for this review.</p>
<p><strong>ShipHero SKU and Inventory Item Mapping Frequently Asked Questions</strong></p>
<p><strong>Does the connector documentation say which Acumatica field matches a ShipHero SKU?</strong></p>
<p>No. The manual documents item synchronization and missing-item settings but does not name a ShipHero SKU field or state that it matches Inventory ID, Inventory CD, Alternate ID, or another Acumatica field.</p>
<p><strong>Can the connector create an inventory item that does not exist in Acumatica?</strong></p>
<p>Yes, when Import Item is selected. The connector can create a new item using imported item type, item class, UOM, and warehouse ID as the documented defaults.</p>
<p><strong>What happens when Import Item is not selected?</strong></p>
<p>The source says the connector does not create the new item. It uses the default configured in Replace Missing Products and takes the warehouse from Warehouse ID.</p>
<p><strong>Is item class used to match ShipHero products?</strong></p>
<p>The manual only identifies item class as a default for new item creation. It does not define item class as an SKU match, alias, or cross-reference rule.</p>
<p><strong>Does Warehouse Cross-Reference map ShipHero SKUs?</strong></p>
<p>No SKU behavior is documented for that tab. It maps warehouse values used during item synchronization and order import, including the warehouse associated with an imported item.</p>
<p><strong>Where can I review a synchronized ShipHero item?</strong></p>
<p>Use Inventory Details to load and process item records, then use the Ship Hero Item inquiry to review Warehouse Details, Vendors, and Bin Transfers. The source provides no screen IDs for those locations.</p>
<p><strong>Does the connector support aliases or alternate item identifiers?</strong></p>
<p>The Biz-Tech Services Acumatica ShipHero Integration documentation does not define item aliases, alternate IDs, barcodes, customer part numbers, vendor part numbers, or wildcard matching. Obtain product-specific confirmation before building a mapping process around any of those identifiers.</p>
<p><strong>How can I validate an SKU mapping when the manual does not define the key?</strong></p>
<p>Run a controlled item synchronization and record the exact source value, resulting inventory item, Import Item setting, item defaults, replacement-product outcome, and warehouse mapping. Treat the result as environment-specific until the key is confirmed by Biz-Tech Services.</p>
<p><strong>Work With the Biz-Tech Services ShipHero Connector</strong></p>
<p>A reliable mapping design starts with the controls the manual actually documents: synchronization direction, missing-item handling, creation defaults, and warehouse mapping. The SKU key, aliases, matching precedence, and rejected-record workflow require product-specific confirmation.</p>
<p>If you need help confirming ShipHero item identifiers, testing missing-item behavior, or documenting a controlled SKU-mapping process, visit https://biz-techservices.com to work with the Biz-Tech Services Acumatica ShipHero Integrator.</p>
<p>The post <a href="https://biz-techservices.com/archives/10874">How to Map ShipHero SKUs to Acumatica Inventory Items</a> appeared first on <a href="https://biz-techservices.com">Biz-Tech Services</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Faster Generic Inquiries in Acumatica 2026 R2: Grouped Tables, Query Design, and Dashboard Performance</title>
		<link>https://biz-techservices.com/archives/10870</link>
		
		<dc:creator><![CDATA[Gary]]></dc:creator>
		<pubDate>Tue, 20 Oct 2026 08:22:23 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<guid isPermaLink="false">https://biz-techservices.com/?p=10870</guid>

					<description><![CDATA[<p>Diagnose slow Acumatica Generic Inquiries without changing the meaning of the data. This 2026 R2 guide covers query design, grouped tables, dashboard refresh settings, testing, reconciliation, and safe deployment.</p>
<p>The post <a href="https://biz-techservices.com/archives/10870">Faster Generic Inquiries in Acumatica 2026 R2: Grouped Tables, Query Design, and Dashboard Performance</a> appeared first on <a href="https://biz-techservices.com">Biz-Tech Services</a>.</p>
]]></description>
										<content:encoded><![CDATA[<figure class="wp-caption aligncenter"><img decoding="async" class="size-full wp-image-10869 aligncenter" src="https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:auto/h:auto/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/acumatica-generic-inquiry-performance_Blog_Hero_Wide_3x1.png" alt="Wide technology illustration showing a tangled data query becoming an organized grouped hierarchy and responsive dashboard for an Acumatica Generic Inquiry performance guide." width="2172" height="724" srcset="https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:1920/h:640/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/acumatica-generic-inquiry-performance_Blog_Hero_Wide_3x1.png 2172w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:300/h:100/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/acumatica-generic-inquiry-performance_Blog_Hero_Wide_3x1.png 300w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:1024/h:341/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/acumatica-generic-inquiry-performance_Blog_Hero_Wide_3x1.png 1024w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:768/h:256/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/acumatica-generic-inquiry-performance_Blog_Hero_Wide_3x1.png 768w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:1536/h:512/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/acumatica-generic-inquiry-performance_Blog_Hero_Wide_3x1.png 1536w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:1920/h:640/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/acumatica-generic-inquiry-performance_Blog_Hero_Wide_3x1.png 2048w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:350/h:117/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/acumatica-generic-inquiry-performance_Blog_Hero_Wide_3x1.png 350w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:720/h:240/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/acumatica-generic-inquiry-performance_Blog_Hero_Wide_3x1.png 720w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:1032/h:344/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/acumatica-generic-inquiry-performance_Blog_Hero_Wide_3x1.png 1032w" sizes="(max-width: 840px) 100vw, 840px" /></figure>
<p>Slow Generic Inquiries in Acumatica are usually improved by reducing the work performed by the base inquiry before changing how the results look. Start with the business question, select only the required data sources and fields, join tables on the correct keys, filter early, limit unnecessary totals and rows, and test with representative data. Acumatica 2026 R2 grouped table views can make results easier to explore, but they use an existing Generic Inquiry as their data source and do not automatically correct an inefficient query.</p>
<p>This guide explains how to diagnose Acumatica Generic Inquiry performance without sacrificing the meaning of the report. It covers Generic Inquiry design, 2026 R2 grouped table views, dashboard refresh behavior, benchmarking, reconciliation, deployment controls, and the point at which a workload belongs in a different reporting architecture. The intended audience includes Acumatica administrators, functional consultants, report designers, developers, SQL specialists, finance leaders, operations managers, and quality assurance teams.</p>
<h2><a id="post-10870-toc"></a>Table of Contents</h2>
<p><a href="#post-10870-sec_01">Why Generic Inquiry performance is a business issue</a></p>
<p><a href="#post-10870-sec_02">How an Acumatica Generic Inquiry processes data</a></p>
<p><a href="#post-10870-sec_03">What changed with grouped table views in 2026 R2</a></p>
<p><a href="#post-10870-sec_04">Why grouped tables do not replace query optimization</a></p>
<p><a href="#post-10870-sec_05">Define the business question before editing the inquiry</a></p>
<p><a href="#post-10870-sec_06">Build a performance baseline that can be repeated</a></p>
<p><a href="#post-10870-sec_07">Recognize the main Generic Inquiry performance patterns</a></p>
<p><a href="#post-10870-sec_08">Choose the smallest correct set of data sources</a></p>
<p><a href="#post-10870-sec_09">Design table relations without multiplying records</a></p>
<p><a href="#post-10870-sec_10">Use conditions and parameters to reduce the working set</a></p>
<p><a href="#post-10870-sec_11">Control displayed rows and page size deliberately</a></p>
<p><a href="#post-10870-sec_12">Sort only when the result requires an order</a></p>
<p><a href="#post-10870-sec_13">Group and aggregate without changing the metric</a></p>
<p><a href="#post-10870-sec_14">Manage formulas and calculated fields carefully</a></p>
<p><a href="#post-10870-sec_15">Configure grouped table views for useful analysis</a></p>
<p><a href="#post-10870-sec_16">Improve dashboard performance at the consumption layer</a></p>
<p><a href="#post-10870-sec_17">Treat nested Generic Inquiries as dependencies</a></p>
<p><a href="#post-10870-sec_18">Prevent duplicate and missing results</a></p>
<p><a href="#post-10870-sec_19">Use a disciplined before and after test method</a></p>
<p><a href="#post-10870-sec_20">Worked test case for open sales orders</a></p>
<p><a href="#post-10870-sec_21">Worked test case for grouped accounts payable analysis</a></p>
<p><a href="#post-10870-sec_22">Worked test case for an executive dashboard</a></p>
<p><a href="#post-10870-sec_23">Reconcile performance changes with business totals</a></p>
<p><a href="#post-10870-sec_24">Deploy Generic Inquiry changes safely</a></p>
<p><a href="#post-10870-sec_25">Monitor performance after release</a></p>
<p><a href="#post-10870-sec_26">Know when a Generic Inquiry is the wrong tool</a></p>
<p><a href="#post-10870-sec_27">Generic Inquiry performance review checklist</a></p>
<p><a href="#post-10870-sec_28">Frequently Asked Questions</a></p>
<p><a href="#post-10870-sec_29">Sources</a></p>
<h2><a id="post-10870-sec_01"></a>Why Generic Inquiry performance is a business issue</h2>
<p>A slow inquiry is not merely an inconvenient screen. The same Generic Inquiry can feed a list, export, pivot table, dashboard widget, integration, OData request, AI feature, or user workflow. A design that performs adequately for one analyst can become expensive when it is placed on a dashboard opened by many users or refreshed throughout the day.</p>
<p>The business impact also depends on when the inquiry runs. A ten-second inquiry opened once during a monthly review may be tolerable. The same inquiry used by an order desk after every customer call can delay work. If several dashboard widgets rely on broad inquiries and refresh at short intervals, the cumulative load may affect users who are entering orders, releasing documents, or reviewing inventory.</p>
<p>Performance therefore needs an explicit service expectation. The team should identify who uses the inquiry, how often it runs, how current the data must be, how many rows users actually need, and what decision depends on the result. Without that context, optimization often removes useful detail or shifts work to another part of the system.</p>
<p>A sound performance review protects two outcomes at the same time:</p>
<ol>
<li>The inquiry returns quickly enough for its operational purpose.</li>
<li>The result still represents the correct business population, grain, and calculation.</li>
</ol>
<p>The second condition is essential. A fast inquiry that omits valid documents, duplicates amounts, or changes the definition of an open order is not optimized. It is wrong.</p>
<p><a href="#post-10870-toc"><strong>Back to TOC</strong></a></p>
<h2><a id="post-10870-sec_02"></a>How an Acumatica Generic Inquiry processes data</h2>
<p>An Acumatica Generic Inquiry is a configurable data request built on data access classes, commonly called DACs. The designer selects data sources, defines relations, applies conditions and parameters, specifies grouping and sorting, and chooses fields for the result grid. Acumatica then generates the request needed to retrieve and present the data. The official <a href="https://beacon.acumatica.com/r/Reporting-Tools-Guide/Managing-Generic-Inquiries/Creating-a-Generic-Inquiry/Creation-of-a-Generic-Inquiry-General-Information?contentId=TmAoEoZVjcScHi2M6s4cNQ">Creation of a Generic Inquiry</a> documentation describes this sequence and emphasizes that the design depends on the organization&#8217;s business needs.</p>
<p>It is useful to separate the work into four layers.</p>
<h3>Business definition</h3>
<p>This layer defines the question, population, grain, measures, and security. An inquiry may answer &#8220;Which sales orders are open&#8221; or &#8220;What is the total open order value by customer and week.&#8221; Those are different questions. They require different rows, fields, grouping, and validation.</p>
<h3>Query definition</h3>
<p>This layer includes DAC selection, relations, conditions, parameters, formulas, grouping, sorting, and limits. Most material performance problems begin here because these settings determine how much data must be joined, filtered, calculated, sorted, and returned.</p>
<h3>Presentation definition</h3>
<p>This layer controls how users see the result. In 2026 R2 it can be a table, pivot table, or grouped table view. Presentation can reduce visual clutter and help users reach the right level of detail, but it cannot make an overbroad or incorrectly joined base inquiry logically correct.</p>
<h3>Consumption pattern</h3>
<p>This layer covers dashboards, exports, OData consumers, automations, and repeated interactive use. The same query design creates different total load depending on refresh intervals, user count, filters, and concurrency.</p>
<p>The distinction prevents a common mistake: changing a widget or grouped view while leaving the expensive base request untouched. Diagnose each layer, then change the lowest layer that actually causes the problem.</p>
<p><a href="#post-10870-toc"><strong>Back to TOC</strong></a></p>
<h2><a id="post-10870-sec_03"></a>What changed with grouped table views in 2026 R2</h2>
<p>Acumatica 2026 R2 adds grouped table views as a formal data representation for Generic Inquiry results. A grouped table organizes records into an expandable hierarchy and can show summarized information together with underlying detail. According to Acumatica&#8217;s <a href="https://beacon.acumatica.com/r/Reporting-Tools-Guide/Managing-Inquiry-Result-Data-Views/Data-Views-General-Information?contentId=9~j98T6iS4Exyqw16I_7IQ">Data Views General Information</a>, the available representations are Table, Pivot Table, and Grouped Table.</p>
<p>The feature must be enabled through Grouped Table Views in Generic Inquiries on the Enable or Disable Features form, CS100000. Once enabled, users can create personal grouped views for inquiries they can access. Administrators can create shared views and can make an appropriate shared view the default for all users.</p>
<p>A grouped table can contain multiple group levels. Each level can have its own fields, sort order, aggregate values, and display settings. The details section can retain the underlying records, so a manager can start with a summary and expand a group when a total needs explanation. The official <a href="https://beacon.acumatica.com/r/Reporting-Tools-Guide/Managing-Inquiry-Result-Data-Views/Data-Views-Creating-and-Configuring-Grouped-Tables?contentId=IEHlAb6CAUmfjOXpnDXwkw">Grouped Table configuration</a> guidance explains how to create and configure these views.</p>
<p>For example, an accounts payable inquiry can be grouped first by vendor and then by financial period. A group level can display total and average document amounts, while the details section retains individual bills and adjustments. Acumatica&#8217;s <a href="https://beacon.acumatica.com/r/Reporting-Tools-Guide/Managing-Inquiry-Result-Data-Views/Data-Views-To-Create-and-Configure-a-Grouped-Table-View?contentId=7UiQhIMPm_8y31NKY653Qg">grouped table activity</a> uses this pattern to demonstrate a shared default view.</p>
<p>Grouped views can improve usability in several ways:</p>
<ul>
<li>Users can begin with summaries instead of scanning a flat result set.</li>
<li>Multiple analytical views can reuse one governed inquiry.</li>
<li>The underlying details remain available for investigation.</li>
<li>Administrators can standardize a shared view for a role or process.</li>
<li>Personal views let individual users organize the same governed data without cloning the inquiry.</li>
</ul>
<p>These are meaningful improvements, especially where teams previously created several near-duplicate inquiries to present the same facts at different levels.</p>
<p><a href="#post-10870-toc"><strong>Back to TOC</strong></a></p>
<h2><a id="post-10870-sec_04"></a>Why grouped tables do not replace query optimization</h2>
<p>A grouped table is a view of one Generic Inquiry&#8217;s results. Acumatica states that each data view uses an existing Generic Inquiry as its data source and that the inquiry&#8217;s parameters and filters apply to every representation. That means the grouped table and the base inquiry must be evaluated together.</p>
<p>If the underlying inquiry joins unnecessary DACs, returns years of history, calculates expensive formulas for every row, or multiplies records through an incorrect relation, a grouped presentation does not remove that work by definition. It may make the output easier to read, but the query still needs to produce the source data required by the view.</p>
<p>The practical rule is simple:</p>
<p><strong>Use grouped table views to improve how people explore a correct, appropriately scoped inquiry. Optimize the base Generic Inquiry to reduce unnecessary data work.</strong></p>
<p>This distinction also protects the business meaning of the result. Moving a metric into a grouped view may change where aggregation occurs. A detail inquiry grouped for display is not always equivalent to an inquiry designed to return one row per business entity. If a dashboard needs only one total, it may be better to build a narrowly scoped source inquiry than to return a large detail population and aggregate it later.</p>
<p>Before adopting a grouped table as a performance change, answer four questions:</p>
<ol>
<li>Does the base inquiry return fewer rows or perform fewer calculations after the change?</li>
<li>Does the grouped view merely collapse rows visually, or does it change the data request?</li>
<li>Are the same filters and parameters applied in both the baseline and revised tests?</li>
<li>Do totals and distinct business keys reconcile at every group level?</li>
</ol>
<p>If the first answer is no, describe the grouped table as a usability improvement rather than a query optimization.</p>
<p><a href="#post-10870-toc"><strong>Back to TOC</strong></a></p>
<h2><a id="post-10870-sec_05"></a>Define the business question before editing the inquiry</h2>
<p>The fastest useful Generic Inquiry is the smallest correct request for a defined decision. Performance work should therefore begin with a one-sentence business question, not with the Generic Inquiry screen.</p>
<p>Consider the difference between these requests:</p>
<ul>
<li>List all open sales order lines.</li>
<li>Show open sales order value by customer.</li>
<li>Show orders ready to ship today by warehouse.</li>
<li>Count overdue shipments for an executive dashboard.</li>
</ul>
<p>The first request needs line-level detail. The second needs a customer-level measure and may not need every line field. The third needs operational filters and warehouse data. The fourth may need only a narrow population and a count. Reusing one broad inquiry for all four tasks is convenient during prototyping but can be expensive and difficult to validate.</p>
<p>Document the following before changing the design:</p>
<ul>
<li><strong>Population:</strong> Which records qualify and which must be excluded.</li>
<li><strong>Grain:</strong> What one result row represents.</li>
<li><strong>Measures:</strong> Which amounts, quantities, counts, dates, or statuses matter.</li>
<li><strong>Dimensions:</strong> Which fields users need for grouping, filtering, or explanation.</li>
<li><strong>Freshness:</strong> How current the result must be.</li>
<li><strong>Audience:</strong> Who can see the data and who owns its definition.</li>
<li><strong>Consumption:</strong> Screen, dashboard, export, OData, automation, or another use.</li>
<li><strong>Acceptance criteria:</strong> Required totals, sample records, and response-time target.</li>
</ul>
<p>This brief is also the basis for reconciliation. If the grain is &#8220;one row per sales order,&#8221; the test must compare distinct orders, not only the number of result rows. If the measure is &#8220;open amount,&#8221; the team must define how holds, cancellations, partial shipments, tax, currency, and released documents affect the total.</p>
<p><a href="#post-10870-toc"><strong>Back to TOC</strong></a></p>
<h2><a id="post-10870-sec_06"></a>Build a performance baseline that can be repeated</h2>
<p>An optimization claim is credible only when the baseline and revised inquiry are tested under comparable conditions. Capture the baseline before editing the inquiry, even when the problem appears obvious.</p>
<p>Use a test tenant or controlled nonproduction environment with representative data. Record the Acumatica version and build, enabled features, database or hosting context, inquiry identifier, filters, user role, and relevant customization packages. Performance observed on a small demonstration dataset cannot predict a production tenant with several years of transactions and concurrent users.</p>
<p>For each test scenario, record:</p>
<ul>
<li>Time from request to usable result.</li>
<li>Number of rows returned.</li>
<li>Distinct count of the primary business key.</li>
<li>Key totals or aggregates.</li>
<li>Selected parameter values and filters.</li>
<li>Whether record counts and totals were enabled.</li>
<li>Records per page and Select Top settings.</li>
<li>Dashboard refresh or cache setting when applicable.</li>
<li>First-run and repeated-run behavior.</li>
<li>Any server, database, or application evidence available to the responsible technical team.</li>
</ul>
<p>Run each scenario more than once. A single result may be influenced by caching, competing activity, or network conditions. For operational comparison, use the same sequence of tests and report the median together with a slower percentile such as the 95th percentile when the sample size is sufficient. These are measurement practices, not Acumatica performance guarantees.</p>
<p>The baseline should include at least one typical case and one legitimate heavy case. A date range covering the current week may represent daily work, while a full financial year may represent period-end analysis. Do not benchmark an artificially narrow filter and then claim that the inquiry is fast for all users.</p>
<p><a href="#post-10870-toc"><strong>Back to TOC</strong></a></p>
<h2><a id="post-10870-sec_07"></a>Recognize the main Generic Inquiry performance patterns</h2>
<p>Most slow Generic Inquiries fall into one or more recurring patterns. Recognizing the pattern helps the team avoid random changes.</p>
<h3>Broad population</h3>
<p>The inquiry loads far more records than the user needs. Common signs include no required date parameter, an all-branches default, historical closed documents mixed with current exceptions, or a dashboard widget that queries the full table to show one number.</p>
<h3>Row multiplication</h3>
<p>The result contains duplicate business entities or unexpectedly high totals because a one-to-many relation is joined at the wrong grain. Adding another detail table can multiply existing detail rows. A cross join is especially dangerous because the result size is the number of rows in one source multiplied by the number in the other, as the <a href="https://beacon.acumatica.com/r/Form-Reference-Guide/Customization-Forms/Generic-Inquiry?contentId=fJqbK0HDUtE4ZDuP87hohQ">Generic Inquiry form reference</a> explains.</p>
<h3>Expensive presentation work</h3>
<p>The inquiry returns many columns, sorts a large population, calculates formulas, loads record counts and totals, or requests an excessive page size. Each operation may be reasonable alone but costly in combination.</p>
<h3>Repeated consumption</h3>
<p>An inquiry that is acceptable interactively becomes expensive when several widgets, users, or integrations run it repeatedly. Very short dashboard refresh intervals can turn a modest query into a continuous workload.</p>
<h3>Incorrect aggregation</h3>
<p>The inquiry groups at one level but includes fields or formulas that imply another. The system may need to calculate more than expected, and the output may be misleading even if it loads quickly.</p>
<h3>Nested complexity</h3>
<p>One Generic Inquiry uses another as a data source, which may itself depend on additional inquiries. Reuse can improve governance, but deep or broad dependency chains make the total work harder to see and test.</p>
<h3>Environmental contention</h3>
<p>The inquiry design may be sound, but performance changes during imports, releases, integrations, backups, or other heavy activity. Query optimization alone cannot resolve capacity or scheduling problems. The baseline must capture when the slowdown occurs.</p>
<p><a href="#post-10870-toc"><strong>Back to TOC</strong></a></p>
<h2><a id="post-10870-sec_08"></a>Choose the smallest correct set of data sources</h2>
<p>Every data source should have a stated purpose. If the inquiry only needs fields from a sales order header, adding line, shipment, invoice, customer location, and inventory DACs creates work and changes the possible grain. Remove a data source only after confirming that it is not required for a condition, parameter, formula, security rule, navigation link, or result field.</p>
<p>Acumatica&#8217;s documentation recommends identifying the DACs and fields behind the relevant forms before creating an inquiry. The <a href="https://beacon.acumatica.com/r/Reporting-Tools-Guide/Managing-Generic-Inquiries/Discovering-DACs/DAC-Discovery-General-Information">DAC Discovery</a> guidance explains that users access database data through DACs and that the selected fields become result columns or inputs to the report design.</p>
<p>Use this review sequence:</p>
<ol>
<li>Mark the parent business entity that defines one intended row.</li>
<li>List every output field and identify its source.</li>
<li>List every condition, parameter, formula, grouping field, and navigation field.</li>
<li>Remove fields that no consumer uses.</li>
<li>Identify data sources that remain only because of removed fields.</li>
<li>Retest the inquiry after each logically related change.</li>
</ol>
<p>Selecting fewer result columns can improve network transfer and rendering, but the larger gain often comes from eliminating an unnecessary one-to-many source. If a field is needed only for drill-down, consider whether navigation to the source record can replace copying many descriptive columns into the result.</p>
<p>Do not select a base DAC solely because its name looks familiar. Inspect the form field, DAC schema, keys, and relationships. Acumatica documents that DAC key fields can be discovered through the schema browser and recommends key and foreign key fields for relations because they allow faster retrieval. See <a href="https://beacon.acumatica.com/r/Reporting-Tools-Guide/Managing-Generic-Inquiries/Getting-Data-from-Multiple-Data-Sources/Data-from-Multiple-Data-Sources-Discovery-of-Key-Fields?contentId=68xKv7WXGcGNqxUszDIg2A">Discovery of Key Fields</a>.</p>
<p><a href="#post-10870-toc"><strong>Back to TOC</strong></a></p>
<h2><a id="post-10870-sec_09"></a>Design table relations without multiplying records</h2>
<p>Relations determine both performance and correctness. The designer must know the cardinality of each pair: one-to-one, one-to-many, or many-to-many. The order and type of joins also affect which records survive and how many rows the result contains.</p>
<p>Acumatica&#8217;s <a href="https://beacon.acumatica.com/r/Reporting-Tools-Guide/Managing-Generic-Inquiries/Getting-Data-from-Multiple-Data-Sources/Data-from-Multiple-Data-Sources-General-Information?contentId=DOSUazszvBUsHHoK9Yl6qQ">multiple data sources</a> documentation explains that sources are paired as parent and child, and the sequence of pairs determines how the system builds the combined data. The Related Tables dialog can propose relationships, but the designer remains responsible for confirming that the relation matches the business question.</p>
<h3>Verify complete keys</h3>
<p>Many Acumatica documents use composite keys. Joining only on a reference number while ignoring document type, company, branch, or another key component can connect unrelated records. Use the full logical relationship required by the DACs and business process.</p>
<h3>Choose the join type intentionally</h3>
<p>An inner join keeps only records with a match in both sources. A left join keeps every parent record and adds matching child data when available. Changing an inner join to a left join can recover missing parents, but it can also introduce null child fields. Changing a left join to an inner join may reduce rows while silently excluding valid business records.</p>
<h3>Count at the intended grain</h3>
<p>Suppose 100 sales orders average five lines and each line has two related allocation records. A header-to-line-to-allocation result can contain approximately 1,000 rows before other relationships are added. Counting rows would not count orders. Summing a header amount across those rows could multiply the value. The correct design depends on whether the intended grain is order, line, or allocation.</p>
<h3>Avoid cross joins unless the business case requires them</h3>
<p>A cross join combines every row from one source with every row from another. Even small sources can create a large result. Cross joins should be treated as a deliberate analytical operation with a bounded dataset, not a shortcut for an unresolved relationship.</p>
<h3>Validate optional relationships</h3>
<p>When child data is optional, test parents with no child, one child, and multiple children. This reveals both missing rows and multiplication. Keep a small set of known business records for regression testing after every relation change.</p>
<p><a href="#post-10870-toc"><strong>Back to TOC</strong></a></p>
<h2><a id="post-10870-sec_10"></a>Use conditions and parameters to reduce the working set</h2>
<p>Conditions and parameters are among the most effective ways to reduce unnecessary work, but they serve different purposes. A condition defines what the inquiry includes by default. A parameter lets the user supply a value in the selection area and can narrow the result for a particular task.</p>
<p>Acumatica&#8217;s <a href="https://beacon.acumatica.com/r/Reporting-Tools-Guide/Managing-Generic-Inquiries/Using-Conditions-and-Parameters/Conditions-and-Parameters-Condition-Configuration?contentId=n8Pw3pT01_fftEWDvHA3zA">condition configuration</a> documentation shows how conditions combine fields, operators, values, parentheses, and And or Or logic. Treat the Boolean expression as code. A misplaced bracket or broad Or clause can change both performance and meaning.</p>
<p>Useful default conditions often include:</p>
<ul>
<li>Current or open status when the inquiry supports operational work.</li>
<li>A bounded transaction date or financial period.</li>
<li>A branch, company, warehouse, project, or customer scope appropriate to the audience.</li>
<li>Exclusion of deleted, archived, voided, or completed records when those records do not serve the decision.</li>
<li>A clear exception condition for dashboards designed for management by exception.</li>
</ul>
<p>Parameters should reflect natural user decisions. A warehouse manager may choose warehouse and promised date. A controller may choose branch and financial period. Requiring a parameter can prevent accidental all-history requests, but it can also make an inquiry unusable for scheduled or integrated consumers. Confirm how every consumer supplies the parameter.</p>
<p>Avoid formulas around fields used for filtering when a direct comparison can express the same rule. A transformation applied to every candidate row may make the condition harder to evaluate efficiently. When date logic is needed, prefer bounded start and end values that preserve the intended time zone and business definition.</p>
<p>Test empty, default, typical, and extreme parameter values. A default that means &#8220;all&#8221; may defeat the performance objective. A default date based on the current day may be correct for one role and wrong for another. Record the default behavior in the inquiry&#8217;s documentation and test plan.</p>
<p><a href="#post-10870-toc"><strong>Back to TOC</strong></a></p>
<h2><a id="post-10870-sec_11"></a>Control displayed rows and page size deliberately</h2>
<p>The Interface Options settings on the Generic Inquiry form include Select Top and Records per Page. They affect how many records the user receives and sees, but they should not be used to hide an undefined population.</p>
<p>Acumatica&#8217;s <a href="https://beacon.acumatica.com/r/Reporting-Tools-Guide/Managing-Generic-Inquiries/Modifying-Inquiry-Results/Modification-of-Inquiry-Results-The-Number-of-Records-Shown?contentId=rO1D4c45NIpE4H5_TJcOfg">Number of Records Shown</a> documentation states that Select Top limits the displayed result after the specified sort order is applied. It also warns that excessively large Select Top or Records per Page values can increase processing time and degrade server performance.</p>
<p>Use Select Top when the business question is genuinely about a ranked subset, such as the 50 oldest overdue shipments or the 25 largest open balances. Define an explicit sort that makes the subset deterministic. &#8220;Top 50&#8221; without a business order can return an unstable or meaningless selection.</p>
<p>Use Records per Page to support readable interaction. A larger page can reduce paging clicks but increases the amount rendered at once. Test the page size with the actual number and width of columns. A narrow inquiry with ten fields behaves differently from a result with dozens of wide calculated columns.</p>
<p>Acumatica 2026 R2 also exposes an option to disable record counts and totals. The form reference states that hiding the number of records or pages can make the associated inquiry load faster. This is appropriate when users do not need the count or footer totals for the decision. It is not appropriate when the count itself is the control being monitored.</p>
<p>Do not confuse display limits with data correctness. If a user exports data or a widget applies a separate aggregation, verify how the limit affects that consumer. Document any intentional truncation prominently enough that users do not treat a partial result as a complete population.</p>
<p><a href="#post-10870-toc"><strong>Back to TOC</strong></a></p>
<h2><a id="post-10870-sec_12"></a>Sort only when the result requires an order</h2>
<p>Sorting is valuable when order conveys meaning, such as oldest first, largest variance first, or customer then document date. Sorting a large result by several fields also requires work, so each sort field should support a user task or a deterministic limit.</p>
<p>Acumatica&#8217;s <a href="https://beacon.acumatica.com/r/Reporting-Tools-Guide/Managing-Generic-Inquiries/Applying-Sorting-and-Grouping/Sorting-and-Grouping-General-Information?contentId=~XH968FHx2RFPe8RI1sgQQ">Sorting and Grouping</a> documentation explains that the Sort Order tab defines the default order and that user-defined sorting can override it. When no explicit sort is defined, Acumatica uses a default order and shows a warning in the tab.</p>
<p>Review sorting with these questions:</p>
<ul>
<li>Does the user need the order, or is it decorative?</li>
<li>Does Select Top depend on this order?</li>
<li>Can the same business order be expressed with fewer fields?</li>
<li>Is a text formula being sorted where a native date or numeric field would be clearer?</li>
<li>Does a dashboard widget apply its own order or display only an aggregate?</li>
</ul>
<p>Remove redundant sorts, but keep the fields required to make a limited result stable. For example, sorting by requested date alone may leave many ties. Adding a document key as a final sort can make the result repeatable without changing the primary business order.</p>
<p><a href="#post-10870-toc"><strong>Back to TOC</strong></a></p>
<h2><a id="post-10870-sec_13"></a>Group and aggregate without changing the metric</h2>
<p>Grouping can reduce a detail population to one row per business dimension, but only when the selected aggregate functions match the field types and the intended measure. Acumatica supports AVG, COUNT, MAX, MIN, SUM, and STRINGAGG in the Generic Inquiry grouping configuration. The official grouping guidance notes that numeric fields default to SUM and other fields default to MAX when no aggregate is selected, while calculated fields require deliberate aggregate choices.</p>
<p>Start by writing the metric in plain language. &#8220;Open order value by customer&#8221; requires a definition of open order value and one output group per customer. If header amounts repeat across joined lines, summing the header amount after the join is wrong. The correct source may be a line amount, an already aggregated source inquiry, or a design that preserves one header row.</p>
<p>Pay close attention to these cases:</p>
<ul>
<li><strong>COUNT versus distinct business entities:</strong> A row count after a detail join may count lines or allocations rather than documents.</li>
<li><strong>SUM of repeated header fields:</strong> The same order total can repeat for each child row.</li>
<li><strong>AVG after uneven duplication:</strong> Customers with more detail rows may receive unintended weight.</li>
<li><strong>MAX used as a placeholder:</strong> MAX can select one value from a group without proving that all rows share that value.</li>
<li><strong>STRINGAGG growth:</strong> Concatenating many values can create large strings that are hard to use and expensive to render.</li>
<li><strong>Null behavior:</strong> Aggregate functions may ignore null values, which can affect counts and averages.</li>
</ul>
<p>Create reconciliation totals at both the overall and group level. If the inquiry groups by branch and customer class, validate a few known branches, then compare the grand total to an independent source. Do not accept a grand total alone because errors in different groups can offset one another.</p>
<p><a href="#post-10870-toc"><strong>Back to TOC</strong></a></p>
<h2><a id="post-10870-sec_14"></a>Manage formulas and calculated fields carefully</h2>
<p>Formulas make Generic Inquiries flexible, but they can add per-row work and create subtle differences between detail and grouped results. Every formula should have an owner, a business definition, a data type, and a test set.</p>
<p>Use native fields when they already represent the required value. Recalculating status labels, dates, or amounts through nested expressions can make the inquiry harder to maintain and may prevent straightforward filtering or grouping. When a formula is necessary, keep it as simple as the rule allows and avoid repeating the same expression across several result fields.</p>
<p>Test formula behavior for:</p>
<ul>
<li>Null values and empty strings.</li>
<li>Zero denominators.</li>
<li>Currency and unit conversions.</li>
<li>Time zones and date boundaries.</li>
<li>Negative values and credit documents.</li>
<li>Rounding before and after aggregation.</li>
<li>Text values stored differently from their displayed labels.</li>
<li>Grouped results where the formula references a nonaggregated field.</li>
</ul>
<p>Acumatica&#8217;s grouping documentation warns that the aggregate function must match the field type and that calculated columns need a manually selected aggregate because no single default works for every formula. A runtime error is visible; a logically wrong aggregate is more dangerous because it can look plausible.</p>
<p>If a formula is used only for display styling, determine whether the style is worth the cost on a large result. If it drives a condition or business decision, include it in the reconciliation evidence. Formula changes should be treated as calculation changes, not cosmetic edits.</p>
<p><a href="#post-10870-toc"><strong>Back to TOC</strong></a></p>
<h2><a id="post-10870-sec_15"></a>Configure grouped table views for useful analysis</h2>
<p>A grouped table should reflect how users investigate a question. More hierarchy is not automatically better. Deep groups create extra navigation and can hide the level at which a total is defined.</p>
<p>Use this configuration sequence:</p>
<ol>
<li>Select a base inquiry with a documented grain and validated totals.</li>
<li>Choose the first group that matches the user&#8217;s primary decision, such as vendor, customer, warehouse, project, or branch.</li>
<li>Add a second group only when it supports a common drill path, such as financial period within vendor.</li>
<li>Select aggregate fields that reconcile to the base inquiry.</li>
<li>Choose a meaningful sort within each group.</li>
<li>Decide which groups open expanded or collapsed based on typical result size.</li>
<li>Show only fields needed at each level.</li>
<li>Test personal, shared, and default behavior with appropriate roles.</li>
</ol>
<p>The grouped view should not become a substitute for a clearly scoped base inquiry. If users always filter to the current month, put that requirement in a parameter or shared filter. If executives need only a total and an exception count, a dedicated summary inquiry may be more appropriate than a detailed grouped view.</p>
<p>When making a shared view the default for all users, consider whether every role interprets the groups the same way. A controller may start with branch and period, while an operations manager may start with warehouse and promised date. Separate views can reuse the same inquiry when the underlying data and security are genuinely shared.</p>
<p>Validate the view on the expected screen width and with long labels, empty groups, negative totals, and large groups. A technically correct hierarchy can still be slow to use if users must expand many nodes or scroll across unnecessary columns.</p>
<p><a href="#post-10870-toc"><strong>Back to TOC</strong></a></p>
<h2><a id="post-10870-sec_16"></a>Improve dashboard performance at the consumption layer</h2>
<p>Dashboard performance depends on the source inquiry, the number of widgets, filters, parameters, refresh intervals, and user behavior. Acumatica&#8217;s <a href="https://beacon.acumatica.com/r/Reporting-Tools-Guide/Configuring-Widgets/Specific-Widgets-Table-Widgets?contentId=irFvQS1lNQ8cZJ8g5_54WA">Table Widgets</a> documentation confirms that data table widgets display data collected by a Generic Inquiry. KPI widgets also select a source inquiry and aggregate a chosen field.</p>
<p>Start by inventorying every widget on the dashboard. Record its source inquiry, filter, parameters, displayed fields, record limit, aggregate function, and refresh setting. Two widgets that appear simple may each run a broad inquiry independently.</p>
<h3>Match refresh intervals to business freshness</h3>
<p>Acumatica allows widget caching and refresh intervals. The <a href="https://beacon.acumatica.com/r/Reporting-Tools-Guide/Configuring-Widgets/Widget-Settings-General-Information?contentId=lQ65t6vAGxaQD4pNZn3~Gg">Widget Settings</a> documentation explains that cached data is reused when it is newer than the configured interval. Selecting On Page Reload disables that reuse and updates data whenever the dashboard opens or refreshes.</p>
<p>Use the longest interval that still supports the decision. A weekly trend does not need a five-minute refresh. An order exception widget may need fresher data, but it should also use narrow conditions. Document the expected delay so users know whether the dashboard is current to five minutes, an hour, or a day.</p>
<h3>Give each widget a bounded question</h3>
<p>A scorecard should not rely on a detail inquiry that returns many unused columns. A table widget should have a reasonable record limit and should show only actionable rows. Shared filters and dashboard parameters can narrow data, but the source inquiry still needs a safe default.</p>
<h3>Reduce simultaneous work</h3>
<p>Remove duplicate widgets, consolidate overlapping metrics when the design remains understandable, and avoid placing every available chart on a home page. A dashboard used by hundreds of users creates a different workload from a specialist dashboard opened occasionally.</p>
<h3>Test the dashboard as a dashboard</h3>
<p>An inquiry tested alone may perform differently when several widgets load together. Measure the complete page, observe which widget finishes last, and test with the relevant user role. Include cache-expired and cache-valid scenarios.</p>
<p>For a broader view of how reporting, dashboards, and AI features fit into the current platform, see Biz-Tech&#8217;s <a href="https://biz-techservices.com/archives/10734">Acumatica Agentic ERP 2026 guide</a>. Treat each feature as a consumer of governed data, not as a reason to expose a broad inquiry without controls.</p>
<p><a href="#post-10870-toc"><strong>Back to TOC</strong></a></p>
<h2><a id="post-10870-sec_17"></a>Treat nested Generic Inquiries as dependencies</h2>
<p>Acumatica 2026 R2 allows a Generic Inquiry to use another Generic Inquiry as a data source. The official <a href="https://beacon.acumatica.com/r/Reporting-Tools-Guide/Managing-Generic-Inquiries/Getting-Data-from-Multiple-Data-Sources/Data-from-Multiple-Data-Sources-Use-of-Generic-Inquiry-as-Data-Source?contentId=~C_GTFyXIS6fPpt~O~nldg">Generic Inquiry as Data Source</a> documentation states that multiple simple inquiries can be combined into a more complex request and that the system prevents circular parent relationships.</p>
<p>This reuse can improve governance. A validated base inquiry can define a shared fact set, and several parent inquiries can apply different presentation or business rules. It can also hide complexity if the dependency chain is not documented.</p>
<p>For every nested source, record:</p>
<ul>
<li>Source inquiry title and identifier.</li>
<li>Intended grain and population.</li>
<li>Parameters and defaults.</li>
<li>Fields exposed to the parent.</li>
<li>Parent inquiries and widgets that depend on it.</li>
<li>Owner and last validation date.</li>
<li>Expected performance range for representative inputs.</li>
</ul>
<p>Avoid nesting merely to avoid understanding the underlying DACs. Each level should provide a stable, reusable contract. If a child inquiry returns more fields or rows than the parent needs, consider a narrower source. If several parents independently apply the same corrective filters, the shared source definition may be incomplete.</p>
<p>When changing a source inquiry, test every known parent. Acumatica can warn about deleted source fields, but it cannot determine whether a retained field now has a different business meaning. Dependency testing must cover totals, sample records, filters, navigation, exports, and performance.</p>
<p><a href="#post-10870-toc"><strong>Back to TOC</strong></a></p>
<h2><a id="post-10870-sec_18"></a>Prevent duplicate and missing results</h2>
<p>Performance tuning often changes relations and filters, the same settings that determine which records appear. Build correctness tests before making those changes.</p>
<p>Use a controlled sample that includes:</p>
<ul>
<li>A parent with no child record.</li>
<li>A parent with one child.</li>
<li>A parent with several children.</li>
<li>Two document types that share a reference number pattern.</li>
<li>Records across branches or companies where relevant.</li>
<li>A null optional value.</li>
<li>A closed or voided record near the filter boundary.</li>
<li>A record exactly on the start and end date.</li>
<li>A negative or credit amount.</li>
<li>A record the test user cannot access.</li>
</ul>
<p>Then validate several dimensions of the output.</p>
<h3>Population completeness</h3>
<p>Confirm that qualifying business entities appear and excluded entities do not. Compare known document keys, not only row counts.</p>
<h3>Grain integrity</h3>
<p>Confirm what one row represents after each join. If the intended grain is order line, use a composite key that identifies the line. Check for duplicate keys.</p>
<h3>Measure reconciliation</h3>
<p>Compare counts, quantities, and amounts with a trusted form, report, or independently validated query. State whether the source uses document currency, base currency, signed amounts, or another convention.</p>
<h3>Security behavior</h3>
<p>Run the inquiry as representative roles. An administrator&#8217;s correct result does not prove that a restricted user sees the right population or that the inquiry avoids exposing sensitive fields.</p>
<h3>Boundary behavior</h3>
<p>Test dates, periods, statuses, and amounts exactly at the condition boundary. A greater-than condition and a greater-than-or-equal condition can produce different operational lists.</p>
<p>Do not accept a faster result until these tests pass. Performance and correctness are one release decision.</p>
<p><a href="#post-10870-toc"><strong>Back to TOC</strong></a></p>
<h2><a id="post-10870-sec_19"></a>Use a disciplined before and after test method</h2>
<p>The purpose of before-and-after testing is to isolate the effect of a specific design change while preserving the business result. Use one change set at a time whenever practical.</p>
<h3>Prepare the test</h3>
<p>Copy the inquiry rather than overwriting the only working version. Freeze the test data or record the data snapshot time. Use the same user, role, parameters, browser path, and environment. Identify any integrations or batch processes that could distort the run.</p>
<h3>Run the baseline</h3>
<p>Execute the original inquiry several times for each scenario. Record usable response time, row count, distinct key count, totals, and errors. For dashboard cases, record complete dashboard load time and individual widget behavior where visible.</p>
<h3>Apply one coherent change</h3>
<p>Examples include correcting one relation, adding a required date parameter, removing an unused detail DAC, changing an excessive page size, disabling unused counts, or adjusting one widget refresh interval. Avoid combining many unrelated changes in the first comparison because the team will not know which change mattered.</p>
<h3>Run the revised test</h3>
<p>Repeat the same sequence. Compare the distribution of times, not only the fastest run. Confirm that the result has the same intended population and measures. If the change intentionally alters the population, document the new definition and validate it as a functional change.</p>
<h3>Decide with evidence</h3>
<p>Promote the change only when it improves the relevant user experience or resource use and passes reconciliation. A small speed difference may not justify added complexity. A major improvement that changes totals requires correction before release.</p>
<p>Maintain a compact evidence record containing the inquiry versions, settings changed, test cases, results, reconciliation, reviewer names, and approval. This makes later regression diagnosis much faster.</p>
<p><a href="#post-10870-toc"><strong>Back to TOC</strong></a></p>
<h2><a id="post-10870-sec_20"></a>Worked test case for open sales orders</h2>
<p>This test case illustrates the method without claiming a universal performance result. Actual timing must come from the customer&#8217;s build, dataset, hosting model, customizations, security role, and workload.</p>
<h3>Business question</h3>
<p>Which open sales orders require attention for a selected warehouse and promised-date range, with one row per sales order line?</p>
<h3>Common slow design</h3>
<p>The inquiry defaults to all warehouses and all dates. It joins order header, order line, allocation, shipment, customer, address, and inventory sources even though the operational list needs only order, line, customer name, warehouse, promised date, quantity, and status. Several wide description fields are returned. The result is sorted by customer name, order date, inventory description, and reference number. Records per Page is set to a very large value.</p>
<h3>Review plan</h3>
<p>First, confirm the required grain is one order line. Then identify which joins create multiple rows per line. Make warehouse and date-range parameters part of the normal workflow. Remove sources and columns that do not support the list, filters, navigation, or security. Keep a deterministic sort based on promised date and document keys. Select a usable page size.</p>
<h3>Correctness controls</h3>
<p>Use known orders with no allocation, one allocation, and multiple allocations. Confirm that the line quantity is not multiplied. Reconcile distinct order and line keys. Check orders exactly on the date boundaries and orders with partial shipment activity. Compare the population to the source sales order form using the same definition of open.</p>
<h3>Performance evidence</h3>
<p>Run the original and revised inquiries with the same warehouse and date range. Record repeated response times, returned rows, distinct line keys, and totals. Then test the legitimate heavy case, such as a broader date range used during backlog review. The revised inquiry is accepted only if both cases remain correct and the operational case improves meaningfully.</p>
<h3>Expected design lesson</h3>
<p>The likely improvement comes from scoping the population and removing unnecessary relational work, not from hiding rows after retrieval. The exact benefit cannot be promised before testing.</p>
<p><a href="#post-10870-toc"><strong>Back to TOC</strong></a></p>
<h2><a id="post-10870-sec_21"></a>Worked test case for grouped accounts payable analysis</h2>
<p>This scenario uses the 2026 R2 grouped table capability for its intended analytical purpose.</p>
<h3>Business question</h3>
<p>Show accounts payable documents by vendor and financial period, with total and average document amount at the period level and access to individual documents for explanation.</p>
<h3>Base inquiry requirements</h3>
<p>The base inquiry must return the correct AP document population with a documented grain. It should include the vendor, financial period, document key, document date, status, and amount fields required by the grouped view. Conditions should define whether released, open, voided, and adjustment documents are included.</p>
<h3>Grouped view design</h3>
<p>Create a grouped table view with vendor as the first level and financial period as the second. Add total amount and average amount at the period level. Keep document details available beneath the group. Choose whether groups open collapsed based on the typical vendor and period count. An administrator may create a shared default view if this hierarchy suits the audience.</p>
<h3>Performance interpretation</h3>
<p>The grouped view may help users reach summaries without scanning a flat list. Do not state that it makes the base query faster unless the measured request changes. Compare the base table and grouped view with the same parameters, and separately measure user task completion if usability is the objective.</p>
<h3>Correctness controls</h3>
<p>Reconcile each vendor-period total to the base inquiry and to an accepted AP source. Check vendors with credit adjustments, multiple currencies, null optional fields, and no activity in a period. Confirm that the average uses the intended document population and that null values are handled as expected.</p>
<h3>Expected design lesson</h3>
<p>Grouped table views can replace cloned presentation inquiries when one validated source supports several useful hierarchies. Their strongest benefit is governed exploration, while query efficiency still depends on the base inquiry.</p>
<p><a href="#post-10870-toc"><strong>Back to TOC</strong></a></p>
<h2><a id="post-10870-sec_22"></a>Worked test case for an executive dashboard</h2>
<p>Executive dashboards often reveal consumption problems because several broad queries run together.</p>
<h3>Business question</h3>
<p>Show the count and value of overdue shipments, the value of open orders, and a short list of the oldest exceptions, with data fresh enough for daily management.</p>
<h3>Common slow design</h3>
<p>Three widgets use broad detail inquiries. Each loads on every page refresh. The scorecards aggregate columns from inquiries that return many unused fields. The exception table shows hundreds of rows even though leaders act on the oldest twenty. The dashboard is set as a home page for a large user group.</p>
<h3>Review plan</h3>
<p>Define a narrow source for each distinct metric or a carefully governed shared source when the population is identical. Apply default exception conditions. Use only the fields required for the widget. Give the table an intentional record limit and sort. Set refresh intervals according to business freshness rather than defaulting every widget to On Page Reload.</p>
<h3>Correctness controls</h3>
<p>Reconcile the scorecard counts and values to the underlying exception population. Verify that the table&#8217;s top records correspond to the defined order. Test with the roles that receive the dashboard. Confirm the timestamp and refresh expectation are understandable to users.</p>
<h3>Performance evidence</h3>
<p>Measure the dashboard after cached data has expired and again while the cache remains valid. Record full page readiness and identify any widget that lags. Test concurrent access appropriate to the user population when the environment and responsible technical team support it.</p>
<h3>Expected design lesson</h3>
<p>Dashboard performance is a system of query scope, widget count, caching, refresh intervals, and audience size. Improving only the visual layout does not address repeated database work.</p>
<p><a href="#post-10870-toc"><strong>Back to TOC</strong></a></p>
<h2><a id="post-10870-sec_23"></a>Reconcile performance changes with business totals</h2>
<p>Reconciliation turns a technical optimization into an auditable business change. It should be designed before the test, not added after a discrepancy appears.</p>
<p>Use three levels of reconciliation.</p>
<h3>Record reconciliation</h3>
<p>Compare known business keys between original, revised, and trusted sources. Explain every missing or added key. For large populations, use counts and automated comparisons, then inspect a risk-based sample.</p>
<h3>Aggregate reconciliation</h3>
<p>Compare counts, quantities, and amounts overall and by meaningful groups. Useful groups include branch, warehouse, status, period, document type, customer class, and currency. Group-level comparison identifies offsetting errors that a grand total can hide.</p>
<h3>Rule reconciliation</h3>
<p>Verify that each condition implements the written business rule. A status label may combine several stored values. A date may represent order date, requested date, shipment date, or financial period. A balance may be in document or base currency. Document the rule beside the test evidence.</p>
<p>Set acceptance tolerances deliberately. Record counts and discrete document totals usually require exact agreement. Calculated currency amounts may require a defined rounding tolerance. Response times require a target range and sample size rather than one perfect run.</p>
<p>When totals differ, stop and classify the difference:</p>
<ul>
<li>The original inquiry was wrong and the revised result corrects it.</li>
<li>The revised inquiry introduced a defect.</li>
<li>The business definition changed.</li>
<li>The test data changed between runs.</li>
<li>Security or parameters differed.</li>
<li>Rounding, null handling, or aggregation changed.</li>
</ul>
<p>Do not average these causes into a vague explanation. Resolve and approve the specific difference.</p>
<p><a href="#post-10870-toc"><strong>Back to TOC</strong></a></p>
<h2><a id="post-10870-sec_24"></a>Deploy Generic Inquiry changes safely</h2>
<p>Generic Inquiries can become infrastructure. They may support dashboards, exports, integration endpoints, automation, AI features, and user navigation. A change that looks local can affect several consumers.</p>
<p>Use a controlled deployment process:</p>
<ol>
<li>Copy or export the current inquiry and dependent views before modification.</li>
<li>Record the inquiry identifier, site map location, access rights, and consumers.</li>
<li>Make and test the change in a nonproduction environment with representative data.</li>
<li>Run functional, reconciliation, performance, and security tests.</li>
<li>Review dependent dashboards, pivot tables, grouped views, OData consumers, and nested inquiries.</li>
<li>Schedule the release when rollback and observation are practical.</li>
<li>Recheck parameters, filters, roles, shared views, and default views after deployment.</li>
<li>Monitor response time, errors, totals, and user-reported differences.</li>
</ol>
<p>Acumatica&#8217;s 2026 R2 release introduces wider platform changes beyond grouped tables. If the inquiry work is part of an upgrade, coordinate it with the broader readiness plan in Biz-Tech&#8217;s <a href="https://biz-techservices.com/archives/10770">Acumatica 2026 R2 Upgrade Guide</a>. Version, feature enablement, Modern UI behavior, customizations, and connected products can all affect the test scope.</p>
<p>Avoid editing a predefined inquiry directly when a copy is the safer governance choice. Use clear naming and descriptions so users can distinguish the supported version. Retire obsolete copies after confirming no consumer depends on them; otherwise, near-duplicate inquiries create confusion and inconsistent totals.</p>
<p><a href="#post-10870-toc"><strong>Back to TOC</strong></a></p>
<h2><a id="post-10870-sec_25"></a>Monitor performance after release</h2>
<p>Performance changes as transaction volume, retention, user count, dashboards, and integrations grow. A passing implementation test is not permanent evidence.</p>
<p>Create a small monitoring record for important inquiries:</p>
<ul>
<li>Inquiry owner and business owner.</li>
<li>Purpose and intended grain.</li>
<li>Major consumers.</li>
<li>Representative parameter scenarios.</li>
<li>Expected row-count range.</li>
<li>Expected response-time range.</li>
<li>Key reconciliation totals.</li>
<li>Last test date and Acumatica build.</li>
<li>Known seasonal or period-end load.</li>
</ul>
<p>Review the inquiry after upgrades, large data migrations, new customizations, dashboard changes, or material growth in transaction volume. Also review it when users compensate for slowness by exporting data, widening default filters, duplicating inquiries, or building spreadsheets. Those workarounds often signal that the existing design no longer supports the decision.</p>
<p>Track performance at the user task level. A query may become slightly faster while the user needs more manual filters or additional screens. Measure time to a usable answer, not only server response. For dashboards, include cache behavior and the number of widgets. For exports, include row volume and downstream processing.</p>
<p>Keep freshness honest. Update the article, inquiry documentation, and test evidence when behavior changes; do not change dates merely to imply current validation.</p>
<p><a href="#post-10870-toc"><strong>Back to TOC</strong></a></p>
<h2><a id="post-10870-sec_26"></a>Know when a Generic Inquiry is the wrong tool</h2>
<p>Generic Inquiries are well suited to operational lists, governed exploration, dashboard sources, exports, navigation, and many integration or automation scenarios. They are not the best architecture for every analytical workload.</p>
<p>Consider another approach when the requirement involves:</p>
<ul>
<li>Very large historical datasets scanned repeatedly.</li>
<li>Complex transformations across many fact tables.</li>
<li>Heavy concurrency that competes with transactional processing.</li>
<li>Long-running trend analysis with stable periodic snapshots.</li>
<li>A semantic model shared across many external BI reports.</li>
<li>Calculations that require extensive preprocessing.</li>
<li>Regulatory reporting that needs a fixed, formally controlled output.</li>
<li>A dashboard that needs data at a different refresh and storage pattern from live transactions.</li>
</ul>
<p>Possible alternatives include a dedicated summary inquiry, a pivot table, an Acumatica report, Analytical Report Manager for the appropriate financial use, an external BI model, or a governed data warehouse. The correct choice depends on the required grain, latency, volume, auditability, and user interaction.</p>
<p>Do not move a workload merely because it is slow. First determine whether the inquiry is poorly scoped. Conversely, do not keep adding conditions and indexes to force an operational query tool to serve a warehouse-scale analytical problem.</p>
<p>Biz-Tech&#8217;s overview of <a href="https://biz-techservices.com/archives/9908">Acumatica Cloud ERP reporting and dashboards</a> provides broader context for selecting reporting surfaces. Where teams need help turning business questions into governed inquiries, Biz-Tech&#8217;s <a href="https://biz-techservices.com/biz-tech-ai-analyst">AI Analyst</a> describes a review-first approach to creating and refining Generic Inquiries and related reporting assets. Product suitability, availability, licensing, and implementation scope should be confirmed for the customer&#8217;s environment.</p>
<p><a href="#post-10870-toc"><strong>Back to TOC</strong></a></p>
<h2><a id="post-10870-sec_27"></a>Generic Inquiry performance review checklist</h2>
<p>Use this checklist before approving a new or revised inquiry.</p>
<h3>Business definition</h3>
<ul>
<li>The question, audience, decision, and freshness requirement are written.</li>
<li>The intended population and one-row grain are explicit.</li>
<li>Counts, amounts, quantities, and dates have documented meanings.</li>
<li>The business owner approves the definition.</li>
</ul>
<h3>Data design</h3>
<ul>
<li>Every DAC and result field has a purpose.</li>
<li>Relations use the complete logical keys.</li>
<li>Join types preserve the intended population.</li>
<li>One-to-many relationships do not duplicate measures.</li>
<li>Cross joins are absent unless explicitly required and bounded.</li>
<li>Nested inquiry dependencies are documented.</li>
</ul>
<h3>Filtering and limits</h3>
<ul>
<li>Default conditions match the operational population.</li>
<li>Parameters prevent accidental broad requests where appropriate.</li>
<li>Empty and extreme parameter values are tested.</li>
<li>Select Top has a deterministic sort and a business reason.</li>
<li>Records per Page is usable and not excessive.</li>
<li>Record counts and totals are enabled only when needed.</li>
</ul>
<h3>Calculation and presentation</h3>
<ul>
<li>Aggregate functions match field types and metric definitions.</li>
<li>Formulas handle nulls, zero, dates, currency, units, and rounding.</li>
<li>Grouped views reflect the user&#8217;s drill path.</li>
<li>The grouped view is not described as a query improvement without evidence.</li>
<li>Dashboard widgets use appropriate fields, filters, limits, and refresh intervals.</li>
</ul>
<h3>Testing</h3>
<ul>
<li>The baseline and revised tests use the same environment and inputs.</li>
<li>Typical and legitimate heavy scenarios are included.</li>
<li>Repeated timings are recorded.</li>
<li>Row counts, distinct keys, group totals, and grand totals reconcile.</li>
<li>Representative user roles are tested.</li>
<li>Dependent dashboards, exports, nested inquiries, and integrations are checked.</li>
</ul>
<h3>Release and monitoring</h3>
<ul>
<li>The original design can be restored.</li>
<li>Owners and dependent consumers are recorded.</li>
<li>The deployment window allows observation and rollback.</li>
<li>Post-release response time and totals are reviewed.</li>
<li>The next review trigger is defined.</li>
</ul>
<p><a href="#post-10870-toc"><strong>Back to TOC</strong></a></p>
<h2><a id="post-10870-sec_28"></a>Frequently Asked Questions</h2>
<h3>What is an Acumatica Generic Inquiry</h3>
<p>An Acumatica Generic Inquiry is a configurable way to retrieve and display ERP data through data access classes without writing a conventional report for every question. Designers choose data sources, relations, conditions, parameters, grouping, sorting, and result fields on the Generic Inquiry form, SM208000. The inquiry can also serve dashboards, exports, navigation, integrations, and other governed consumers.</p>
<h3>Why is my Acumatica Generic Inquiry slow</h3>
<p>The most common causes are an overbroad population, unnecessary data sources, incomplete or multiplying joins, excessive formulas or sorting, very large page settings, record counts that are not needed, nested inquiry complexity, or repeated dashboard refreshes. Measure the inquiry with representative parameters and data before changing it because environmental contention can produce similar symptoms.</p>
<h3>Do grouped table views make Generic Inquiries faster in 2026 R2</h3>
<p>Not automatically. A grouped table organizes the results of an existing Generic Inquiry into a hierarchy with summaries and details. It can improve analysis and reduce the need for cloned presentation inquiries, but the underlying query still needs correct sources, joins, filters, calculations, and limits. Claim a speed improvement only after comparable testing.</p>
<h3>How should I optimize joins in an Acumatica Generic Inquiry</h3>
<p>Begin with the intended row grain, then use the complete key and foreign key fields that represent each relationship. Confirm whether each join is one-to-one or one-to-many and choose inner or outer behavior intentionally. Test parents with zero, one, and multiple children, then reconcile distinct business keys and totals to detect multiplication or missing records.</p>
<h3>Should I use Select Top to improve Generic Inquiry performance</h3>
<p>Use Select Top when the business question genuinely requires a ranked subset and define an explicit sort that makes the result deterministic. Do not use it to conceal an undefined or incorrect population. Verify how the limit affects exports, dashboard aggregations, and other consumers, and make any intentional truncation clear to users.</p>
<h3>Can Records per Page be set very high</h3>
<p>It can, but Acumatica warns that excessively large Select Top or Records per Page values can increase processing time and degrade server performance. Choose a page size that supports the user&#8217;s task and test it with the actual number and width of columns. A large page is not a substitute for useful filters or parameters.</p>
<h3>How do dashboard refresh settings affect Generic Inquiry load</h3>
<p>Dashboard widgets can cache results for a configured interval. If On Page Reload is selected, the widget updates whenever the dashboard opens or refreshes. Frequent refreshes across many users and widgets can repeatedly execute source inquiries. Match each interval to the business freshness requirement and test the complete dashboard after cached data expires.</p>
<h3>How do I test a Generic Inquiry optimization</h3>
<p>Copy the inquiry, record the environment and parameters, run the original several times, and capture response time, rows, distinct keys, and totals. Apply one coherent change, repeat the same tests, and reconcile the output. Include both typical and legitimate heavy cases. Do not publish a fixed improvement percentage from another tenant&#8217;s dataset.</p>
<h3>How can I prevent duplicate totals in grouped results</h3>
<p>Define the metric and row grain before grouping. Check whether header values repeat across joined detail rows, use the appropriate source field and aggregate, and compare distinct document keys. Reconcile totals by several business dimensions, not only at the grand-total level, because errors in separate groups can offset each other.</p>
<h3>When should I replace a Generic Inquiry with another reporting tool</h3>
<p>Consider another architecture when the workload repeatedly scans very large history, requires complex transformations, supports heavy analytical concurrency, or needs a governed semantic model and periodic snapshots. First correct any avoidable query-design problems. Then compare a summary inquiry, pivot, formal report, external BI model, or data warehouse against the required volume, latency, auditability, and user experience.</p>
<p><a href="#post-10870-toc"><strong>Back to TOC</strong></a></p>
<h2><a id="post-10870-sec_29"></a>Sources</h2>
<ol>
<li><a href="https://beacon.acumatica.com/r/2026-R2/Reporting-Tools-Guide">Acumatica 2026 R2 Reporting Tools Guide</a></li>
<li><a href="https://beacon.acumatica.com/r/Reporting-Tools-Guide/Managing-Generic-Inquiries/Creating-a-Generic-Inquiry/Creation-of-a-Generic-Inquiry-General-Information?contentId=TmAoEoZVjcScHi2M6s4cNQ">Creation of a Generic Inquiry General Information</a></li>
<li><a href="https://beacon.acumatica.com/r/Form-Reference-Guide/Customization-Forms/Generic-Inquiry?contentId=fJqbK0HDUtE4ZDuP87hohQ">Generic Inquiry Form Reference SM208000</a></li>
<li><a href="https://beacon.acumatica.com/r/Reporting-Tools-Guide/Managing-Inquiry-Result-Data-Views/Data-Views-General-Information?contentId=9~j98T6iS4Exyqw16I_7IQ">Data Views General Information</a></li>
<li><a href="https://beacon.acumatica.com/r/Reporting-Tools-Guide/Managing-Inquiry-Result-Data-Views/Data-Views-Creating-and-Configuring-Grouped-Tables?contentId=IEHlAb6CAUmfjOXpnDXwkw">Data Views Creating and Configuring Grouped Tables</a></li>
<li><a href="https://beacon.acumatica.com/r/Reporting-Tools-Guide/Managing-Generic-Inquiries/Modifying-Inquiry-Results/Modification-of-Inquiry-Results-The-Number-of-Records-Shown?contentId=rO1D4c45NIpE4H5_TJcOfg">Modification of Inquiry Results The Number of Records Shown</a></li>
<li><a href="https://beacon.acumatica.com/r/Reporting-Tools-Guide/Managing-Generic-Inquiries/Getting-Data-from-Multiple-Data-Sources/Data-from-Multiple-Data-Sources-General-Information?contentId=DOSUazszvBUsHHoK9Yl6qQ">Data from Multiple Data Sources General Information</a></li>
<li><a href="https://beacon.acumatica.com/r/Reporting-Tools-Guide/Managing-Generic-Inquiries/Getting-Data-from-Multiple-Data-Sources/Data-from-Multiple-Data-Sources-Discovery-of-Key-Fields?contentId=68xKv7WXGcGNqxUszDIg2A">Data from Multiple Data Sources Discovery of Key Fields</a></li>
<li><a href="https://beacon.acumatica.com/r/Reporting-Tools-Guide/Managing-Generic-Inquiries/Applying-Sorting-and-Grouping/Sorting-and-Grouping-General-Information?contentId=~XH968FHx2RFPe8RI1sgQQ">Sorting and Grouping General Information</a></li>
<li><a href="https://beacon.acumatica.com/r/Reporting-Tools-Guide/Configuring-Widgets/Widget-Settings-General-Information?contentId=lQ65t6vAGxaQD4pNZn3~Gg">Widget Settings General Information</a></li>
<li><a href="https://beacon.acumatica.com/r/Reporting-Tools-Guide/Configuring-Widgets/Specific-Widgets-Table-Widgets?contentId=irFvQS1lNQ8cZJ8g5_54WA">Specific Widgets Table Widgets</a></li>
<li><a href="https://beacon.acumatica.com/r/Reporting-Tools-Guide/Configuring-Widgets/Specific-Widgets-KPI-Widgets-Scorecard-Meter-and-Trend-Card">Specific Widgets KPI Widgets</a></li>
</ol>
<p>Biz-Tech Services can help Acumatica teams review slow Generic Inquiries, validate joins and totals, tune dashboard consumption, and choose the appropriate reporting architecture. A reporting performance review should begin with representative data, documented business definitions, and measurable acceptance criteria rather than a promised universal speed increase.</p>
<p><a href="#post-10870-toc"><strong>Back to TOC</strong></a></p>
<p>&nbsp;</p>
<p>The post <a href="https://biz-techservices.com/archives/10870">Faster Generic Inquiries in Acumatica 2026 R2: Grouped Tables, Query Design, and Dashboard Performance</a> appeared first on <a href="https://biz-techservices.com">Biz-Tech Services</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Map Amazon SKUs to Acumatica Inventory IDs</title>
		<link>https://biz-techservices.com/archives/10864</link>
		
		<dc:creator><![CDATA[Gary]]></dc:creator>
		<pubDate>Tue, 20 Oct 2026 06:01:08 +0000</pubDate>
				<category><![CDATA[Lesson]]></category>
		<guid isPermaLink="false">https://biz-techservices.com/?p=10864</guid>

					<description><![CDATA[<p>Amazon SKUs map to Acumatica Inventory IDs through the Amazon Store&#8217;s Inventory Details and Cross-Reference settings. The documentation supports direct [&#8230;]</p>
<p>The post <a href="https://biz-techservices.com/archives/10864">How to Map Amazon SKUs to Acumatica Inventory IDs</a> appeared first on <a href="https://biz-techservices.com">Biz-Tech Services</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Amazon SKUs map to Acumatica Inventory IDs through the Amazon Store&#8217;s Inventory Details and Cross-Reference settings. The documentation supports direct Amazon Value to Acumatica Value matching, SKU-based Inventory ID creation when Import Item is enabled, and SKU maintenance for existing items in Inventory Details.</p>
<p>The Biz-Tech Services Amazon Acumatica Connector gives administrators a choice between mapping an Amazon item to an existing inventory record and allowing a new record to be created during import. This article focuses on those documented item and SKU controls, the behavior of unmapped items, the product lookup actions, and the limited error information available during order import.</p>
<p><strong>What Amazon SKU Mapping Does in Acumatica</strong></p>
<p>The Biz-Tech Services Acumatica Amazon Connector uses item mapping to associate an Amazon product identifier with an inventory record. The Amazon guide names two related work areas on the Amazon Store screen: Cross-Reference, which matches external and internal values for selected entities, and Inventory Details, where a new Amazon SKU is mapped and existing SKU assignments can be changed.</p>
<p>The guide also describes Import Item. When this checkbox is selected and an order contains a product that does not yet exist in the ERP, the connector imports the new product information and generates an Inventory ID based on the SKU. When Import Item is not selected, the documentation says an integration error occurs for a product that does not exist.</p>
<p>These controls establish the documented mapping boundary. The manual does not define a general alias engine, item-class default, or external-ID hierarchy. It describes Amazon Value, Acumatica Value, SKU, ASIN, SELLERSKU, and Inventory ID, but it does not specify matching precedence among them.</p>
<p><strong>Map Amazon SKUs to Acumatica Inventory IDs Step by Step</strong></p>
<p>Use the following documented controls to prepare item matching. The source does not supply one end-to-end numbered workflow, so each step below stays within the functions it explicitly assigns to the Amazon Store settings.</p>
<p>1 Open the Amazon Store record for the store whose Amazon products need to be matched</p>
<p>2 In Cross-Reference Options, select Items so the item entity is available in the Cross-Reference Field list</p>
<p><img decoding="async" width="873" height="647" class="alignnone size-full wp-image-10865" src="https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:auto/h:auto/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/9_CrossReference.png" alt="9 Cross Reference" srcset="https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:873/h:647/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/9_CrossReference.png 873w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:300/h:222/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/9_CrossReference.png 300w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:768/h:569/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/9_CrossReference.png 768w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:350/h:259/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/9_CrossReference.png 350w" sizes="(max-width: 840px) 100vw, 840px" /></p>
<p>3 In Cross-Reference, select the item entity in Field and enter the Amazon Value and corresponding Acumatica Value</p>
<p>4 In Inventory Details, create the mapping required for a new Amazon SKU or review the SKU assigned to an existing Acumatica item</p>
<p>5 Decide whether Import Item should create product information for Amazon items that do not yet exist in Acumatica</p>
<p>6 If order imports should populate Inventory Details, select Insert Item in Inventory Details Tab</p>
<p>7 Use Get Product by ASIN or Get Product by SELLERSKU to retrieve and display the Amazon item in Inventory Details</p>
<p>8 For Fulfillment by Amazon products, use Load FBA Products to display store products and Sync From Amazon on a loaded item when an Acumatica item must be created from its SKU</p>
<p>9 Import a controlled Amazon order and review the order line or import error before applying the setup to a larger group of orders</p>
<p><strong>How Import Item Handles an Unmapped Amazon Product</strong></p>
<p>Import Item determines what the connector does when Amazon supplies product information that does not exist in the ERP. With the checkbox selected, the connector imports the new product information. The Inventory Details note adds that order import generates an Acumatica Inventory ID based on the SKU.</p>
<p>With Import Item cleared, the guide says an integration error occurs. It does not provide the exact error text, identify a separate queue for unmapped items, or state whether the order is partly imported. It also does not say whether the error can be resolved directly from the order grid or requires a new mapping on the Amazon Store screen.</p>
<p>Send Email Notifications for Errors can send notifications about Order IDs that have errors. On the Amazon Orders screen, an error message can be displayed for an order, and the import grid can show a red cross with more information on hover. The guide also points users to Tools and Trace for additional error details, but it does not tie a named message specifically to an unmapped SKU.</p>
<p><strong>How Amazon and Acumatica Values Are Cross Referenced</strong></p>
<p>The Biz-Tech Services Amazon Acumatica Integration includes cross-reference functionality for Items, Payments, and Ship Via. Cross-Reference Options selects which external and internal entities should be matched. Only selected entities appear in the Field drop-down on Cross-Reference.</p>
<p>For each selected entity, Field identifies what is being matched. Amazon Value specifies the external value, and Acumatica Value specifies the corresponding internal value. These are the exact field labels documented for general cross-references. The source does not show a completed item example or explicitly state whether the value displayed for Items is the Inventory ID.</p>
<p>The Cross-Reference settings and Inventory Details both participate in product setup, but the guide does not explain their precedence or whether they store the same relationship. Do not assume that an item entered in one area automatically appears in the other without confirming the result in the installed connector.</p>
<p><strong>How Inventory Details Maintains Amazon SKUs</strong></p>
<p>The Amazon Store Inventory Details tab is the documented location for creating a mapping for a new Amazon SKU. The guide also says that an existing item&#8217;s SKU can be changed in Inventory Details and imported without creating a new Acumatica item. This gives the setup a documented maintenance path as well as an initial creation path.</p>
<p>Insert Item in Inventory Details Tab controls whether items retrieved during order import are placed in the Amazon Store&#8217;s Inventory Details tab. The guide does not say whether this action creates a complete mapping, creates a pending record, or only displays the Amazon product for review.</p>
<p><img decoding="async" width="1147" height="844" class="alignnone size-full wp-image-10866" src="https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:auto/h:auto/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/8_Inventory_Details.png" alt="8 Inventory Details" srcset="https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:1147/h:844/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/8_Inventory_Details.png 1147w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:300/h:221/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/8_Inventory_Details.png 300w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:1024/h:753/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/8_Inventory_Details.png 1024w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:768/h:565/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/8_Inventory_Details.png 768w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:350/h:258/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/8_Inventory_Details.png 350w" sizes="(max-width: 840px) 100vw, 840px" /></p>
<p>When an item already exists on the Stock Item screen, Import Item does not update its description. Instead, the Sales Order line description is set to the Amazon item title. During order import, the connector also uses the Amazon item price rather than the mapped Acumatica item price. Description and price therefore do not establish or change the SKU-to-Inventory-ID relationship described here.</p>
<p><strong>Amazon Product Lookup and FBA Item Creation</strong></p>
<p>Inventory Details includes two documented lookup actions. Get Product by ASIN retrieves and displays an Amazon item by Amazon Standard Identification Number, or ASIN. Get Product by SELLERSKU retrieves and displays the product by its seller SKU. The guide does not state which identifier wins if the values identify different products.</p>
<p>For Fulfillment by Amazon, Load FBA Products loads and displays all Amazon products in the store. After a loaded FBA item is selected, Sync From Amazon creates the local item through the product SKU. The source also says FBA products are loaded through API requests and mapped with local inventory, but it does not provide the mapping fields used by that API process.</p>
<p>The manual does not state whether the FBA action applies the same Inventory Details mapping used for Fulfillment by Merchant orders. It also does not define duplicate detection when an Inventory ID already exists for a similar SKU.</p>
<p><strong>Validation and Mapping Exceptions for Amazon Items</strong></p>
<p>The documented validation evidence appears during order processing rather than as a dedicated item-mapping validation screen. Users can view an Amazon order before import. If an error appears, the Amazon Orders screen displays an error message intended to indicate what must be corrected and in which system.</p>
<p>During import, a line-level error appears on the corresponding order row. Hovering over the red cross shows additional information, and Tools and Trace provides another diagnostic location. These controls are documented for order errors in general. The guide does not identify an Inventory ID validation button, a mapping status field, or an item-specific error catalog.</p>
<p>Import Item provides the only explicit rule for a missing product: create the product information when selected, or encounter an integration error when it is not selected. No rule is supplied for blank SKUs, duplicate SKUs, different letter case, leading zeros, inactive Inventory IDs, or stock versus non-stock items.</p>
<p><img decoding="async" width="1055" height="781" class="alignnone size-full wp-image-10867" src="https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:auto/h:auto/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/10_Import_Order.png" alt="10 Import Order" srcset="https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:1055/h:781/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/10_Import_Order.png 1055w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:300/h:222/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/10_Import_Order.png 300w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:1024/h:758/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/10_Import_Order.png 1024w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:768/h:569/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/10_Import_Order.png 768w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:350/h:259/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/10_Import_Order.png 350w" sizes="(max-width: 840px) 100vw, 840px" /></p>
<p><strong>Mapping Features Not Defined in the Amazon Guide</strong></p>
<p>The guide does not describe item classes, item-class defaults, alternate SKU aliases, wildcard matching, SKU normalization, units of measure for SKU matching, or an unmapped-item inquiry. It does not show whether the generated Inventory ID is identical to the Amazon SKU or transformed to meet local numbering rules.</p>
<p>The source also does not explain how Inventory Details interacts with the general Cross-Reference table, what value uniquely identifies an existing item during an SKU change, or how conflicts are handled when Amazon Value, ASIN, and SELLERSKU point to different records. Those are implementation questions, not documented connector behaviors.</p>
<p><strong>Where to Check Your Amazon SKU Mapping</strong></p>
<p>The Biz-Tech Services Amazon Acumatica Integrator exposes the following documented places to review item setup and import results.</p>
<p>1 On Amazon Store, confirm the Store Code for the store whose products are being mapped</p>
<p>2 In Cross-Reference Options, confirm that Items is selected as an entity to be matched</p>
<p>3 In Cross-Reference, review Field, Amazon Value, and Acumatica Value</p>
<p>4 In Inventory Details, review the Amazon SKU and its existing Acumatica item assignment</p>
<p>5 In the Import Settings area, confirm the intended status of Import Item and Insert Item in Inventory Details Tab</p>
<p>6 Use Get Product by ASIN or Get Product by SELLERSKU to verify that the intended Amazon product is displayed</p>
<p>7 On Amazon Orders, view the order and inspect any displayed error message before import</p>
<p>8 In the import grid, hover over a red cross for additional error information and use Tools and Trace when more detail is needed</p>
<p>9 On the resulting Sales Order, confirm the Inventory ID, Amazon item title in the line description, and Amazon item price</p>
<p><strong>Amazon SKU and Inventory ID Mapping Frequently Asked Questions</strong></p>
<p><strong>Where do I map a new Amazon SKU in Acumatica?</strong></p>
<p>Create the mapping in the Inventory Details tab of the Amazon Store. The guide identifies this tab as the location required to upload a new Amazon item SKU.</p>
<p><strong>What happens when an Amazon item does not exist in Acumatica?</strong></p>
<p>When Import Item is selected, the connector imports the new product information and can generate an Inventory ID based on the SKU. If it is not selected, the guide says an integration error occurs.</p>
<p><strong>Can an existing Amazon SKU be changed without creating a new item?</strong></p>
<p>Yes. The documentation says the SKU can be changed for an existing item in Amazon Store Inventory Details and imported without creating a new Acumatica item.</p>
<p><strong>How does the Amazon item cross reference work?</strong></p>
<p>The Biz-Tech Services Acumatica Amazon Integration uses Cross-Reference Options to select entities and uses Field, Amazon Value, and Acumatica Value to define the match. The guide does not show a completed item record or explain its relationship to Inventory Details.</p>
<p><strong>Can I find an Amazon item by ASIN or seller SKU?</strong></p>
<p>Yes. Inventory Details provides Get Product by ASIN and Get Product by SELLERSKU. Both actions retrieve and display the Amazon product using the selected identifier.</p>
<p><strong>Does item mapping use the Acumatica price or Amazon price?</strong></p>
<p>The guide states that order import uses the Amazon item&#8217;s price rather than the mapped Acumatica item&#8217;s price.</p>
<p><strong>Can Amazon SKUs be mapped by Acumatica item class?</strong></p>
<p>The source does not document item-class mapping, item-class defaults, or alias rules. It documents Inventory Details and value-based cross-references.</p>
<p><strong>Where can I see an Amazon item mapping error?</strong></p>
<p>Review the Amazon Orders screen and the import grid. An error can appear for the order, a red cross can expose more information on hover, and Tools and Trace can provide additional details. No item-specific error list is included in the guide.</p>
<p><strong>Work With Biz Tech Services on Amazon Item Mapping</strong></p>
<p>Amazon item setup in Acumatica depends on a documented choice: match the Amazon value and SKU to an existing item, or enable Import Item so a missing product can be created from the SKU. Inventory Details, Cross-Reference, and the order-import error displays provide the available control points.</p>
<p>If your team needs help reviewing Amazon SKU mappings and Inventory ID behavior, the Biz-Tech Services Acumatica Amazon Integrator can support your connector implementation. Visit https://biz-techservices.com to contact Biz-Tech Services or schedule a personalized demonstration.</p>
<p>The post <a href="https://biz-techservices.com/archives/10864">How to Map Amazon SKUs to Acumatica Inventory IDs</a> appeared first on <a href="https://biz-techservices.com">Biz-Tech Services</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Acumatica Modern UI Performance Troubleshooting After an Upgrade</title>
		<link>https://biz-techservices.com/archives/10861</link>
		
		<dc:creator><![CDATA[Gary]]></dc:creator>
		<pubDate>Mon, 19 Oct 2026 08:42:16 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<guid isPermaLink="false">https://biz-techservices.com/?p=10861</guid>

					<description><![CDATA[<p>Diagnose slow Acumatica Modern UI after an upgrade with a five-layer workflow covering browser and network timing, Request Profiler, Generic Inquiries, customizations, SQL, and support-ready evidence.</p>
<p>The post <a href="https://biz-techservices.com/archives/10861">Acumatica Modern UI Performance Troubleshooting After an Upgrade</a> appeared first on <a href="https://biz-techservices.com">Biz-Tech Services</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="article-meta"><strong>Prepared for Biz-Tech Services</strong> | Last verified 19 October 2026</p>
<figure class="wp-block-image size-full" style="margin:0 0 28px 0"><img src="https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:auto/h:auto/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/acumatica-modern-ui-performance-troubleshooting_Blog_Hero_Wide_3x1-base.png" alt="Acumatica Modern UI performance troubleshooting flow showing browser, server, customization, database, and escalation layers" width="2172" height="724" decoding="async" fetchpriority="high" style="width:100%;height:auto"/><figcaption>A measured troubleshooting sequence separates browser, server, customization, and database causes before optimization or escalation.</figcaption></figure>
<p>
  A five-layer diagnostic sequence for measurable Acumatica Modern UI troubleshooting.
</p>
<p>
  When Acumatica Modern UI feels slow after an upgrade, do not begin by tuning SQL, disabling customizations, or blaming the browser. First reproduce one business task, determine whether the slowdown affects one user, one screen, or the whole site, and compare browser timing with Acumatica Request Profiler data. That sequence separates client and network delay from application-server, Generic Inquiry, customization, and database causes.
</p>
<p>
  The key is to diagnose a transaction rather than a feeling. “The system is slow” cannot be tested. “Opening Sales Orders as the warehouse supervisor takes 11 seconds on the first load and 8 seconds on a warm repeat, while other users complete it in 3 seconds” gives the team a screen, role, browser, data state, timing, and comparison point.
</p>
<p>
  This guide provides a repeatable diagnostic sequence for Acumatica 2026 R1 and 2026 R2 environments. Test every conclusion against the exact build, database, customizations, roles, and data volumes used by your organization. Community reports can help identify questions to investigate, but they do not establish the cause in your tenant.
</p>
<h2>What counts as an Acumatica Modern UI performance problem?</h2>
<p>
  An Acumatica Modern UI performance problem is a repeatable delay in a defined user task, request, inquiry, or process compared with an accepted baseline. The delay may come from the browser, network, application server, database, Generic Inquiry design, customization code, automation, or the number of interactions required to finish the task.
</p>
<p>
  That last distinction matters. A page can return quickly while users still need more clicks or pointer movement than before. Conversely, a workflow can feel familiar while a server request, SQL statement, or integration call is taking too long. Measure both technical response time and task completion time when the complaint concerns productivity.
</p>
<p>
  Acumatica&#8217;s official troubleshooting guide begins with the same scope distinction: either the whole site is slow or a particular process is slow. It then moves through basic causes, application-versus-database time, server configuration, database checks, additional evidence collection, and support escalation. [1]
</p>
<h2>Start with four classification questions</h2>
<p>
  Before collecting a large trace, answer four questions:
</p>
<p><strong>1.  What exact action is slow?</strong> Name the screen, action, record, filters, and expected result.
</p>
<p><strong>2.  How wide is the impact?</strong> One user, one role, one location, one browser, one screen, or the whole site?
</p>
<p><strong>3.  When does it happen?</strong> First load only, every repetition, certain data volumes, a scheduled period, or under concurrency?
</p>
<p><strong>4.  What changed?</strong> Acumatica build, browser, customization package, Generic Inquiry, database, infrastructure, integration, role, or data volume?
</p>
<p>
  Run the same transaction at least three times. Record the first result separately because cold browser assets, application caches, database caches, or freshly started services can make the first run different from warm repeats. Use the same record and filters where possible, and do not compare an administrator&#8217;s broad access with a production role unless role differences are part of the test.
</p>
<h2>The five-layer diagnostic sequence</h2>
<h3>1. Reproduce the user task and capture browser evidence</h3>
<p>
  Open the browser&#8217;s developer tools before reproducing the issue. On the Network panel, preserve the log, capture the slow action, and note the request with the longest elapsed time. Record whether the wait is primarily before the request starts, during connection and transfer, or while waiting for the server response. Acumatica&#8217;s Modern UI uses web technologies and request-based communication that browser development tools can inspect. [2]
</p>
<p>
  Repeat in another supported browser or a clean browser profile. If the problem occurs only in one profile, examine extensions, cached assets, local storage, security software, and browser policy. If it occurs only from one location, compare latency, VPN path, proxy, DNS, packet loss, and bandwidth. Acumatica&#8217;s official first-step guidance explicitly recommends comparing browsers and physical locations before moving deeper into the stack. [1]
</p>
<p>
  Do not stop when clearing cache appears to help once. Retest the same task after the browser and server are warm. A cache reset can remove stale assets, but it can also create a slower first load and hide an intermittent problem.
</p>
<h3>2. Compare browser time with Acumatica Request Profiler</h3>
<p>
  Use Request Profiler (SM205070) to determine whether Acumatica spent the time on the server. For a particular process, open <strong>Settings &gt; Profiler</strong>, start logging, reproduce only the target transaction, stop logging, and export the profile. The exported ZIP can include URL requests, SQL activity, exceptions, warnings, errors, and stack details needed for analysis or support. [3]
</p>
<p>
  Compare three values:
</p>
<table>
<thead>
<tr>
<th>
<p><strong>Measurement</strong>
</p>
</th>
<th>
<p><strong>What it tells you</strong>
</p>
</th>
<th>
<p><strong>Likely next owner</strong>
</p>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<p>
  Browser elapsed time is high, profiler server time is low
</p>
</td>
<td>
<p>
  Delay is outside most Acumatica server processing
</p>
</td>
<td>
<p>
  Browser, endpoint security, proxy, VPN, or network owner
</p>
</td>
</tr>
<tr>
<td>
<p>
  Profiler server time is high, SQL time is low
</p>
</td>
<td>
<p>
  Application logic, customization, external call, serialization, or server capacity may dominate
</p>
</td>
<td>
<p>
  Acumatica administrator or developer
</p>
</td>
</tr>
<tr>
<td>
<p>
  SQL time is a large share of server time
</p>
</td>
<td>
<p>
  Query design, blocking, indexing, statistics, plan choice, or database capacity needs review
</p>
</td>
<td>
<p>
  SQL specialist with Acumatica context
</p>
</td>
</tr>
<tr>
<td>
<p>
  Both timings are reasonable but the task is slow
</p>
</td>
<td>
<p>
  Interaction design, navigation, or repeated manual steps may be the issue
</p>
</td>
<td>
<p>
  Process owner and Modern UI specialist
</p>
</td>
</tr>
</tbody>
</table>
<p>
  Request Profiler has default thresholds for automatic monitoring, including 20 seconds for certain screen, Generic Inquiry, and report requests and 60 seconds for other requests. Those values are logging defaults, not promises of acceptable performance. Your baseline must reflect the business task and environment. [3]
</p>
<h3>3. Isolate Generic Inquiry and customization cost</h3>
<p>
  If the slow screen, selector, dashboard, AI data source, or export depends on a Generic Inquiry, reproduce it with the exact role, filters, parameters, sorting, and row volume. A GI that is quick for a narrow test may become expensive when a condition is removed, a calculated field is added, a join multiplies rows, or a user exports the complete result.
</p>
<p>
  Capture the inquiry name, parameters, returned row count, total browser time, Request Profiler server time, and SQL time. Then test one controlled change at a time. Narrow the date range, remove a nonessential calculated field, simplify sorting, or replace a broad join only in a sandbox. Keep the result set logically equivalent before calling the change an optimization.
</p>
<p>
  For a suspected customization, compare the same action before and after unpublishing the specific project in a safe environment. Acumatica&#8217;s troubleshooting guidance recommends profiling the action without the suspected project, publishing it again, repeating the same action, and comparing results. [1] A clean-system test does not prove that every customization is faulty; it identifies whether the measured cost changes when a defined package is present.
</p>
<p>
  Check more than custom business logic. Modern UI customization problems can involve client-side code, generated files, build errors, stale assets, screen definitions, or API calls. Review browser console errors and the customization build output alongside server traces. If a customization calls an external service, time that dependency separately so a slow remote response is not mislabeled as database latency.
</p>
<h3>4. Investigate database and environment causes</h3>
<p>
  When SQL consumes a material part of the slow request, capture the exact query context before changing indexes. Review blocking, long-running statements, execution plans, resource pressure, storage latency, database growth, statistics, and maintenance history. Acumatica&#8217;s official sequence includes SQL Server configuration and reports or the corresponding MySQL checks after application-server analysis. [1]
</p>
<p>
  Also inspect the environment around the transaction:
</p>
<ul>
<li>
    running processes and automation schedules;
  </li>
<li>
    System Monitor activity and unusually long jobs;
  </li>
<li>
    application-pool memory and recent recycling;
  </li>
<li>
    CPU, memory, disk latency, and database-server pressure;
  </li>
<li>
    antivirus or endpoint scanning on application paths;
  </li>
<li>
    license or concurrency conditions where relevant;
  </li>
<li>
    integrations or imports running during the same period.
  </li>
</ul>
<p>
  Correlate timestamps. A request that slows at 10:00 every morning may coincide with automation, backups, reporting, virus scanning, or an integration batch. Evidence from different clocks is hard to compare, so record the time zone and ensure application, database, monitoring, and workstation clocks are aligned.
</p>
<h3>5. Decide whether to optimize, patch, or escalate</h3>
<p>
  Optimize when the evidence identifies a repeatable design cost that your team owns: an overbroad GI, an inefficient customization, unnecessary external calls, a poorly scheduled process, or an environment bottleneck. Make one change, rerun the same test, and record both the performance difference and functional result.
</p>
<p>
  Patch when the behavior matches a documented defect for the exact Acumatica build and the release guidance identifies a corrected build. Validate the patch in a production-like sandbox with the same workflow, role, data, and customizations. “A newer build exists” is not enough evidence by itself.
</p>
<p>
  Escalate when the problem is reproducible but the available evidence does not isolate an owned component, or when the trace points to platform behavior that requires Acumatica Support. Submit a focused case with the build, deployment model, timestamps, screen ID, steps, role, browser, profile export, logs, data scope, business impact, recent changes, comparisons, and tests already completed. This follows Acumatica&#8217;s documented sequence: collect Request Profiler and log evidence before opening the support case. [1] [3]
</p>
<h2>The first five measurements to capture</h2>
<p>
  If time is limited, collect these five measurements before changing anything:
</p>
<p><strong>1.  Business-task duration:</strong> start-to-finish time for one named task, including the record and filters used.
</p>
<p><strong>2.  Browser request duration:</strong> the slowest relevant request from the Network panel, plus a HAR file when permitted by security policy.
</p>
<p><strong>3.  Request Profiler server and SQL time:</strong> captured during the same reproduction window.
</p>
<p><strong>4.  Scope comparison:</strong> same task from another supported browser, user or role, and location.
</p>
<p><strong>5.  Environment context:</strong> build number, customization packages, dataset size or row count, concurrent jobs, and timestamp.
</p>
<p>
  Together, these measurements prevent three common mistakes: treating a local browser issue as a database problem, tuning SQL for time spent in application or external code, and escalating without a reproducible transaction.
</p>
<h2>Acumatica performance evidence worksheet</h2>
<p>
  Use one row per controlled test. Attach the exported files separately rather than pasting sensitive data into the worksheet.
</p>
<table>
<thead>
<tr>
<th>
<p><strong>Field</strong>
</p>
</th>
<th>
<p><strong>What to record</strong>
</p>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<p>
  Business task
</p>
</td>
<td>
<p>
  Screen ID, action, record, filters, expected result
</p>
</td>
</tr>
<tr>
<td>
<p>
  Impact
</p>
</td>
<td>
<p>
  Users, roles, locations, and frequency affected
</p>
</td>
</tr>
<tr>
<td>
<p>
  Environment
</p>
</td>
<td>
<p>
  Acumatica version and build, deployment, app and database topology
</p>
</td>
</tr>
<tr>
<td>
<p>
  Client
</p>
</td>
<td>
<p>
  Browser/version, device, extensions, VPN/proxy, location
</p>
</td>
</tr>
<tr>
<td>
<p>
  Change history
</p>
</td>
<td>
<p>
  Upgrade, patch, customization, GI, browser, infrastructure, or data change
</p>
</td>
</tr>
<tr>
<td>
<p>
  Test controls
</p>
</td>
<td>
<p>
  Same data, same role, cold or warm run, repetition count
</p>
</td>
</tr>
<tr>
<td>
<p>
  User timing
</p>
</td>
<td>
<p>
  Total task-completion time for each run
</p>
</td>
</tr>
<tr>
<td>
<p>
  Browser timing
</p>
</td>
<td>
<p>
  Slow request URL or operation, status, waiting and transfer time
</p>
</td>
</tr>
<tr>
<td>
<p>
  Profiler timing
</p>
</td>
<td>
<p>
  Total server time, SQL time, memory, exceptions, relevant trace rows
</p>
</td>
</tr>
<tr>
<td>
<p>
  Database evidence
</p>
</td>
<td>
<p>
  Blocking, long query, plan, resource or storage observation
</p>
</td>
</tr>
<tr>
<td>
<p>
  Comparison
</p>
</td>
<td>
<p>
  Baseline environment, alternate browser/location, customization on/off
</p>
</td>
</tr>
<tr>
<td>
<p>
  Result
</p>
</td>
<td>
<p>
  Confirmed layer, rejected hypotheses, next owner and next test
</p>
</td>
</tr>
<tr>
<td>
<p>
  Attachments
</p>
</td>
<td>
<p>
  HAR, profiler ZIP, logs, screenshots, query plan, monitoring export
</p>
</td>
</tr>
</tbody>
</table>
<p>
  Sanitize customer names, personal data, credentials, tokens, and business-sensitive values before sharing evidence outside the authorized team. First-chance exception logging and other verbose diagnostics should be enabled only for the short period needed because the output can grow quickly. [1]
</p>
<h2>Build a reliable performance baseline before troubleshooting</h2>
<p>
  A performance baseline is a documented range for a repeatable business task under known conditions. It is more useful than a single target such as “every screen must load in two seconds” because different Acumatica actions perform different amounts of work. Opening a maintained customer record, calculating a large inquiry, releasing a batch, and exporting thousands of rows should not be evaluated as if they were the same transaction.
</p>
<p>
  Begin with ten to twenty tasks that represent the work people depend on most. Include the actions that affect cash, fulfillment, production, customer service, purchasing, project billing, and financial close. For each task, record the screen ID, role, data volume, record state, filter set, browser, location, build, and number of concurrent users or processes. A useful baseline is specific enough that another analyst can reproduce it without asking what the original tester meant.
</p>
<p>
  Measure the full task from the user&#8217;s perspective and the important requests inside it. Total task time shows whether the employee can complete the work efficiently. Browser and Request Profiler timings show which technical layer contributed to the wait. Retain both because an improvement in one request may not reduce the number of steps, and a shorter task may hide an expensive background call.
</p>
<p>
  Use a small series rather than one run. A practical starting point is one cold run followed by at least three warm runs. Record every value instead of keeping only the fastest result. The median warm time describes the typical experience better than a best-case number, while the slowest valid run helps reveal intermittent blocking, network variation, or competing jobs. Do not combine failed tests, different records, or changed filters into the same comparison.
</p>
<p>
  Define the acceptable range with the process owner. The threshold should reflect the business consequence of the delay, the normal data volume, the frequency of the action, and the technical work involved. A two-second increase on an action performed hundreds of times per day can matter more than a longer delay on a monthly report. The baseline therefore connects technology measurements to operational cost.
</p>
<table>
<thead>
<tr>
<th>
<p><strong>Baseline element</strong>
</p>
</th>
<th>
<p><strong>Minimum definition</strong>
</p>
</th>
<th>
<p><strong>Why it matters</strong>
</p>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<p>
  Task identity
</p>
</td>
<td>
<p>
  Screen ID, action, record state, filters, expected result
</p>
</td>
<td>
<p>
  Prevents unlike transactions from being compared
</p>
</td>
</tr>
<tr>
<td>
<p>
  User context
</p>
</td>
<td>
<p>
  Role, branch, company, locale, and relevant preferences
</p>
</td>
<td>
<p>
  Security and configuration can change the work performed
</p>
</td>
</tr>
<tr>
<td>
<p>
  Data context
</p>
</td>
<td>
<p>
  Row count, date range, document size, and related history
</p>
</td>
<td>
<p>
  Performance often changes with scale
</p>
</td>
</tr>
<tr>
<td>
<p>
  Client context
</p>
</td>
<td>
<p>
  Browser/version, device, location, VPN or proxy path
</p>
</td>
<td>
<p>
  Separates client and network effects
</p>
</td>
</tr>
<tr>
<td>
<p>
  Server context
</p>
</td>
<td>
<p>
  Build, topology, packages, integrations, and scheduled activity
</p>
</td>
<td>
<p>
  Makes the test environment reproducible
</p>
</td>
</tr>
<tr>
<td>
<p>
  Timing method
</p>
</td>
<td>
<p>
  Cold or warm run, start and stop points, repetition count
</p>
</td>
<td>
<p>
  Keeps measurements consistent
</p>
</td>
</tr>
<tr>
<td>
<p>
  Acceptance rule
</p>
</td>
<td>
<p>
  Expected range, warning level, owner, and review date
</p>
</td>
<td>
<p>
  Converts evidence into a decision
</p>
</td>
</tr>
</tbody>
</table>
<p><strong>Acumatica performance baseline:</strong> A useful baseline is a versioned record of how long a defined business task and its principal requests take under repeatable conditions. It must identify the build, role, data, client, environment, timing method, and acceptable range. Without those controls, a before-and-after comparison can describe different work rather than a real performance change.
</p>
<h2>Diagnose by scope before diagnosing by technology</h2>
<p>
  Scope is the fastest way to reduce the number of plausible causes. Ask how many users, screens, processes, locations, and time periods are affected. The answers do not prove a cause, but they determine the next comparison that will produce the most information.
</p>
<h3>One user is affected</h3>
<p>
  When one user is affected and peers with the same role can repeat the task normally, compare the endpoint first. Check the browser version and profile, extensions, cached assets, local storage, endpoint protection, device resource pressure, display or accessibility tools, VPN state, and network route. Then compare the user&#8217;s role, preferences, branch, company, and saved filters with a working peer.
</p>
<p>
  Do not assume that “one user” means “one computer.” Have the user sign in on a known-good device when policy permits, and have a comparison user test the affected device. This two-way test separates user configuration from endpoint configuration more cleanly than reinstalling software or changing several settings at once.
</p>
<h3>One screen or action is affected</h3>
<p>
  When the rest of the site performs normally, focus on the dependencies of that transaction. Identify its Generic Inquiries, selectors, dashboards, reports, customization code, external calls, attachments, automation steps, and database queries. Capture Request Profiler data for only that action so unrelated requests do not obscure the trace.
</p>
<p>
  Use a neighboring transaction as a control. If Sales Orders is slow, compare another screen that uses the same customer and inventory data but not the same customization. If an inquiry is slow, compare a narrower filter and a known-simple inquiry under the same role. The control helps identify whether the issue follows the data, the screen design, or the environment.
</p>
<h3>One location is affected</h3>
<p>
  When users in one office, warehouse, or remote network are affected, compare connection setup and request timing. Record round-trip latency, VPN or proxy use, packet loss, DNS behavior, and whether large static assets or API responses are delayed. A browser HAR file can show whether time accumulates before the server responds or during transfer.
</p>
<p>
  Avoid treating a successful ping as proof that the application path is healthy. Acumatica traffic may pass through gateways, inspection services, load balancers, or identity components that a simple network test does not exercise. Compare the actual browser transaction from affected and unaffected locations.
</p>
<h3>The whole site is affected</h3>
<p>
  When many users and unrelated screens slow at the same time, widen the evidence window. Review application-server resources, application-pool behavior, database pressure, blocking, storage latency, running processes, scheduled automation, integrations, backups, scanning, and license or concurrency conditions where applicable. Acumatica&#8217;s official troubleshooting sequence specifically separates overall-site performance from a slow individual process because the likely evidence and corrective actions differ. [1]
</p>
<h3>The problem appears only at certain times</h3>
<p>
  Time-bound issues often correlate with other workloads. Map the slowdown against automation schedules, imports, exports, backups, maintenance, reporting, integration bursts, end-of-period activity, and user concurrency. Use a shared time zone and synchronized clocks. The strongest evidence is a repeated correlation between the slow transaction and a measured competing workload, followed by a controlled schedule or resource change that removes the effect.
</p>
<table>
<thead>
<tr>
<th>
<p><strong>Observed scope</strong>
</p>
</th>
<th>
<p><strong>Highest-value first comparison</strong>
</p>
</th>
<th>
<p><strong>Common evidence to collect</strong>
</p>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<p>
  One user
</p>
</td>
<td>
<p>
  Same user on another device; another user on the affected device
</p>
</td>
<td>
<p>
  Browser profile, role, preferences, endpoint and route
</p>
</td>
</tr>
<tr>
<td>
<p>
  One screen
</p>
</td>
<td>
<p>
  Same screen with controlled data; neighboring screen as a control
</p>
</td>
<td>
<p>
  Network request, profiler trace, GI, customization, SQL
</p>
</td>
</tr>
<tr>
<td>
<p>
  One location
</p>
</td>
<td>
<p>
  Same task from another location
</p>
</td>
<td>
<p>
  HAR, latency, proxy/VPN path, transfer timing
</p>
</td>
</tr>
<tr>
<td>
<p>
  Whole site
</p>
</td>
<td>
<p>
  Unrelated screens and users during the same period
</p>
</td>
<td>
<p>
  Server resources, jobs, blocking, storage, concurrency
</p>
</td>
</tr>
<tr>
<td>
<p>
  Certain times
</p>
</td>
<td>
<p>
  Same task inside and outside the affected window
</p>
</td>
<td>
<p>
  Schedules, monitoring timeline, process history, correlations
</p>
</td>
</tr>
</tbody>
</table>
<h2>Read browser evidence without misdiagnosing the server</h2>
<p>
  The browser Network panel is most valuable when it is used to answer a precise question: where did the elapsed time accumulate for the request associated with the slow action? Preserve the log, reproduce one transaction, and identify the request or sequence that aligns with the user&#8217;s wait. Record the request name or URL pattern, method, status, start time, duration, response size, and timing phases.
</p>
<p>
  A long wait before a request is sent can indicate browser queuing, client-side work, connection limits, or another blocking resource. A long connection phase can point toward DNS, proxy, TLS, VPN, routing, or network instability. A long wait for the first response byte is consistent with time spent beyond the browser, but it does not by itself distinguish application code, SQL, an external dependency, or server capacity. A long content download can reflect response size or transfer conditions.
</p>
<p>
  Use the browser Console as supporting evidence. Repeated exceptions, failed resource loads, blocked requests, or customization errors may explain a stalled interface even when the backend request is reasonable. Capture the exact message, timestamp, source, and action that produced it. A console warning unrelated to the tested transaction is not automatically the cause.
</p>
<p>
  HAR files can contain URLs, parameters, record identifiers, headers, cookies, or other sensitive information. Follow the organization&#8217;s data-handling policy before exporting or sharing them. Remove credentials and sensitive values, retain an unmodified copy only in an approved location when required, and tell the recipient what was sanitized.
</p>
<p>
  Compare like with like. Use the same browser cache condition, record, role, and request sequence for the affected and control tests. If one test is the first visit after clearing cache and the other is a warm repeat, the comparison does not isolate the variable you intended to test.
</p>
<p><strong>Browser time versus Acumatica server time:</strong> Browser elapsed time includes work outside the Acumatica server, while Request Profiler server time measures processing recorded by Acumatica. When browser time is much higher than profiler time, investigate the client and delivery path. When profiler time explains most of the browser wait, inspect application, customization, external dependency, and SQL evidence inside the server trace.
</p>
<h2>Use Request Profiler as a controlled experiment</h2>
<p>
  Request Profiler is not merely a place to collect a large log. It is a tool for connecting a user action to server time, SQL time, memory, exceptions, and trace details. The clearest profile contains the smallest practical set of activity that reproduces the issue.
</p>
<p>
  Before starting logging, prepare the target screen and the exact record or filter. Note the local time and the tester. Start the profiler, perform the action once, stop logging promptly, and export the result. Avoid navigating through unrelated screens during the capture. If the slow behavior requires a sequence, document every step so the recipient can match the profile entries to the user&#8217;s actions.
</p>
<p>
  Interpret totals in context. Server time that is high with little SQL time directs attention to application logic, customization code, serialization, external calls, or resource pressure. SQL time that closely tracks server time directs attention to the generated query, blocking, plan, data distribution, and database resources. Exceptions and warnings may reveal a repeated fallback or retry, but they still need to be matched to the transaction.
</p>
<p>
  Memory figures can help compare two versions of the same action. A large difference does not establish a leak on its own; it identifies a transaction that deserves a longer observation or code review. Likewise, one expensive request does not explain a whole-site complaint unless its timing and concurrency align with the broader impact.
</p>
<p>
  Acumatica documents automatic monitoring thresholds in Request Profiler, including defaults for certain screen, Generic Inquiry, report, and other requests. Use those thresholds to understand what the profiler records automatically, not as universal service-level targets. [3] A frequently repeated four-second action may be operationally significant even if it does not cross an automatic logging threshold.
</p>
<p>
  Run A/B comparisons with only one intentional difference:
</p>
<p><strong>1.  </strong>Capture the task on the current build and package set.
</p>
<p><strong>2.  </strong>Change one variable in a sandbox, such as the suspected customization, GI revision, browser path, or schedule.
</p>
<p><strong>3.  </strong>Repeat the same record, role, filters, cache condition, and repetition method.
</p>
<p><strong>4.  </strong>Compare user time, browser time, server time, SQL time, memory, result correctness, and any exceptions.
</p>
<p><strong>5.  </strong>Restore or retain the change according to the test plan, then document the conclusion and next owner.
</p>
<p>
  If several variables change together, the test may show improvement without explaining it. That makes the result difficult to reproduce and risky to promote into production.
</p>
<h2>Troubleshoot Generic Inquiry performance methodically</h2>
<p>
  Generic Inquiries are frequently reused across screens, dashboards, exports, integrations, AI tools, and operational reporting. A design that appears in one place can therefore influence several user experiences. Troubleshooting should protect the business meaning of the inquiry while reducing unnecessary work.
</p>
<p>
  Start by documenting what the GI is supposed to return. Identify the business grain: one row per sales order, line, shipment, customer, inventory item, or another defined entity. If joins create more rows than the business grain allows, the inquiry may process and return duplicate combinations even when users see a familiar result after grouping.
</p>
<p>
  Review joins and conditions together. A correct relationship with an incomplete join condition can multiply rows. A filter applied after a broad join can make the database assemble a much larger intermediate result than the final grid suggests. Calculated fields, subqueries, aggregation, grouping, and sorting can add work, especially when the result covers a long period or many branches.
</p>
<p>
  Test the GI with the production role rather than only an administrator. Security scope and accessible companies, branches, customers, or records can change both the result and the generated work. Record parameters and saved filters because two users can appear to open the same inquiry while requesting different datasets.
</p>
<p>
  Pay attention to selectors and dashboards. A selector may execute while a user enters data, so a moderate delay repeated many times becomes disruptive. A dashboard can issue several inquiries at once, making its total load a concurrency problem rather than a single-query problem. Isolate each component before optimizing the combined page.
</p>
<p>
  For exports, distinguish grid display from full dataset retrieval. The visible page may load a limited result while an export requests far more rows, columns, formatting, or calculated values. Record both the displayed row count and the exported row count.
</p>
<p>
  Use the following sequence in a sandbox:
</p>
<p><strong>1.  </strong>Confirm the required business grain and columns.
</p>
<p><strong>2.  </strong>Reproduce with the exact role, parameters, filters, sorting, and data range.
</p>
<p><strong>3.  </strong>Record browser, server, and SQL time plus returned row count.
</p>
<p><strong>4.  </strong>Check joins for unintended multiplication and filters for unnecessary breadth.
</p>
<p><strong>5.  </strong>Remove one nonessential column, calculation, sort, group, or join at a time.
</p>
<p><strong>6.  </strong>Compare timing and validate totals, distinct keys, and sample records.
</p>
<p><strong>7.  </strong>Test every consumer that depends on the inquiry before publishing the revision.
</p>
<p><strong>Slow Generic Inquiry diagnosis:</strong> A slow GI should be evaluated by business grain, joins, conditions, calculations, sorting, security scope, parameters, and returned volume. The safe optimization is the smallest design change that reduces measured work while preserving record counts, totals, keys, navigation, security, and downstream consumers.
</p>
<h2>Isolate Modern UI customization and integration effects</h2>
<p>
  Customization troubleshooting should identify a package, component, or call path rather than classify all custom code as the problem. Begin with the dependency map for the slow task: screen extension, graph extension, event handler, client-side code, API call, external service, custom inquiry, automation, and any overridden behavior.
</p>
<p>
  Check publication and build evidence after the upgrade. A customization can publish successfully while still performing unnecessary work at runtime. Conversely, a client-side build error, stale generated asset, or browser exception can impair the interface before the server transaction begins. Review both the customization build output and the browser evidence.
</p>
<p>
  When safe, compare the same task with the suspected project unpublished and republished in a sandbox. Keep every other relevant condition constant. Acumatica&#8217;s performance troubleshooting guidance describes this comparison as a way to identify customization involvement. [1] The result should be framed precisely: “server time decreased when package X was absent” is evidence; “all customization is slow” is not.
</p>
<p>
  If several projects depend on one another, test a supported package set. Do not create an artificial environment that cannot execute the transaction correctly. Record dependencies, publication order, build output, and functional differences. A faster test that skips required business logic is not an acceptable optimization.
</p>
<p>
  Time external dependencies independently. A customization may call a tax provider, carrier, commerce platform, document service, or internal API. Capture the start, finish, outcome, timeout, and retry behavior of that call. If Acumatica waits for a remote response, database tuning will not remove the delay. Consider whether the interaction must be synchronous, but treat architecture changes as a separate design decision with business and recovery implications.
</p>
<p>
  Review repeated work. Code that queries or recalculates once per line, field event, or grid refresh can scale poorly as document size grows. Compare a small and large document while holding other variables constant. A sharply increasing curve is more informative than a single slow example.
</p>
<p>
  Validate behavior after every performance change. Confirm field defaults, totals, taxes, discounts, inventory allocation, approvals, releases, notes, attachments, integrations, and audit expectations that the customization affects. Performance is one acceptance dimension; the transaction must remain correct and supportable.
</p>
<h2>Investigate SQL without jumping directly to indexes</h2>
<p>
  SQL evidence should begin with the query and its operating context. Identify the Acumatica action, profiler entry, parameters, duration, reads where available, wait or blocking condition, execution plan, data scale, and competing activity. This prevents a database change from being based on an isolated statement copied without the application conditions that produced it.
</p>
<p>
  Blocking and resource pressure can make a normally efficient query appear slow. Check whether the statement was waiting on another transaction, storage, memory, CPU, or a concurrent maintenance operation. Correlate the database timeline with the Acumatica and browser timestamps. A plan captured after the event may not reflect the plan or parameter values used during the slow execution.
</p>
<p>
  Review data distribution and statistics. An upgrade can coincide with data growth, changed filters, new workflows, or maintenance differences even when the underlying query text is familiar. A plan that works for a narrow parameter may perform poorly for a broad one. Record the actual business parameters before testing an alternative.
</p>
<p>
  Do not add an index solely because a tool suggests it. Evaluate write cost, storage, overlap with existing indexes, maintenance, upgrade support, and whether the query comes from a customization or a standard process. A targeted GI or code change may reduce more work with less long-term cost. Database changes should follow the organization&#8217;s Acumatica support and change-control practices.
</p>
<p>
  For overall-site issues, examine server configuration and health in the order described by the official guide. Acumatica&#8217;s troubleshooting sequence includes the distinction between application-server and database-server time, followed by server and database checks and then additional evidence collection. [1] This order reduces the risk of tuning the database when most of the elapsed time occurs elsewhere.
</p>
<p>
  Retest with the same workload after any change. Compare not only duration but also reads, CPU, blocking, result counts, and the effect on concurrent transactions. An improvement for one query that degrades order entry, imports, or release processing is not a successful system-level fix.
</p>
<h2>Account for post-upgrade conditions that distort results</h2>
<p>
  The period immediately after an upgrade can produce measurements that do not represent steady-state operation. Application services may have restarted, caches may be cold, browser assets may have changed, database plans may be refreshed, and scheduled jobs may be catching up. Users may also be learning new navigation, which affects task time independently of server performance.
</p>
<p>
  Separate stabilization observations into technical response and human execution. Measure the request sequence, and also watch a trained user complete the entire task. If requests are fast but the task takes longer, investigate layout, focus order, keyboard use, saved views, filters, and the number of interactions. If the same steps remain but requests are slower, continue with browser, profiler, customization, and database evidence.
</p>
<p>
  Verify the exact build and package set. A statement about “2026 R1” or “2026 R2” is too broad for support or regression work because maintenance builds and customization revisions can differ. Record the complete Acumatica build, browser version, package versions, deployment topology, database version, and date of the test.
</p>
<p>
  Warm the environment in a controlled way before accepting a baseline. Run the selected tasks once, then measure the defined warm series. Keep cold-start results as a separate operational measure if restarts or scale-out events matter to the business. Do not discard cold behavior; label it correctly.
</p>
<p>
  Confirm background recovery. Integrations, automation schedules, search indexes, reporting extracts, or other processes may resume after an upgrade and compete for resources. Record queue depth and completion state. A slowdown caused by temporary backlog requires a different response from a repeatable screen defect.
</p>
<p>
  Compare with the pre-upgrade environment only when the data and test method are comparable. A refreshed sandbox with a larger database, different integrations, fewer server resources, or different user concurrency cannot provide a clean version comparison. Document unavoidable differences and avoid claiming that the release caused the full measured gap.
</p>
<p>
  The <a href="https://biz-techservices.com/archives/10770">Acumatica 2026 R2 Upgrade Guide</a> provides the broader readiness and stabilization framework. The <a href="https://biz-techservices.com/archives/10787">Modern UI Migration Readiness guide</a> helps teams identify complete role-based tasks so the performance test covers more than opening a screen.
</p>
<h2>Prepare an escalation package that support can use immediately</h2>
<p>
  A strong escalation package allows another technical team to reproduce the issue, understand its business impact, and inspect the same evidence without beginning with basic discovery. Keep it focused enough to review and complete enough to act on.
</p>
<p>
  Start with a one-paragraph summary. Name the environment, full build, affected task, scope, expected behavior, observed behavior, and business consequence. Include the first observed date and whether the issue began after a known change. Avoid conclusions that the evidence has not established.
</p>
<p>
  Provide exact reproduction steps. State the screen ID, role, record or sanitized equivalent, filter values, buttons or actions, expected result, observed time, repetition count, and frequency. Explain whether the first run differs from warm repeats. If production data cannot be shared, describe the minimum data characteristics needed to reproduce the workload.
</p>
<p>
  Attach a timeline using one time zone. Include the browser capture time, profiler session, application log interval, database observation, and any concurrent job. This lets support align events that were recorded by different systems.
</p>
<p>
  Summarize comparisons already completed:
</p>
<ul>
<li>
    affected and unaffected user;
  </li>
<li>
    affected and unaffected location;
  </li>
<li>
    supported browsers or clean profile;
  </li>
<li>
    cold and warm run;
  </li>
<li>
    customization present and absent in a sandbox;
  </li>
<li>
    narrow and broad data range;
  </li>
<li>
    normal and affected time window;
  </li>
<li>
    current and comparison build when valid.
  </li>
</ul>
<p>
  List the result of each comparison, including tests that rejected a hypothesis. This prevents repeated work and shows which variables are still open. Attach the Request Profiler export, sanitized HAR when allowed, relevant logs, screenshots, build and package inventory, monitoring graphs, and database evidence. Do not attach an entire unrestricted log archive when a focused interval will answer the question.
</p>
<p>
  Close with the assistance requested. Ask whether support should confirm a known defect, interpret a trace, recommend a corrected build, review platform behavior, or advise on the next diagnostic step. A precise request is easier to route than “please fix performance.”
</p>
<p><strong>Minimum Acumatica support evidence:</strong> Provide the full build, deployment model, business impact, screen ID, exact steps, role, record and filters, timestamps, browser timing, Request Profiler export, relevant logs, package inventory, comparisons performed, and a clear request. Sanitize sensitive data while preserving the technical relationships needed for reproduction.
</p>
<h2>How to prevent performance regressions after the fix</h2>
<p>
  Turn the confirmed transaction into a regression test. Store the screen, role, filters, representative record, row count, cold or warm condition, expected result, and acceptable range. Run it after Acumatica builds, browser changes, GI revisions, customization releases, and infrastructure work.
</p>
<p>
  Include high-volume and exception paths, not only a blank screen or a small demo record. For the broader upgrade process, the <a href="https://biz-techservices.com/archives/10770">Acumatica 2026 R2 Upgrade Guide</a> explains how to build performance checks into sandbox validation and stabilization. If your organization is still moving custom screens and workflows, use the <a href="https://biz-techservices.com/archives/10787">Modern UI Migration Readiness guide</a> to inventory the role-based tasks that need coverage.
</p>
<p>
  The goal is a small, trusted baseline rather than a single universal threshold. A sales-order screen, a 200,000-row inquiry export, and a batch release have different purposes. Each needs a business owner, representative data, and an agreed measurement.
</p>
<h2>Frequently asked questions</h2>
<h3>Why is Acumatica Modern UI slow only on the first load?</h3>
<p>
  The first load may include browser assets, application initialization, and cold caches that later runs reuse. Record the cold result separately, then repeat the same action on a warm session. If only the first load is slow, inspect static-asset delivery, cache behavior, browser policy, and application startup rather than averaging the first and later runs together.
</p>
<h3>How do I tell whether Acumatica or the network is slow?</h3>
<p>
  Compare the browser&#8217;s elapsed request time with Request Profiler server time for the same action. A long browser request with low server time points toward the client, network, proxy, or endpoint path. High server time means the delay is within application processing, SQL, customization code, an external dependency, or server capacity.
</p>
<h3>Can a Generic Inquiry make Modern UI feel slow?</h3>
<p>
  Yes. Joins, calculated fields, filters, sorting, security scope, returned row volume, and exports can increase the work behind a Generic Inquiry. Test the exact role and parameters, capture row count and profiler timings, then change one element in a sandbox while verifying that the business result remains correct.
</p>
<h3>Should I clear the browser cache after an Acumatica upgrade?</h3>
<p>
  Clearing stale browser assets can be a valid controlled test, especially after UI or customization changes, but it is not a complete diagnosis. Record the result, distinguish the next cold load from warm repeats, and confirm whether the improvement persists. If the issue returns, capture browser and server evidence instead of repeating cache clearing as the only remedy.
</p>
<h3>When should I open an Acumatica Support case?</h3>
<p>
  Open a case when you can reproduce the issue but cannot isolate an owned component, when evidence points to platform behavior, or when a documented defect may apply. Include the exact build, steps, timestamps, screen ID, role, browser, profiler export, relevant logs, comparisons, and business impact so support can begin with evidence rather than request basic reproduction details.
</p>
<h2>Get a focused Acumatica performance diagnostic</h2>
<p>
  Biz-Tech Services can help reproduce a slow Acumatica transaction, separate browser, network, application, customization, Generic Inquiry, and database causes, and prepare an evidence package for remediation or support. <a href="https://biz-techservices.com/acumatica">Explore Biz-Tech Services Acumatica consulting and support</a> or contact the team to request a performance diagnostic for your exact build and workflow.
</p>
<h2>Sources</h2>
<p><strong>1.  </strong><a href="https://beacon.acumatica.com/r/System-Administration-Guide/Troubleshooting-Acumatica-ERP/Troubleshooting-Performance">Acumatica 2026 R2 System Administration Guide: Troubleshooting Performance</a>
</p>
<p><strong>2.  </strong><a href="https://www.acumatica.com/blog/part-i-a-modern-user-interface-for-a-new-technology-era/">Acumatica: A Modern User Interface for a New Technology Era, Part I</a>
</p>
<p><strong>3.  </strong><a href="https://beacon.acumatica.com/r/System-Administration-Guide/Monitoring-System-Health/System-Health-Request-Profiler">Acumatica 2026 R2 System Administration Guide: Request Profiler</a>
</p>
<p><strong>4.  </strong><a href="https://www.acumatica.com/blog/acumatica-2025-r1-new-ui/">Acumatica 2025 R1 Modern UI overview</a>
</p>
<p><strong>5.  </strong><a href="https://community.acumatica.com/system-health-and-performance-118/how-is-26r1-modern-ui-performing-for-you-35449?sort=mostRecentFirst">Acumatica Community: How is 26R1 Modern UI performing for you?</a> (directional user reports; verify in your own environment)</p>
<p>The post <a href="https://biz-techservices.com/archives/10861">Acumatica Modern UI Performance Troubleshooting After an Upgrade</a> appeared first on <a href="https://biz-techservices.com">Biz-Tech Services</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Map Shopify Products and Variants to Acumatica Inventory Items</title>
		<link>https://biz-techservices.com/archives/10854</link>
		
		<dc:creator><![CDATA[Gary]]></dc:creator>
		<pubDate>Mon, 19 Oct 2026 06:52:29 +0000</pubDate>
				<category><![CDATA[Lesson]]></category>
		<guid isPermaLink="false">https://biz-techservices.com/?p=10854</guid>

					<description><![CDATA[<p>Mapping Shopify products and variants to Acumatica inventory items depends on the direction of the synchronization. On import, the connector [&#8230;]</p>
<p>The post <a href="https://biz-techservices.com/archives/10854">How to Map Shopify Products and Variants to Acumatica Inventory Items</a> appeared first on <a href="https://biz-techservices.com">Biz-Tech Services</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Mapping Shopify products and variants to Acumatica inventory items depends on the direction of the synchronization. On import, the connector can use a Shopify SKU to create an Acumatica Inventory ID, create a new item when allowed, or use the configured missing-product default. On export, the documentation states that item mapping is not supported and the Acumatica Inventory CD becomes the Shopify SKU.</p>
<p>The Biz-Tech Services Shopify Acumatica Connector also separates identity mapping from field mapping. The Shopify Inventory tab handles product and item synchronization, Inventory Mapping connects ERP properties to Shopify fields and metafields, and the template and matrix item workflow represents Shopify products and variants. This article stays focused on those product, variant, SKU, cross-reference, item-class, and validation decisions rather than repeating connection setup, order import, or quantity synchronization.</p>
<p><strong>What Shopify Product and Variant Mapping Does</strong></p>
<p>The Biz-Tech Services Acumatica Shopify Connector provides documented paths for resolving item identity and synchronizing product data. When Sync from Shopify runs on the Shopify Inventory tab, the connector takes the Shopify item SKU and creates an Acumatica Inventory ID. When an order import encounters an item that does not exist, the Import Item setting determines whether a new inventory item may be created.</p>
<p>Field mapping is configured separately on the Inventory Mapping tab. That tab connects Acumatica attributes, item currency settings, and user-defined fields with Shopify fields. It also supports Shopify metafields at the product or variant level. A product or variant can therefore have both an item identity, normally tied to SKU, and a set of mapped descriptive or custom properties.</p>
<p>The connector documents a third layer for catalog structure. An Acumatica Template Item represents the base product, while Matrix Items represent the sellable Shopify variants. Each Matrix Item is a unique attribute combination, such as a specific size and color, and is stocked, priced, and sold separately.</p>
<p><strong>Shopify Product and Variant Mapping at a Glance</strong></p>
<p>Use this sequence to separate item identity, missing-item behavior, field mapping, and variant structure.</p>
<p>1 Review Import Item on the Shopify store Import Settings before importing products or order lines that may not exist in the ERP.</p>
<p>2 If new items may be created, set the imported item type, item class, UOM, and warehouseID defaults that appear when Import Item is selected.</p>
<p>3 If Shopify may send an item without an SKU, decide whether Use Numbering Sequence for SKU Generation should generate a new value from the configured numbering sequence.</p>
<p>4 Load Shopify items on the Shopify Inventory tab, then use Sync from Shopify for the documented SKU-to-Inventory ID import path.</p>
<p>5 Use Inventory Mapping to pair ERP properties with Shopify properties and to configure product-level or variant-level metafield mappings.</p>
<p>6 For products with options, sync the Acumatica Template Item as the Shopify product and select the Matrix Items that should become Shopify variants.</p>
<p>7 Select the required import or export checkbox for each field mapping before processing mapped values.</p>
<p>8 Validate the resulting SKU, Inventory ID or Inventory CD, Shopify product identity, template identity, matrix-item selection, and required field checkboxes on the documented screens and tabs.</p>
<p><strong>Resolve Shopify SKUs to Acumatica Inventory Items</strong></p>
<p>The Shopify Inventory tab can load both Acumatica and Shopify items. Load Acumatica Items retrieves stock and non-stock records. Load Shopify Items retrieves Shopify items. Sync to Shopify exports ERP items, while Sync from Shopify imports Shopify items into the ERP. Get Item by ID retrieves a Shopify item by its ID, and Purge removes the items displayed in the table.</p>
<p>For Sync from Shopify, the manual gives a direct identity rule: the connector takes the Shopify item SKU and creates an Acumatica Inventory ID. That statement establishes SKU as the documented import identifier. The manual does not say whether the comparison is case-sensitive, whether spaces or punctuation are normalized, or how duplicate Shopify SKUs are resolved.</p>
<p>The export direction uses a different rule. The connector does not support item mapping when an ERP inventory item is exported to Shopify. Instead, it sets the item Inventory CD as the Shopify SKU. Before choosing an item-code design, account for that restriction because the manual does not document an export alias that substitutes a different Shopify SKU.</p>
<p>The manual alternates between Inventory ID for the imported item and Inventory CD for the value sent as the Shopify SKU. It does not explain whether those terms refer to the same visible item identifier in this connector context. Preserve the documented terms when testing each direction and verify the actual values displayed in the Shopify Inventory table and the inventory record.</p>
<p><strong>Configure Missing Product Creation and Item Defaults</strong></p>
<p>Import Item controls the connector behavior when a Shopify item is not found in the ERP during synchronization or order import. When the checkbox is selected, the system allows a new item to be created. The imported item type, item class, UOM, and warehouseID options then appear and supply the documented default values for that new item.</p>
<p><img decoding="async" class="alignnone size-full wp-image-10855" src="https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:auto/h:auto/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/Warehouses.png" alt="Warehouses" width="929" height="563" srcset="https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:929/h:563/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/Warehouses.png 929w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:300/h:182/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/Warehouses.png 300w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:768/h:465/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/Warehouses.png 768w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:350/h:212/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/Warehouses.png 350w" sizes="(max-width: 840px) 100vw, 840px" /></p>
<p>Item class is therefore documented as a new-item default, not as an alternate matching key. The source does not state that an item class decides which existing inventory record matches a Shopify SKU, nor does it document class-based product aliases or variant resolution. Use the item class to classify newly created items only to the extent shown by the setting.</p>
<p>When Import Item is not selected, the source says the new item import case uses Replace Missing Products as the item name and takes the warehouse from Warehouse ID. The wording is imprecise, but it clearly identifies Replace Missing Products as the documented fallback setting for a missing imported item rather than describing automatic creation of a normal inventory record.</p>
<p>Use Numbering Sequence for SKU Generation applies during item creation when the system does not find an SKU number. In that case, the connector generates a new value from the numbering sequence setup. The documentation also warns that an absent corresponding numbering sequence produces an error message, although it does not provide the exact message text.</p>
<p>Populate Items in Inventory Details adds the imported item to Inventory Details. Save Item Properties in Line Notes allows item properties from the order to be synchronized to line and header notes. These settings affect the created record or imported order context; the manual does not present them as matching or alias rules.</p>
<p><strong>Use Cross-References Without Assuming an Item Alias Model</strong></p>
<p>Cross-Reference options on Import Settings determine which entities may be set up and matched between Shopify and Acumatica. The Cross-Reference tab visibly supports values such as Ship Via. For customer imports that use tags and the Code type, the source specifically describes Shopify Value and Acumatica Value fields and explains how a Shopify tag can select a customer record.</p>
<p>The manual then states that the same logic works for items, but it does not provide the corresponding item example, item field names, or a complete matching sequence. It does not say whether the Shopify value is an SKU, tag, product ID, variant ID, title, or another property. It also does not explain the relationship between an item cross-reference and the SKU-based behavior on Shopify Inventory.</p>
<p>The Biz-Tech Services Shopify Acumatica Integration should therefore be configured only from the item choices actually exposed in Cross-Reference options. Do not infer a customer part-number, vendor part-number, alternate ID, wildcard, or alias table from the brief statement that item logic is similar. The documentation does not define those mechanisms.</p>
<p>For an unmapped record, the documented outcomes depend on the workflow and settings. Shopify Inventory import can create an Acumatica Inventory ID from the Shopify SKU. Order import can create a new item when Import Item is selected, or use Replace Missing Products when it is not. The manual does not state which behavior takes precedence if an item cross-reference exists but conflicts with the SKU, or if an item cross-reference is enabled but no row matches.</p>
<p><img decoding="async" class="alignnone size-full wp-image-10856" src="https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:auto/h:auto/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/ExportShopifyInventoryItems_Screen.png" alt="Export Shopify Inventory Items Screen" width="1097" height="874" srcset="https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:1097/h:874/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/ExportShopifyInventoryItems_Screen.png 1097w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:300/h:239/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/ExportShopifyInventoryItems_Screen.png 300w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:1024/h:816/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/ExportShopifyInventoryItems_Screen.png 1024w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:768/h:612/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/ExportShopifyInventoryItems_Screen.png 768w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:350/h:279/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/ExportShopifyInventoryItems_Screen.png 350w" sizes="(max-width: 840px) 100vw, 840px" /></p>
<p><strong>Map Product Variant and Metafield Properties</strong></p>
<p>Inventory Mapping handles field-level data after the product or variant identity is established. The tab supports Acumatica attributes, item currency settings, user-defined fields, and Shopify fields. It also supports exporting and updating Shopify metafields at the product or variant level.</p>
<p><img decoding="async" class="alignnone size-full wp-image-10857" src="https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:auto/h:auto/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/ItemMapping.png" alt="Item Mapping" width="1054" height="805" srcset="https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:1054/h:805/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/ItemMapping.png 1054w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:300/h:229/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/ItemMapping.png 300w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:1024/h:782/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/ItemMapping.png 1024w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:768/h:587/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/ItemMapping.png 768w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:350/h:267/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/ItemMapping.png 350w" sizes="(max-width: 840px) 100vw, 840px" /></p>
<p>Use Get Metafields to retrieve existing Shopify metafields before organizing the mapping. Each mapping has checkboxes that specify whether it applies to import or export. Select the appropriate direction before processing; the source explicitly tells users to confirm that the corresponding checkbox is selected before importing or exporting mapped values.</p>
<p>The documentation defines Acumatica property as the Acumatica item category and Shopify property as the Shopify item category. It does not list the complete set of allowed categories, provide sample product-level and variant-level rows, or describe type conversion between the platforms. It also does not define what happens when a metafield type or mapped value is invalid.</p>
<p>Export Item Mappings is a related but separate tab. It determines which product-related fields are synchronized to Shopify, and its checkboxes can exclude fields that should not be updated. The source warns that if required fields are not selected for creation or update, corresponding data such as price, description, or weight will not be updated on Shopify processing screens.</p>
<p><strong>Connect Template Items Matrix Items and Shopify Variants</strong></p>
<p>An Acumatica Template Item is the base product used to create multiple Matrix Items and is not itself a sellable product. A Matrix Item is a child product generated from the template. Each Matrix Item represents one attribute combination and is stocked, priced, and sold separately. In Shopify terms, the template supplies the product structure and the matrix items supply the variants.</p>
<p>After the Template Item is synchronized, the Shopify-generated Template ID is displayed on the Shopify Product tab. Syncing can then include selected matrix items or all matrix items.</p>
<p>1 Select Sync Matrix Items.</p>
<p>2 Open the Matrix Items tab.</p>
<p>3 Select the desired items.</p>
<p>4 Select Include Item in Sync.</p>
<p>5 Confirm that the selected items appear on the Shopify Details tab, which the manual uses as confirmation that they are in the Shopify store and ready to synchronize.</p>
<p>Sync All Matrix Items sends all matrix items with the template product. After the template item exists in Shopify, Shopify Product Data becomes available on the Shopify Product tab. Selecting it exposes additional fields such as Custom URL, Meta Description, and Page Title. Export to Shopify is automatically selected when the product exists in Shopify.</p>
<p>The same selected-checkbox logic applies to stock items. When the template and matrix synchronization checkboxes are selected, the items synchronize as one template with its matrix items. When they are not selected, the manual says items export as ordinary individual products.</p>
<p><strong>Understand Export Direction and Validation Limits</strong></p>
<p>The export path must be reviewed separately from import. Because export item mapping is not supported, the Acumatica Inventory CD becomes the Shopify SKU. If the connector cannot find some items in the Shopify store during synchronization, the documentation says it creates them automatically. On sales order export, Create Product determines whether a missing Shopify product is created; when it is not selected, the default product under Replace Missing Products is used.</p>
<p>Track Quantity has a documented validation rule. If Track Quantity is not selected in either Shopify or Acumatica, an error message should appear during synchronization. If it is not selected in Shopify but is selected in the ERP, synchronization should update the quantity and automatically select the option in Shopify. The source does not provide the error text or describe the opposite mismatch.</p>
<p>Product-field synchronization also depends on selected checkboxes in Export Item Mappings. Price, description, weight, and other fields are not updated when their required creation or update fields are not selected. Image synchronization depends on Product Image, but the source separately warns that punctuation marks can duplicate an image without defining which punctuation, filename field, or comparison rule is involved.</p>
<p>The source does not provide screen IDs for Shopify Stores, Shopify Inventory, Inventory Mapping, Export Item Mappings, Export Shopify Inventory Items, Stock Items, or the template and matrix workflow. No screen ID should be inferred from a standard installation or from another connector.</p>
<p><strong>Where to Check Your Work</strong></p>
<p>The Biz-Tech Services Shopify Acumatica Integrator exposes the documented mapping result across these screens and tabs.</p>
<p>1 Shopify Stores Import Settings: check Import Item, imported item type, item class, UOM, warehouseID, Use Numbering Sequence for SKU Generation, Replace Missing Products, Warehouse ID, Populate Items in Inventory Details, and Save Item Properties in Line Notes.</p>
<p>2 Cross-Reference options and Cross-Reference tab: confirm that the item entity is selected before expecting its values to appear, then review the Shopify Value and Acumatica Value fields that the screen exposes.</p>
<p>3 Shopify Inventory: use Load Shopify Items or Get Item by ID, review the Shopify SKU, and confirm the result of Sync from Shopify in the Acumatica inventory record.</p>
<p>4 Inventory Mapping: confirm the Acumatica property, Shopify property, product-level or variant-level metafield selection, and the import or export checkbox for each mapping.</p>
<p>5 Export Item Mappings: confirm that every product field intended for synchronization is selected before running a related processing screen.</p>
<p>6 Shopify Product tab: after template synchronization, confirm the generated Template ID, Shopify Product Data, and Export to Shopify state.</p>
<p>7 Matrix Items and Shopify Details tabs: confirm which matrix items were selected with Include Item in Sync and which variants are ready to synchronize.</p>
<p>8 Export Shopify Inventory Items: confirm that the intended price, description, and weight checkboxes were enabled in Export Item Mappings before processing.</p>
<p>9 Import Shopify Orders or another importing workflow: when a line does not resolve to the expected item, compare the SKU, Import Item state, item creation defaults, Cross-Reference setup, Replace Missing Products, and Warehouse ID.</p>
<p><strong>Shopify Product and Variant Mapping Frequently Asked Questions</strong></p>
<p><strong>Does the connector map a Shopify SKU to an Acumatica inventory item?</strong></p>
<p>Yes, in the documented Shopify-to-Acumatica path. Sync from Shopify takes the Shopify item SKU and creates an Acumatica Inventory ID. The source does not describe normalization or duplicate-SKU handling.</p>
<p><strong>Can I map a different Acumatica item code when exporting to Shopify?</strong></p>
<p>The documentation says the connector does not support mapping during Acumatica item export. It sends the Acumatica Inventory CD as the Shopify SKU.</p>
<p><strong>What happens when a Shopify item does not exist in Acumatica?</strong></p>
<p>With Import Item selected, the connector can create a new item using the configured imported item type, item class, UOM, and warehouseID defaults. Without Import Item, the documented fallback uses Replace Missing Products and Warehouse ID, although the manual does not explain the fallback record in detail.</p>
<p><strong>Can the connector generate an SKU when Shopify does not provide one?</strong></p>
<p>Use Numbering Sequence for SKU Generation allows a value to be generated during item creation when the system does not find an SKU. The corresponding numbering sequence must be configured or an error message is displayed.</p>
<p><strong>How are Shopify variants represented in Acumatica?</strong></p>
<p>The documented model uses a Template Item as the base product and Matrix Items as the individual variants. Each matrix item represents one attribute combination and is stocked, priced, and sold separately.</p>
<p><strong>Can product and variant metafields use different mappings?</strong></p>
<p>Inventory Mapping supports Shopify metafields at the product or variant level. Retrieve existing fields with Get Metafields and select import or export for each mapping. The source does not provide examples of the allowed data types or conversion rules.</p>
<p><strong>Does the connector support item aliases and alternate identifiers?</strong></p>
<p>The Biz-Tech Services Acumatica Shopify Integration documents SKU-based identity, selected Cross-Reference entities, and property mapping. It does not define an alias table, alternate item ID, wildcard match, customer part number, or vendor part number for product and variant resolution.</p>
<p><strong>Why did a product field fail to update in Shopify?</strong></p>
<p>Check Export Item Mappings and the relevant Inventory Mapping direction. The manual warns that price, description, weight, or other data is not updated when the required creation or update checkbox is not selected.</p>
<p><strong>Work With the Biz-Tech Services Shopify Connector</strong></p>
<p>Reliable Shopify product mapping starts by treating item identity, field properties, and variant structure as separate controls. Validate the SKU and missing-item behavior first, then configure Inventory Mapping, and finally confirm how Template Items and Matrix Items appear as products and variants.</p>
<p>If you need help validating Shopify SKU resolution, item-creation defaults, metafield mappings, or template and matrix item synchronization, visit https://biz-techservices.com to work with the Biz-Tech Services Acumatica Shopify Integrator.</p>
<p>The post <a href="https://biz-techservices.com/archives/10854">How to Map Shopify Products and Variants to Acumatica Inventory Items</a> appeared first on <a href="https://biz-techservices.com">Biz-Tech Services</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Acumatica AI Agents and Agent Actions: A Governed Automation Playbook</title>
		<link>https://biz-techservices.com/archives/10852</link>
		
		<dc:creator><![CDATA[Gary]]></dc:creator>
		<pubDate>Fri, 16 Oct 2026 11:20:25 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<guid isPermaLink="false">https://biz-techservices.com/?p=10852</guid>

					<description><![CDATA[<p>Build Acumatica AI agent actions around controlled data, bounded field updates, human approval, test evidence, token monitoring, exception handling, and a phased production rollout.</p>
<p>The post <a href="https://biz-techservices.com/archives/10852">Acumatica AI Agents and Agent Actions: A Governed Automation Playbook</a> appeared first on <a href="https://biz-techservices.com">Biz-Tech Services</a>.</p>
]]></description>
										<content:encoded><![CDATA[<figure class="wp-block-image size-full"><img src="https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:auto/h:auto/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/acumatica-ai-agents-governed-automation_Blog_Hero_Wide_3x1.png" alt="Governed Acumatica AI agent workflow showing a business record moving through an AI evaluation, human approval, and an approved ERP update." width="2172" height="724" loading="eager" fetchpriority="high" decoding="async"></figure>
<p>Acumatica AI agents can become controlled steps inside an ERP process: a user, business event, import scenario, schedule, or workflow invokes an agent action; the agent reads the current record and approved supporting data; it writes a bounded result; and the surrounding process decides what happens next. The practical opportunity in Acumatica 2026 R2 is therefore not unrestricted autonomous ERP. It is governed automation in which the target record, available tools, editable fields, trigger, review point, exception path, and audit evidence are designed before activation.</p>
<p>That distinction matters because an agent can change business records. A useful implementation does more than write a persuasive instruction. It limits the data the model can retrieve, exposes only the tools required for the task, constrains outputs to values that downstream rules can evaluate, tests both normal and adverse cases, and assigns a human owner. Acumatica provides relevant controls through the Agents form, endpoint-backed tools, published Generic Inquiries, field masking, result previews, processing logs, token statistics, AI Automation History, business events, workflows, and import scenarios. Those controls still require process design and operational discipline.</p>
<p>This playbook explains how finance, operations, IT, and process owners can select a suitable use case, design the agent boundary, protect sensitive data, build approval and exception paths, test changes, monitor cost and behavior, and scale only after evidence supports the decision. It focuses specifically on Acumatica AI Automation agents and agent actions. For the broader 2026 R2 program, see the <a href="https://biz-techservices.com/archives/10770">Biz-Tech Acumatica 2026 R2 Upgrade Guide</a>.</p>
<nav id="table-of-contents" aria-label="Table of contents">
<h2>Table of Contents</h2>
<ol>
<li><a href="#executive-summary-for-business-and-technology-leaders">Executive Summary for Business and Technology Leaders</a></li>
<li><a href="#what-an-acumatica-ai-agent-and-agent-action-actually-do">What an Acumatica AI Agent and Agent Action Actually Do</a></li>
<li><a href="#how-ai-automation-differs-from-ai-assistant-and-biz-tech-ai-analyst">How AI Automation Differs from AI Assistant and Biz Tech AI Analyst</a></li>
<li><a href="#choose-a-process-that-benefits-from-model-judgment">Choose a Process That Benefits from Model Judgment</a></li>
<li><a href="#define-the-automation-boundary-before-writing-instructions">Define the Automation Boundary Before Writing Instructions</a></li>
<li><a href="#build-a-minimum-data-contract">Build a Minimum Data Contract</a></li>
<li><a href="#protect-sensitive-data-and-understand-the-masking-boundary">Protect Sensitive Data and Understand the Masking Boundary</a></li>
<li><a href="#write-instructions-as-an-executable-business-policy">Write Instructions as an Executable Business Policy</a></li>
<li><a href="#keep-human-approval-at-the-right-decision-point">Keep Human Approval at the Right Decision Point</a></li>
<li><a href="#use-agent-actions-in-import-scenarios-carefully">Use Agent Actions in Import Scenarios Carefully</a></li>
<li><a href="#orchestrate-with-business-events-and-workflows">Orchestrate with Business Events and Workflows</a></li>
<li><a href="#test-the-agent-before-activation">Test the Agent Before Activation</a></li>
<li><a href="#validate-failure-and-exception-paths">Validate Failure and Exception Paths</a></li>
<li><a href="#monitor-activity-tokens-cost-and-behavior">Monitor Activity Tokens Cost and Behavior</a></li>
<li><a href="#establish-change-control-and-audit-evidence">Establish Change Control and Audit Evidence</a></li>
<li><a href="#use-a-phased-implementation-plan">Use a Phased Implementation Plan</a></li>
<li><a href="#measure-business-value-without-overclaiming">Measure Business Value Without Overclaiming</a></li>
<li><a href="#governance-checklist-before-production-activation">Governance Checklist Before Production Activation</a></li>
<li><a href="#common-implementation-mistakes">Common Implementation Mistakes</a></li>
<li><a href="#frequently-asked-questions">Frequently Asked Questions</a></li>
<li><a href="#a-practical-next-step">A Practical Next Step</a></li>
<li><a href="#sources">Sources</a></li>
</ol>
</nav>
<h2 id="executive-summary-for-business-and-technology-leaders">Executive Summary for Business and Technology Leaders</h2>
<p>An Acumatica AI agent is most valuable when it applies judgment to a narrow record-level task that ordinary rules cannot express cleanly. Examples include classifying an incoming record, drafting a bounded description, comparing a current transaction with approved reference data, or assigning one of several defined review outcomes. Acumatica documentation describes agents that can retrieve the current record, update editable fields and detail lines, and retrieve supporting information through published Generic Inquiries. Once activated, an agent action can be invoked manually or by a configured business event, import scenario, or workflow.</p>
<p>The control model should begin outside the model. The process must specify which record exists before the agent runs, what data the agent may receive, what fields it may update, which output values are valid, what event or transition may follow, and who reviews exceptions. Acumatica notes that an agent works with the current record on its target form and cannot create a new record on that form. It also cannot invoke another target-form action from inside the agent. Record creation, releases, notifications, status transitions, and other actions should remain separate, visible process steps.</p>
<p>The safest first production use case usually has five characteristics:</p>
<ul>
<li>A clear owner can explain the business decision in plain language.</li>
<li>The required data is available on one target form or through a small number of governed Generic Inquiries.</li>
<li>The permitted output can be limited to a small set of fields or values.</li>
<li>A person can verify correctness without recreating the entire analysis.</li>
<li>An incorrect result can be contained, corrected, and traced without financial posting or irreversible downstream effects.</li>
</ul>
<p>The rollout decision should be evidence based. A pilot should show that the agent selects the right scope, uses the intended tools, produces acceptable changes, routes uncertainty correctly, stays within a tolerable token and processing budget, and fails safely when data is missing or instructions conflict. If those conditions are not demonstrated, the next action is not broader deployment. It is a narrower boundary, better source data, clearer instructions, or a conventional deterministic rule.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to Table of Contents</a></p>
<h2 id="what-an-acumatica-ai-agent-and-agent-action-actually-do">What an Acumatica AI Agent and Agent Action Actually Do</h2>
<p>In Acumatica 2026 R2, the Agents form ML202000 is used to configure and test AI Automation agents. Selecting a target data-entry form gives the agent a current-record context. Acumatica adds standard tools that retrieve the current record and apply updates to editable fields or detail lines. A configured endpoint defines which entity and fields those tools expose. Supporting data can be added through Generic Inquiry tools, with one published inquiry per tool.</p>
<p>After testing, activating most agents adds a generated command to the target form. A user can invoke that command from the More menu or add it as a favorite. The action can also participate in a process started by a record change, schedule, user action, import, business event, or automation workflow. Acumatica registers an internal action name that begins with <code>LLMAction_</code> followed by the agent ID; workflow and import-scenario configurations use that name.</p>
<p>The agent is not the whole process. It is one step that retrieves information, applies the instructions, and returns a bounded result. A subsequent business event or workflow condition can evaluate the value written by the agent and decide whether to notify a reviewer, assign a task, run another step, or move the record. This separation is useful because it leaves deterministic routing and approvals in Acumatica configuration rather than asking the model to control every consequence.</p>
<p>The boundary also prevents common overstatements. An agent does not receive unrestricted database access merely because it operates inside the ERP. It receives what its tools, endpoints, Generic Inquiries, filters, and current-record context expose. It cannot update fields that are read-only through the configured endpoint, and it cannot update a detail line if the line cannot be edited manually on the target form. If a task requires a dialog, another form, or a target-form action, that task belongs in a separate workflow step or customization.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to Table of Contents</a></p>
<h2 id="how-ai-automation-differs-from-ai-assistant-and-biz-tech-ai-analyst">How AI Automation Differs from AI Assistant and Biz Tech AI Analyst</h2>
<p>Acumatica AI Automation, Acumatica AI Assistant, and Biz-Tech AI Analyst solve different problems. Treating them as interchangeable leads to poor architecture and confusing expectations.</p>
<p>Acumatica AI Automation agents operate in a configured record context. They can retrieve current-record data, call approved supporting tools, and update fields that the configured endpoint permits. Their natural role is bounded execution within a business process. The governance question is which actions, data, fields, triggers, and outcomes are permitted.</p>
<p>Acumatica AI Assistant is oriented toward conversational analysis. The Assistant works with administrator-exposed Generic Inquiries so users can ask questions, examine source records, and create analytical outputs such as tables, charts, pivots, or dashboard widgets. It is suited to finding and explaining information, while AI Automation agents are designed to participate in defined process steps. Organizations planning both should maintain separate ownership, access reviews, use-case inventories, and acceptance tests. The <a href="https://biz-techservices.com/archives/10804">Biz-Tech guide to Acumatica AI Assistant governance</a> covers that analytical use case in more detail.</p>
<p><a href="https://biz-techservices.com/biz-tech-ai-analyst">Biz-Tech AI Analyst</a> is a separate Biz-Tech product for creating and refining Acumatica reports, Generic Inquiries, and Import Scenarios through a proposal-and-approval process. It can help turn business requirements into governed designs, including import mappings, but it does not replace Acumatica AI Automation or remove the need to govern an agent action. AI Analyst presents the proposed data sources, fields, filters, grouping, mapping, and limitations before building or changing a design. For imports, the user&#8217;s team retains control of Prepare and Import.</p>
<p>These products can complement one another. A team might use Biz-Tech AI Analyst to prepare a narrowly scoped Generic Inquiry or Import Scenario, use Acumatica AI Automation to apply judgment to each current record, and use Acumatica AI Assistant to analyze approved results. The architecture is sound only when each capability retains its own access boundary, review process, and operational owner.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to Table of Contents</a></p>
<h2 id="choose-a-process-that-benefits-from-model-judgment">Choose a Process That Benefits from Model Judgment</h2>
<p>The first design decision is whether the task needs an LLM. Many ERP actions are better implemented with formulas, workflows, business events, approval maps, import mappings, validation rules, or code. Those mechanisms are deterministic, easier to test exhaustively, and usually cheaper to run. An agent earns its place when the input contains ambiguity, unstructured text, contextual comparison, or classification that would otherwise require brittle rules or repetitive human interpretation.</p>
<p>Good candidates often transform information rather than authorize a final transaction. Examples include drafting a standardized summary from an existing record, categorizing an activity into one of several review queues, comparing a record with reference data, identifying the reason a record requires attention, or proposing a value for a reviewer to accept. The sales-order pricing demonstration in Acumatica documentation follows this pattern: the agent compares actual line prices with expected values retrieved through a Generic Inquiry and prepares a description of the differences.</p>
<p>Weak candidates combine too many business decisions. An instruction such as “review the order, decide whether the customer is trustworthy, change prices if needed, release the order, and notify everyone” mixes data retrieval, subjective judgment, financial authority, a target-form action, and communication. It is difficult to test, difficult to explain, and inconsistent with the documented boundary that an agent cannot invoke another action on the target form. Split such a process into record preparation, agent evaluation, human or rule-based approval, and deterministic execution.</p>
<p>Use a short selection test before configuration:</p>
<ol>
<li>State the input record and the business question in one sentence.</li>
<li>Identify the smallest output that makes the next step possible.</li>
<li>List the exact fields and reference data required.</li>
<li>Define an abstain or review outcome for insufficient evidence.</li>
<li>Name the person who can judge whether the output is correct.</li>
<li>Describe how the original state can be restored or corrected.</li>
</ol>
<p>If the team cannot answer those questions, it is not ready to write agent instructions.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to Table of Contents</a></p>
<h2 id="define-the-automation-boundary-before-writing-instructions">Define the Automation Boundary Before Writing Instructions</h2>
<p>Agent governance begins with a process contract. The contract should identify the target form, current entity, trigger, inputs, tools, fields the agent may update, permitted result values, prohibited changes, review path, and evidence retained. This contract should be approved by the process owner and technical owner before anyone spends time refining prompts.</p>
<p>The target form anchors the agent to a current record. Confirm that the form is a data-entry form, that the required entity is available through an endpoint, and that the intended fields can be retrieved and updated. If the Default endpoint omits a required field, decide whether extending an endpoint is justified. Acumatica warns that after an endpoint changes, tool settings in every affected agent must be updated and saved so the tools are rebuilt against the current endpoint definition. Endpoint changes therefore belong in change control, not an informal prompt-editing exercise.</p>
<p>Limit write scope. If the agent only needs to assign a review category and add an explanation, do not expose unrelated writable fields. If it does not need line-level updates, do not design the instructions around them. If a downstream workflow needs a status-like value, use a dedicated field with a small controlled vocabulary rather than asking the model for free-form prose that another rule must interpret.</p>
<p>Define what the agent must not do. Examples include changing quantities, prices, tax data, payment information, customer credit settings, posting periods, ownership, or release status. Some prohibited actions may already be impossible through the selected tools, but documenting them helps reviewers confirm that the technical configuration matches the business policy.</p>
<p>Finally, describe the next step independently of the agent. A workflow or business event should evaluate the saved output and determine whether a person reviews it, a notification is sent, or the record advances. This makes the process observable and allows the organization to disable the agent action without redesigning every downstream rule.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to Table of Contents</a></p>
<h2 id="build-a-minimum-data-contract">Build a Minimum Data Contract</h2>
<p>An agent should receive the least data required to answer its assigned question. More context can improve a demonstration while weakening production control. Extra columns increase the chance that sensitive information is transmitted, that irrelevant details distract the model, that token consumption grows, and that a future data change alters behavior unexpectedly.</p>
<p>For current-record tools, document each exposed field and why it is required. Separate fields needed for reasoning from fields needed only for identification or traceability. For Generic Inquiry tools, define the inquiry owner, published screen ID, filters, returned columns, row limit, business meaning, refresh assumptions, and access restrictions. A query that was designed for human exploration may be too broad for an agent tool.</p>
<p>Acumatica supports adding one or more Generic Inquiry tools, each retrieving data from a single published inquiry. The tool name and description help the model decide when to call it. Use names that describe the business data and descriptions that state both purpose and limits. Avoid a generic description such as “use this for more information.” A better description explains which records the inquiry returns, what filter should be applied, and which decision the data supports.</p>
<p>The data contract also needs volume limits. An inquiry that returns hundreds of rows may exceed the useful context for the task, increase response time, and raise provider costs. Add shared filters and query conditions that produce only the relevant comparison set. Test with records near the expected maximum, not only with a convenient example that returns two rows.</p>
<p>Review the contract whenever a source changes. New columns, renamed fields, modified joins, different filters, or expanded access can change what the agent sees without any edit to its business instructions. Treat a material Generic Inquiry or endpoint change as a reason to retest affected agents.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to Table of Contents</a></p>
<h2 id="protect-sensitive-data-and-understand-the-masking-boundary">Protect Sensitive Data and Understand the Masking Boundary</h2>
<p>Acumatica AI Automation can mask selected fields returned by the <code>get_current</code> tool before data is sent to the LLM. The system replaces values with placeholders, keeps the actual data in Acumatica, and restores recognized placeholders when the model returns them. This is useful when an agent needs to carry a value through a result without analyzing the value itself.</p>
<p>Masking has operational limitations. A model cannot calculate with or classify a value it cannot see. If a numeric amount is masked, the model cannot use the actual amount to compute a percentage or compare it with a threshold. Acumatica also documents that after <code>patch_current</code> is invoked, an agent with masked fields cannot call <code>get_current</code> again. Instructions and tool sequence must account for that boundary.</p>
<p>Most importantly, masking on <code>get_current</code> does not mask columns returned by Generic Inquiry tools. Acumatica documentation explicitly warns that GI results are sent to the LLM without that masking. A governed design must therefore remove sensitive columns from the inquiry itself, apply appropriate filters, and limit returned records. Do not assume that selecting masked fields on the current-record tool protects a broad supporting inquiry.</p>
<p>Perform a field-level data review before production:</p>
<ul>
<li>Identify personal, payroll, banking, payment, tax, credential, contract, pricing, health, and regulated information.</li>
<li>Decide whether the model needs to see, carry, aggregate, or ignore each value.</li>
<li>Remove unnecessary fields at the source rather than relying only on instructions.</li>
<li>Confirm the LLM provider, deployment, retention, regional, and commercial terms with the organization&#8217;s security and legal owners.</li>
<li>Review processing logs carefully because they can contain tool inputs, messages, returned data, errors, and model output.</li>
</ul>
<p>The processing log is a governance asset and a sensitive record. Limit access to people who need it, define retention expectations, and avoid copying production logs into unsecured tickets or chat threads.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to Table of Contents</a></p>
<h2 id="write-instructions-as-an-executable-business-policy">Write Instructions as an Executable Business Policy</h2>
<p>Business instructions should describe purpose, required data, allowed tools, decision rules, output fields, valid values, exceptions, and stopping conditions. They should not depend on motivational language or broad requests to “use best judgment.” A reviewer should be able to compare the instructions with the process contract and identify any missing or conflicting rule.</p>
<p>Start with the goal and scope. Name the current record and the single decision the agent supports. Then define the tools and when to use them. Insert exact field and tool names from Acumatica rather than typing approximations. Acumatica provides an Insert Data Field command because the model must use names that match the configured tool schema.</p>
<p>State decision rules in observable terms. If the output is a review category, enumerate the allowed values and the evidence required for each one. Include an explicit value such as <code>NEEDS_REVIEW</code> when the data is incomplete, contradictory, outside policy, or unavailable. Downstream workflows should recognize that value and route it to a person instead of treating uncertainty as approval.</p>
<p>Separate analysis from writing. An agent that evaluates a record and generates explanatory text should first determine the controlled result, then produce a short explanation grounded in the retrieved fields. Limit length and prohibit unsupported claims. If the process needs a note for a customer or vendor, require human approval before external communication.</p>
<p>Add constraints that reflect actual business policy: fields that must remain unchanged, date or amount boundaries, valid currencies, permitted record statuses, maximum number of lines, and conditions that require no update. Avoid repeating constraints in contradictory ways. Acumatica notes that conflicts among system instructions, business instructions, and tool descriptions can cause processing errors.</p>
<p>Version the instructions. Record the approver, effective date, related agent ID, target form, endpoint version, GI versions, and test evidence. A prompt edit can change production behavior as materially as a workflow or code change.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to Table of Contents</a></p>
<h2 id="keep-human-approval-at-the-right-decision-point">Keep Human Approval at the Right Decision Point</h2>
<p>Human review should protect the consequence, not merely observe the model. Placing a reviewer after an irreversible action provides little control. Place approval before release, payment, posting, external communication, compliance classification, account changes, or any transition that materially affects another party.</p>
<p>For a low-risk internal field, post-action review may be sufficient if changes are visible, reversible, and sampled regularly. For higher-risk records, the agent should write a proposal or review status rather than the final authoritative value. A workflow can assign the record to an authorized user, display the explanation, and require acceptance or correction.</p>
<p>Design the review screen around evidence. The reviewer needs the original value, proposed value, reason, relevant source data, and any missing or conflicting information. A bare “AI approved” flag is not enough. Acumatica&#8217;s test Result tab demonstrates the value of before-and-after differences; production review should follow the same principle when possible.</p>
<p>Define reviewer authority and service expectations. Specify who may approve, who handles exceptions, how quickly records must be reviewed, and what happens when no reviewer acts. Avoid silently allowing an agent-generated value to become authoritative because a queue aged past a deadline.</p>
<p>Measure human disagreement. Corrections reveal where instructions, source data, or use-case boundaries need improvement. Preserve a reason for overrides rather than recording only that the value changed. A rising override rate should trigger investigation and perhaps automatic suspension of the action for the affected scenario.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to Table of Contents</a></p>
<h2 id="use-agent-actions-in-import-scenarios-carefully">Use Agent Actions in Import Scenarios Carefully</h2>
<p>Acumatica 2026 R2 allows an import scenario to invoke an AI Automation agent action for each record it creates or updates when the AI Automation feature is enabled. This can apply judgment during a controlled import, but it also multiplies execution volume and introduces ordering requirements.</p>
<p>The documented action sequence is Save, agent action, and Save again. The first save creates or updates the current record so the agent has something to process. The agent reads that record and writes its result. The second save persists the agent&#8217;s values. Each row uses Commit and executes for each record. The internal action name is entered manually in angle brackets because the dynamic agent action does not appear in the normal lookup.</p>
<p>Mapping conflicts deserve special attention. If the source file maps a value into a field that the agent also writes, the import can overwrite the model&#8217;s result. Acumatica advises leaving the corresponding source values empty when the agent is responsible for those fields. Document field ownership explicitly so a future spreadsheet template or mapping change does not reintroduce the conflict.</p>
<p>Every imported record causes a separate LLM request sequence, and the import waits for each result. Begin with a small record count, measure processing time and token use, and verify the AI Automation History before increasing volume. Do not launch a large production import based on a successful one-record test.</p>
<p>Create restart and reconciliation rules. Determine how to identify records that completed the first save but not the agent action, or the agent action but not the final save. Use an import batch identifier, status field, or other traceable marker. Define whether a failed record can be retried safely and whether the agent will produce the same result when the current record already contains a partial output.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to Table of Contents</a></p>
<h2 id="orchestrate-with-business-events-and-workflows">Orchestrate with Business Events and Workflows</h2>
<p>An agent action becomes more useful when Acumatica configuration controls when it runs and how its result is handled. A business event can respond to a record change, schedule, or user action. A workflow can expose the agent action only in appropriate states, run it automatically, or use it in a transition. These mechanisms should remain responsible for sequence and authorization.</p>
<p>Use stable output values for downstream logic. Acumatica recommends instructing an agent to write one of a fixed set of values when a business event or workflow condition depends on the result. Free-form text is suitable for explanation, but it is a poor control signal. A dedicated field with values such as <code>NO_ISSUE</code>, <code>REVIEW</code>, and <code>BLOCKED</code> is easier to route, report, and test.</p>
<p>Remember that a business event fires only when its monitored value changes. If the agent writes the value already stored in the field, the event does not trigger. Design state transitions accordingly. Clearing the field before every run may create other risks, so test repeat execution and idempotency instead of assuming every successful agent call causes a new event.</p>
<p>Keep target-form actions separate. Acumatica states that the agent cannot invoke another action of the target form. If the process requires release, assignment, notification, creation of another document, or another command, configure that as a subsequent event or workflow step. This produces clearer logs and lets each action enforce its own rights and validation.</p>
<p>Add an automation stop. Administrators should know how to deactivate the agent, disable an invoking event or workflow transition, and hold affected records. Document the order of operations so an incident response does not create more partially processed work.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to Table of Contents</a></p>
<h2 id="test-the-agent-before-activation">Test the Agent Before Activation</h2>
<p>Testing must prove both correctness and containment. On the Agents form, the Test Agent function uses an example record and shows intended changes without saving those changes to the database for most agents. The Result tab identifies the affected entity and displays before-and-after values. The Processing Log records instructions, tool schemas, tool calls, responses, timing, errors, messages, and token consumption.</p>
<p>Build a representative test set rather than selecting only clean examples. Include ordinary records, records at policy boundaries, missing fields, unexpected detail-line counts, inactive or closed statuses, values outside normal ranges, conflicting GI results, no GI results, duplicate references, and attempts to introduce irrelevant instructions through text fields. Use de-identified or suitable nonproduction data according to organizational policy.</p>
<p>For every case, record the expected result before running the agent. A test is weak when reviewers decide after seeing the output that it “looks reasonable.” Compare the actual result with an approved expectation and capture differences. For classification, measure agreement by category. For generated text, define required facts, prohibited claims, maximum length, and acceptable tone.</p>
<p>Inspect tool behavior, not only the final wording. Confirm that the model called the expected inquiry, applied the intended filter, retrieved the correct records, and updated only the permitted fields. A plausible answer produced from the wrong data path is still a failure.</p>
<p>Repeat tests across model or connection changes. Agent LLM Connections can point to supported providers including Azure, Amazon Bedrock, OpenAI, and Anthropic, and providers may retire or change models. Acumatica recommends reviewing provider availability and retesting connections. A connection or model change should trigger functional regression tests, masking-placeholder tests, volume tests, and renewed approval before production use.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to Table of Contents</a></p>
<h2 id="validate-failure-and-exception-paths">Validate Failure and Exception Paths</h2>
<p>Production reliability depends on how the process behaves when the model, connection, data, or surrounding workflow fails. The desired failure mode is usually a visible exception with no unauthorized update, not an improvised answer.</p>
<p>Test invalid credentials, unavailable endpoints, provider timeouts, rate limits, missing GI permissions, empty results, malformed data, excessive record volume, noneditable fields, and an agent output that does not match the controlled vocabulary. Confirm what appears in the Result and Processing Log tabs and how operators identify the affected record.</p>
<p>Define retry rules. Some failures are transient, but an automatic retry can duplicate work or apply a change after the record has moved to another state. Before retrying, verify that the current record is still eligible, that earlier changes were not saved, and that the action is idempotent. Limit retry count and route repeated failures to a named queue.</p>
<p>Distinguish technical errors from business uncertainty. A provider timeout is a technical failure. Missing evidence or contradictory source data is a business exception. They may require different owners, communications, and service targets. Do not let a generic error status hide the cause.</p>
<p>Create a reconciliation view or Generic Inquiry that shows records awaiting agent processing, records completed, exceptions, last-run time, outcome, reviewer status, and related batch or workflow identifiers. This operational view is often more valuable than a polished demonstration because it enables supervisors to manage real work.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to Table of Contents</a></p>
<h2 id="monitor-activity-tokens-cost-and-behavior">Monitor Activity Tokens Cost and Behavior</h2>
<p>Each agent execution can make multiple requests to an LLM, especially when tools are called. Acumatica records token statistics calculated by the ERP and values reported by the provider. The two can differ because providers tokenize and report categories differently. Acumatica documentation states that the provider remains the source of truth for actual usage and billing.</p>
<p>During testing, use the Processing Log to see which requests and tool steps consume tokens. Over time, use AI Automation History ML400000 to review connection tests, agent tests, and production actions invoked by users, business events, import scenarios, or workflows. The history includes Acumatica-calculated values and provider-reported input, output, and total tokens when the provider supplies them.</p>
<p>A blank provider value does not necessarily mean zero usage. It may mean the provider did not report the value. Establish a reconciliation process with the provider dashboard and commercial terms. Monitor both unit economics and business throughput: cost per processed record, cost per accepted result, elapsed time, failure rate, and reviewer effort.</p>
<p>Behavior monitoring is equally important. Track outcome distribution, human override rate, exceptions by cause, tool-call patterns, fields changed, and volume by trigger. A sudden change may indicate new source data, a modified Generic Inquiry, a prompt edit, an endpoint change, a model update, or a shift in incoming records.</p>
<p>Set thresholds for investigation and suspension. Examples include a material rise in <code>NEEDS_REVIEW</code>, repeated writes outside expected fields, processing time that disrupts imports, provider cost above budget, or reviewer disagreement above the pilot baseline. Thresholds should initiate a defined response rather than remain dashboard decoration.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to Table of Contents</a></p>
<h2 id="establish-change-control-and-audit-evidence">Establish Change Control and Audit Evidence</h2>
<p>An AI agent is a production configuration with dependencies. Its effective behavior comes from the business instructions, system instructions, tool descriptions, endpoint entity and version, writable fields, Generic Inquiry definitions, filters, provider connection, model, invoking configuration, and downstream workflow. Change control must cover that full dependency set.</p>
<p>Maintain an inventory with agent ID, name, purpose, owner, target form, endpoint, tools, supporting inquiries, invoking events or workflows, output fields, approval path, connection, reviewer, activation date, and last validation date. Link the inventory entry to the approved process contract and test evidence.</p>
<p>Require review for material changes. A wording correction that cannot affect behavior may need lightweight review, but a new tool, field, decision rule, model, GI column, filter, or automatic trigger requires regression testing. Changes to shared endpoints or inquiries should identify every dependent agent before publication.</p>
<p>Preserve evidence from testing and production review without copying sensitive content unnecessarily. Useful evidence includes test case IDs, expected and actual controlled outcomes, before-and-after field differences, error classifications, timing, token totals, reviewer decision, and approval. Store logs according to security and retention policy.</p>
<p>Auditability also means explaining current behavior. An administrator should be able to answer why the agent could see a field, why it was allowed to update another field, which version of instructions applied, which process invoked it, and who approved activation. If those answers require reconstructing decisions from emails, the control is incomplete.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to Table of Contents</a></p>
<h2 id="use-a-phased-implementation-plan">Use a Phased Implementation Plan</h2>
<p>A four-phase rollout keeps the first deployment small while producing evidence for each expansion decision.</p>
<p>Phase one defines the process. Select one record-level use case, write the process contract, identify sensitive data, specify permitted outputs, and choose the reviewer. Confirm feature availability, licensing, target build, provider requirements, and environment policy with the appropriate Acumatica partner and internal owners.</p>
<p>Phase two builds in a sandbox. Configure the connection, target form, endpoint-backed tools, supporting Generic Inquiries, instructions, output fields, and manual action. Do not add an automatic trigger yet. Test representative records and correct scope, data, and instruction problems.</p>
<p>Phase three runs a controlled pilot. Activate the command for a limited user group or narrow queue. Require review of every result. Measure accepted results, corrections, exceptions, processing time, token consumption, and operational effort. Keep a conventional fallback process available.</p>
<p>Phase four automates only the proven boundary. Add a business event, workflow, schedule, or import scenario when manual pilot evidence shows consistent behavior and safe failure. Continue sampling accepted outcomes and reviewing exceptions. Expand volume, record types, or write scope one variable at a time.</p>
<p>Each phase needs an exit decision. The team should explicitly approve advancement, repeat the phase with changes, or stop. “No serious complaints” is not sufficient evidence. Use documented acceptance criteria and a named owner.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to Table of Contents</a></p>
<h2 id="measure-business-value-without-overclaiming">Measure Business Value Without Overclaiming</h2>
<p>The business case should compare the governed process with its actual baseline. Relevant measures may include review time per record, queue age, percentage of records requiring manual investigation, classification agreement, correction rate, exception resolution time, processing cost, and downstream error rate. Choose measures tied to the selected use case.</p>
<p>Avoid treating model output volume as value. Processing more records is beneficial only when the outputs are correct enough, reviewed at the appropriate level, and used by the next process step. Likewise, a reduction in manual touches is not positive if unresolved exceptions or downstream corrections increase.</p>
<p>Measure accepted automation separately from assisted work. A reviewer may save time even when every result still requires approval. That can be a valid outcome and a safer long-term design for sensitive decisions. Do not force full automation merely to improve an adoption metric.</p>
<p>Include control costs: configuration, source-data maintenance, review, provider consumption, investigation, retraining, and change management. Agent economics can change when record volume, prompt length, tool calls, or provider pricing changes. Review the cost model with actual production history.</p>
<p>Report limitations with results. State the period, record population, model and connection, process version, review method, and exclusions. A pilot on one business unit and one record type does not prove enterprise-wide performance.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to Table of Contents</a></p>
<h2 id="governance-checklist-before-production-activation">Governance Checklist Before Production Activation</h2>
<p>Use the following checklist as a release gate:</p>
<ul>
<li>The process owner approved a one-sentence purpose and a bounded business outcome.</li>
<li>The target form, current entity, endpoint, tools, fields, and supporting inquiries are documented.</li>
<li>The agent receives only the data required for the task.</li>
<li>Sensitive fields are removed, masked where supported, or otherwise governed.</li>
<li>The team understands that Generic Inquiry results are not protected by current-record field masking.</li>
<li>Permitted updates and prohibited changes are explicit.</li>
<li>Downstream logic uses controlled values rather than interpreting free-form prose.</li>
<li>Human approval is placed before consequential or irreversible actions.</li>
<li>Normal, boundary, missing-data, adverse-input, error, retry, and repeat-run cases passed.</li>
<li>Reviewers verified tool calls and field differences, not only final wording.</li>
<li>Token use, provider billing, elapsed time, and expected volume are within budget.</li>
<li>AI Automation History and operational reconciliation views are assigned to owners.</li>
<li>Rollback steps can deactivate the agent and its invoking configuration safely.</li>
<li>Instruction, endpoint, inquiry, workflow, and connection changes require appropriate retesting.</li>
<li>A named owner approved activation and the next review date.</li>
</ul>
<p>The checklist should be retained with implementation evidence. If an item does not apply, record the reason rather than deleting it. That creates a reviewable decision and helps future owners understand the original boundary.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to Table of Contents</a></p>
<h2 id="common-implementation-mistakes">Common Implementation Mistakes</h2>
<p>The first mistake is starting with instructions instead of a process contract. Prompt refinement cannot repair an undefined owner, excessive write scope, or missing approval step.</p>
<p>The second is exposing a broad Generic Inquiry because it is convenient. Supporting inquiries should be purpose-built or carefully constrained. Remember that current-record masking does not mask GI results.</p>
<p>The third is combining judgment and consequence. Let the agent propose or classify, then let a person or deterministic workflow authorize the material action.</p>
<p>The fourth is testing one clean record. A production decision needs boundary, missing-data, conflicting-data, volume, repeat-run, and technical-failure cases.</p>
<p>The fifth is relying on free-form text as a workflow condition. Use fixed output values for routing and keep prose for explanation.</p>
<p>The sixth is ignoring dependency changes. Endpoint, GI, model, provider, instructions, and workflow changes can all alter behavior.</p>
<p>The seventh is assuming provider token values are always complete. Blank values can mean unreported usage, and the provider dashboard remains the billing authority.</p>
<p>The eighth is automating a large import too early. Each record can generate a separate execution and multiple LLM requests, so begin with a small batch and reconcile every outcome.</p>
<p>The ninth is presenting Acumatica AI Automation as equivalent to AI Assistant or Biz-Tech AI Analyst. Their purposes and control boundaries differ.</p>
<p>The tenth is treating activation as the end of implementation. Production monitoring, human feedback, exception handling, and scheduled revalidation are part of the operating model.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to Table of Contents</a></p>
<h2 id="frequently-asked-questions">Frequently Asked Questions</h2>
<h3>What is an Acumatica AI agent</h3>
<p>An Acumatica AI Automation agent is a configured model-driven capability associated with a target data-entry form. It can retrieve the current record, update fields and editable detail lines through endpoint-backed tools, and retrieve supporting data from published Generic Inquiries. After testing and activation, the related agent action can be invoked manually or through configured business events, workflows, schedules, or import scenarios.</p>
<h3>Can an Acumatica AI agent create a new record</h3>
<p>The documented agent action works with the current record on its target form and cannot create a new record on that form. A surrounding process must create or identify the record before invoking the agent. The agent may update permitted fields on that current record; other creation or action steps should be configured separately.</p>
<h3>Can an agent run another form action?</h3>
<p>Acumatica documentation states that an agent cannot invoke another action of the target form. Configure release, notification, assignment, transition, or other commands as separate business-event or workflow steps with their own permissions and validation.</p>
<h3>How can agent actions be started</h3>
<p>An active agent normally adds a command to the target form for user invocation. An action can also be invoked through a business event, import scenario, or workflow. The appropriate trigger depends on the process risk, record state, desired review point, and expected volume.</p>
<h3>Does masking protect data returned by Generic Inquiries</h3>
<p>No. Acumatica&#8217;s documented field masking applies to selected values returned by the <code>get_current</code> tool. It does not mask data returned by Generic Inquiry tools. Remove sensitive GI columns, use narrow filters, limit records, and review the inquiry as a separate data boundary.</p>
<h3>How should an agent communicate a result to a workflow</h3>
<p>Use a dedicated field with a fixed set of permitted values, such as <code>NO_ISSUE</code>, <code>REVIEW</code>, or <code>BLOCKED</code>. The agent may also write an explanation, but downstream logic should not have to interpret unrestricted prose. Test repeat execution because a business event is triggered only when the monitored value changes.</p>
<h3>Can an import scenario call an agent action</h3>
<p>Yes, when AI Automation is enabled. Acumatica documents a Save, agent action, Save sequence for each record, with Commit selected and execution configured for each record. Start with a small batch because each record creates a separate LLM execution and the import waits for the response.</p>
<h3>How do I estimate AI Automation cost</h3>
<p>Review token consumption in the Processing Log during tests and in AI Automation History over time. Compare Acumatica-calculated values with provider-reported usage, and reconcile with the provider dashboard because the provider remains the source of truth for billing. Include processing volume, tool calls, retries, review effort, and support overhead.</p>
<h3>When should a team keep human approval</h3>
<p>Keep approval before financial posting, release, payment, external communication, compliance classification, account changes, or another material consequence. Lower-risk internal suggestions may use sampling after a controlled pilot, but the organization should retain an exception path, override evidence, and a way to suspend the automation.</p>
<h3>What is the safest first Acumatica AI agent use case</h3>
<p>Choose a narrow current-record task with limited data, a small controlled output, an easy human check, and a reversible result. Classification, summarization, or proposal generation is usually safer than autonomous transaction processing. Test manually before adding automatic triggers.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to Table of Contents</a></p>
<h2 id="a-practical-next-step">A Practical Next Step</h2>
<p>Start with one real queue, one current record, one decision, and one owner. Write the process contract before configuring an agent. Then build the smallest tool and data boundary that can support the decision, test adverse cases, and run a reviewed pilot. Scale only the part that evidence shows to be reliable.</p>
<p>Biz-Tech Services can help organizations assess Acumatica AI Automation use cases, design controlled workflows and import scenarios, review Generic Inquiry and endpoint exposure, define test evidence, and establish monitoring and rollback procedures. The objective is a production process that remains understandable and governable after the demonstration ends. Explore practical implementation resources in the <a href="https://biz-techservices.com/lessons">Biz-Tech Acumatica Lessons library</a> or discuss a scoped automation review with Biz-Tech Services.</p>
<p class="back-to-toc"><a href="#table-of-contents">Back to Table of Contents</a></p>
<h2 id="sources">Sources</h2>
<ol>
<li><a href="https://beacon.acumatica.com/r/Integration-Guide/Integrating-with-LLM-Providers/Integration-with-LLM-Providers-Use-of-Agent-Actions?contentId=9hbFSgFyT3YV5YWvUdl8Cg">Acumatica 2026 R2 Integration Guide Use of Agent Actions</a></li>
<li><a href="https://beacon.acumatica.com/r/Integration-Guide/Configuring-Import-Scenarios/Agent-Actions-in-Import-Scenarios?contentId=ONXMk_CAJLWBNbnv0XlXCA">Acumatica 2026 R2 Integration Guide Agent Actions in Import Scenarios</a></li>
<li><a href="https://beacon.acumatica.com/r/Form-Reference-Guide/Integration-Forms/Agents?contentId=POnZWcFU0H2ZbJbFkrmGNQ">Acumatica 2026 R2 Form Reference Agents ML202000</a></li>
<li><a href="https://beacon.acumatica.com/r/Integration-Guide/Integrating-with-LLM-Providers/Integration-with-LLM-Providers-Creation-of-Agents?contentId=M25sitflYVtShm08T7yNEA">Acumatica 2026 R2 Integration Guide Creation of Agents</a></li>
<li><a href="https://beacon.acumatica.com/r/Integration-Guide/Integrating-with-LLM-Providers/Integration-with-LLM-Providers-Hiding-of-Sensitive-Data?contentId=4de~IL797YlZX9VBL8MN5A">Acumatica 2026 R2 Integration Guide Hiding of Sensitive Data</a></li>
<li><a href="https://beacon.acumatica.com/r/Integration-Guide/Integrating-with-LLM-Providers/Integration-with-LLM-Providers-Testing-and-Troubleshooting-Agents?contentId=g1RwhOu_YsGU5dWDnn_BgA">Acumatica 2026 R2 Integration Guide Testing and Troubleshooting Agents</a></li>
<li><a href="https://beacon.acumatica.com/r/Integration-Guide/Integrating-with-LLM-Providers/Integration-with-LLM-Providers-Collection-of-Statistics?contentId=855130RPMwaszTr0DWYHDA">Acumatica 2026 R2 Integration Guide Collection of Statistics</a></li>
<li><a href="https://beacon.acumatica.com/r/Form-Reference-Guide/Integration-Forms/Agent-LLM-Connections?contentId=8f5_Scbgjy4M13Qz77yM3A">Acumatica 2026 R2 Form Reference Agent LLM Connections ML201000</a></li>
<li><a href="https://www.acumatica.com/cloud-erp-software/cloud-platform/">Acumatica Cloud Platform and 2026 R2 AI Overview</a></li>
<li><a href="https://biz-techservices.com/archives/10770">Biz-Tech Services Acumatica 2026 R2 Upgrade Guide</a></li>
<li><a href="https://biz-techservices.com/archives/10804">Biz-Tech Services Acumatica AI Assistant Governance Guide</a></li>
<li><a href="https://biz-techservices.com/biz-tech-ai-analyst">Biz-Tech AI Analyst</a></li>
</ol>
<p class="back-to-toc"><a href="#table-of-contents">Back to Table of Contents</a></p>
<p>The post <a href="https://biz-techservices.com/archives/10852">Acumatica AI Agents and Agent Actions: A Governed Automation Playbook</a> appeared first on <a href="https://biz-techservices.com">Biz-Tech Services</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Map WooCommerce Products to Acumatica Inventory Items</title>
		<link>https://biz-techservices.com/archives/10846</link>
		
		<dc:creator><![CDATA[Gary]]></dc:creator>
		<pubDate>Fri, 16 Oct 2026 06:13:03 +0000</pubDate>
				<category><![CDATA[Lesson]]></category>
		<guid isPermaLink="false">https://biz-techservices.com/?p=10846</guid>

					<description><![CDATA[<p>Mapping WooCommerce products to Acumatica inventory items starts with the WooCommerce Product SKU and the Acumatica Inventory CD. During import, [&#8230;]</p>
<p>The post <a href="https://biz-techservices.com/archives/10846">How to Map WooCommerce Products to Acumatica Inventory Items</a> appeared first on <a href="https://biz-techservices.com">Biz-Tech Services</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Mapping WooCommerce products to Acumatica inventory items starts with the WooCommerce Product SKU and the Acumatica Inventory CD. During import, the connector searches Inventory CD using the WooCommerce Product SKU, retrieves the matching item when it exists, and either creates a new item or returns an error when it does not, depending on the Import Item setting.</p>
<p>The Biz-Tech Services WooCommerce Acumatica Connector also provides separate controls for field-level mapping, item attributes, synchronization direction, variants, and generated WooCommerce product IDs. This guide stays focused on product identity and field mapping. Connection setup, the broader configuration checklist, order import, complete data flow, and inventory quantity synchronization are covered in the related WooCommerce articles for those topics.</p>
<p><strong>WooCommerce Product Mapping Prerequisites</strong></p>
<p>The Biz-Tech Services Acumatica WooCommerce Connector becomes available after its customization package is published through Customization Projects (SM204505). The WooCommerce workspace then contains WooCommerce Store Preferences, WooCommerce Store, and the processing screens used for item synchronization.</p>
<p>On WooCommerce Store, the Item Settings tab controls whether an unmatched WooCommerce product can create an Acumatica item and which defaults apply. The Item Mappings tab controls which field values can be created or updated. The Inventory Mappings tab maps Acumatica Stock Item fields or Attribute values to WooCommerce product fields. Item Details is the workspace for loading items from each system and initiating synchronization.</p>
<p>Before mapping a product, confirm the intended direction. Sync from WooCommerce imports product data into Acumatica. Sync to WooCommerce exports Acumatica item data. This distinction matters because the documentation states that product mapping is supported during import from WooCommerce to Acumatica, while the connector does not support the same mapping function during Acumatica item export.</p>
<p><strong>WooCommerce Product Mapping Step by Step</strong></p>
<p>Use this sequence to set up and verify the product relationship.</p>
<p>1 Open WooCommerce Store and review Item Settings for the selected Store Code.</p>
<p>2 Decide whether Import Item should be selected. When selected, an unmatched WooCommerce product can create a new item in Acumatica according to the configured item settings.</p>
<p>3 Confirm that each WooCommerce product has the SKU that should match the Acumatica Inventory CD.</p>
<p>4 Set Import item type and UOM if the connector may create new Acumatica items.</p>
<p>5 If SKU values may be absent, review Use Numbering Sequence for SKU Generation and confirm that the required numbering sequence exists.</p>
<p>6 On Item Mappings, select the fields that can be created in WooCommerce, updated in WooCommerce, or updated in Acumatica. Keep SKU selected because the documentation identifies it as required for item creation.</p>
<p>7 On Inventory Mappings, use Get WooCommerce Properties, choose the Acumatica Target, and identify the Acumatica Property and WooCommerce Property for each field or attribute mapping.</p>
<p>8 On Item Details, use Load Acumatica items or Load WooCommerce Items to review the records available for synchronization.</p>
<p>9 Use Sync from WooCommerce for the documented WooCommerce-to-Acumatica mapping path, then confirm that the expected Acumatica item was retrieved or created.</p>
<p>10 Verify the generated WooCommerce product ID when an Acumatica item is created in WooCommerce, and confirm that the ID appears in WooCommerce Store and on the Stock Items WooCommerce Inventory tab.</p>
<p><strong>How SKU Matches WooCommerce Products to Inventory CD</strong></p>
<p>The documented product identity rule is direct. During WooCommerce item import, the connector searches for an Acumatica Inventory CD using the WooCommerce Product SKU. If the Inventory CD is found, the connector retrieves that existing item. This is the primary line-level match described in the source.</p>
<p>If no matching Inventory CD is found and Import Item is selected, the connector can create a new Acumatica item using the configured Import item type and UOM. Populate Items in Inventory Details can add the imported item to Inventory Details. Last Page Number for Getting Products records the last WooCommerce product page used for retrieval.</p>
<p>If Import Item is not selected, the connector prohibits item import and creation unless the corresponding item already exists in Acumatica. When the SKU does not resolve to an Inventory CD, the documented error is The item {0} does not exist in the system. The placeholder represents the item value used by the process.</p>
<p>When exporting an Acumatica inventory item to WooCommerce, the documentation states that the Inventory CD becomes the WooCommerce item SKU. This export rule is not the same as the configurable import mapping on Inventory Mappings.</p>
<p><strong>Item Mappings and Synchronization Direction</strong></p>
<p>The Item Mappings tab controls which item field values participate in item synchronization. Its first column contains field names. Create in Woo checkboxes allow selected field values to be exported and created in WooCommerce. The adjacent update control allows values already created in WooCommerce to be updated. Update in Acu allows selected field values to be updated during import from WooCommerce to Acumatica.</p>
<p>The Biz-Tech Services WooCommerce Acumatica Integration uses SKU as a required field for item creation, so the documentation says SKU is selected by default. Other fields should be enabled only in the direction the business expects. A field selected for creation in WooCommerce does not automatically mean it should overwrite Acumatica during import.</p>
<p>The source says that the same logic applies to variants without import logic, but it does not explain that phrase or provide a separate list of variant field rules. Treat the documented synchronization direction checkboxes as the available guidance and validate variant behavior with a controlled record before processing a larger item set.</p>
<p><strong>Inventory Mappings for Fields Attributes and Metadata</strong></p>
<p>Inventory Mappings provides field-level mapping for WooCommerce-to-Acumatica item synchronization. Get WooCommerce Properties loads WooCommerce product main fields, meta fields, or attributes into WooCommerce Property. Acumatica Target identifies whether the destination is a Stock Item field or an Attribute.</p>
<p>DAC Name identifies the Data Access Class. Acumatica Property contains the corresponding Acumatica field or Attribute name. Woo Product Level identifies whether the WooCommerce value is a Main Field, Attribute, or Metadata. WooCommerce Property identifies the source field loaded or updated by Get WooCommerce Properties.</p>
<p>Update in Acumatica permits the selected value to update Acumatica during item synchronization. Update in WooCommerce permits the selected value to update WooCommerce. These controls map properties and attributes; they do not replace the SKU-to-Inventory-CD identity rule described under Item Settings.</p>
<p>The source explicitly says this configurable mapping function is not supported during Acumatica item export. For export, Inventory CD is assigned as the WooCommerce SKU. That limitation should be included in any mapping design before users expect two-way identity translation.</p>
<p><strong>Cross References Product Categories and Item Classes</strong></p>
<p>The Cross-Reference tab does not document product aliases. It maps selected entities between WooCommerce and Acumatica, with examples that include payments, countries, and shipping methods. Get Shipping Methods loads WooCommerce values for mapping to Acumatica Ship Via. Only entities enabled under Cross-Reference Options appear in the Field list.</p>
<p><img decoding="async" class="alignnone size-full wp-image-10847" src="https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:auto/h:auto/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/5_CrossReferenceCheckBoxes_And_Tab.png" alt="Cross Reference check boxes and tab" width="1727" height="871" srcset="https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:1727/h:871/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/5_CrossReferenceCheckBoxes_And_Tab.png 1727w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:300/h:151/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/5_CrossReferenceCheckBoxes_And_Tab.png 300w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:1024/h:516/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/5_CrossReferenceCheckBoxes_And_Tab.png 1024w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:768/h:387/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/5_CrossReferenceCheckBoxes_And_Tab.png 768w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:1536/h:775/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/5_CrossReferenceCheckBoxes_And_Tab.png 1536w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:350/h:177/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/5_CrossReferenceCheckBoxes_And_Tab.png 350w" sizes="(max-width: 840px) 100vw, 840px" /></p>
<p>The documentation does not identify Inventory ID, Inventory CD, product SKU, or item alias as a Cross-Reference entity. It also does not describe alternate IDs, customer part numbers, manufacturer part numbers, or an alias priority. Do not use the shipping and payment cross-reference process as evidence that product aliases are supported.</p>
<p>Product Categories is also separate from Acumatica item classes. WooCommerce categories can be retrieved with Get WooCommerce categories, created or selected in Acumatica, and synchronized with Sync WooCommerce Categories. A preferred category selected on the Stock Item WooCommerce Categories tab is exported with the item.</p>
<p>The source does not document item-class mapping, item-class defaults, or class-based eligibility rules. Import item type is documented, but no Acumatica item class field is named in the product import setup. If an implementation requires item classes, that behavior needs separate confirmation rather than an assumption based on WooCommerce categories.</p>
<p><strong>Variants Template Items and Matrix Items</strong></p>
<p>Item Details can show product variants when variants are selected. The documentation also provides a separate Template Items process for sending Template Items and Matrix Items to WooCommerce.</p>
<p>A user opens Template Items and runs Sync Template Items to WooCommerce. After a successful export, WooCommerce generates a product ID that appears on the WooCommerce Product tab. The user then runs Sync Matrix Items to WooCommerce. The Matrix Items are created as Variations under the related Template Item product.</p>
<p>This process documents the parent product ID and its variations, but it does not provide a separate alias table for variant SKUs. The source also does not define how duplicate variant SKUs, missing parent relationships, or attribute conflicts are resolved. Validate the template and matrix relationship before using batch processing.</p>
<p><strong>Unmapped Products and Validation Rules</strong></p>
<p>The source documents an error path for a WooCommerce SKU that does not match an Acumatica Inventory CD when item creation is not allowed. It also says an error appears when an item has no SKU and the required numbering sequence is absent. The second error message is not provided.</p>
<p>The documentation does not define an unmapped-product queue, an Unmapped status, an alias review screen, a retry counter, or a product-specific error inquiry. Get Order Process Error Messages is explicitly described as containing errors from order retrieval, so it should not be presented as a documented item-mapping exception screen.</p>
<p>Other documented checks are contextual. Quantity synchronization requires the item to exist as a WooCommerce item in Acumatica, to be loaded and saved in Inventory Details, and to use selected warehouses on Warehouse Details. The Is WooCommerce Item checkbox is selected when an item came from WooCommerce and was generated by the connector. These checks help confirm item status but do not describe a general alias resolution process.</p>
<p><img decoding="async" class="alignnone size-full wp-image-10848" src="https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:auto/h:auto/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/19_Export_WooCommerce_Inventory_Quantities.png" alt="Export WooCommerce inventory quantities" width="991" height="424" srcset="https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:991/h:424/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/19_Export_WooCommerce_Inventory_Quantities.png 991w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:300/h:128/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/19_Export_WooCommerce_Inventory_Quantities.png 300w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:768/h:329/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/19_Export_WooCommerce_Inventory_Quantities.png 768w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:350/h:150/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/19_Export_WooCommerce_Inventory_Quantities.png 350w" sizes="(max-width: 840px) 100vw, 840px" /></p>
<p><strong>Where to Check Your Work</strong></p>
<p>The Biz-Tech Services WooCommerce Acumatica Integrator provides several places to confirm product identity and field behavior after a mapping change.</p>
<p>1 On Item Settings, verify Import Item, Import item type, UOM, Populate Items in Inventory Details, and Use Numbering Sequence for SKU Generation.</p>
<p>2 Confirm that the WooCommerce Product SKU matches the intended Acumatica Inventory CD.</p>
<p>3 On Item Mappings, review Create in Woo, the WooCommerce update selection, and Update in Acu for each enabled field.</p>
<p>4 On Inventory Mappings, review Acumatica Target, DAC Name, Acumatica Property, Update in Acumatica, Update in WooCommerce, Woo Product Level, and WooCommerce Property.</p>
<p>5 On Item Details, use Load Acumatica items and Load WooCommerce Items to compare the records available in each system.</p>
<p>6 After Sync from WooCommerce, confirm that the connector retrieved the matching Inventory CD or created the intended item according to Import Item.</p>
<p>7 After Sync to WooCommerce, confirm the WooCommerce product ID in WooCommerce Store and on the Stock Items WooCommerce Inventory tab.</p>
<p>8 For Template Items, confirm the WooCommerce product ID before synchronizing Matrix Items and verify that the Matrix Items appear as Variations.</p>
<p>9 When no item is created, check for the missing-item error or confirm that the SKU numbering sequence exists if the product has no SKU.</p>
<p><strong>WooCommerce Product Mapping Frequently Asked Questions</strong></p>
<p><strong>What field connects a WooCommerce product to an Acumatica item?</strong></p>
<p>The documented import rule uses WooCommerce Product SKU to search Acumatica Inventory CD. A match retrieves the existing item.</p>
<p><strong>What happens when the SKU does not match an Inventory CD?</strong></p>
<p>If Import Item is selected, the connector can create a new item using the configured item settings. If Import Item is not selected, item creation is prohibited and the process displays The item {0} does not exist in the system.</p>
<p><strong>Can the connector generate a SKU when WooCommerce has none?</strong></p>
<p>Use Numbering Sequence for SKU Generation can generate a number when the SKU is missing, provided that the corresponding numbering sequence has been created. The source says an error appears when the sequence is absent but does not give the message text.</p>
<p><strong>Does the Cross Reference tab map product aliases?</strong></p>
<p>No product-alias behavior is documented there. The examples are payments, countries, and shipping methods, including WooCommerce values mapped to Acumatica Ship Via.</p>
<p><strong>Can I map WooCommerce fields to Acumatica attributes?</strong></p>
<p>Yes. The Biz-Tech Services Acumatica WooCommerce Integration uses Inventory Mappings to map WooCommerce main fields, attributes, or metadata to an Acumatica Stock Item field or Attribute, with update direction controlled by the selected checkboxes.</p>
<p><strong>Does the connector map products during Acumatica item export?</strong></p>
<p>The source says the configurable mapping function is not supported during Acumatica item export. The export process assigns Inventory CD as the WooCommerce item SKU.</p>
<p><strong>Where is the WooCommerce product ID stored after export?</strong></p>
<p>The generated ID appears in WooCommerce Store and on the Stock Items WooCommerce Inventory tab. A Template Item product ID appears on the WooCommerce Product tab.</p>
<p><strong>Where can I review products that failed to map?</strong></p>
<p>The documentation does not identify an unmapped-product queue or a product-specific error inquiry. Review Item Settings, the SKU and Inventory CD, the Item Details result, and the documented error shown when an item does not exist.</p>
<p><strong>Work With Biz Tech Services WooCommerce Mapping</strong></p>
<p>A reliable mapping design separates product identity from field synchronization. Product SKU matches Inventory CD during import, Item Mappings controls selected field directions, and Inventory Mappings connects WooCommerce properties to Acumatica fields or attributes. The documented gaps for aliases, item classes, and unmapped-product queues should be resolved through testing or separate approved requirements.</p>
<p>For help configuring and validating the Biz-Tech Services Acumatica WooCommerce Integrator, visit https://biz-techservices.com to learn more about Biz-Tech Services and schedule a personalized consultation.</p>
<p>The post <a href="https://biz-techservices.com/archives/10846">How to Map WooCommerce Products to Acumatica Inventory Items</a> appeared first on <a href="https://biz-techservices.com">Biz-Tech Services</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Acumatica Classic UI and Chromium XSLT: Patch and Test Before November 17, 2026</title>
		<link>https://biz-techservices.com/archives/10837</link>
		
		<dc:creator><![CDATA[Gary]]></dc:creator>
		<pubDate>Thu, 15 Oct 2026 06:50:00 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<guid isPermaLink="false">https://biz-techservices.com/?p=10837</guid>

					<description><![CDATA[<p>Prepare Acumatica Classic UI for Chromium's XSLT removal: confirm your patch, test critical workflows, and plan a safe Modern UI transition.</p>
<p>The post <a href="https://biz-techservices.com/archives/10837">Acumatica Classic UI and Chromium XSLT: Patch and Test Before November 17, 2026</a> appeared first on <a href="https://biz-techservices.com">Biz-Tech Services</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><!doctype html><html lang="en"><head><meta charset="utf-8"><title>Acumatica Classic UI Chromium XSLT Deadline</title><meta name="description" content="Prepare Acumatica Classic UI for Chromium's XSLT removal: confirm your patch, test critical workflows, and plan a safe Modern UI transition."><meta property="og:title" content="Acumatica Classic UI and Chromium XSLT: Patch and Test Before November 17, 2026"><meta property="og:description" content="Prepare Acumatica Classic UI for Chromium's XSLT removal: confirm your patch, test critical workflows, and plan a safe Modern UI transition."><meta property="og:image" content="acumatica-classic-ui-chromium-xslt-deadline_Blog_Hero_Wide_3x1.png"></head><body id="top"></p>
<h1>Acumatica Classic UI and Chromium XSLT: Patch and Test Before November 17, 2026</h1>
<p><em>Verified October 15, 2026</em></p>
<p><img decoding="async" src="https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:auto/h:auto/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/acumatica-classic-ui-chromium-xslt-deadline_Blog_Hero_Wide_3x1.png" alt="Acumatica Classic UI and Chromium XSLT patch and testing deadline" width="2172" height="724"></p>
<p>Browser change has become an operational Acumatica risk. Chromium is removing XSLT support on November 17, 2026, and Acumatica has warned that Classic UI screens can stop loading in Chromium-based browsers without the applicable update. This guide gives administrators and operations leaders a focused patch, test, and communication plan &#8211; while keeping the larger Modern UI transition moving.</p>
<nav aria-label="Table of Contents">
<h2>Table of Contents</h2>
<ol>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-1">The deadline is a browser change with an ERP impact</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-2">Know which environments and users are exposed</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-3">Separate the browser patch from the Modern UI transition</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-4">Build a patch decision record</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-5">Run regression tests that reflect real work</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-6">Give users a clear contingency plan</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-7">Use the deadline to retire hidden Classic dependencies</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-8">A practical 10-business-day readiness sequence</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-9">Why XSLT removal matters to Acumatica Classic UI</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-10">Understand the October 2026 change before the November deadline</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-11">Map the Acumatica version and hosting model</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-12">Create a dependable Classic UI dependency inventory</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-13">Prioritize workflows by operational risk</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-14">Design the sandbox before applying the patch</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-15">Build browser coverage around the real desktop estate</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-16">Test authentication session and navigation behavior</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-17">Validate data entry and transaction completion</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-18">Test reports dashboards pivots and exports</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-19">Validate customizations and ISV solutions</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-20">Protect integrations and automated processes</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-21">Define evidence and acceptance criteria</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-22">Plan backup rollback and recovery</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-23">Communicate with users before and after the change</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-24">Coordinate finance operations IT and leadership</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-25">Move from emergency patching to Modern UI readiness</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-26">Measure readiness with useful operational metrics</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-27">Common mistakes that increase deadline risk</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-28">Executive decision checklist</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-29">Production cutover runbook</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-30">First business day monitoring plan</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-31">Long term governance for browser dependent ERP features</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-32">Patch validation checklist</a></li>
<li><a href="#acumatica-classic-ui-chromium-xslt-deadline-33">Frequently Asked Questions</a></li>
</ol>
</nav>
<section id="acumatica-classic-ui-chromium-xslt-deadline-1">
<h2>The deadline is a browser change with an ERP impact</h2>
<p>On November 17, 2026, Chrome 158 is scheduled to stop supporting XSLT on Stable releases for most users. Acumatica&#x27;s Classic UI relies on browser behavior affected by that change, so a Classic screen can fail to load in Chrome, Edge, or another Chromium-based browser even when the ERP server itself is healthy.</p>
<p>This is not simply a browser-standard discussion. A missed patch can interrupt order entry, approvals, reporting, and administration wherever a team still opens Classic UI screens. The immediate objective is continuity; the strategic objective is to reduce the remaining Classic UI footprint before the next upgrade decision.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-2">
<h2>Know which environments and users are exposed</h2>
<p>Start with a short inventory, not an assumption. Record each production, sandbox, and tenant environment; its Acumatica version and build; the hosting model; the installed patch level; the browsers employees use; and the departments that still rely on Classic UI. Include administrators, power users, remote users, and third-party support teams.</p>
<p>Then identify the workflows rather than only the screens. A modern home page does not prove that a month-end dashboard, a legacy pivot table, a customized inquiry, a wizard, or an ISV add-on is safe. Ask each owner to name the transaction they cannot postpone for a business day.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-3">
<h2>Separate the browser patch from the Modern UI transition</h2>
<p>The Chromium XSLT issue and the Classic UI retirement are related but different decisions. The current Acumatica notice says the updated fix is available through patches for 2026 R1, 2025 R2, and 2025 R1, while customers on 2024 R2 or earlier need a supported-version upgrade or a temporary non-Chromium workaround. Confirm the exact supported build and patch with Acumatica before making a production change.</p>
<p>A patch preserves near-term access to Classic UI in Chromium-based browsers; it does not eliminate the migration work. Acumatica&#x27;s 2026 R2 documentation makes Modern UI the default, and Classic-only forms are warned for later retirement. Treat the patch as continuity protection while the organization completes its Modern UI plan.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-4">
<h2>Build a patch decision record</h2>
<p>For every environment, capture the current version, build, patch candidate, maintenance window, backup point, owner, validation evidence, and rollback decision. SaaS and private-cloud customers can have different delivery responsibilities, so do not infer the outcome from another customer&#x27;s model. Review the current Acumatica patch notice immediately before scheduling work.</p>
<p>This record gives finance and operations a reliable answer to a practical question: which workflows have been proven after the change, and which still need an alternate path? It also prevents a browser update from being treated as an undocumented production experiment.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-5">
<h2>Run regression tests that reflect real work</h2>
<p>Test the browser and application together in a sandbox first. Use a supported Chromium browser at the current corporate version, then exercise the workflows identified in the inventory. Confirm login, navigation, data entry, save, release, approvals, attachments, printing or exports, dashboards, inquiries, and any custom actions that the team uses during a normal operating cycle.</p>
<p>For each test, preserve the expected result, actual result, timestamp, browser version, Acumatica build, and tester. Retest integrations and scheduled processes where a Classic UI setup page or manual exception path is involved. A successful landing page is not a regression test.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-6">
<h2>Give users a clear contingency plan</h2>
<p>Publish one short notice before the production window: what is changing, when it occurs, which teams should test, where to report a problem, and what to do if a screen does not load. The Acumatica notice identifies Firefox as a temporary workaround in affected situations; use it only as a controlled contingency while the applicable patch or upgrade is completed, not as a silent long-term operating model.</p>
<p>Assign a named business owner and technical owner for each critical workflow. During the first business cycle after the change, monitor support tickets and confirm that exception queues, approvals, and time-sensitive operations continue normally.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-7">
<h2>Use the deadline to retire hidden Classic dependencies</h2>
<p>The inventory will often uncover work that has not been modernized because it still works: custom forms, Classic dashboards, pivot tables, and legacy add-on screens. In 2026 R2, Classic UI is disabled by default, and the Beacon guidance specifically calls out forms and functionality that remain Classic-only as candidates for preparation.</p>
<p>Rank those items by operational risk, user volume, and replacement effort. Some may be converted, some redesigned, and some retired. Give each item an owner, target release, acceptance criteria, and a user-training date. That is a more durable response than waiting for the next upgrade window to expose the dependency.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-8">
<h2>A practical 10-business-day readiness sequence</h2>
<p>Days 1-2: finish the environment and workflow inventory, confirm the current Acumatica advisory, and choose a patch candidate. Days 3-4: apply the patch in sandbox and execute the regression pack with business users. Days 5-6: resolve failures, validate customizations and ISV components, and document the production plan. Days 7-8: communicate the change and prepare the support rota. Days 9-10: apply the approved patch in production, run smoke tests, and track results through the next critical business cycle.</p>
<p>If the timeline is already compressed, reduce scope only after protecting the highest-risk workflows. Do not skip version confirmation, backup planning, or a post-change verification simply to meet the date.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-9">
<h2>Why XSLT removal matters to Acumatica Classic UI</h2>
<p>XSLT, or Extensible Stylesheet Language Transformations, is a browser technology that can transform XML data into a format a user can view and work with. Chromium has deprecated the browser-side XSLTProcessor API and the XML stylesheet processing instruction, with removal planned for Chrome 158 on November 17, 2026. That browser decision is broader than Acumatica, but it matters to Acumatica because portions of the Classic UI depend on the browser behavior being removed.</p>
<p>The operational symptom can be deceptively simple: a Classic UI screen that worked yesterday may stop loading after a browser update. Users may initially report a blank page, incomplete rendering, or a screen that appears to hang. Because the server can remain available and Modern UI screens can continue working, the incident may look inconsistent across departments. That inconsistency is exactly why organizations need an inventory tied to real workflows rather than a generic statement that the site is available.</p>
<p>The change also demonstrates an important dependency-management lesson. ERP continuity depends not only on application code and infrastructure but also on browsers, identity services, document engines, operating systems, and third-party components. A mature readiness plan records those dependencies, assigns ownership, and tests them together before a vendor deadline becomes a production outage.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-10">
<h2>Understand the October 2026 change before the November deadline</h2>
<p>Acumatica&#x27;s original guidance focused on Chromium&#x27;s planned November removal. The October 1, 2026 update added urgency: an unexpected Chromium behavior change caused Classic UI problems to surface earlier than anticipated and required updated fixes. Acumatica listed expedited patch dates for 2026 R1, 2025 R2, and 2025 R1. Organizations should therefore avoid treating November 17 as the first possible impact date.</p>
<p>This changes the planning sequence. Administrators should first verify whether their current browser and Acumatica build already show the issue, then confirm whether the environment contains the updated fix rather than only an earlier patch intended for the original removal schedule. A patch name or installation date is not enough evidence. The change record should identify the exact Acumatica build, the patch source, the browser version used for testing, and the date the current vendor notice was checked.</p>
<p>If a team already experienced intermittent Classic UI failures, the incident evidence should feed the regression pack. Capture affected screen IDs, browser versions, console or network symptoms when available, user roles, customizations, and whether the same transaction succeeds in Modern UI or Firefox. This turns an urgent support event into a repeatable validation scenario instead of relying on memory after the patch is installed.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-11">
<h2>Map the Acumatica version and hosting model</h2>
<p>The correct response depends on both the Acumatica release and who is responsible for applying updates. Acumatica&#x27;s current notice distinguishes environments on 2025 R1 or later from those on 2024 R2 or earlier. It also distinguishes SaaS delivery from private-cloud subscription environments. Those distinctions determine whether a fix may be delivered automatically, whether a customer must schedule a patch, or whether a supported-version upgrade is required.</p>
<p>Create one row per environment and include production, test, training, disaster-recovery, and integration tenants. Record the full version and build, hosting model, responsible administrator, maintenance process, browser-management policy, installed customizations, and business owner. Do not assume a sandbox matches production merely because the two environments share a major release. Patch history, customization packages, data volume, and authentication configuration can differ.</p>
<p>The inventory should also name the partner or internal team that can confirm patch eligibility. If an environment is outside the versions covered by the current fix, the decision becomes an upgrade and continuity decision rather than a normal patch. That requires additional time for customization validation, integration testing, data refresh, user acceptance, and change approval. Escalate that gap immediately instead of leaving it inside a technical checklist.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-12">
<h2>Create a dependable Classic UI dependency inventory</h2>
<p>A useful dependency inventory starts with people and transactions. Ask department leads which processes still require a Classic UI screen and when those processes become time-critical. Examples include order release, shipment processing, cash management, month-end reconciliations, time entry, project billing, manufacturing exceptions, construction commitments, and administrative setup. The goal is to connect each screen to a business outcome and recovery priority.</p>
<p>Next, inspect technical sources. Review site maps, customization projects, access-right assignments, Classic dashboards, pivot tables, wizards, custom forms, and ISV documentation. Search support tickets for terms such as Classic UI, legacy screen, switch interface, blank page, browser, dashboard, or pivot. Ask power users to demonstrate shortcuts and exception paths because those are often absent from formal process documentation.</p>
<p>For every dependency, record the screen ID, workflow, user group, frequency, peak period, customization owner, Modern UI status, test owner, and fallback. Add a confidence field so unverified assumptions are visible. A screen marked as available in Modern UI is not complete until a business user confirms that the required fields, actions, imports, attachments, reports, and navigation behavior support the real transaction.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-13">
<h2>Prioritize workflows by operational risk</h2>
<p>Not every Classic UI dependency deserves the same response. Prioritize the inventory using business impact, time sensitivity, transaction volume, number of affected users, availability of a workaround, customization complexity, and recovery effort. A rarely used inquiry with a documented Modern UI replacement is different from a release screen that controls daily shipping.</p>
<p>A practical classification uses three tiers. Tier 1 covers workflows that can stop revenue, payment, regulatory, payroll, shipment, or customer-service operations within hours. Tier 2 covers important work that can tolerate a short delay but creates a growing backlog. Tier 3 covers low-frequency administrative or analytical tasks with a workable alternative. The exact labels matter less than having owners agree on the order of testing and recovery.</p>
<p>Risk ranking also helps when time is limited. If the organization cannot execute every test before the maintenance window, it can protect Tier 1 workflows first, document the residual risk, and schedule the remaining validation. The ranking should be approved by process owners, not assigned by IT alone, because technical teams may not know which seemingly small action closes a financial period or releases a customer commitment.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-14">
<h2>Design the sandbox before applying the patch</h2>
<p>A sandbox is valuable only when it represents the production conditions relevant to the change. Confirm that it uses the intended Acumatica build, customization packages, ISV components, authentication method, browser policies, and representative roles. Refresh data when necessary to reproduce critical transactions, while following the organization&#x27;s privacy and data-handling rules.</p>
<p>Freeze the test baseline before patching. Record the current browser version and execute a small set of control tests so the team knows which issues already exist. Then apply the candidate patch using the same documented sequence planned for production. Capture start and finish times, installer output, service status, application startup behavior, and any manual configuration changes.</p>
<p>After patching, confirm basic health before business testing begins. Verify login, navigation, background processing, scheduled jobs, integrations, printing, email, and access to both Modern and remaining Classic UI screens. If the sandbox contains unrelated experimental changes, identify them clearly or create a cleaner environment. Otherwise a failed test can lead to hours of investigation against the wrong cause.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-15">
<h2>Build browser coverage around the real desktop estate</h2>
<p>Chrome and Microsoft Edge are the most visible Chromium-based browsers in many organizations, but the testing scope should come from the managed desktop estate. Record supported browsers, release channels, update policies, virtual desktop images, kiosk devices, remote-access platforms, and any embedded browser components used by companion applications. Confirm whether updates are centrally controlled or can arrive independently on user devices.</p>
<p>Use the current corporate browser version for the main regression cycle and include the next available managed version when practical. This is especially important when the organization delays browser updates, because a sandbox tested on an administrator&#x27;s current browser may not represent a warehouse workstation or remote desktop pool. Capture the full browser version in every result, not simply Chrome or Edge.</p>
<p>Do not use compatibility modes or alternate browsers as invisible permanent fixes. A temporary workaround can protect continuity, but it should have an owner, an expiration date, a deployment method, and security approval. The supported application patch and the Modern UI transition remain the durable paths. Browser exceptions that outlive the incident can create a second unmanaged dependency.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-16">
<h2>Test authentication session and navigation behavior</h2>
<p>Begin the functional test pack with the path users take before they reach a transaction. Validate single sign-on or native login, multifactor redirects, tenant selection, company and branch selection, session timeout, logout, and reauthentication. Confirm that bookmarked Classic UI URLs, navigation favorites, and links from notifications still land on the intended page.</p>
<p>Mixed-interface environments deserve special attention. Test navigation from a Modern UI page to a Classic-only page and back again. Verify that the user&#x27;s role, branch, locale, and session context remain correct. If the organization uses multiple tabs, confirm that common tab patterns do not produce stale sessions or unexpected redirects after the patch.</p>
<p>Record any difference between a direct URL, a site-map link, and a workflow action that opens another screen. A page may render successfully when opened directly while a contextual action passes parameters differently. Tests should therefore begin from the same starting point users follow in normal work rather than launching every screen from an administrator&#x27;s saved link.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-17">
<h2>Validate data entry and transaction completion</h2>
<p>For each critical workflow, test the transaction from creation through its business endpoint. Confirm field defaults, selectors, date and quantity entry, validation messages, saves, releases, approvals, reversals, attachments, notes, and follow-up navigation. Use realistic roles and data conditions so field security and automation behave as they do in production.</p>
<p>Include positive and negative cases. A successful order entry proves only the normal path. Test missing required fields, credit holds, inventory shortages, approval rejection, failed integrations, duplicate references, and other exceptions the team resolves in Classic UI. These paths often open additional dialogs or screens and are more likely to expose a hidden dependency.</p>
<p>Reconcile the result in the database-facing application screens and downstream business records. For example, confirm that a released document has the expected status, related batch, inventory effect, and audit trail. Browser compatibility testing is not complete if the page looks correct but the transaction produces incomplete or duplicated business data.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-18">
<h2>Test reports dashboards pivots and exports</h2>
<p>Reporting components deserve their own workstream because they combine browser rendering, parameters, data retrieval, printing, and export behavior. Inventory Classic dashboards, pivot tables, report forms, inquiry exports, and links distributed by email or documentation. Identify which ones support executive, compliance, customer, and month-end decisions.</p>
<p>For each report, test parameter entry, date ranges, branch restrictions, drill-down links, pagination, printing, PDF output, Excel export, and scheduled delivery where applicable. Compare totals and row counts with a known baseline. Visual success is not sufficient if the exported file changes columns, formats dates differently, omits rows, or loses filters.</p>
<p>Acumatica&#x27;s 2026 R2 transition guidance specifically calls out Classic dashboards and pivot tables among the items organizations should prepare for Modern UI. Use the browser-readiness exercise to decide which assets should be rebuilt, replaced with Generic Inquiries, moved to a supported dashboard experience, or retired because no one uses them. Confirm ownership before deleting or redesigning anything.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-19">
<h2>Validate customizations and ISV solutions</h2>
<p>Customizations can preserve business value while also increasing uncertainty during a platform change. Build a list of customization projects, custom screens, modified actions, JavaScript, themes, external widgets, and ISV packages that touch the Classic UI. Record the publisher, source repository or package location, current version, and support contact.</p>
<p>Ask each owner whether a Modern UI version is available and whether the current package has been certified for the target Acumatica patch. Do not treat the absence of a vendor warning as confirmation. Request written compatibility guidance for components that affect Tier 1 workflows, and retain that response with the change evidence.</p>
<p>Regression tests should cover both the visible customization and its side effects. Confirm custom fields, selectors, calculations, actions, pop-up dialogs, file handling, automation schedules, and data sent to integrations. If a workaround requires temporarily disabling a customization, document the business consequence and the precise steps for restoring it. Avoid making emergency production edits that cannot be reproduced in source control.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-20">
<h2>Protect integrations and automated processes</h2>
<p>Many integrations run without a browser, but their configuration, monitoring, and exception handling may still rely on Classic UI pages. Inventory API connections, import and export scenarios, scheduled processes, email processing, commerce connectors, bank feeds, tax services, document capture, and robotic automation. Identify the screen an administrator uses when a job fails.</p>
<p>Test routine execution and at least one controlled exception. Confirm credentials, endpoint behavior, queues, retry logic, logs, and reconciliation. If users normally open a Classic screen to correct a rejected record, validate that recovery path explicitly or provide a Modern UI alternative before the browser change reaches production.</p>
<p>Desktop automation deserves special scrutiny because it may depend on page structure rather than supported APIs. A patch or interface change can break selectors even when a human user sees a functional screen. Record every bot or script that interacts with the browser, rerun it in the patched sandbox, and prefer a supported integration approach when redesign is practical.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-21">
<h2>Define evidence and acceptance criteria</h2>
<p>A readiness decision should be based on evidence that another reviewer can understand. For each test, store the environment, Acumatica build, browser version, user role, test data, steps, expected result, actual result, screenshots when helpful, defect reference, tester, and date. Link the evidence to the change ticket rather than leaving it in personal notes or chat.</p>
<p>Acceptance criteria should describe business completion. Replace vague results such as screen opens with outcomes such as warehouse user creates and confirms a shipment, prints the required document, and verifies the released status using the assigned role. This wording makes it harder to close a test before the transaction reaches its real endpoint.</p>
<p>Classify defects by operational impact and assign a disposition: fix before production, accept temporarily with a documented workaround, remove the dependency, or defer with business approval. Re-run failed tests after any patch or configuration change. A final readiness summary should show passed Tier 1 workflows, unresolved risks, owners, and the explicit go or no-go decision.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-22">
<h2>Plan backup rollback and recovery</h2>
<p>The production plan should state what is being backed up, who verifies the backup, how long restoration would take, and what data could be created between the change and a rollback decision. Coordinate application, database, file storage, customization, and configuration backups according to the hosting model and established support procedures.</p>
<p>Define rollback triggers before the maintenance window. Examples include failed login for a critical population, inability to complete a Tier 1 transaction, widespread Classic UI rendering failure, corrupted output, or integration backlog beyond an approved threshold. Name the person authorized to call the rollback and the latest time that decision can be made safely.</p>
<p>A browser workaround can be part of recovery, but it is not identical to restoring the application. If Firefox is approved as a temporary path, prepare installation, security policy, bookmarks, user instructions, and support ownership in advance. Test the workaround with the same critical roles. Remove the temporary configuration once the supported patch path is stable.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-23">
<h2>Communicate with users before and after the change</h2>
<p>User communication should be specific enough to change behavior without overwhelming people with browser-engine detail. Tell affected users which workflows are in scope, the maintenance window, what normal behavior should look like, how to report a blank or incomplete screen, and whether a temporary browser is approved. Include screenshots or screen IDs when teams use similar names for different functions.</p>
<p>Ask department leads to nominate testers and confirm availability during the validation window. For shift-based operations, include warehouse, field, or production users who may not read the same channels as office teams. Provide a short script for the service desk so reports are tagged consistently with browser version, screen ID, time, user role, and business impact.</p>
<p>After deployment, send a clear completion notice only when the smoke tests pass. If risk remains, state the affected workflow, workaround, owner, and next update time. During the first full business cycle, monitor tickets and transaction queues. Close the change after process owners confirm that operations are stable, not immediately after the technical installation finishes.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-24">
<h2>Coordinate finance operations IT and leadership</h2>
<p>The deadline crosses organizational boundaries. IT owns browser deployment, infrastructure coordination, backups, and technical change control. Acumatica administrators own version verification, patch planning, security roles, and application evidence. Process owners define critical transactions and acceptance. Leadership resolves schedule conflicts and accepts residual business risk.</p>
<p>Finance should identify period-close, payment, billing, and reconciliation windows that restrict change timing. Operations should identify shipping, receiving, manufacturing, field, and customer-service peaks. Security should review temporary browser exceptions and access implications. The service desk should know how to distinguish a browser-rendering issue from authentication, network, or application availability problems.</p>
<p>Use one readiness meeting with a concise decision pack rather than several disconnected technical updates. The pack should show environment status, critical workflow results, open defects, rollback readiness, user communication, and the Modern UI follow-up plan. That structure keeps the immediate patch decision focused while making long-term dependencies visible to leaders who control resources and priorities.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-25">
<h2>Move from emergency patching to Modern UI readiness</h2>
<p>The patch reduces the immediate Chromium risk, but organizations should use the resulting inventory to plan Modern UI work. Acumatica&#x27;s direction is clear: Modern UI is the default in 2026 R2, users cannot normally switch interfaces when a Modern version exists, and Classic-only functionality is moving toward retirement. A successful patch should therefore buy controlled migration time, not justify indefinite delay.</p>
<p>Group remaining items into standard screens, configuration differences, custom screen conversions, dashboards and pivots, training gaps, ISV dependencies, and process redesign. Estimate each group separately because the skills and validation effort differ. A custom screen may require TypeScript and layout work, while a familiar standard screen may need only role-based testing and training.</p>
<p>Set milestones around business workflows rather than raw screen counts. Completing ten low-value screens does not reduce risk if the only shipping exception process remains Classic-only. Prioritize items by the same operational tiers used for browser testing, and require a business owner to accept the Modern UI result. Update process documentation and support materials as each dependency is retired.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-26">
<h2>Measure readiness with useful operational metrics</h2>
<p>Metrics should reveal whether risk is shrinking. Track the number of Classic UI dependencies by tier, percentage with a confirmed Modern UI path, percentage of Tier 1 tests passed, environments on the approved patch, open defects by severity, users trained, and workflows still dependent on a temporary workaround. Report trends and owners, not only a single green status.</p>
<p>After production deployment, measure failed-page incidents, service-desk volume, transaction backlog, workaround usage, and time to resolve browser-related reports. Compare these results with the baseline. A low ticket count can indicate success, but it can also mean users created manual workarounds without reporting them, so check with process owners during the first critical cycle.</p>
<p>For the Modern UI program, add adoption and quality measures: active users by interface, custom screens converted, acceptance tests completed, unresolved behavior gaps, and time spent supporting legacy paths. Review the metrics monthly until Tier 1 Classic dependencies reach zero. Retire emergency browser policies and temporary documentation as soon as the supported operating model is stable.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-27">
<h2>Common mistakes that increase deadline risk</h2>
<p>The first mistake is assuming that an automatic SaaS update removes the need for testing. Delivery responsibility and business acceptance are different. The second is checking only the home page. A mixed-interface tenant can appear healthy while a specific Classic workflow fails. The third is recording a major version without the full build and current patch evidence.</p>
<p>Other common failures include testing only with an administrator, excluding exception paths, overlooking Classic dashboards and pivots, forgetting third-party add-ons, and using a temporary browser without security approval. Teams also lose time when results are stored in chat messages instead of a shared test record, or when no one has authority to decide whether a defect blocks deployment.</p>
<p>The most expensive mistake is treating the compatibility fix as the end of the project. That leaves the organization exposed to the next browser or platform change and compresses the Modern UI migration into a later upgrade window. Use the November deadline as a forcing function to create accurate ownership, reusable tests, and a funded retirement plan for the remaining legacy dependencies.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-28">
<h2>Executive decision checklist</h2>
<p>Before approving production work, leaders should be able to answer the following questions. Do we know every production and sandbox version? Have we confirmed the current Acumatica patch guidance? Are all Tier 1 Classic workflows identified and tested in the managed browser estate? Are customizations, ISV products, reports, integrations, and exception paths included? Is the backup and rollback decision documented? Are users and the service desk prepared?</p>
<p>They should also ask what remains after the patch. Which Classic dependencies lack a Modern UI path? Which items block a future 2026 R2 or later upgrade? Who owns each conversion, validation, or vendor escalation? What is the target date for removing temporary browser workarounds? How will progress be measured and reported?</p>
<p>A responsible go decision does not require zero defects, but it does require transparent residual risk, named owners, workable contingencies, and business acceptance. If those conditions are absent, the correct action is to adjust the window or reduce risk before proceeding. The November date is important, but an undocumented emergency change can create more disruption than the browser change it is intended to prevent.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-29">
<h2>Production cutover runbook</h2>
<p>The cutover runbook should convert the approved plan into a timed sequence that anyone on the change team can follow. Begin with a readiness checkpoint confirming the maintenance window, backup completion, patch package, administrator access, tester availability, communication status, and rollback authority. Record the starting Acumatica build and browser versions before anyone changes the environment.</p>
<p>During implementation, log each action and its result. Typical steps include pausing scheduled work when required, applying the approved patch, restarting relevant services, confirming application availability, validating login, and releasing the environment to smoke testers. Avoid adding unrelated configuration or customization changes to the same window. A narrow scope makes troubleshooting and rollback decisions faster.</p>
<p>The smoke-test order should follow business risk. Test authentication and one high-value transaction first, then complete the remaining Tier 1 scenarios, integrations, reports, and exception paths. Establish a time limit for investigation so a difficult defect does not consume the rollback window. Record whether the team proceeds, pauses, uses a temporary contingency, or restores the previous state.</p>
<p>Close the maintenance window with a formal handoff. Confirm the final build, browser results, open issues, workaround status, monitoring owners, and next communication time. Preserve the runbook and evidence because the same tests can support a later patch, browser release, or Modern UI conversion. A reusable runbook turns one deadline response into a stronger operational control.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-30">
<h2>First business day monitoring plan</h2>
<p>The highest-value monitoring occurs when users resume normal work. Staff the service desk and application team around the first order cycle, shipment wave, approval run, scheduled integration, and financial processing period. Ask process owners to report both failures and unexpected manual steps. A workflow can technically complete while taking much longer or forcing users into an undocumented workaround.</p>
<p>Create a focused incident category for Classic UI and Chromium reports. Collect the user, time, browser version, Acumatica build, screen ID, navigation path, screenshot, and business impact. Compare similar reports before changing the system; several departments may be seeing one shared issue. Separate browser rendering problems from access rights, network latency, stale cache, customization defects, and unrelated application errors.</p>
<p>Monitor server and application indicators alongside user feedback. Review error logs, background job status, integration queues, email processing, scheduled reports, and transaction backlogs. If the organization deployed a temporary alternate browser, track who uses it and for which workflows. That usage is a measurable residual dependency and should decline after the supported fix is confirmed.</p>
<p>At the end of the first business day, issue a concise status summary: transactions tested, incidents received, resolutions, outstanding risks, and the next review point. Continue monitoring through the next critical weekly or month-end cycle if those processes were not exercised during the initial window. Do not close the change solely because the maintenance period ended without an alert.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-31">
<h2>Long term governance for browser dependent ERP features</h2>
<p>Browser dependencies should become part of the ERP governance model. Add supported browsers and managed versions to the platform standard, identify who reviews browser deprecation notices, and connect that review to Acumatica release and patch management. Include browser changes in the same calendar used for operating-system, identity, database, and integration dependencies.</p>
<p>Maintain a reusable compatibility test pack with role-based transactions, reports, customizations, and exception paths. Run a focused subset before major browser deployment and the full pack for high-risk application or platform changes. Automate evidence collection where it is reliable, but retain human acceptance for workflows whose success depends on business judgment, usability, or printed output.</p>
<p>Governance should also prevent new Classic dependencies. Require new customizations and ISV purchases to state their Modern UI support, browser requirements, upgrade policy, and test responsibility. Review existing custom work during each Acumatica upgrade cycle and remove assets that no longer have an owner or business purpose. This reduces the volume of emergency analysis during future deadlines.</p>
<p>Finally, keep leadership informed through a small set of operational measures: unsupported environments, Tier 1 legacy dependencies, patch compliance, open vendor gaps, and Modern UI conversion progress. The purpose is not to create more reporting. It is to make hidden platform risk visible early enough that the organization can schedule work before an external vendor date controls the timetable.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-32">
<h2>Patch validation checklist</h2>
<p>Confirm the target Acumatica version and exact patch against the latest vendor notice. Verify backup and rollback ownership. Test a Chromium browser in sandbox. Exercise each critical Classic UI workflow from login to completion. Validate custom screens, reports, dashboards, pivot tables, attachments, exports, and approval steps. Record results. Communicate the production window and contingency browser. Complete production smoke tests and keep the evidence with the change record.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="acumatica-classic-ui-chromium-xslt-deadline-33">
<h2>Frequently Asked Questions</h2>
<p>Will the November 17, 2026 date affect every Acumatica customer? The exposure depends on version, patch level, browser, and whether users still rely on Classic UI. Verify the current Acumatica notice for your environment.</p>
<p>Does applying the patch remove the need to move to Modern UI? No. It addresses browser continuity; it does not replace the migration and customization work required for the Modern UI direction.</p>
<p>Can Firefox be the permanent answer? Treat it as a temporary contingency only. It may preserve access in some scenarios while you complete the supported patch or upgrade path.</p>
<p>Which items need the most careful testing? Custom screens, Classic-only forms, dashboards, pivots, workflow exceptions, ISV components, and actions used during time-sensitive business cycles should be explicit test cases.</p>
<p>What should a PCS customer do? Confirm the applicable patch and installation process with Acumatica or your partner, then patch and validate before the deadline.</p>
<p>What should a SaaS customer do? Confirm the delivered patch status and validate business-critical workflows in your tenant; automatic delivery does not replace acceptance testing.</p>
<p>Can an organization still use Classic UI in 2026 R2? The current documentation says Classic UI is disabled by default in 2026 R2, with limited legacy access mechanisms and remaining Classic-only functionality warned for later retirement. Confirm the exact release guidance before planning.</p>
<p>When should the work start? Immediately. The October 2026 browser behavior change described in Acumatica&#x27;s updated notice means waiting until November can leave too little time for a controlled regression cycle.</p>
<p><a href="#top">Back to TOC</a></p>
</section>
<section id="sources">
<h2>Sources</h2>
<ul>
<li><a href="https://developer.chrome.com/docs/web-platform/deprecating-xslt">Chrome for Developers: Removing XSLT for a more secure browser</a></li>
<li><a href="https://community.acumatica.com/acumatica-news-updates-2/chromium-xslt-deprecation-affecting-classic-ui-action-required-35343">Acumatica Community: Chromium XSLT Deprecation Affecting Classic UI</a></li>
<li><a href="https://community.acumatica.com/acumatica-news-updates-2/announcement-classic-ui-deprecation-in-2026-r2-and-faq-34835">Acumatica Community: Classic UI Deprecation in 2026 R2 and FAQ</a></li>
<li><a href="https://beacon.acumatica.com/r/Customization-Update-Guide/Updating-Customization-Projects-to-Acumatica-ERP-2026-R2/Customization-Update-to-2026-R2-Retirement-of-the-Classic-UI?contentId=c5xWGefqbXAQ44gQ7~73iw">Acumatica Beacon: Customization Update to 2026 R2 &#8211; Retirement of the Classic UI</a></li>
</ul>
</section>
<p>Biz-Tech Services can help teams inventory Classic dependencies, validate patches, and plan a controlled Modern UI transition without losing sight of business-critical workflows.</p>
<p></body></html></p>
<p>The post <a href="https://biz-techservices.com/archives/10837">Acumatica Classic UI and Chromium XSLT: Patch and Test Before November 17, 2026</a> appeared first on <a href="https://biz-techservices.com">Biz-Tech Services</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Map PDF Line Items to Acumatica Inventory IDs with DocVision</title>
		<link>https://biz-techservices.com/archives/10832</link>
		
		<dc:creator><![CDATA[Gary]]></dc:creator>
		<pubDate>Thu, 15 Oct 2026 06:05:59 +0000</pubDate>
				<category><![CDATA[Lesson]]></category>
		<guid isPermaLink="false">https://biz-techservices.com/?p=10832</guid>

					<description><![CDATA[<p>DocVision maps PDF line items to Acumatica Inventory IDs through an Inventory Cross-Reference tab that appears after Enable CrossRef is [&#8230;]</p>
<p>The post <a href="https://biz-techservices.com/archives/10832">How to Map PDF Line Items to Acumatica Inventory IDs with DocVision</a> appeared first on <a href="https://biz-techservices.com">Biz-Tech Services</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>DocVision maps PDF line items to Acumatica Inventory IDs through an Inventory Cross-Reference tab that appears after Enable CrossRef is turned on for the Inventory ID field. Users can map PDF item values manually or import all item mappings through Excel, then use Validate Items on an imported document to apply existing cross-references to its detail lines.</p>
<p>The Biz-Tech Services DocVision product for Acumatica uses these mappings while turning customer PDF documents into sales orders. This article stays with the documented item-mapping path: choosing the sales order detail target, creating inventory cross-references, activating fields, validating imported lines, and reading the green, red, and yellow status indicators. The guide does not define item-class mapping, alias rules, or a separate unmapped-item queue.</p>
<p><strong>What DocVision Item Mapping Does in Acumatica</strong></p>
<p>DocVision creates Acumatica sales orders from uploaded PDF documents such as purchase orders or shipping requests. A customer-specific template defines how values from a particular PDF structure correspond to Acumatica values. After a PDF is imported in PDF Import Settings, DocVision automatically identifies PDF FieldName and PDF Value entries and sets initial Target Object and Source Field values in the Import Mappings tab.</p>
<p>Users can then map PDF fields to the appropriate Acumatica fields. For item lines, the documented cross-reference feature connects a PDF item value with an Acumatica Inventory ID. This connection lets Validate Items find an existing inventory cross-reference and display the resulting Acumatica value in the Details tab of the imported document.</p>
<p>The documentation does not call the PDF item value a SKU, alias, vendor item, or customer item number. It simply calls the records PDF items and says that they can be mapped to Acumatica Inventory IDs. Use those terms when confirming a DocVision implementation so that broader identifier behavior is not assumed.</p>
<p><strong>Map PDF Line Items to Acumatica Inventory IDs Step by Step</strong></p>
<p>The documented sequence starts with the customer&#8217;s PDF template and ends with an imported document whose item lines can be validated against saved inventory cross-references.</p>
<p>1 Open PDF Import Settings and use the Plus button to create a workspace</p>
<p><img decoding="async" width="1356" height="882" class="wp-image-10833" src="https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:auto/h:auto/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/2_PDFImportSettings.png" alt="PDF Import Settings" srcset="https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:1356/h:882/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/2_PDFImportSettings.png 1356w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:300/h:195/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/2_PDFImportSettings.png 300w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:1024/h:666/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/2_PDFImportSettings.png 1024w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:768/h:500/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/2_PDFImportSettings.png 768w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:350/h:228/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/2_PDFImportSettings.png 350w" sizes="(max-width: 840px) 100vw, 840px" /></p>
<p>2 Import a representative PDF file so DocVision can create the template and display the PDF beside the mapping workspace</p>
<p>3 In Import Mappings, review the automatically populated PDF FieldName, PDF Value, Target Object, and Source Field values</p>
<p>4 For sales order detail fields, select Sales Order, Details, and Advanced in the Target Object hierarchy</p>
<p>5 For the Inventory ID field, enable Enable CrossRef so the Inventory Cross-Reference tab appears</p>
<p>6 In Inventory Cross-Reference, map PDF items to Acumatica Inventory IDs manually or import all item mappings through Excel</p>
<p>7 Select Active for each mapped field that should be included when DocVision generates the sales order</p>
<p>8 Import or open the document in Import Document and use Validate Items to apply saved inventory cross-references to the PDF lines</p>
<p>9 Review the Details tab, line colors, and Error Message field before selecting Generate Sales Order</p>
<p><strong>Target Objects and Source Fields for PDF Detail Lines</strong></p>
<p>DocVision separates PDF values from their Acumatica destinations. PDF FieldName and PDF Value describe what was extracted from the uploaded document. Target Object and Source Field define where that extracted value belongs. The Import Mappings tab receives initial values automatically, and the user can manually map PDF fields to corresponding Acumatica values.</p>
<p>For a sales order header, the guide directs users to Sales Order and Advanced in Target Object. For a sales order line, it directs users to Sales Order, Details, and Advanced. The second path matters for Inventory ID because an item belongs to the sales order details rather than the order header. The documentation provides the hierarchy names but no Acumatica screen ID or field-selection example for Inventory ID.</p>
<p>Only mappings with Active selected are uploaded during sales order generation. An inventory mapping can therefore exist in the template while being excluded from the generated order if its Active checkbox is not selected. The source does not describe whether DocVision blocks generation when an inactive mapping would leave an item line incomplete.</p>
<p><strong>Inventory Cross Reference for PDF Items in Acumatica</strong></p>
<p>Enable CrossRef is the documented switch for item-level translation. When it is enabled for Inventory ID, DocVision displays the Inventory Cross-Reference tab. That tab is where a PDF item is paired with its Acumatica Inventory ID. The guide does not describe a separate intermediate item record or a mapping outside the PDF Import Settings template.</p>
<p><img decoding="async" width="1379" height="802" class="wp-image-10834" src="https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:auto/h:auto/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/2_PDF_ImportSetting_Highlighted.png" alt="PDF Import Setting Highlighted" srcset="https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:1379/h:802/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/2_PDF_ImportSetting_Highlighted.png 1379w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:300/h:174/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/2_PDF_ImportSetting_Highlighted.png 300w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:1024/h:596/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/2_PDF_ImportSetting_Highlighted.png 1024w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:768/h:447/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/2_PDF_ImportSetting_Highlighted.png 768w, https://mlt1wwte1gj9.i.optimole.com/cb:O8Ue.e5e/w:350/h:204/q:mauto/g:sm/ig:avif/https://biz-techservices.com/wp-content/uploads/2_PDF_ImportSetting_Highlighted.png 350w" sizes="(max-width: 840px) 100vw, 840px" /></p>
<p>A similar but separate customer feature is mentioned in the guide. When Cross Reference is selected, a Customer Cross-Reference tab appears for mapping PDF customer values and locations to Acumatica customers and locations. The source does not explain whether the labels Enable CrossRef and Cross Reference represent the same control in different contexts or two distinct controls.</p>
<p>For inventory work, rely on the explicit instruction tied to the Inventory ID field: enable Enable CrossRef and use Inventory Cross-Reference. Customer mapping should not be treated as evidence for undocumented item-alias or item-class rules.</p>
<p><strong>Manual Mapping and Excel Import for Inventory IDs</strong></p>
<p>DocVision supports two documented ways to populate item cross-references. Users can manually map PDF items to Acumatica Inventory IDs, or they can import all items through Excel. Both methods populate the Inventory Cross-Reference area used when imported document lines are validated.</p>
<p>The manual does not show the Excel file structure, required columns, accepted file type, duplicate handling, update behavior, or error response for rejected rows. It also does not state whether a manual entry overrides an imported entry. Prepare the spreadsheet format only after confirming those details in the installed DocVision version.</p>
<p>Per-customer PDF mapping allows different customers to use different templates and document structures. The guide does not say whether an inventory cross-reference is shared across templates or stored separately for each customer template. That scope should be tested before the same external item value is expected to resolve across multiple PDF layouts.</p>
<p><strong>Validate Items and Unmapped PDF Lines in DocVision</strong></p>
<p>The Import Document screen can open an existing or previously imported document, display the PDF and its mappings, and retain the Template ID. When an item line is yellow because its item is not mapped correctly, Validate Items provides the documented recovery step.</p>
<p>Validate Items maps PDF items to Acumatica values and displays them in the Details tab when those items are already mapped in Inventory Cross Reference on PDF Import Settings. This condition is important: the button applies existing cross-references. The guide does not say that it creates a new inventory mapping from an unknown PDF item.</p>
<p>The documentation does not define a dedicated unmapped-record queue or describe how to jump directly from a yellow line to a new Inventory Cross-Reference entry. It also gives no rule for two PDF values that point to the same Inventory ID, one PDF value that could match more than one Inventory ID, blank item values, or duplicate lines. Those cases require confirmation in the installed product.</p>
<p><strong>Mapping Status and Item Errors in DocVision</strong></p>
<p>DocVision uses three line colors on the Import Document screen. Green indicates that everything is mapped correctly and the file is ready for sales order generation. Yellow indicates, as the guide&#8217;s example, that items are not mapped correctly. Red indicates an issue with an item line during import and is paired with an error message in the Error Message field.</p>
<p>The guide names the Error Message field but does not reproduce any item-line error text or provide validation rules that distinguish yellow from red. It does not state whether yellow prevents generation, whether red always blocks an order, or whether users can override either condition. Read the actual line status and Error Message value before generating a sales order.</p>
<p>A separate warning exists for a missing purchase order number during PDF import: The document for the mapping does not have any number. Please select an alternative PO Number. That warning concerns header mapping and Dynamic PO Number, not Inventory ID mapping, so it should not be used as an item-validation rule.</p>
<p><strong>Mapping Features Not Defined in the DocVision Guide</strong></p>
<p>The source documents direct PDF-item-to-Inventory-ID cross-references, but it does not define SKU aliases, alternate identifiers, item-class defaults, wildcard or partial matching, case sensitivity, leading-zero treatment, UOM conversion, or automatic item creation. It does not identify a precedence rule when several cross-references could match the same PDF value.</p>
<p>The guide also does not provide an unmapped-item inquiry, an export of missing values, a cross-reference audit report, or named validation rules. The only documented operational evidence is the mapping data, the Active checkbox, the Details tab, the three line colors, Validate Items, and the Error Message field. Keep any broader mapping requirement separate until it is verified against the installed DocVision customization.</p>
<p><strong>Where to Check Your DocVision Inventory Mapping</strong></p>
<p>Use the documented screens and fields below to review the mapping before and after a sales order is generated.</p>
<p>1 In PDF Import Settings, confirm that the correct customer template and PDF are open</p>
<p>2 In Import Mappings, review PDF FieldName, PDF Value, Target Object, and Source Field</p>
<p>3 For Inventory ID, confirm that Enable CrossRef is enabled and Inventory Cross-Reference is available</p>
<p>4 In Inventory Cross-Reference, confirm that each known PDF item points to the intended Acumatica Inventory ID</p>
<p>5 Confirm that Active is selected for every field that should be included during sales order generation</p>
<p>6 In Import Document, select the document number and confirm its Template ID and mapping details</p>
<p>7 Use Validate Items and inspect the mapped values in the Details tab</p>
<p>8 Review green, yellow, or red line status and read any Error Message value</p>
<p>9 After Generate Sales Order runs, confirm the order number, order type, Generated checkbox, and document number on the Sales Order screen</p>
<p><strong>DocVision Inventory ID Mapping Frequently Asked Questions</strong></p>
<p><strong>Where are PDF items mapped to Acumatica Inventory IDs?</strong></p>
<p>Enable Enable CrossRef for Inventory ID in PDF Import Settings. DocVision then shows the Inventory Cross-Reference tab, where PDF items can be mapped to Acumatica Inventory IDs.</p>
<p><strong>Can DocVision import inventory mappings from Excel?</strong></p>
<p>Yes. The guide says users can import all items through Excel as an alternative to manual mapping. It does not document the spreadsheet columns or validation rules.</p>
<p><strong>Which Target Object should be used for a sales order item line?</strong></p>
<p>Select Sales Order, Details, and Advanced in Target Object for sales order detail fields. The source distinguishes this from Sales Order and Advanced for header fields.</p>
<p><strong>Why is a DocVision item line yellow?</strong></p>
<p>Yellow can indicate that an item is not mapped correctly. If the PDF item already has an Inventory Cross Reference, use Validate Items to map it to the Acumatica value and display it in Details.</p>
<p><strong>What does a red item line mean in DocVision?</strong></p>
<p>Red indicates that an item line had an issue during import. Read the Error Message field for that line. The guide does not provide an error catalog or corrective steps for specific messages.</p>
<p><strong>Does Validate Items create a mapping for an unknown PDF item?</strong></p>
<p>The guide only says Validate Items maps items that are already present in Inventory Cross Reference. It does not state that the button creates a new mapping for an unknown value.</p>
<p><strong>Can DocVision map inventory by item class or alias?</strong></p>
<p>The documentation does not describe item-class rules, aliases, or automatic matching. It documents direct PDF item to Acumatica Inventory ID cross-references.</p>
<p><strong>How do I know the mapped document generated an Acumatica sales order?</strong></p>
<p>After generation, the imported document should show the order number and order type, and Generated should be selected. The document number should also be visible on the Sales Order screen.</p>
<p><strong>Work With Biz Tech Services on DocVision Mapping</strong></p>
<p>A documented DocVision inventory-mapping process links extracted PDF item values to Acumatica Inventory IDs in Inventory Cross-Reference, activates the required detail fields, and validates imported lines before order generation. The Import Document colors and Error Message field provide the available exception evidence.</p>
<p>If your team needs help configuring DocVision templates, inventory cross-references, or PDF line validation in Acumatica, visit https://biz-techservices.com to contact Biz-Tech Services or schedule a personalized demonstration.</p>
<p>The post <a href="https://biz-techservices.com/archives/10832">How to Map PDF Line Items to Acumatica Inventory IDs with DocVision</a> appeared first on <a href="https://biz-techservices.com">Biz-Tech Services</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
