{"id":414,"date":"2015-03-23T16:47:12","date_gmt":"2015-03-23T21:47:12","guid":{"rendered":"https:\/\/www.apcdynamics.com\/articles\/?p=414"},"modified":"2015-06-13T15:40:50","modified_gmt":"2015-06-13T20:40:50","slug":"optimizing-your-aged-accounts-receivables-report","status":"publish","type":"post","link":"https:\/\/www.apcdynamics.com\/articles\/optimizing-your-aged-accounts-receivables-report\/","title":{"rendered":"Optimizing your Aged Accounts Receivables Report"},"content":{"rendered":"<p><strong>Overview<\/strong><br \/>\nDoing numerous upgrades from an older version of Navision to NAV 2015 and 2013, one common complaint is how slow the reports are running. This is especially true for larger reports like the\u00a0Aged Accounts Receivables, Aged Accounts Payables , Inventory Valuation, etc.<\/p>\n<p>The old reports that took a long time, such as the Inventory Valuation report, will still take a long time. It doesn&#8217;t matter what version you go to. However, there are some reports that used to be quick, but is slow after the upgrade.<\/p>\n<p>One of these reports is the Aged Accounts Receivables report (Report ID: 10040 &#8211; Aged Accounts Receivable).<\/p>\n<p><strong>The Breakdown<\/strong><br \/>\n<em>CAUTION:<\/em> I&#8217;m about to get &#8220;programmer&#8221;. If you want the faster report, just skip down to the bottom and download the object.<\/p>\n<p>Removing the Data Type of Column from the report, we get the following DataItem that the report loops through:<\/p>\n<p><a href=\"https:\/\/www.apcdynamics.com\/articles\/wp-content\/uploads\/2015\/03\/AgedReceivables.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-419 size-full\" src=\"https:\/\/www.apcdynamics.com\/articles\/wp-content\/uploads\/2015\/03\/AgedReceivables.jpg\" alt=\"AgedReceivables\" width=\"546\" height=\"288\" srcset=\"https:\/\/www.apcdynamics.com\/articles\/wp-content\/uploads\/2015\/03\/AgedReceivables.jpg 546w, https:\/\/www.apcdynamics.com\/articles\/wp-content\/uploads\/2015\/03\/AgedReceivables-300x158.jpg 300w\" sizes=\"auto, (max-width: 546px) 100vw, 546px\" \/><\/a><\/p>\n<p>On initial look, the report looks simple enough. There are 3 data items:<\/p>\n<ul>\n<li><strong>Customer &#8211;<\/strong> The report loops through the customer record to see which customer we need to calculate the aging for<\/li>\n<li><strong>Cust. Ledger Entry<\/strong> &#8211; For every customer record it finds, it will loop through the all of the customer ledger for that customer. For any customer ledger that has a remaining amount, it&#8217;ll put it into a temporary table<\/li>\n<li><strong>Integer<\/strong> &#8211; This dataitem loops through the same records that are inserted into the temporary table on the Cust. Ledger Entry dataitem and summerizes the information to display in different aging &#8220;buckets&#8221;.<\/li>\n<\/ul>\n<p><strong>The Problem<\/strong><br \/>\nThe reason why this report is slow is if you check the DataItemTableView property on the Cust. Ledger Entry dataitem, you&#8217;ll see that the report is looping through <span style=\"text-decoration: underline;\"><strong>ALL<\/strong><\/span> of the customer ledger for that customer.<\/p>\n<p><a href=\"https:\/\/www.apcdynamics.com\/articles\/wp-content\/uploads\/2015\/03\/NoFilterSet.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-418 size-full\" src=\"https:\/\/www.apcdynamics.com\/articles\/wp-content\/uploads\/2015\/03\/NoFilterSet.jpg\" alt=\"NoFilterSet\" width=\"615\" height=\"348\" srcset=\"https:\/\/www.apcdynamics.com\/articles\/wp-content\/uploads\/2015\/03\/NoFilterSet.jpg 615w, https:\/\/www.apcdynamics.com\/articles\/wp-content\/uploads\/2015\/03\/NoFilterSet-300x170.jpg 300w\" sizes=\"auto, (max-width: 615px) 100vw, 615px\" \/><\/a><\/p>\n<p>This report will run fine if you&#8217;re A\/R aging is small. However, this report will get slower as time progresses with more transactions. Worst, it&#8217;ll consume all the memory on the server and force you to restart.<\/p>\n<p>The problem becomes real apparent when you have EDI customers that are running hundreds of invoices per day.<\/p>\n<p><strong>The Solution<\/strong><br \/>\nThe idea of the original A\/R aging report is correct. Basically, look at the remaining amount based on the date criteria; if there is a balance, then it goes into the calculation.<\/p>\n<p>The problem is that it&#8217;s not running any type of filters to exclude old transactions that has no relevance in our calculation.<\/p>\n<p>To address the performance problem, here are the main things we will need to do:<\/p>\n<ol>\n<li>Look at only transactions that are marked as Open<\/li>\n<li>If the report is to be backdated, look into the only the history that pertains to the date criteria<\/li>\n<\/ol>\n<p>First thing we do is to set the proper DataItemTableView property with the filter of Open.<\/p>\n<p><a href=\"https:\/\/www.apcdynamics.com\/articles\/wp-content\/uploads\/2015\/03\/FilteronOpenOnly.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-417 size-full\" src=\"https:\/\/www.apcdynamics.com\/articles\/wp-content\/uploads\/2015\/03\/FilteronOpenOnly.jpg\" alt=\"FilteronOpenOnly\" width=\"782\" height=\"284\" srcset=\"https:\/\/www.apcdynamics.com\/articles\/wp-content\/uploads\/2015\/03\/FilteronOpenOnly.jpg 782w, https:\/\/www.apcdynamics.com\/articles\/wp-content\/uploads\/2015\/03\/FilteronOpenOnly-300x109.jpg 300w\" sizes=\"auto, (max-width: 782px) 100vw, 782px\" \/><\/a><\/p>\n<p>Then we need to add a new Detailed Cust. Ledger Entry dataitem to look at the application history of our A\/R transaction:<\/p>\n<p>The Property:<\/p>\n<p><a href=\"https:\/\/www.apcdynamics.com\/articles\/wp-content\/uploads\/2015\/03\/DCLEProperty.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-416 size-full\" src=\"https:\/\/www.apcdynamics.com\/articles\/wp-content\/uploads\/2015\/03\/DCLEProperty.jpg\" alt=\"DCLEProperty\" width=\"793\" height=\"309\" srcset=\"https:\/\/www.apcdynamics.com\/articles\/wp-content\/uploads\/2015\/03\/DCLEProperty.jpg 793w, https:\/\/www.apcdynamics.com\/articles\/wp-content\/uploads\/2015\/03\/DCLEProperty-300x117.jpg 300w\" sizes=\"auto, (max-width: 793px) 100vw, 793px\" \/><\/a><\/p>\n<p>The Code:<\/p>\n<p><a href=\"https:\/\/www.apcdynamics.com\/articles\/wp-content\/uploads\/2015\/03\/AddDetailedCustLedger.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-415 size-full\" src=\"https:\/\/www.apcdynamics.com\/articles\/wp-content\/uploads\/2015\/03\/AddDetailedCustLedger.jpg\" alt=\"AddDetailedCustLedger\" width=\"760\" height=\"370\" srcset=\"https:\/\/www.apcdynamics.com\/articles\/wp-content\/uploads\/2015\/03\/AddDetailedCustLedger.jpg 760w, https:\/\/www.apcdynamics.com\/articles\/wp-content\/uploads\/2015\/03\/AddDetailedCustLedger-300x146.jpg 300w\" sizes=\"auto, (max-width: 760px) 100vw, 760px\" \/><\/a><\/p>\n<p>Basically, we&#8217;re limiting the reads of the database to only open transactions and the subsequent A\/R applications from the Aged as of Date set on the report.<\/p>\n<p>Here are the report objects and the text file\u00a0for your reference:<br \/>\n<a href=\"https:\/\/www.apcdynamics.com\/articles\/wp-content\/uploads\/2015\/03\/OptimizedARAging.rar\">OptimizedARAging<\/a><\/p>\n<p><strong>Conclusion<\/strong><br \/>\nNot sure what the developer at Microsoft is thinking when programming this report. Aged Accounts Receivable\/Payable is one of the most data intensive reports next to the inventory valuation. Reading through every record just does not make sense.<\/p>\n<p>Yes, it&#8217;ll work in the short run, but give a few years and the report will slow to a crawl, which is already experienced by customers upgrading.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Overview Doing numerous upgrades from an older version of Navision to NAV 2015 and 2013, one common complaint is how slow the reports are running. This is especially true for larger reports like the\u00a0Aged Accounts Receivables, Aged Accounts Payables , Inventory Valuation, etc. The old reports that took a long time, such as the InventoryRead more<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[8,64,9],"tags":[68],"class_list":["post-414","post","type-post","status-publish","format-standard","hentry","category-programming","category-reporting","category-upgrade","tag-apcommerce"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Optimizing your Aged Accounts Receivables Report | Confessions of a Dynamics 365 Business Central Consultant<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.apcdynamics.com\/articles\/optimizing-your-aged-accounts-receivables-report\/\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Alex Chow\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/optimizing-your-aged-accounts-receivables-report\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/optimizing-your-aged-accounts-receivables-report\\\/\"},\"author\":{\"name\":\"Alex Chow\",\"@id\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/#\\\/schema\\\/person\\\/aef29f75349626d15235713ce1db83f0\"},\"headline\":\"Optimizing your Aged Accounts Receivables Report\",\"datePublished\":\"2015-03-23T21:47:12+00:00\",\"dateModified\":\"2015-06-13T20:40:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/optimizing-your-aged-accounts-receivables-report\\\/\"},\"wordCount\":607,\"commentCount\":3,\"publisher\":{\"@id\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/optimizing-your-aged-accounts-receivables-report\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/wp-content\\\/uploads\\\/2015\\\/03\\\/AgedReceivables.jpg\",\"keywords\":[\"APCommerce\"],\"articleSection\":[\"programming\",\"reporting\",\"upgrade\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/optimizing-your-aged-accounts-receivables-report\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/optimizing-your-aged-accounts-receivables-report\\\/\",\"url\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/optimizing-your-aged-accounts-receivables-report\\\/\",\"name\":\"Optimizing your Aged Accounts Receivables Report | Confessions of a Dynamics 365 Business Central Consultant\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/optimizing-your-aged-accounts-receivables-report\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/optimizing-your-aged-accounts-receivables-report\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/wp-content\\\/uploads\\\/2015\\\/03\\\/AgedReceivables.jpg\",\"datePublished\":\"2015-03-23T21:47:12+00:00\",\"dateModified\":\"2015-06-13T20:40:50+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/optimizing-your-aged-accounts-receivables-report\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/optimizing-your-aged-accounts-receivables-report\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/optimizing-your-aged-accounts-receivables-report\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/wp-content\\\/uploads\\\/2015\\\/03\\\/AgedReceivables.jpg\",\"contentUrl\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/wp-content\\\/uploads\\\/2015\\\/03\\\/AgedReceivables.jpg\",\"width\":546,\"height\":288},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/optimizing-your-aged-accounts-receivables-report\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"programming\",\"item\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/category\\\/programming\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Optimizing your Aged Accounts Receivables Report\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/#website\",\"url\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/\",\"name\":\"APC Dynamics | Dynamics 365 Business Central Consultant\",\"description\":\"Dynamics 365 Business Central experts. Less Talk. More Results.\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/#organization\",\"name\":\"APC Dynamics\",\"url\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/APCLogo216.png\",\"contentUrl\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/APCLogo216.png\",\"width\":216,\"height\":216,\"caption\":\"APC Dynamics\"},\"image\":{\"@id\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/APCommerceInc\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/ap-commerce-inc-\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCkM_LLmB4333D4Arjk0knyw\\\/about\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/#\\\/schema\\\/person\\\/aef29f75349626d15235713ce1db83f0\",\"name\":\"Alex Chow\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f72fa4e27588610bb80f41bb4e562d9b82762fe530709098d99963bd2da6f86f?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f72fa4e27588610bb80f41bb4e562d9b82762fe530709098d99963bd2da6f86f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f72fa4e27588610bb80f41bb4e562d9b82762fe530709098d99963bd2da6f86f?s=96&d=mm&r=g\",\"caption\":\"Alex Chow\"},\"sameAs\":[\"https:\\\/\\\/www.apcommerce.com\\\/\"],\"url\":\"https:\\\/\\\/www.apcdynamics.com\\\/articles\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Optimizing your Aged Accounts Receivables Report | Confessions of a Dynamics 365 Business Central Consultant","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.apcdynamics.com\/articles\/optimizing-your-aged-accounts-receivables-report\/","twitter_misc":{"Written by":"Alex Chow","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.apcdynamics.com\/articles\/optimizing-your-aged-accounts-receivables-report\/#article","isPartOf":{"@id":"https:\/\/www.apcdynamics.com\/articles\/optimizing-your-aged-accounts-receivables-report\/"},"author":{"name":"Alex Chow","@id":"https:\/\/www.apcdynamics.com\/articles\/#\/schema\/person\/aef29f75349626d15235713ce1db83f0"},"headline":"Optimizing your Aged Accounts Receivables Report","datePublished":"2015-03-23T21:47:12+00:00","dateModified":"2015-06-13T20:40:50+00:00","mainEntityOfPage":{"@id":"https:\/\/www.apcdynamics.com\/articles\/optimizing-your-aged-accounts-receivables-report\/"},"wordCount":607,"commentCount":3,"publisher":{"@id":"https:\/\/www.apcdynamics.com\/articles\/#organization"},"image":{"@id":"https:\/\/www.apcdynamics.com\/articles\/optimizing-your-aged-accounts-receivables-report\/#primaryimage"},"thumbnailUrl":"https:\/\/www.apcdynamics.com\/articles\/wp-content\/uploads\/2015\/03\/AgedReceivables.jpg","keywords":["APCommerce"],"articleSection":["programming","reporting","upgrade"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.apcdynamics.com\/articles\/optimizing-your-aged-accounts-receivables-report\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.apcdynamics.com\/articles\/optimizing-your-aged-accounts-receivables-report\/","url":"https:\/\/www.apcdynamics.com\/articles\/optimizing-your-aged-accounts-receivables-report\/","name":"Optimizing your Aged Accounts Receivables Report | Confessions of a Dynamics 365 Business Central Consultant","isPartOf":{"@id":"https:\/\/www.apcdynamics.com\/articles\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.apcdynamics.com\/articles\/optimizing-your-aged-accounts-receivables-report\/#primaryimage"},"image":{"@id":"https:\/\/www.apcdynamics.com\/articles\/optimizing-your-aged-accounts-receivables-report\/#primaryimage"},"thumbnailUrl":"https:\/\/www.apcdynamics.com\/articles\/wp-content\/uploads\/2015\/03\/AgedReceivables.jpg","datePublished":"2015-03-23T21:47:12+00:00","dateModified":"2015-06-13T20:40:50+00:00","breadcrumb":{"@id":"https:\/\/www.apcdynamics.com\/articles\/optimizing-your-aged-accounts-receivables-report\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.apcdynamics.com\/articles\/optimizing-your-aged-accounts-receivables-report\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.apcdynamics.com\/articles\/optimizing-your-aged-accounts-receivables-report\/#primaryimage","url":"https:\/\/www.apcdynamics.com\/articles\/wp-content\/uploads\/2015\/03\/AgedReceivables.jpg","contentUrl":"https:\/\/www.apcdynamics.com\/articles\/wp-content\/uploads\/2015\/03\/AgedReceivables.jpg","width":546,"height":288},{"@type":"BreadcrumbList","@id":"https:\/\/www.apcdynamics.com\/articles\/optimizing-your-aged-accounts-receivables-report\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.apcdynamics.com\/articles\/"},{"@type":"ListItem","position":2,"name":"programming","item":"https:\/\/www.apcdynamics.com\/articles\/category\/programming\/"},{"@type":"ListItem","position":3,"name":"Optimizing your Aged Accounts Receivables Report"}]},{"@type":"WebSite","@id":"https:\/\/www.apcdynamics.com\/articles\/#website","url":"https:\/\/www.apcdynamics.com\/articles\/","name":"APC Dynamics | Dynamics 365 Business Central Consultant","description":"Dynamics 365 Business Central experts. Less Talk. More Results.","publisher":{"@id":"https:\/\/www.apcdynamics.com\/articles\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.apcdynamics.com\/articles\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.apcdynamics.com\/articles\/#organization","name":"APC Dynamics","url":"https:\/\/www.apcdynamics.com\/articles\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.apcdynamics.com\/articles\/#\/schema\/logo\/image\/","url":"https:\/\/www.apcdynamics.com\/articles\/wp-content\/uploads\/2025\/05\/APCLogo216.png","contentUrl":"https:\/\/www.apcdynamics.com\/articles\/wp-content\/uploads\/2025\/05\/APCLogo216.png","width":216,"height":216,"caption":"APC Dynamics"},"image":{"@id":"https:\/\/www.apcdynamics.com\/articles\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/APCommerceInc\/","https:\/\/www.linkedin.com\/company\/ap-commerce-inc-\/","https:\/\/www.youtube.com\/channel\/UCkM_LLmB4333D4Arjk0knyw\/about"]},{"@type":"Person","@id":"https:\/\/www.apcdynamics.com\/articles\/#\/schema\/person\/aef29f75349626d15235713ce1db83f0","name":"Alex Chow","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f72fa4e27588610bb80f41bb4e562d9b82762fe530709098d99963bd2da6f86f?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f72fa4e27588610bb80f41bb4e562d9b82762fe530709098d99963bd2da6f86f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f72fa4e27588610bb80f41bb4e562d9b82762fe530709098d99963bd2da6f86f?s=96&d=mm&r=g","caption":"Alex Chow"},"sameAs":["https:\/\/www.apcommerce.com\/"],"url":"https:\/\/www.apcdynamics.com\/articles\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.apcdynamics.com\/articles\/wp-json\/wp\/v2\/posts\/414","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.apcdynamics.com\/articles\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.apcdynamics.com\/articles\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.apcdynamics.com\/articles\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.apcdynamics.com\/articles\/wp-json\/wp\/v2\/comments?post=414"}],"version-history":[{"count":1,"href":"https:\/\/www.apcdynamics.com\/articles\/wp-json\/wp\/v2\/posts\/414\/revisions"}],"predecessor-version":[{"id":421,"href":"https:\/\/www.apcdynamics.com\/articles\/wp-json\/wp\/v2\/posts\/414\/revisions\/421"}],"wp:attachment":[{"href":"https:\/\/www.apcdynamics.com\/articles\/wp-json\/wp\/v2\/media?parent=414"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.apcdynamics.com\/articles\/wp-json\/wp\/v2\/categories?post=414"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.apcdynamics.com\/articles\/wp-json\/wp\/v2\/tags?post=414"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}