Product documentation
In This Topic
    Cost to sales price calculation
    In This Topic

    Business Value 

    Standard Microsoft Dynamics 365 for Finance and Operations provides several components that are used in the area of pricing, inventory valuation and margin control. But it does not provide an integrated solution with which you are able to generate base sales price lists based upon a given purchase agreement and costing structure which also is used for margin control.

    The Cost to sales price calculation feature of Dynamics Price and Margin Management offers you the following possibilities:

    The picture below shows an overview of the flow of calculating a sales price.


     

    The calculation all starts with a purchase trade agreement or if not setup the purchase price on the item. Then it will look a the cost component values to determine which financial purchase and/or commercial charges should be added and from there it will add the sales charges and the margin factor or value, which are taken from the sales markup.  

    Global process overview

    In Microsoft Dynamics 365 for Finance and Operations there are two price and discount mechanisms. The legacy engine used in Dynamics 365 Supply Chain Management, which calculates the sales prices and discounts based on sales trade agreements and in Dynamics 365 Commerce the retail price engine is fetching the sales prices from either sales price trade agreements or price adjustments and for the discounts they fetch them from the specific retail discounts tables.

    For both engines we have enabled the possibility to use our cost to sales price engine to calculate the sales price. Both in the sales price trade agreement and in the price adjustment the user has the option to calculate the sales price and store all the cost and margin related information in the agreement line.


     Create price list for new products

    Update of existing price lists

    When a vendor sends an update of an existing price list which will become effective in the future:

    Create a sales order / sales quoation

    Create a purchase order

     When an order line is created

     Important

    When the RFQ is sent the parameter "Use vendor for recalculating prices" needs to be enabled in the "Recalculation options". Only when this parameter is enabled the charges are added to the Purchase quotation lines.
       

    When a RFQ is accepted the purchase order is created and the charges from the RFQ are added to the purchase order line. When updating the quantities in the purchase order line it will not look at the current cost value setup but it will use the structure inherited from the RFQ.

    Create a direct delivery purchase order

    When a purchase order or direct delivery is created manually directly from the sales order the cost and margin information is not retrieved from the price adjustments anymore but is calculated based on the linked purchase order.  On the purchase order also the coverage and sales margins are shown.

    In this way it is possible to calculate a more specific margin for this sales order. This can come in handy when selling goods to a customer for which you agree a specific purchase price with the vendor.

    When the purchase price is updated the margins on the linked sales order are updated.

    In case of a direct delivery it is possible to setup a specific Delivery term for direct delivery on the vendor. If set this will be applied to the purchase order when creating a direct delivery.

    When a purchase order has been created from a sales order before a valid price adjustment was retrieved there is no cost and margin information record present on the sales order to store this data in. On change of the quantity in the sales order or when the prices and discounts are recalculated a link is established and the purchase data will be reflected in the cost and margin information on the sales line.

     Important

    When a sales order (with linked purchase order) does not have a cost and margin record and in the mean time a valid price adjustment becomes active, an update of the purchase order line will not be reflected in this sales order as the retail price adjustment id is not linked to that sales order yet. This link is established only on recalculation of the prices and discounts on the order.
       

    Components used in the cost to sales price calculation process

    Sales price lists (1)

    When working with non-retail orders price adjustments can not be used. Instead sales trade agreement journals are used to create sales price agreements. In order to be able to use the cost to sales price calculation logic a Sales price list (Sales and marketing > Prices and discounts) has to be present on the journal line.

    The following fields on the Sales price list are relevant in the cost to sales price calculation feature:

    Field Description
    Name

    The trade agreement journal which is used to create/edit/delete sales price list lines

    Trace

    When this field is enabled the system will monitor for changes in proces of the cost to sales price calculation process. When such a change occurs a record in the trigger table will be created for the item and sales price list. These triggers can be used in the process of periodic recalculation of sales price lists.

           

    This trigger framework has been introduced for our customers as possibilty to extend in their projects. In the Price and Margin Management parameters a few triggers have been added as an example.

    Pricing worker group On creation this Default pricing worker group is inherited from the current worker and can be used for filtering in list pages and the Cost to sales price calculation workspace
    Journal line defaults In the trade agreement journal these fields will be come non-editable and are controlled by the selected sales price list
    Party code type

    For which customers does the sales price list apply

    Table (specific customer)

    Group (group of customers)

    All (all customers)

    Account relation Customer or customer group set to a new line in the trade agreement journal for this sales price list
    Currency Currency set to a new line in the trade agreement journal for this sales price list
    From date

    From date set to a new line in the trade agreement journal for this sales price list

    To date

    To date set to a new line in the trade agreement journal for this sales price list

    Sales price markup

    The sales price markup determines which coverage charges are added and how the margin is calculated.

    In the dropdown all Sales price markups of the same price type will be shown:

    Valid:  shows all Sales price markup where effective date of the agreement is within the effective and expiration date of the sales price markup AND one of the price groups match AND the status of the sales price markup is enabled.

    A warning “Not all price groups are setup in the selected Sales price markup” is given if you select a sales price markup where the price groups are not all the same on both the price adjustment/discount and the selected sales price markup.

    All:  all Sales price markups of the same price type AND the status of the sales price markup is enabled. This give the user the possibility to apply markups even when the price groups do not exactly match.

    Purchase price defaults
    Purchase trade agreement date

    When left empty today's date is applied and used to find the purchase trade agreements when the cost to sales price calculation function is executed. An override of this date can be done on the trade agreement line or in case of retail on the price adjustment and discount line.

    Site and warehouse

    Site and warehouse can be used to determine the supplier that is used to find the delivery terms and purchase price agreements.

    If left empty, the system will look at the default order settings of the item to determine the default site and warehouse. If found it will look at the coverage group settings of the item to look for an override of the default supplier. If not found the default supplier of the item is applied.

    If set the system will ignore the default order settings and look directly at the coverage group settings to determine the supplier. If not found it will apply the default supplier.

    The easiest way to add products to a sales price is list is to click the create button:  a new trade agreement journal is created and the values from the field group Journal line defaults are initiated to the journal lines, add the products that needs to be calculated.

    The functions Edit and Delete,  selected lines also opens a trade agreement journal.

    If there is an open trade agreement journal for the selected sales price list, the user gets a dialog with the possibility to select one or create a new journal.

    With the function Revise it is possible to mass update the following values of the selected lines:

    The function Copy, the selected lines will be copied to another sales price list without execution of the cost to sales price calculation. The Currency, From date, To Date, Party code type and Account Selection are initiated from the destination sales price list.

    For all of these functions it will use the trade agreement journal line form the sales price list.

    Via the menu option Trade agreement journals all posted and non posted journals which have been created from this price list can be accessed. In the fact box on the right, open trade agreement journals are shown with the possibility to delete them without having to delete the lines in the journal first.

    Alternatively it's possible to create a trade agreement journal from outside the sales price list and enter the sales price list manually on the lines. Those trade agreement journals are not shown from the sales price lists, but the products will appear in the price list.

    Price adjustments (1)

    When you are working with retail sales orders, a Price adjustment is can be used as an adjusted base sales price list  and is used to store the sales price and cost price information that is used during the margin check.

    Via the Price group button on the header it is possible to determine for which group of customers or stores the Price adjustment is applicable.

    The following fields on the price adjustment are relevant in the cost to sales price calculation feature:

    Field Description
    Price type

    None: Standard Microsoft Dynamics 365 for Finance and Operations behavior

    Gross / Net / Net Exclusive will activate the cost to sales price feature:

    • Tab Price and margin management
    • Button Cost / Sales price calculation
    • Tab Cost price calculation shows the calculated data

    Price type Gross is available for price adjustments, price types Net and Net Exclusive are available on the retail Discount form. Price type Net is only applicable on Discounts with concurrency mode Best price or Compounded, Net Exclusive only applicable on Discounts with concurrency mode Exclusive.

    The fields and the process is exactly the same, but the difference is that the Discount price of the Price adjustments will populate the Unit price and the Discount price from a Discount will be used to calculate the Discount amount on the order line.

    Currency

    The currency of the sales order need to match with the currency on the price adjustment in order to be able to apply it.

    Sales price markup

    The sales price markup determines which coverage charges are added and how the margin is calculated.

    In the dropdown all Sales price markups of the same price type will be shown:

    Valid:  shows all Sales price markup where effective date of the agreement is within the effective and expiration date of the sales price markup AND one of the price groups match AND the status of the sales price markup is enabled.

    A warning “Not all price groups are setup in the selected Sales price markup” is given if you select a sales price markup where the price groups are not all the same on both the price adjustment/discount and the selected sales price markup.

    All:  all Sales price markups of the same price type AND the status of the sales price markup is enabled. This give the user the possibility to apply markups even when the price groups do not exactly match.

    Site and warehouse

    Site and warehouse can be used to determine the supplier that is used to find the delivery terms and purchase price agreements.

    If left empty, the system will look at the default order settings of the item to determine the default site and warehouse. If found it will look at the coverage group settings of the item to look for an override of the default supplier. If not found the default supplier of the item is applied.

    If set the system will ignore the default order settings and look directly at the coverage group settings to determine the supplier. If not found it will apply the default supplier.

    Purchase trade agreement date

    When left empty today's date is applied and used to find the purchase trade agreements when the cost to sales price calculation function is executed. An override of this date can be done on the trade agreement line or in case of retail on the price adjustment and discount line.

     

    Trace

    When this field is enabled the system will monitor for changes in proces of the cost to sales price calculation process. When such a change occurs a record in the trigger table will be created for the item and price adjustment or retail discount. These triggers can be used in the process of periodic recalculation of sales price lists.

           

    This trigger framework has been introduced for our customers as possibilty to extend in their projects. In the Price and Margin Management parameters a few triggers have been added as an example.

    Add products to Sales price list or Price Adjustment

    When you insert a product via the Add button the cost to sales price calculation is executed directly. When products are added via the Add products button the function is not executed and the line will be marked with an information indication.

    In that case you have to select all lines and use the function Cost / Sales price calculation. This function has the following options:

    Option Description
    All

    All cost components and sales markups are recalculated and results in an updated discount price and updated information in the cost price calculation tab.

    It is possible to skip the update of the discount price by enabling the Price adjustment: skip discount parameter on the released product.

    Cost Discount price is not updated, purchase prices, cost components and margin is recalculated.
    Cost and sales price Discount price is updated based on recalculation of the purchase prices and cost components. Sales markup is not fetched.

    It is possible to skip the update of the discount price by enabling the Price adjustment: skip discount parameter on the released product.
    Sales price markup and sales price Purchase prices and cost components are not fetched, Discount price is updated based on fetched sales markups.

    It is possible to skip the update of the discount price by enabling the Price adjustment: skip discount parameter on the released product.
    Margin Purchase price, cost components and sales markups are not fetched, margin is updated.
    This option could be used when a calculation has been done with option all first, then export the data to excel where the sales price is updated and imported back into the system again via the Open in excel function.
    Bundle size

    When running this task in the background the bundle size option can be used to optimize the processing performance as it will influence the number of simultaneous tasks that will be created. Each batch task will be processes separately and depending on the numbers of cores that are available the task will be executed much faster.

    E.g. the server has 8 cores and you have to process 1000 items. If you set the bundle size to 1000 it will create one task and only one 8 will be addressed. If you set the bundle size to 100, 10 tasks are created and the first 8 are process simultaneously. Be aware that it also creates some overhead to control this, so it’s too simple to say 8 cores means 8 times faster processing time.

     

    Skip Tier Creation Only the selected price adjustments are recalculated, linked Quantity Discounts (Tiers) are not updated.
    This option is only applicable for price adjustments and discounts.
    Skip sales price calculation This option can be used to recalculate all cost and coverage levels on an agreement without updating the sales price
    Use triggers

    Only visible when the Cost / Sales price calculation is started via menu item Retail and Commerce > Pricing and discounts.

    See Recalculation of sales pric list, price adjustments and discounts.

    By default the function Cost/Sales price calculation can only be executed for disabled price adjustment and agreements. When the Dynamics Price and Margin Management parameter Enable cost /sales price calculation on enabled offers is enabled, this function is also available for agreements with status Enabled

    Calculation Errors

    When the system is not able to execute the calculation successfully the lines with an error are marked with an error symbol. Click for more info about the errors on the View infolog button.

    When there are lines with errors it is not possible to enable the price adjustment or to post the trade agreement journal for the sales price list. On the tab Ignored agreement validations, in the Dynamics Price and Margin Management parameters it is possible to setup which error's are not blocking for enabling the agreement. 

    The filter dialog gives the possibility to filter on the following issues:

    Show (filter) Description
    All No filter is applied
    Errors All lines with error's are shown.
    Purchase creation error All lines for which the system was not able to create a purchase order during the cost to sales price calculation. In the back ground the system uses the creation of a purchase order to fetch the correct purchase prices and discount and to calculate the values of the (cost) charges. To see the exact error you might try to create the purchase order with the same variables manually
    Without a vendor The calculation needs a vendor to determine the purchase price and delivery term, the system will search for the primary vendor or if setup on the item coverage settings the vendor for a specific site/warehouse
    Invalid sales price It’s not allowed to have a calculated sales price which is 0 or lower
    Without a purchase price It is not allowed to have a purchase price of 0 as input for the calculation
    Unit conversion error In case the purchase unit or the sales unit differs from the inventory unit a unit conversion is needed. The system was not able to find the correct unit inter/intra or generic unit conversion for this line
    Without a calculation For these item the cost to sales price calculation routine has not been executed
    Without a sales markup For these items the system was not able to find a valid sales markup

    When the cost to sales price calculation has been executed it is possible to view all cost components via the Show cost components button.

    Cost to sales price calculation engine (2)

    The first step within the cost to sales price calculation is to calculate a net purchase price. It will try to find a purchase trade agreement and if not found it will use the purchase price defined on the released product.

    When searching the trade agreements it will use the following variables:

    Variable Description
    Site / Warehouse

    If left empty on the price adjustment, the system will look at the default order settings of the item to determine the default site and warehouse. If found it will look at the coverage group settings of the item to look for an override of the default supplier. If not found the default supplier of the item is applied.

    If set on the price adjustment the system will ignore the default order settings and look directly at the coverage group settings to determine the supplier. If not found it will apply the default supplier.

    Vendor

    Depending on whether the site/warehouse is set on the price adjustment, it will first search whether an override of the Primary vendor has been defined on coverage group, if not it will use the primary vendor of the released product

    Unit of measure Purchase unit of measure defined on the released product
    Qty Default purchase order quantities defined on the released product
    Currency Currency of the primary vendor of the released product
    Date Purchase trade agreement date from the price adjustment, if not set it will use today's date

    The second step is to determine which cost components can be found in the Cost component value setup that will be part of the cost price of the item and which commercial cost components are added.

    Except for the quantity and the unit it will use the same variables. In addition it will look for the delivery term of the vendor.

    In the third step it will look in the sales markup that is set on the price adjustment header to find the coverage charges, the margin factor and the rounding settings.

    In this calculation the system will apply a unit and currency conversion between purchase unit and currency to the inventory unit and ledger currency (MST) and if the price adjustment has a different unit and currency it will convert again.

    All calculate values are store in tables that are related to the price adjustment. This makes it possible to use them for future analysis and to keep track on how a sales price has been calculated.

    It is also possible to execute the Cost / Sales price calculation for more than one price adjustment or discount. This can be done via the menu item Cost / Sales price calculation in the Retail module (Retail > Pricing and Discounts) or from the Cost to sales price calculation workspace.

     

    In addition to the parameters which have been desribed in Add products to Sales price list or Price Adjustment, the trigger parameter can be used to only process items for which a trigger has been created.

    This function can be handy when you want to recalculate update all items of a specific vendor across multiple price adjustments which also contains items of other vendors which you do not want to recalculate. 

    Similar functions ares available for the recalculation of Sales price list lines (Sales and marketing > Periodic):

    Sales order / Sales quotation (3)

    When an order line is created the retail price engine will determine the unit price. It will search for trade agreements and if not found it will apply the unit price defined on the released product.

    Then it will search for price adjustments and if lower it will apply that one.

    Based on the Sales price markup that is defined in the applied price adjustment it will also check whether coverage charges have been setup that need to be added as charges on the order lines. If found they will be added and marked as APC Inserted:

    The applied cost and margin information is shown on the Price and margin management tab of the order.

    This means that in order to be able to show the calculated cost and coverage levels in the Price and margin management tab based on the applied price, a price adjustment or trade agreement has to be found.

    Which cost price level(s) are visible on the order line is controlled by the Price margin worker group that is setup on the worker attached to current user that is looking at the order.

    There is another option to get multiple cost and coverage levels added to the order lines. By enabling the Automatically create a cost / sales price line  parameter the system will execute the cost to sales price calculation on save of the order line. See the pre requites for more information.

    It is also possible to do a recalculation of the cost and coverage levels on the order line. With this option the user has the possibility to fetch a different purchase price from the trade agreement or select a specific purchase agreement as base for the calculation.

    Margin check (4)

    On save of the order line the standard Microsoft Dynamics 365 for Finance and Operations margin check is executed. When you have setup Margin management of Dynamics Price and Margin Management the margin check can be executed against the cost or coverage level of the worker attached to the current user that is looking at the order.  

    When the system was not able to find an agreement with calculated cost or coverage levels to check against and it will fall back to the standard Microsoft Dynamics 365 for Finance and Operations routine of finding a cost price to validate the margin.

    Purchase order (5)

    When you add the item to the purchase order the system will look at the cost component value setup to determine which miscellaneous. charges should be added to the order line.  

    Two new columns have been added to give the user information about which charges will have effect on the cost price (2) of the inventory transaction and in case of a percentage whether percentage will be calculated including (1) the line amount or only the charges shown the pane on the right (3).

    APC Inserted (4) is an indicator showing which lines were created automatically as result of the cost to sales price calculation.

    Charges are automatically recalculated when delivery date, delivery mode or variant is modified on the order.

     Note

    Be aware that standard Microsoft Dynamics 365 for Finance and Operations auto charges are also initiated. But those will not be part of our cost to sales price calculation engine and therefore will not be part of the cost price used in the margin check for regular sales orders. Only when the purchase order is created directly from the sales order the manually added charges are reflected in the cost to sales price information on the sales order line. When one of the variables changes and a new cost value setup records is found, the values of the manually updated charges will be overridden.
       

    Cost simulation

    Accounts payable > Setup > Charges Setup > Commercial cost setup > Cost simulation

    This form is intended for testing purposes. This also means that there are no validations added to the lookups of the fields and that you are able to enter combinations of values that normally are not allowed.

    When you click Ok the cost to sales price calculation engine will calculate all the values and present it to you in a similar way as if you would have opened the Show cost components form from the price adjustment.

    When you enable the Keep purchase order parameter the purchase order that is created during the cost to sales price calculation is not deleted and can be viewed in the purchase order list page. The system will generate a purchase order journal with a random purchase order id. In case of a duplicate it will throw and error and you have to execute the calculation again.

    When you enable the Use purchase price parameter the price fields and discount fields from the dialog are used instead of searching for a trade agreement or purchase price from the item.

    When you enable the Use vendor defaults the system will not use the Currency, Delivery terms, Quantity and Unit from the dialog but from settings on the selected Vendor and item.

    Pre requisites

    With the introduction of version 10014.38.1400 the prerequisite to use price adjustments as price lists containing the calculated cost price and coverage levels has been dropped. Like in the price adjustment it is now also possible to calculate those cost price and coverage levels for sales price trade agreements. 

    When no price adjustment or sales price trade agreement is applied, there is no base for a margin check based on a certain cost price level. The margin check will fall back to the standard Microsoft Dynamics 365 for Finance and Operations determination of the cost price of the item.

    With the feature  Automatically create a cost / sales price line, it is possible to calculate the cost price levels for order lines even if there is no retail price adjustment or sales price trade agreement found. 

    By enabling the Automatically create a cost / sales price line parameter the system will calculate all cost levels or the created order line on the fly when the line is saved. If no price adjustment or sales price trade agreement with pre calculated cost price information has been found, the system will execute the cost to sales price calculation base on the information stored in the sales line. To feed the engine it will take the following data from the sales order instead of from the price adjustment header:

    For finding the sales price  markup the system will search in this order and it will stop searching when a sales markup is found:

    Although a price group is present on a sales order header, in case of Retail orders this field is ignored, like in standard APCAX%% logic (first search in on-hand cost value and then fall back to the cost of the item).

     

    FAQ

    Question: Sometimes I do have a slight difference when I buy and sell in the same currency and units but the inventory unit and legal entity currency differs.
    Answer: The calculations run all via the inventory unit and legal entity currencies as a result of unit and currency conversions a slight rounding difference may occur.
    Question: When is the smart rounding applied?
    Answer: Whether smart rounding is applied is controlled by the applied Sales price markup. If the agreement currency is not equal to the legal entity currency first the currency conversion is applied and then the smart rounding.
    Question: Is the margin calculated based on the rounded sales price?
    Answer: Yes, margins are shown in legal entity currency. In case of a rounded price in a different currency. The rounded price is converted back into legal entity currency and compared with the cost.
    Question: Which date is used for currency conversions?
    Answer: The purchase trade agreement date is used for converting a vendor currency back into the legal entity currency. The effective date of the agreement is used in case of a difference between the agreement currency and the legal entity currency. If left blank today's date is applied. It will use the ledger default exchange rate type.
    Question: Which currency exchange rate is used for converting amount CUR to MST for the cost price calculation?
    Answer: On the purchase order it will use the price date according to the procurement and souring price date parameter (Today or delivery date). On executing the cost to sales price calculation on the adjusted retail prices form it will look at the purchase date set on the agreement.
    Question: Why are the lines without a calculation not shown when selecting the filter All lines with errors?
    Answer: It’s not an error, it’s a warning that not all lines have been calculated yet and you cannot enable the agreement. The separate filter All lines without a calculation can be used to calculated them.
    Question: Why is the item id, category name empty in the excel lines?
    Answer: When a user refreshes the data in excel and the default Legal Entity defined in the user settings does not Equal the legal entity of the lines in Excel these fields are left empty. This is a known bug reported to MS in May 2015 and has not been resolved when we tested this feature (12-5-2017).
    Question: What is causing Error: Template DYSAPCRetailDiscountLineExcelTemplate not found?
    Answer: The system template DYSAPCRetailDiscountLineExcelTemplate has not been loaded. Go to Common / Common / Office Integration / Document Templates: click reload system templates.
    Question: Is it possible to setup a sales price calculation without using the cost calculation template (e.g. when you only want to use the sales markups)?
    Answer:

    No and yes:

    No you have always have to setup a cost template as this is mandatory.

    But with the following work around you will be able to set it up in a way that it will not add any charges to the PO.

    • Create a cost template and insert a record for cost, select a charge code, insert a second record of the type commercial cost and select a commercial cost code. Delete the cost line.
    • Setup a cost component value for a delivery method and select this template and set the value to 0
    Question: Why is my discount price not updated when I execute the cost to sales price calculation?
    Answer: On the released product form (Product information management > Released products > fast tab: Sell) the parameter skip discount price calculation has been enabled.
    Question: I have setup cost charges in the cost value setup, but they are not taken into account in the calculation of the cost price.
    Answer: The parameter Find auto charges for line in the procurement and sourcing parameters is not enabled.
    Question: Why do I get the error message when I'm creating a cost component template “Selected charge code cannot be used for cost price calculations”?
    Answer:

    The debit or posting type is not set to “Item”

    Question: Do I have to setup all the commercial cost levels?
    Answer: No, it is allowed to not setup any commercial cost level at all or skip some. E.g. when you have set the parameter setup Available cost levels to 3 and you have setup only level 1 and 2 the calculation will always calculate up to level 3 which means the commercial cost price calculation based on level 2 and 3 will give the same result.
    Question: Why don't I see the Price and margin management tab on the order lines or don't see the Cost price calculation tab in the price adjustment or discount form?
    Answer: There is no Price margin worker group linked to the worker of the current user that allows you to see that.
    Question: Do I have to setup all the sales coverage levels?
    Answer: No, it is allowed to not setup a sales coverage level or skip some. E.g. when you have set the parameter setup Available coverage levels to 3 and you have setup only level 1 and 2 the calculation will always calculate up to level 3 which means the sales price calculation based on level 2 and 3 will give the same result.
    Question: Why do I get an error message “Function EcoResCategory::lookupCategoryHierarchy has been incorrectly called. specified category hierarchy is not valid or is not active.”
    Answer: The sales markup Category hierarchy type has not been assigned to a category hierarchy in the Category hierarchy role associations.
    Question: What will be the currency of the sales price markup transactions on the order lines in case of an order with a currency which differs from the monetary standard currency?
    Answer:

    When the debit / credit posting type are both ledger it will add the lines in the monetary standard currency.

    When the debit or credit posting type is set to customer/vendor it will use the order currency and recalculate base on the exchange rate using the current date.

    Question: Is there a way to improve the performance of the cost price calculation which is executed in batch?
    Answer:

    Yes

    1. Check whether the procurement and sourcing parameter "Automatically recalculate FactBoxes on purchase order update" is enabled, if so turn it off.
    2. Execute the calculation in batch using a batch server with multiple threads and play with the bundle size to figure out which number works best for your situation. Suppose you have 1000 items in a price list and the bundle size parameter is set to 100, 11 batch tasks will be created, 1 main task and 10 subtasks with each 100 items which will be calculated in parallel when you have a batch server with 10 threads.
      Besides some overhead of the batch server it will speed up the process almost 10 times faster.                           

     

    Question: Is it possible to edit the sales price list records via Excel?
    Answer:

    Yes, but only when you start the open in excel of the trade agreement journal via the edit / create function on the sales price list as there is a validation which checks whether the journal lines which are going to be updated have the same price list id as on the trade agreement journal header.

    When you create a trade agreement journal outside of the sales price list this field is empty on the journal header and the check will fail.

    The reason why this check is not executed when entering these lines manually in the trade agreement journal is because we still like to give the user the possibility to change a sales price list from the sales price forms directly.

     

    Setup

    Specific setup related to the features are described in the topics it self.