Saturday, August 14, 2021

After sales packing slip posting , Qty is set as Remaining Qty and not as Delivered Qty. Sales order still shows the Delivery remainder quantity.

There are multiple settings that are considered when posting sales packing slip and that might cause some uncertainty.

While posting sales packing slip, you see some issues, then you might want to check the following:

  • Check Item model group and verify that it is stocked item, physical inventory posting is activated. 
  • Check Sales order type and verify that it is normal sales order, not subscription/journal.

But also in this blog post I am going to talk about additional configuration that is in place and also should be verified.

In the Account receivable > Account receivable parameters > Updates tab > Packing slip section there is a parameter that is called Automatic reduction, packing slip.


Below you may find the use case and some examples of the parameter usage.

Business scenario: 

The customer has ordered Qty that is more than the existing on-hand and you, as a company, in this case would like to ship whatever you have on-hand and adjust Deliver remainder to the remaining Qty that you have not shipped yet.

Typically if you try to post the packing slip for the ordered qty and you don't have he full Qty on-hand, then the system throws an error saying you cannot pick the items as the inventory is not available to that extent. When using Automatic reduction, packing slip option, the packing slip will be posted to an extent of the available inventory and the remaining order qty will be shown as Deliver Remainder.  If you have shortage of inventory, after posting packing slip, the Ordered qty will be still presented as Remaining qty.

For example,

If customer ordered 10 pieces and you have an on-hand of 6, if the packing slip is posted without this parameter activated, the system stop posting as you don't have the enough inventory. If this parameter is activated, the system will post the packing slip to that of available physical on-hand 6 and set remaining 4 as deliver remainder.

Let's review 3 scenarios below and their results when Automatic reduction, packing is activated:

Sales order line

On-hand

Result

On order Qty = 5 ea
Deliver remainder Qty = 5 ea
Delivered Qty = 0 ea

          Packing slip is posted with the following values in it: Ordered=5, Delivered = 0, Remaining quantity = 5.

          Message is displayed: Posting Sales order: <Sales order number> Item: <Item number> Quantity has been reduced to 0.00.

          Delivered Qty will be 0.

          Deliver remainder Qty will be 5.

On order Qty = 5 ea
Deliver remainder Qty = 5 ea
Delivered Qty = 0 ea

2

          Packing slip is posted with the following values in it: Ordered=5, Delivered = 2, Remaining quantity = 3.

          Message is displayed: Posting Sales order: <Sales order number> Item: <Item number> Quantity has been reduced to 2.00.

          Delivered Qty will be 2.

          Deliver remainder Qty will be 3.

On order Qty = 5 ea
Deliver remainder Qty = 5 ea
Delivered Qty = 0 ea

5

          Packing slip is posted with the following values in it: Ordered=5, Delivered = 5, Remaining quantity = 0.

          Message is not displayed.

          Delivered Qty will be 5.

          Deliver remainder Qty will be 0.



Friday, August 6, 2021

Estimated amount field logic on the sales order in Microsoft Dynamics 365 Supply Chain Management (D365)

In this blog post I would like to provide the logic for the Estimated amount field that is stored on the sales order header.

First off all, the system determines whether the estimate value should be calculated for the sales order

Refer to SalesTable, SetEstimate method 

If the customer account (or invoice account if they are different) has a credit limit and the customer has specified mandatory credit limit then it would be estimated. 

If customer doesn't have a credit limit and the customer has not specified mandatory credit limit then we determine whether the estimate should be calculated based off of the setting for the customer.

If Credit limit type in the Accounts receivable parameters is set to one of these values (Balance, Balance + All, Balance + packing slip or product receipt) then it would be estimated. 

Refer to this.custTable_CustAccount().shouldEstimateBeCalculated() in the SalesTable, SetEstimate method.

How the system calculates Estimated amount:

- If the Credit limit type in the Accounts receivable parameters is set to Balance + All, then the system takes Sales totals (Sales order > Totals where Selection = Packing slip)

- If the Credit limit type in the Accounts receivable parameters is set to Balance + packing slip, then the system takes  Sales totals (Sales order > Totals where Selection = All)

