{"id":20747,"date":"2020-07-23T10:00:51","date_gmt":"2020-07-23T08:00:51","guid":{"rendered":"https:\/\/www.triangle.es\/?p=20747"},"modified":"2024-05-21T11:38:37","modified_gmt":"2024-05-21T11:38:37","slug":"new-pricing-functionality-in-bc-version-16","status":"publish","type":"post","link":"https:\/\/triangle.desarrollobirdcom.es\/en\/sin-categorizar\/new-pricing-functionality-in-bc-version-16\/","title":{"rendered":"New pricing functionality in BC version 16"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">One of the innovations published in wave 1 of 2020, in <strong>version 16 of Dynamics 365 Business Central, has been a relevant change in the internal functionality that calculates rates and discounts<\/strong>. It is a novelty that has not yet been published in production environments, but to which we have had access as partners of the testing tool.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Carrying out these tests allows us to understand how this change will impact our clients, what conflicts can be generated and <strong>we have one year of margin to make the necessary changes<\/strong>. Of course, it is important to note that the functionality is not validated as definitive and, therefore, it could still undergo additional changes until its publication.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this blog we are going to explain the first conclusions that we have detected at a technical level. Remember that if you are looking for a functional explanation you can find it in the third section of this blog.<\/p>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/triangle.desarrollobirdcom.es\/en\/sin-categorizar\/new-pricing-functionality-in-bc-version-16\/#1_Price_changes_in_Business_Central_New_interface_type_object\" >1. Price changes in Business Central: New interface type object<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/triangle.desarrollobirdcom.es\/en\/sin-categorizar\/new-pricing-functionality-in-bc-version-16\/#Implementation_Interfaces\" >Implementation Interfaces<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/triangle.desarrollobirdcom.es\/en\/sin-categorizar\/new-pricing-functionality-in-bc-version-16\/#Implementation_Interfaces_from_Enum_object\" >Implementation Interfaces from Enum object<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/triangle.desarrollobirdcom.es\/en\/sin-categorizar\/new-pricing-functionality-in-bc-version-16\/#2_Price_developments_in_Business_Central_Technical_process\" >2. Price developments in Business Central: Technical process<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/triangle.desarrollobirdcom.es\/en\/sin-categorizar\/new-pricing-functionality-in-bc-version-16\/#Technical_circuit\" >Technical circuit<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/triangle.desarrollobirdcom.es\/en\/sin-categorizar\/new-pricing-functionality-in-bc-version-16\/#3_Pricing_news_in_Business_Central_Functional_process\" >3. Pricing news in Business Central: Functional process<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1_Price_changes_in_Business_Central_New_interface_type_object\"><\/span>1. Price changes in Business Central: New interface type object<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">After the release of version 16 of Dynamics 365 Business Central, you may have noticed that a new type of object called <strong>Interface<\/strong> has been introduced. For now, specifically it is only <strong>used for the new price calculation functionality<\/strong>, but it will surely extend to other modules over time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you already know this new type of object, do not hesitate to review this article where we detail the change in price calculation at a functional level and also at a technical level. But <strong>this type of object is also important to know in case you want to use it in the customizations<\/strong> that we can make as partners.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">First of all, note <strong>that this is an unnumbered object<\/strong>. It is simply a protocol by which a structure or series of procedures \/ functions is defined without associated code.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Once we have <strong>defined the interface, its procedures are specified in different codeunits that implement it<\/strong>. In this way, it is possible to make developments that work with the structure and generic characteristics of the interface, regardless of which of its implementations is being used. <strong>You may already be familiar with this concept as it is used in multiple programming languages \u200b\u200bsuch as Java, C #, PHP &#8230;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the following image we can see how <strong>the new Price Calculation interface has been created in A\/L<\/strong>, which has a set of functions, but without associated code:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"978\" height=\"519\" src=\"https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-6.png\" alt=\"\" class=\"wp-image-20716\" srcset=\"https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-6.png 978w, https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-6-300x159.png 300w, https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-6-768x408.png 768w\" sizes=\"auto, (max-width: 978px) 100vw, 978px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Implementation_Interfaces\"><\/span>Implementation Interfaces<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The implementation of the code of <strong>these functions is done in codeunits<\/strong> that will have to be associated with the interfaces according to the <strong>implements<\/strong> parameter written after the name of the codeunit and indicating which interface we want to implement.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the following example we show the two price calculation codeunits of the two versions of Business Central that implement the Price Calculation interface:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1624\" height=\"64\" src=\"https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-7.png\" alt=\"\" class=\"wp-image-20718\" srcset=\"https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-7.png 1624w, https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-7-300x12.png 300w, https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-7-1024x40.png 1024w, https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-7-768x30.png 768w, https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-7-1536x61.png 1536w\" sizes=\"auto, (max-width: 1624px) 100vw, 1624px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">It indicates that in the 7002 and 7003 codeunits <strong>all the functions indicated in the interface to which it is implemented will have to be created and developed<\/strong>. If this condition is not met, the compilation will fail.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It should also be noted that a codeunit can implement multiple interfaces, indicating it with the implements parameter plus all the interfaces separated by \u2018,\u2019.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>codeunit&nbsp;<\/strong>Id&nbsp;MyCodeunit&nbsp;<strong>implements&nbsp;<\/strong>Interface1,&nbsp;Interface2,&nbsp;Interface3<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">To facilitate this implementation, the light bulb icon or Show Fixes (Ctrl +.) Offers us the <strong>Implement interface option<\/strong>, which automatically drags all the interface functions that we must implement.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"584\" height=\"177\" src=\"https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-8.png\" alt=\"\" class=\"wp-image-20720\" srcset=\"https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-8.png 584w, https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-8-300x91.png 300w\" sizes=\"auto, (max-width: 584px) 100vw, 584px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">If the light bulb is not shown or the option of <strong>Implement interface<\/strong> is not offered, it is because in the settings file the <strong>Enable Code Analysis<\/strong> option must be activated for the AL Language extension.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"968\" height=\"309\" src=\"https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-9.png\" alt=\"\" class=\"wp-image-20722\" srcset=\"https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-9.png 968w, https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-9-300x96.png 300w, https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-9-768x245.png 768w\" sizes=\"auto, (max-width: 968px) 100vw, 968px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Implementation_Interfaces_from_Enum_object\"><\/span>Implementation Interfaces from Enum object<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The last point that remains to be addressed is how to know how to select the codeunit (or implementation of the interface) to be used. To do this,<strong> an Enum object must be defined with all possible options implemented<\/strong>, which is also related to the interface with the <strong>implements method<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Following the same example of the Price Calculation interface, its Enum is as follows:<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"887\" height=\"502\" src=\"https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-10.png\" alt=\"\" class=\"wp-image-20724\" srcset=\"https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-10.png 887w, https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-10-300x170.png 300w, https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-10-768x435.png 768w\" sizes=\"auto, (max-width: 887px) 100vw, 887px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Here we see that it only assigns the two values of the possible implementations (V16 and V15), plus a blank or undefined value (which associates it with the V15 implementation).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In each option in the Enums list we have to indicate to which implementation this value is associated. For this, <strong>the new Implementation<\/strong>\u00b8 property is used, in which we will indicate the value of the codeunit that implements the interface in the following way:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Implementation = \u201cNOMBRE INTERFACE\u201d = \u201cNOMBRE CODEUNIT\u201d<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Finally, this Enum value is displayed on the configuration page that suits us best and can be associated with the Interface variable as a direct assignment from the value of the enum field.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1151\" height=\"197\" src=\"https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-11.png\" alt=\"\" class=\"wp-image-20726\" srcset=\"https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-11.png 1151w, https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-11-300x51.png 300w, https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-11-1024x175.png 1024w, https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-11-768x131.png 768w\" sizes=\"auto, (max-width: 1151px) 100vw, 1151px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2_Price_developments_in_Business_Central_Technical_process\"><\/span>2. Price developments in Business Central: Technical process<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Going into the matter, the BC developers will have already noticed that in the codes that affect the tables of rates and discounts (both sale and purchase) a warning of the type <strong>Table &#8216;Sales Price&#8217; is marked for removal appears. Reason: Replaced by the new implementation (V16) of price calculation .. Tag: 16.0.AL (AL0432).<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This message is displayed to notify partners that a change will occur at this point in the application. At this point, the technical team has one year to adapt the customizations that affect this functionality so that they do not conflict.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To understand the change, <strong>the first thing to know is to use the new type of interface object<\/strong>. If you do not know the existence or characteristics of this object, we recommend that you first address the first section where we go into detail about its characteristics.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you are already familiar with the operation and logic of the <strong>interface object<\/strong>, you may have understood that, with this new structure, <strong>price calculation is defined by the Price Calculation interface. Microsoft provides 2 implementations<\/strong> for this interface: version 15 (codeunit 7003) or version 16 (codeunit 7002). In addition, we can extend the functionality with completely different rates and discounts calculations from the standards, defining new codeunits that implement the Price Calculation interface.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At the time of calculating a price or a discount, for example in a sales line, in the NAV 2018 version the functions of the 7000 codeunit were simply called (Sales Price Calc. Mgt.).<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"165\" src=\"https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-4.png\" alt=\"\" class=\"wp-image-20710\" srcset=\"https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-4.png 900w, https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-4-300x55.png 300w, https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-4-768x141.png 768w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Now use the <strong>Init and ApplyPrice functions of the Price Calculation interface and it is the codeunit 7003 that calls the previous codeunit 7000<\/strong> (in the case that we have activated the calculation v15 in the new configuration table of price calculation).<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1500\" height=\"595\" src=\"https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-5.png\" alt=\"\" class=\"wp-image-20712\" srcset=\"https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-5.png 1500w, https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-5-300x119.png 300w, https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-5-1024x406.png 1024w, https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-5-768x305.png 768w\" sizes=\"auto, (max-width: 1500px) 100vw, 1500px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">If we review the code in detail, we see that to calculate the prices in different tables (sales, purchase, daily product, project, demand or service lines), variables such as RecordRef or Variant are not used, but rather work with the Line With Price interface, which <strong>Depending on the module in which we work, different codeunits that implement this interface are initialized (7020: Sales Line &#8211; Price, 7021: Purchase Line &#8211; Price &#8230;).<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Technical_circuit\"><\/span>Technical circuit<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The technical circuit to calculate prices with the V16 implementation uses the same steps. The difference is that the definitions of the functions of the Price Calculation interface (Init, ApplyPrice\u2026) are different.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To reflect all the objects created in this functionality and the interface implementations we have created the following scheme:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1133\" height=\"1142\" src=\"https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-6.jpg\" alt=\"\" class=\"wp-image-20714\" srcset=\"https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-6.jpg 1133w, https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-6-298x300.jpg 298w, https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-6-1016x1024.jpg 1016w, https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-6-150x150.jpg 150w, https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-6-768x774.jpg 768w\" sizes=\"auto, (max-width: 1133px) 100vw, 1133px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The main difference, and the main reason why the warning appears, is that the Sales Price table has been marked as obsolete. This is so since the version 15 price tables (Sales Price, Sales Line Discount, Purchase Price &#8230;) <strong>have been unified into a single table named Price List Line<\/strong>. For this reason, the extensions developed in the previous version will have to be redesigned taking into account this new table.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In addition, <strong>to transfer the values \u200b\u200bfrom the previous tables to the new one, you will also have to subscribe to the corresponding OnCopyFromXXX event<\/strong> (OnCopyFromSalesPrice) of the CopyFromToPriceListLine codeunit by assigning said field.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And you, do you think you are going to have any conflict caused by this change? Had you heeded Microsoft&#8217;s notice?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In conclusion, <strong>the important thing is to understand how the new pricing functionality has been structured<\/strong>, both the v16, and the small changes of the v15 and, mainly, how to fix the warnings errors, described in the first paragraph.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3_Pricing_news_in_Business_Central_Functional_process\"><\/span><strong>3. Pricing news in Business Central: Functional process<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In this section we will explain the<strong> first conclusions that we have detected at the functional level and also in the configuration of this redesign of the price functionality<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Although in another entry we talked about how this change affects the technical level, that is, at the development level, it is important to note that a great structure has been created with new tables, codeunits and interfaces. At the functional level, we highlight the following tables:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Price Calculation Setup table<\/strong>: used to indicate if version 15 or 16 of the solution is used. For the 16th, we can also indicate if we use the \u201clower price\u201d <strong>Method<\/strong> or some other in the case that we have extended it with its own functionality; what <strong>type of documents<\/strong> it applies to (Sales, Purchases, or both); and the type of line, or <strong>Type of asset<\/strong> (Products, Resource &#8230;).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">For example, with the following configuration we will have activated the price calculation type of version 16 for product purchases and sales, but version 15 for resource sales.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"722\" height=\"103\" src=\"https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-1.png\" alt=\"\" class=\"wp-image-20704\" srcset=\"https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-1.png 722w, https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-1-300x43.png 300w\" sizes=\"auto, (max-width: 722px) 100vw, 722px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Price Calculation Setup Table<\/strong>: dragging the Method, Type, Asset Type and Implementation fields from the previous configuration, we can indicate what type of implementation we want to select at the source <strong>Group level<\/strong> (Customer, Supplier or Project) and its code. It can also be done at the <strong>Asset No. level<\/strong>, in the event that the configuration in the table above is separated by &#8220;Asset&#8221;.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">For example, in the following image we see a configuration in which we have activated the price calculation type of version 16 for sales of Client 10000.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"732\" height=\"99\" src=\"https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-2.png\" alt=\"\" class=\"wp-image-20706\" srcset=\"https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-2.png 732w, https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-2-300x41.png 300w\" sizes=\"auto, (max-width: 732px) 100vw, 732px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Table Price List Line<\/strong>: it is the equivalent to the previous tables of sale prices, purchase prices, sale discounts &#8230; but unified all in one. According to the Amount <strong>Type field<\/strong>, it is indicated whether it is price, cost or discount.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">With the combination of <strong>Type provenance mov. + Code provenance mov.<\/strong> it is indicated if you want to apply to all customers \/ suppliers, one in particular, a price \/ discount group &#8230; (which previously corresponded to the Sales Type field in prices and sales discounts).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">By the combination of<strong> Asset Type + Asset No.<\/strong> we indicate if we want a product, resource, groups &#8230; (what was the Type before); and the other fields of minimum quantity, dates, price, cost &#8230; are already known.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1720\" height=\"111\" src=\"https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-3.png\" alt=\"\" class=\"wp-image-20708\" srcset=\"https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-3.png 1720w, https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-3-300x19.png 300w, https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-3-1024x66.png 1024w, https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-3-768x50.png 768w, https:\/\/triangle.desarrollobirdcom.es\/wp-content\/uploads\/2020\/07\/nueva-funcionalidad-precios-3-1536x99.png 1536w\" sizes=\"auto, (max-width: 1720px) 100vw, 1720px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>It is also important to note that the <strong>Price calculation method field<\/strong> has been created in customers, suppliers or purchase \/ sale configurations. The first tests indicate that it will be useful in case we want a different method to be applied to the one of the \u201clowest price\u201d.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">In conclusion, although at first glance this functionality seems like a very big change, the impact should really be minimal, as we believe <strong>that the configuration tables in most environments will simply be to activate one line for purchases and another for sales, related to the implementation V16<\/strong> and rarely will another or in more detail be used.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Regarding the <strong>Price List Line table<\/strong>, there are some processes (CopyFromToPriceListLine codeunit) that transfer the records of the old tables to this new one, so it should not result in any problem either. The only important thing is that the configuration of prices and rates from the publication of this novelty is unified in a table.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the innovations published in wave 1 of 2020, in version 16 of Dynamics 365 Business Central, has been &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"New pricing functionality in BC version 16\" class=\"read-more button\" href=\"https:\/\/triangle.desarrollobirdcom.es\/en\/sin-categorizar\/new-pricing-functionality-in-bc-version-16\/#more-20747\" aria-label=\"Read more about New pricing functionality in BC version 16\">LEER M\u00c1S<\/a><\/p>\n","protected":false},"author":5,"featured_media":20751,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-20747","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sin-categorizar","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-33","resize-featured-image"],"_links":{"self":[{"href":"https:\/\/triangle.desarrollobirdcom.es\/en\/wp-json\/wp\/v2\/posts\/20747","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/triangle.desarrollobirdcom.es\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/triangle.desarrollobirdcom.es\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/triangle.desarrollobirdcom.es\/en\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/triangle.desarrollobirdcom.es\/en\/wp-json\/wp\/v2\/comments?post=20747"}],"version-history":[{"count":1,"href":"https:\/\/triangle.desarrollobirdcom.es\/en\/wp-json\/wp\/v2\/posts\/20747\/revisions"}],"predecessor-version":[{"id":26998,"href":"https:\/\/triangle.desarrollobirdcom.es\/en\/wp-json\/wp\/v2\/posts\/20747\/revisions\/26998"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/triangle.desarrollobirdcom.es\/en\/wp-json\/wp\/v2\/media\/20751"}],"wp:attachment":[{"href":"https:\/\/triangle.desarrollobirdcom.es\/en\/wp-json\/wp\/v2\/media?parent=20747"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/triangle.desarrollobirdcom.es\/en\/wp-json\/wp\/v2\/categories?post=20747"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/triangle.desarrollobirdcom.es\/en\/wp-json\/wp\/v2\/tags?post=20747"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}