Often you need to differentiate blocking of items, customers etc. per process, rather than use the "all or nothing" option in the standard functionality.
This applies to many situations:
In sales (purchase) order posting Microsoft Dynamics 365 for Finance and Operations does not select the line in the posting screen if one of the following statements is true:
When switching on the configuration key Blocking reasons, functionality is added to use signal codes and blocking reasons.
Inventory management > Setup > Inventory > Blocking reasons
In the Blocking reasons form, in the fast tabs Sales quotation, Sales order and Purchase order, the steps can be defined where the system will show a signal message and / or block the order or order line on order(line) creation.
Field | Description | Remark |
Blocking reason | Identification of the Blocking reason |
Text | Signal text. Place holders %1 = Item, %2 = Name, %3 = order |
Activate |
Business event |
On change of the blocking reason the system will look at the new value to determine whether a business event is created. |
Sales quotation Order entry |
None, Signal, Block, Both |
|
Sales quotation Order line entry |
None, Signal, Block, Both |
|
Sales quotation Quotation |
None, Signal, Block, Both |
|
Sales quotation Confirmation |
None, Signal, Block, Both |
|
Sales order Order entry |
None, Signal, Block, Both |
Sales order Order line entry |
None, Signal, Block, Both |
Sales order Confirmation |
None, Signal, Block, Both |
|
Sales order Picking list / release to warehouse |
None, Signal, Block, Both |
If Release to warehouse must be blocked, and the Warehouse management parameter "Enable blocking reasons and business rules" is not switched on, a warning message is displayed. |
Sales order Packing slip |
None, Signal, Block, Both |
|
Sales order Invoice |
None, Signal, Block, Both |
|
Sales order Confirm shipment |
None, Signal, Block, Both |
|
Purchase order Order entry |
None, Signal, Block, Both |
Purchase order Order line entry |
None, Signal, Block, Both |
|
Purchase order Purchase order |
None, Signal, Block, Both |
|
Purchase order product receipt |
None, Signal, Block, Both |
Note
Field | Description | Remark |
None | No block, standard |
Signal |
A message is shown, without any blocking |
|
Block |
Blocks the order, or order line without a message |
|
Both |
A message is shown and the order or order line is blocked |
The signal text may also contain a place holder for the item number (%1), item name (%2) or the order (%3).
E.g. for PurchaseBlock: "New PO line for item %1 - %2 is not allowed on order %3."
Via System administration > Setup > Business events > Business events catalog, the following business events for Blocking Reasons can be activated:
Fields passed to the event:
Field name | Label |
ReferenceKey | Reference key (id of the record) |
BlockingReasonFrom | Blocking reason from |
BlockingReasonTo | Blocking reason to |
CreatedBy | Created By |
LegalEntity | Legal Entity |
BusinessEventId | Business Event Id |
ControlNumber | Business Event control number |
OrderId | Order Id (only for order line events) |
LineNum | Line number of the order (only for order line events) |
MajorVersion | Major Version |
MinorVersion | Minor Version |
Besides activation of the event in the catalog, also the checkbox Activate business event on the blocking reason needs to be enabled. On change of the blocking reason the system will look at the new value to determine whether a business event is created.
All customers > Fast tab: Sales order defaults
This blocking reason is respected (but not inherited) on sales orders and sales quotations but can be overridden by a blocking reason on the sales order and sales quotation.
All vendors > Fast tab: Purchase order defaults
This blocking reason is respected (but not inherited) on purchase orders but can be overridden by a blocking reason on the purchase order.
Released products > Fast tab: General > Group: Administration
Note that the blocking reason can also be updated automatically when the business rule status of a released product is changed. This blocking reason is respected (but not inherited) on sales quotations, sales orders and purchase orders. An additional blocking reason on the order line will also be respected, but will not override the blocking reason on the released product.
Sales and marketing > Sales quotations > All quotations
The logic for blocking reasons on sales orders (described in the next paragraph) also applies to sales quotations.
Sales and marketing > Sales orders > All sales orders
If necessary, it is possible to block all existing open sales orders for a customer at once, by changing the blocking reason on the customer account. In the sales order header, fast tab Setup, the "Blocking reason order account" is displayed.
The sales order contains a field "Blocking reason", which is used to overrule the "Blocking reason order account" on the customer.
If a customer is generally blocked, an individual order can be released through a "signal only" blocking reason on the order header.
The behavior on the sales order lines is slightly different:
So you can set a blocking reason on a customer, and this will influence all open and all new orders. As soon as you remove the blocking reason from the customer record, all these orders are unblocked (unless a manual block has been set on the order header or line or a block on item).
Unblock specific order: if the customer has a blocking reason that will block this step, but the order has a blocking reason that does not block this step, the lines are selected. This allows manually inserting a less restrictive blocking reason (signal only) for an order header, though the customer is still blocked. Then, this order can be picked, delivered, invoiced etc.
Procurement and sourcing > Purchase orders > All purchase orders
If necessary, it is possible to block all existing open purchase orders for a vendor at once, by changing the blocking reason on the vendor account. In the purchase order header, fast tab Setup, the "Blocking reason order account" is displayed.
The purchase order contains a field "Blocking reason", which is used to overrule the "Blocking reason order account" on the vendor.
If a vendor is generally blocked, an individual order can be released through a "signal only" blocking reason on the order header.
The behavior on the purchase order lines is slightly different:
So you can set a blocking reason on a vendor, and this will influence all open and all new orders. As soon as you remove the blocking reason from the vendor record, all these orders are unblocked (unless a manual block has been set on the order header or line or a block on item).
Unblock specific order: if the vendor has a blocking reason that will block this step, but the order has a blocking reason that does not block this step, the lines are selected. This allows manually inserting a less restrictive blocking reason (signal only) for an order header, though the vendor is still blocked. Then, this order can be ordered, received, paid etc.
Note
Master planning > Master planning > Planned orders
Planned orders can be created by the periodic Master planning and also manually. On creation of the planned order the system will check the “Purchase Order line entry” setting of the Blocking reason of the item as well the “Purchase order entry“ and the “Purchase Order line entry” setting of the Blocking reason set on the vendor. This check will execute this routine:
On firming, multiple planned purchase order lines, the system executes this logic again. All selected items with Block or Both will not be processed and remain visible in the planned order list page and the blocking reason and description field will be updated on the planned order.
The column "Process blocking description" displays the blocking reason for purchase order entry or order line entry. The field itself gives you information where the code is inherited from (item, vendor or manually set on the planned order).
Filtering planned orders for items with a blocking reason
In the advanced filter, join from Planned order (ReqPo) to Items (n:1 InventTable) to Blocking reasons (n:1 DYSBRSInventBlockingReasonTable).
Filtering planned orders for vendors with a blocking reason
In the advanced filter, join from Planned order (ReqPo) to Vendors (n:1 VendTable) to Blocking reasons (n:1 DYSBRSInventBlockingReasonTable).
Filter on the desired blocking reason.
Remark
Often, firming is done automatically when running the master planning in batch. In that case the info log will be visible on the batch task. Items with Block or Both will not stop the master planning process.
The firming of these lines with blocking reasons will not succeed, so those items will remain in the planned order form.
Master planning > Master planning > Maintain plans > Copy plan
When a plan is copied, the Blocking reason is displayed on the new plan too.
In general, the blocking reasons within warehouse management function in a similar way as the business rules within warehouse management. Key concept:
Inventory management > Setup > Blocking reasons
Blocking reasons in warehouse management are enabled by a Warehouse management parameter.
On multiple processes, the blocking reason can give a warning, block the process or do both. The warehouse management related fields in the blocking reason form are described below.
Sales and marketing > Sales orders > All sales orders
If any blocking reason on the order header, order line or item causes a block, the whole order is not released to warehouse. The first found block is displayed. If there is no blocking reason on the sales header, the blocking reason on the customer is taken into account. If there is no block, all blocking reasons on order header, order line or item that must give a warning, are displayed. If there is no blocking reason on the sales header, the blocking reason on the customer is taken into account.
Warehouse management > Release to warehouse > Release to warehouse
The blocking reasons are checked when the user presses "Add" to add the selected line(s), "Add all", or "Add order".
If any blocking reason on the order header, order line or item causes a block, the whole selection is not transferred to the lower grid Release to warehouse. The first found block is displayed.
If there is no blocking reason on the sales header, the blocking reason on the customer is taken into account.
If there is no block on order or customer, all blocking reasons on order header, order line or item that must give a warning, are displayed. If there is no blocking reason on the sales header, the blocking reason on the customer is taken into account.
Warehouse management > Release to warehouse > Automatic release of sales orders
If any blocking reason on the order header blocks, the whole order is skipped and displayed in the message details of the info log.
If there is no blocking reason on the sales header, the blocking reason on the customer is taken into account. If any blocking reason on the item or the order line blocks, the order line is skipped and displayed in the message details of the info log. If an order line is skipped the new reservation is kept depending on the setting in the dialog. Warnings are also displayed in the message details of the infolog.
Note
Warehouse management > Packing and containerization > Pack
Just like with business rules, packing itself is not blocked with the blocking reasons, but a clear orange banner indicates when the shipment contains a sales order or sales line for which a blocking reason prevents shipment confirmation or packing slip posting.
Warehouse management > Shipments > All shipments
Warehouse management > Loads > All Loads
Warehouse management > Work > All work
Outbound shipments can be confirmed:
A shipment cannot be confirmed in part. So a block on one sales order or line prevents the confirmation of a shipment with multiple sales order (line)s. Just like with business rules, confirming an outbound shipment is not possible if there is one blocking reason that blocks for shipment confirmation on sales order header, sales line or item. If there is no blocking reason on the sales header, the blocking reason on the customer is taken into account.
The packing slip can be generated and printed:
The headers and lines of sales orders for which the blocking reason does not allow packing slip posting, will not be retrieved in the lines to be posted.
Question: | The blocking reason is not inherited from customer (or vendor) to sales quotation / sales order (or purchase order). |
Answer: | That is correct. The blocking reason of the order is initialized with an empty value. The blocking reason on the customer (or vendor) account remains respected, untill a blocking reason is entered on the order header. |
Question: | The blocking reason is not inherited from released product to sales quotation line, sales order line and purchase order line. |
Answer: | That is correct. The blocking reason of the order line is initialized with an empty value. The blocking reason on released product remains respected, as well as a blocking reason that is entered on the order line. |
Question: | On the shipment list page, there is a column "Blocked", but there is no indication that a shipment is blocked because of a Blocking reason. |
Answer: | The column "Blocked" only displays an orange triangle if the shipment is blocked due to a Business rule. Blocking reasons are respected when you post the packing slip from a shipment or load. |