Refer to SalesTable, method updateEstimateBasedOnCreditMaxCheck

Tuesday, May 25, 2021

Feature "Include Confirmed ship and Confirmed receipt dates into date filters on Load planning workbench" in Microsoft Dynamics 365 Supply Chain Management

There is a nice feature available that will simplify the daily work for the Transport planner on the Load planning workbench. "Include Confirmed ship and Confirmed receipt dates into date filters on Load planning workbench" feature enables filtering by confirmed dates first, and only when they are empty, the requested dates. 

Transport planner don't need to manually follow-up and make a filter on the sales order line overview to find out what are the confirmed ship/receive dates to create the loads.

With this feature the worker will get the correct information of the shipping/receiving dates that will have high impact for the users to perform their day to day jobs. 

Walkthrough:

Navigate to Feature management and enable feature “Include Confirmed ship and Confirmed receipt dates into date filters on Load planning workbench”.

The description says: 

This feature expands the existing filtering capability of the Ship date and Receipt date fields on the Load Planning Workbench to include the sales order line's Confirmed ship and Confirmed receipt dates to determine lines to add to a load. If those dates are blank, order lines will be filtered based on the Requested ship and Requested receipt dates respectively.

Create sales order with 2 sales order lines (1 line with Confirmed dates and the second line is without:


Navigate to Warehouse Management module / Loads / Load planning workbench.

Select Sales lines tab.

Filter the Ship date based on the Confirmed ship date from the Sales Order. The line with the populated Confirmed ship date will be displayed.

Filter the Ship date based on the Requested ship date from the Sales Order. The line with the blank Confirmed ship date, but populated Requested ship date will be displayed.


Monday, April 19, 2021

Item allocation failed in Microsoft Dynamics 365 Supply Chain Management

When you see an error below, you will need to check the main source of such issues - Location directives.

Item %Item number% allocation failed.

Shipment %Shipment numebr% has been removed from wave %Wave number%.

No Work was created for Wave %Wave number%.

Solution: 

  • If you are using batch enabled product, then ensure location directive has batch enabled and strategy suggested.
  • Check location directive and ensure location directive actions are present and valid
  • Ensure location directive and directive code is linked well in work template
  • Ensure multiple SKU on pick location directive is not checked (it's meant for put type)

The following places can help you identify the root cause:

  • Work creation history log
  • Processing history in wave

Error: Cloudbuild.Npm.CredentialFetchFailedException: Failed to fetch credentials for feed

I have spent tremendous amount of time figuring out what is going on while installing NPM packages upon new VM deployment for the Supply Chain management. 

An error that I was getting the following:

An error occurred installing your NPM packages. You can set %NPMWRAPPER_LOGLEVEL% to Finest and %NPMWRAPPER_VSTSNPMAUTHEXELOGGINGLEVEL% to Detailed for more detailed logs. Error:
Cloudbuild.Npm.CredentialFetchFailedException: Failed to fetch credentials for feed: 
at Cloudbuild.Npm.Program.<>c__DisplayClass7_0.<<InstallYarnPackagesAsync>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Cloudbuild.Npm.Program.<InstallYarnPackagesAsync>d__7.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Cloudbuild.Npm.Program.Main(String[] args)

Solution: Open Visual Studio 2017 and Sign in. Then re-run init command. 
I am blown away by the simplicity of the solution.

I hope this safe your time!

Wednesday, March 10, 2021

How to connect to Microsoft Dynamics 365 F&SCM environment in Chrome when certificate is invalid

It might happen that certificate for the Microsoft Dynamics 365 F&SCM environment has been expired and while connecting to the environment through Google Chrome you might see the following error:



In this scenario, you have to rotate secrets from LCS. If it's urgent to process with the access to the environment, there is a lifehack. On the screen (with the error), just type in on your keyboard the following phrase and you will be able to connect to the environment even without having to complete secrets rotation:

 thisisunsafe

Saturday, February 6, 2021

Power Virtual Agent. Build a simple chatbot to find out the holidays

Below you may find the design of the topic conversation path within Power Virtual Agent to request an information about national holidays.