Product documentation
In This Topic
    Dynamics Business Rules and Blocking Reasons - Business rules
    In This Topic

    Business value

    Business Rules adds functionality in several Microsoft Dynamics 365 for Finance and Operations modules in order to maintain a work flow status to a record. The functionality is aimed for situations where a full work flow setup would be an overkill of setup and administration efforts.

    E.g., when a new item is entered in the system, commercial, technical, purchase, logistical and legal data should be specified, by various departments. These steps can be parts of a business work flow.

    The basic structure of the business rules can be found in Common > Setup > Business rules.

    Rules can be defined for:

    The user can define the different statuses that a business rule may have. A status can be excluded from lookup (hide), e.g. if a fall back status should not be selected by the user, or if a status is set automatically during posting the order: the status Confirmation printed should not be selected manually.

    Typing the status is possible though, but the feasibility of the transition to this status is checked anyway.

     

    Setup

    Business rules parameters

    Common > Setup > Business rules > Business rule parameters

    Field Description Remark
    Integrate product life cycle state with business rules The product life cycle state can be set by using the business rules transitions and can be setup in the parameter of the business rule status.

     

    Master planning parameters

    Master planning > Setup > Master planning parameters

    Field Description Remark
    Dynamic plan excludes sales orders

    Never (independent of BR status)

    According to BR status Use in requirements parameter

    Never: the current dynamic plan can be used for calculating possible delivery dates, even if its business rule status should ignore the order in the Master plan.

    According to Business Rule status: dynamic and static plans will respect the Use in requirements parameter.   

     

    Business rules

    Common > Setup > Business Rules

    The field (Business rule) Status is in the form Sales orders and other forms can be used to indicate the current status.

    For each type of business rule, a begin status can be defined.

    The user can define the feasible transitions from one business rule status to another. Each transition may be limited to users authorized for a chosen security key. The field Role AOT name determines whether the user is allowed to go to the “To-status”.

    When the field is changed, the transition validation is executed. Conditions may be defined for each transition. A couple of standard validations exist for sales orders and purchase orders. A status line with a "paper clip" icon indicates that an expression validation is defined for this transition, a "tag" icon indicates a xpp validation.

    Beside these two options, conditions also may be set using the default Microsoft Advanced query functionality.

    Validation is described in more detail in a later paragraph.

    If the validation check would fail, the transition fails. It is possible to define a fallback status for this situation.

    Per transition it's possible to determine whether a business event needs to be generated.

    Transition condition XPP method with parameters for old records

    When a transition condition for an XPP method has been extended with parameters, old records give an error as there are no parameters. This refers to the option we added to exclude cancelled lines in the Check zero sales price condition for sales orders.

    Users can run into an error after installing a new version with extra parameters. This error is because of the existing records do not have the new parameters.

    This can be solved manually by opening the XPP method form and clicking OK, but there is also added an upgrade script: If the button "Initialize transition condition parameters" is clicked, all parameters will be initiated. THis will prevent the error in future for the actual parameters. The user will get a message that the parameters are updated.

    Business rule status specific parameters

    Common > Setup > Business rules > Button: Parameters

    Additional parameters can be set per business rules status type, except for Opportunities.  

     Note

    Make sure to open and save the parameter screen for each business rule that you created. Otherwise the default values of the parameters will not be applied.
       

    The parameters depends on the type of the business rule:

     Sales quotations

    Field Description Remark
    Quotation status When the quotation is promoted to this quotation status, the current business rule status can be applied automatically to this quotation. Example: if the quotation is sent to the prospect or customer, the quotation status gets updated, and the business rule status can be updated automatically too.

    Quotation

    Posting quotation allowed when quotation has this business rule status?

    Confirmation

    Posting confirmation allowed when quotation has this business rule status?

     Sales orders

    Field Description Remark
    Document status As soon as the confirmation or packing slip etc. is posted, the order will automatically be promoted to this business rule status. Example: if the confirmation is posted, the business rule status will automatically set to the business rule with this document status.

    Use in requirements

    If unchecked, this sales order will be ignored by classic Master planning

    Exclude from master planning

    Adjust the Exclude form master planning checkbox on the sales order.

    Default will keep it as it is. No disables the checkbox. Yes enables the checkbox. 

    Exclude from external inventory planning

    Skip export to external planning software e.g. Slim4 Integration

    Only if Slim4 Integration connector is installed

    Confirmation

    Can the sales order confirmation be posted when the order is in this business rule status?

    Release to warehouse

    Release to warehouse allowed (WHS) when the order is in this business rule status?

    Warehouse management parameter "Enable blocking reasons and business rules" must be switched on.

    Picking list (WMS 1)

    Can the picking list (WMS I only) be generated when the order is in this business rule status?

    Packing slip

    Can the packing slip be posted from sales order when the order is in this business rule status? WHS: Post packing slip from packing station, from shipment, from load, from sales order)

    Invoice

    Can the sales order invoice be posted when the order is in this business rule status?

    Confirm shipment

    Can the shipment (WHS only) be confirmed (from shipment, from load, from packing station or from work) when the order is in this business rule status?

    Consider the possible disturbing and procedure if the goods are picked and packed but the warehouse employee can not confirm the shipment. Warehouse management parameter "Enable blocking reasons and business rules" must be switched on.

    Edit header

    Can the order header be edited when the order is in this business rule status?

    The modify and complete buttons of call center act on the edit header parameter. When the user is allowed to edit the sales order header, the modify button is enabled. When the order is set to completed, the order is not editable anymore.

    Can edit header if role

    A user can edit the header when this role is assigned to this user.

    Edit line

    Is the order line editable when the order is in this business rule status?

    This parameter controls whether the fields on the order lines are editable it could be that there are other functions that can manipulate the content of fields in the order lines are still available.

    Can edit line if role

    A user can edit the lines when this role is assigned to this user

    Create line

    Can a new line be added when the order is in this business rule status?

    This parameter controls the New, add lines and add products buttons, it could be that there are other functions that could create new order lines are still available.

    Delete line

    Can a line be deleted when the order is in this business rule status?

     

     Important

    For preliminary sales orders, a business rule with Use in requirements = No can be selected to avoid that this order is taken into account by the static MRP. In the master planning parameters, if Dynamic plan excludes sales orders = Never the “Current dynamic master plan in the master planning parameters” still takes this order and all other preliminary sales orders into account. This can be used for delivery date calculations and capacity checks through CTP. 
       

     Purchase orders

    Field Description Remark
    Document status As soon as the purchase order is confirmed to the vendor, or the receipt list is printed. the order will automatically be promoted to this business rule status.

    Purchase inquiry

    Can a purchase inquiry be created when the order is in this business rule status?

    Purchase order

    Can the purchase order confirmation be posted when the order is in this business rule status?

    Receipts list

    Can the receipts list be printed when the order is in this business rule status?

    Packing slip

    Can the product receipt (purchase packing slip) be posted when the order is in this business rule status?

    Invoice

    Can the purchase invoice be generated when the order is in this business rule status?

    Edit header

    Can the order header be edited when the order is in this business rule status?

    Can edit header if role

    A user can edit the header when this role is assigned to this user.

    Edit line

    Can the order header be edited when the order is in this business rule status?

    Can edit line if role

    A user can edit the lines when this role is assigned to this user.

    Create line

    Can a new line be added when the order is in this business rule status?

    Delete line

    Can a line be deleted when the order is in this business rule status?

    Customers/Vendors/Prospects

    Field Description Remark
    Auto update Automatic update when this customer, vendor or prospect is transferred to this status.

    Blocking reason

    New blocking reason when customer, vendor or prospect is transferred to this status.

    E.g. blank the blocking reason when customer gets status "Active".

     Items

    Field Description Remark
    Purchase auto-update Auto-update the parameter Stopped for Purchase On item level

    Auto-update Stopped with this value

    New value for Stopped

    If slider is not active, set Purchase auto-update to Yes and save the record.

    Inventory auto-update

    Auto-update the parameter Stopped for Inventory

    On item level

    Auto-update Stopped with this value

    New value for Stopped

    If slider is not active, set Inventory auto-update to Yes and save the record.

    Sales auto-update

    Auto-update the parameter Stopped for Purchase

    On item level

    Auto-update Stopped with this value

    New value for Stopped

    If slider is not active, set Sales auto-update to Yes and save the record.

    Product life cycle state auto-update

    Auto-update PLCS on the released product

    Business rules parameter "Integrate product life cycle state with business rules" must be switched on.

    State

    New value for Product life cycle state

    If field is not editable, set PLCS auto-update to Yes and save the record. It is possible to blank the state when released product is transferred to a status.

    Blocking reason auto-update

    Auto-update the blocking reason on the released product

    Blocking reason

    New value for Blocking reason

    If field is not editable, set Blocking reason auto-update to Yes and save the record. It is possible to blank the blocking reason when released product is transferred to a status.

     

    In the business rule for released products it is possible to specify the blocking reason or value of the Stopped check marks that are set automatically when this business rule status is reached. E.g. if the business rule status is “Wait for commercial approval”, the item should remain blocked for sales orders. As soon as the status is set to “Item released” the blocking reason or the stopped mark is blanked.

     

    Integration of Product life cycle state and Business rules of type Items

    If the business rule parameter "Integrate product life cycle state" is enabled, the system checks whether there are PLCS records where the Default when released to legal entity is enabled. If true, it will give a message ‘On product life cycle state %1 the value Default when released to legal entity will be set to No as this will be set by the business rule. On our business rules of type Items it is possible to setup a blocking reason which is set when you choose this state.

    Also, the user gets the possibility to setup a Product life cycle state (PLCS) on the business rule of type Items. When the business rule status is maintained on a product master, the system will set the PLCS on the product and variants same as blocking reasons. If there is begin Item status with PLCS and Blocking reason set, when product master or variant is released to a legal entity, the initial status, PLCS and Blocking reason are assigned on the master and only PLCS and Blocking reason are assigned on the variant. Business rules are only set on products, not on variants.

    Also there is a periodic job ‘Change life cycle state for obsolete products’ which identifies products/ product variants that need to be updated. When updating PLCS for obsolete products, the user gets the possibility to select a business rule status. Based on the parameters setup on the selected status, the new product lifecycle state and blocking reason will be filled in the dialog. When executing this job, the business rule status, PLCS and blocking reason will be updated on the released product. Only PLCS and blocking reason will be updated on the variants. If the Blocking reason or Business rule is empty, it will not empty the fields on the obsolete product but it will keep the existing values.

    When a released product has variants, the business rule status is NOT updated on the released product as this feature is only updating variants and released products without variants.

     

    Business rule conditions

    The business rule controllers can contain validation methods.

    With the expression validation it is possible to define query based rules. Every business rule enabled table must have an AOT query attached to it (by code). Based on this query fields can be selected in the expression designer.

     Note

    When clearing or deleting an expression, please press the save button before closing the form otherwise your modification will not be saved.
       

    E.g. If the Sales order pool must be 07, set up an Expression Where Pool equals value 07. In the Message that should be displayed if the expression fails, enter "Pool must be 07".

     

    The following Xpp validations are shipped with the solution:

    Xpp validation Description
    Sales order and sales quotations
    checkZeroPrice Checks whether all order lines have a line amount, if not the fall back status will be applied

    Exclude cancelled linesCancelled order lines can be ignored, for example to ignore cancelled kit-items with an exploded BOM.
    checkSalesLineMarginQuestionable Checks whether all order lines are above the questionable margin threshold but below the acceptable threshold, if so the fall back status will be applied
    checkSalesLineMarginUnacceptable Checks whether all order lines are below the questionable margin threshold, if so it will apply the fall back status will be applied
    Purchase order
    checkOrderTotal

    Checks whether the value of the order is below or above the order total. This check is based on the totals logic on the purcahse order:

    • Amount: Subtotal or Total amount of the order that will be used to compare with
    • Update purchase: quantity used to determine the amount
    • Operator:
      • < (smaller)
      • <= (smaller or equals)
      • > (larger)
      • >= (larger or equals)
      • != (not equals)
      • == (equals)
    • Amount: enter the value to compare with (this value should be entered in the legal entity currency and is converted based on the currency rates on the date of comparisson)
    • Exclude negative order:
      • No (absolute values are compared)
      • Yes (orders with a negative order total are not validated)

    With the Xpp validation it is possible to use custom code. The business rule controllers can contain validation methods. The purpose of this is to create validations that can be used in multiple checks. E.g. a predefined method checkZeroPrice as defined on the WRDBusinessRuleController_SalesTable.

    Press the button Xpp. In the dialog, enter Class description = Sales orders and Method = checkZeroPrice.

    Specify a message "Sales line price can not be zero.".

    The message can be setup per language through the button Message text.

    In the field Role AOT name, the users to whom this role is assigned, can go to the To-status, even if validation fails.

    Add a custom Xpp validation via an extension

    The XPP methods can be extended by a developer. Clicking on the Xpp button on the Business rule condition, will show a dialog where the users needs to select the proper class and choose a method that will validate the transition (for example checkZeroPrice).

    The methods that are selected here are defined on the class selected in the first field. For sales orders this is the class named DYSBRLBusinessRuleController_SalesTable. In order to add your method, you need to write an augmentation class and augment the specific class with the new XPP method.

    This method needs to have the proper profile which consists of a few conditions:

    The parameter is the record for which the business rules is changed, but it should be defined as a Common record. In the method the developer can cast it to the specific table. The method should return a Boolean indicating whether the transition is valid. So true if the status can be changed and false otherwise.

    An example for a new method could be checking whether the sales table has at last one sales line. The code for this would be as follow:

    After compiling the code, the name of the method will show up in the method lookup and the user is able to select it.

    Logbook

    Common > Setup > Business rules > Logbook

    Logging of status changes for a certain business rule type can be setup in the Logbook form by creating a record for the business rule type and activate the logging checkbox. From that moment on status changes will be tracked and can be shown via the button “Logbook” on the business rule. It will show all the log records for transitions from OR to the selected status.

    Or via the “Logbook” menu item of the applicable type, E.g Released products, ribbon tab General > Business rules > Logbook.

     Note

    There will be no log record for setting the initial status, it only tracks the from to status changes.
       

     

    Business Events

    Via System administration > Setup > Business events > Business events catalog, the following business events for Business rules can be activated:

    Fields passed to the event:

    Field name Label
    ReferenceKey Reference key (id of the record)
    FromStatus From Status
    ToStatus To Status
    LogMessage Log (info log of the business rule transition error)
    CreatedBy Created By
    LegalEntity Legal Entity
    BusinessEventId Business Event Id
    ControlNumber Business Event control number
    EventId Business Event instance ID
    EventTime Event time (Date/time)
    MajorVersion Major Version
    MinorVersion Minor Version

    Besides activation of the event in the catalog, also the checkbox Activate business event on the business rule transition needs to be enabled.

    As there is no transition from blank to the default business rule status the system will always generate an event in that case.

    Use business rules

    Business rule on a customer

    All customers > Fast tab: General

    This business rule can be used for a simple work flow for the creation of a customer with the relevant data. When changing the business rule status of the customer, the blocking reason can be updated automatically.

     

    Business rule on a prospect

    Sales and marketing > Relationships > Prospects > All prospects > Fast tab: General

    This business rule can be used for a simple work flow for the creation of a prospect with the relevant data. When changing the business rule status of the prospect, the blocking reason can be updated automatically.

     

    Business rule on an opportunity

    Sales and marketing > Relationships > Opportunities > All opportunities > Fast tab: General

    Use the business rule for a simple work flow in the opportunity-to-sales process.

     

    Business rule on a vendor

    All vendors > Fast tab: General

    This business rule can be used for a simple work flow for the on-boarding process of a vendor with the relevant data. When changing the business rule status of the vendor, the blocking reason can be updated automatically.

     

    Business rule on a released product 

    Released products > Fast tab: General > Group: Administration

    This business rule can be used for a simple work flow and can update other fields like blocking reason, "stopped" check marks, life cycle status, depending on the parameters of the rule.

     

    Business rule on sales quotation

    Sales and marketing > Sales quotations > All quotations

    This business rule can be used for a simple work flow and a business rule status can automatically be applied when the sales quotations is promoted to a different quotation status. Depending on the business rule status, posting the quotation or posting the confirmation can be enabled or disabled. 

     

    Business rule on sales order

    Sales and marketing > Sales orders > All sales orders

    Use the business rule for a simple work flow in the sales order cycle. In the parameters of the business rule status is specified which actions (like posting the confirmation or packing slip) are allowed, and which fields can be auto-updated.

     

    Business rule on purchase order

    Procurement and sourcing > Purchase orders > All purchase orders

    Use the business rule for a simple work flow in the purchase ordering process. In the parameters of the business rule status is specified which actions (like posting the order or product receipt) are allowed, and which fields can be auto-updated.

     

    Use business rules within warehouse management

    Release to warehouse

    Warehouse management > Release to warehouse  > Automatic release of sales orders

    Warehouse management > Release to warehouse  > Release to warehouse

    If a sales order has a business rule status that prevents release to warehouse, the sales order is excluded from Automatic release of sales orders, and from the manual Release to warehouse form. 

     Note

    Load planning work bench: in this scenario, a full load (e.g. a container) is planned prior to picking. At the moment the user decides to release the entire load to warehouse, the business rule status of the sales orders involved is not checked.
       

     

    Packing station

    Warehouse management > Packing and containerization > Pack

    Packing itself is not blocked with the business rule status, but a clear orange banner "Blocked for shipment" or "Blocked for packing slip" indicates when the shipment contains a sales order for which the business rule prevents shipment confirmation or packing slip posting. The open lines that trigger the block, are indicated with a check mark Block.

    Blocked for shipment: in this case, when closing the last container, the shipment is not confirmed. After the business rule status changes and no longer blocks for shipment, the shipment can be confirmed from the shipment list page or the load list page. A shipment can not be confirmed partially, so one blocked sales order within a shipment with multiple sales orders will prevent the confirmation of the shipment.

    Blocked for packing slip: in the container packing policy settings, it is possible to print the packing slip when closing the last container on the packing station. However, when the order is blocked for packing slip posting, no header and lines are retrieved in the packing slip posting screen. After the order is unblocked, the packing slip can be posted from the shipment list page or the load list page. 

     

    Shipment list page

    Warehouse management > Shipments > All shipments

    The orange triangles in the column Block show that the shipment contains at least one sales order with a business rule that does not allow outbound shipment confirmation or packing slip posting.
    A shipment cannot be confirmed if one or more of the sales orders in this shipment are blocked for shipment confirmation. A shipment can be confirmed if only blocked for packing slip occurs at the sales orders within the shipment.

     

    Load list page

    Warehouse management > Loads > All loads

    If one of the shipments in the load cannot be confirmed, the whole load cannot be confirmed. In order to ship some shipments in a load, it is possible to transfer a shipment to a new or existing load.

    Batch update of Business rules status

    Business requirement

    Business rule statusses are available on several entities. Changing the status on such an entity is a manual process or can be triggered by the document status. For example when a sales order is confirmed. An advantage of the business rules is that validation rules are adjusted. More often orders are more-and-more created in an automated way, originating from EDI or webshops. A more volume-based approach is needed to validate and update the status automatically.

    Batch update

    The business rules solution offers the functionality to validate and update multiple records of an entity at once, by using the batch function update. For a specified range (viay the query) of records for a specific entity the business rule can be set from a selected begin status to the requested end status.

    The following menu items are available to start the periodic batch function for an entity (Common > Periodic > Business Rules):

    Processing the business rule status update for multiple entities can have both a technical and a functional result. From a technical perspective the batch run is succeeded when all the entity records are processed succesfully. However, from a functional perspective the business owner will be informed about the validations and the business rule status update. So when a business rule update is not completed, due to business rule validation errors, this is only a functional result. This means that the batch job will not give an error but the batch job history contains a functional log with extended (functional) messages about the results of the business rule update processing.

    It's also possible to enable the business rule log book for a specific entity which will show these errors.

    FAQ

    Question: When I use templates to create e.g. a customer, which business rule status will be set on the new customer, the begin status of the business rule or the status from the template?
    Answer: The status from the template will be set.
    Question: When I convert a prospect into a customer, why is the begin status not set on the new customer?
    Answer: When converting a prospect into a customer standard Microsoft Dynamics 365 for Finance and Operations will apply the default customer template and will take the value from the template.
    Question: I have installed Dynamics Copy Released Product and created a copy of an existing item. This new item did not get the begin status of the business rule but it copied the status from the original item. Is this correct?
    Answer: Yes
    Question: I cannot set parameters for the business rule.
    Answer: First you need to save the business rule record, and then the parameter screen can be opened. Click new to load the context sensitive set of parameters for this business rule type. Save the parameters.