In some projects I was asked again and again by the sales department staff if they could see immediately if a recorded order could be delivered. This question is not to be answered with a clear yes or clear no, since numerous configuration settings affect it. In addition, many companies are not able to use the more or less automatically working procedures such as Available To Promise (ATP) or Distributed Order Management for example (DOM).
The answer was usually “not at a glance”, or “the system calculates the dates for delivery automatically”. Most of the time this was not the expected answer, because users like to see the desired information immediately and at a glance. On several occasions, customizations were then projected and implemented. Based on the requirements were certain stocks infomations displayed, e.g. inline with each sales order item. But it is not as easy do define the exact customization, typically, questions arise here:
- Which sites and storage locations should be included in the inventory analysis?
- What is the storage strategy with regard to the reservation of goods?
- When is reservation made in the Order to Cash (OtC) process?
- Are there any alternative substitute site and warehouse locations that should be considered?
Depending on this, various queries are generated to determine a valid result for the existing customer configuration and offer it to the order processor. The rules and regulations of distributed order management (DOM) do not apply even at the time of order entry. The employee does not see the result of a possible order optimization by the DOM at this point in time for all items.
Low Code instead of X++
In contrast to the X++ coding still widely used today on the core ERP system, the power platform and the Common Data Service can be an attractive alternative here. The integration tools available today in Microsoft Dynamics 365 F/SCM/C offer many options that
- Dual Write of numerous entities
- Provided Virtual Entities
- ODATA Queries on public entities
- Data Integrator
- Tables and Entities available in Azure Data Lake
- BOYD (becomes retired in the future)
Based on this options we designed POC PowerApp that uses virtual Entities and a ODATA Query to fulfill customer requirement. The requirement was to get fulfillment information
- as less click as possible
- (near) real time at runtime
- Information at sales order level
- to give the customer a compact statment
- Inside Dynamics 365F/SCM/C (inside sales, callcenter)
- Outside Dynamics 365F/SCM/C (sales force, customer service)
So sales staff should give the customer a compact statment about possible delivery options, as this can not be delieverd by Dynamics 365 F/SCM/C at the moment OOB.
Integrating in Microsoft Dynamics 365 F/SCM/C
As the option to integrate PowerApp on forms, as Tab or side bar application we decided to integrate as FastTab on Sales Order Header.
So the Design was to use Standard Integration methods and tools. So we started with virtual Entities only. The outcome was that virtual entities sometimes not work as real entities. So we found that Lookup Function can not join in all situations to other virtual entity, so we query product infomation master data via periodic Odata call, as these do not change as often. This consumes data volume because copy of data is stored twice. In contrast to using virtual entity stores only some metadata in CDS.
With PowerApp we can easy integrate visual elements to speak as an image to the User. A picture says more than a thousand words.
The Canvas app can display all information as we are used from inventory on Hand queries. Visuals tell the user at a glance whether
- there are currently items available at current site/warehouse, can the order be fulfilled now
- are there items available at current site/warehouse in the planned future
- are the items currently available at alternate site/warehouse
As the Powerapp is designed to take the SalesID as parameter we can use the app also as standalone app on other devices than Browser at any tablets too. Using the “Show List” feature on the Sales oder List page it allows the user to easily scroll through the list of orders to get an update to the delivery status at every sales order.
Take a look about the response of the app in a Tier 1 environment and how to use the app for daily sales business.
Beside that we can offer users compact information about the current stock availabilty we can enhance the app on multiple ways in the future. May be to change the site/warehouse at one click, or to change the item to alternate product which are available on Hand.
Low Code makes it possible – in a short time.