Quantcast
Channel: Dynamics 365 Blog
Viewing all 534 articles
Browse latest View live

Report the value of physical locations

$
0
0

Key concepts

 

Inventory dimension

An inventory dimension can have a Physical value and a Financial value. The setting of the Physical value controls whether a dimension is active for Inventory management and Warehouse management. The setting of the Financial value controls whether a dimension is active for Inventory accounting in Cost management.

Note: An inventory dimension can have an active Physical value but no Financial value. However, it can’t have an active Financial value but no Physical value.

Cost object

The term cost object was introduced in Microsoft Dynamics 365 for Finance and Operations, Enterprise edition. It represents a key concept that is used in the management of business costs. A cost object is an entity that costs and quantities accumulated for. For example, a cost object entity can be either a product or product variants, such as variants for style and color.

A cost object is derived from the item ID and the inventory dimensions that have an active Financial value.

There are three groups of inventory dimensions: product, storage, and tracking. Each inventory dimension can have a set of dimensions associated with it. For each dimension, you can set up the following inventory dimension values.

Product dimension group Storage dimension group Tracking dimension group
Dimension Value Dimension Value Dimension Value
Color Financial by default Site Financial by default Batch Physical and or Financial
Size Financial by default Warehouse Physical and or Financial Serial Physical and or Financial
Configuration Financial by default Location Physical Owner Financial by default
Style Financial by default Inventory status Physical
  License plate Physical

Example: Define a cost object

When an item is created, a set of inventory dimension groups can be assigned to it. The following table shows how you can define a cost object.

Product dimension group Storage dimension group Tracking dimension group
Color Financial by default Site Financial by default
  Warehouse Physical

 

In the following example, the cost objects are defined by Item + Color + Site.

Examples:

  • Speaker + Black + Site 1
  • Speaker + White + Site 1
  • Speaker + Black + Site 2

The inventory objects can be used to report the physical quantity at any level in the warehouse that is defined by Item + Color + Site + Warehouse.

Examples:

  • Speaker + Black + Site 1 + WH 11
  • Speaker + Black + Site 1 + WH 12
  • Speaker + White + Site 1 + WH12

It’s crucial that you understand the concepts. The configuration and implementation of these concepts have a significant impact on the whole system, especially in Inventory management and Cost management.

After the configuration is implemented, it’s almost irreversible. Any change will require significant resources and will affect system usage itself.

In the rest of the document, we will use the Speaker item as an example. The inventory valuation method is set to Moving average.

Cost object:

  • Speaker + Black + Site 1

Inventory objects:

  • Speaker + Black + Site 1 + WH 11
  • Speaker + Black + Site 1 + WH 12

After a few transactions have been posted, the following inventory transaction entries are generated in the Inventory subledger.

Color Site Warehouse Financial date Reference Status Quantity Cost amount
Black Site 1 WH11 1/1/2017 Purchase order 01 Purchased 1.00 10.00
Black Site 1 WH12 2/1/2017 Purchase order 02 Purchased 2.00 26.00
Black Site 1 WH11 3/1/2017 Sales order 01 Sold -1.00 -12.00

 

The inventory close job was run as of January 31, 2017. Because the inventory valuation method was Moving average, no adjustments were posted.

As part of the fiscal period–end process, an Inventory value report that shows the ending inventory balance in quantity and value is required. To meet this requirement, the inventory value report framework was introduced. The framework lets you create custom reports by including more data points that depend on the type of business. It also lets you define the level of aggregation for cost objects.

Note: The inventory value report is designed to print only the values per cost object or aggregations of cost objects.

You create an Inventory by cost object report, based on the configuration in the following table.

FastTab group Field group Field Setup value Setup value
General Range Posting date
Columns Financial position Inventory Yes
  Resource ID View Yes
  Inventory dimensions Color View (Column) Yes
  Inventory dimensions Site View (Column) Yes
  Inventory dimensions Warehouse View (Column) Yes
  Average unit cost Calculate average unit cost Yes
Rows Resource type Materials Yes
  Detail level Level Totals

 

The report will look like this.

Resource Color Site Warehouse Quantity Value Avg. unit cost
Speaker Black 1 2.00 24.00 12.00

 

Note: The Warehouse column will remain blank, because the Speaker item doesn’t have any cost object that includes the Warehouse dimension. Inventory dimension Warehouse is only set to Physical.

View the inventory value by physical location Warehouse

Configure the storage dimension group

To meet the customer’s request, you could configure the storage dimension group differently. In this case, the Warehouse dimension is configured so that it has a Financial value.

Product dimension group Storage dimension group Tracking dimension group
Color Default Financial Site Default Financial
Warehouse Financial

 

This configuration affects how the Speaker item is handled by the system. The cost object and inventory object now have the same level of granularity.

Cost objects:

  • Speaker + Black + Site 1 + WH 11
  • Speaker + Black + Site 1 + WH 12

Inventory objects:

  • Speaker + Black + Site 1 + WH 11
  • Speaker + Black + Site 1 + WH 12

The configuration also directly affects the inventory valuation. In this example, the FIFO, Weighted average, or Moving average inventory valuation method will be applied per cost object, and the overall result will differ.

Color Site Warehouse Financial date Reference Status Quantity Cost amount
Black Site 1 WH11 1/1/2017 Purchase order 01 Purchased 1.00 10.00
Black Site 1 WH11 3/1/2017 Sales order 01 Sold -1.00 -10.00

 

Color Site Warehouse Financial date Reference Status Quantity Cost amount
Black Site 1 WH12 2/1/2017 Purchase order 02 Purchased 2.00 26.00

 

The result will also differ when the Inventory value report is run by using the same configuration that is described in the previous section.

Resource Color Site Warehouse Quantity Value Avg. unit cost
Speaker Black 1 WH12 2.00 26.00 13.00

 

The Warehouse column now has a value, and the inventory value is 26.00 instead of 24.00.

Note: When you activate the Financial value for the Warehouse inventory dimension, you might affect performance. All transfers between warehouses are now considered financial movements, and financial movements can cause cycles in the Inventory close job. If the Warehouse inventory dimension is used only to physically track inventory, these will be closed as non-financial transfers before the cost calculation begins and the changes of cycles reduced.

Create a custom report that looks at inventory transactions and settlements.

You can create a custom report that sums inventory transactions and settlements by InventDim ID.

The old Physical inventory by inventory dimension report was designed for that purpose. In the report dialog box, users could select any inventory dimensions, regardless of whether they were part of the defined cost objects.

This approach works, provided that the inventory dimensions that you select are part of the defined cost object. However, if you select an inventory dimension that isn’t part of the cost object, the report starts to print incorrect results.

The following table shows the result of printing balances per item and inventory dimensions.

Resource Color Site Warehouse Quantity Value Avg. unit cost
Speaker Black 1 WH11 0.00 -2.00 0.00
Speaker Black 1 WH12 2.00 26.00 13.00

 

Note: The inventory cost is calculated at a level above the inventory dimension and warehouse. Therefore, the cost on issue transaction from warehouse WH11 explains why the inventory value per warehouse can become negative.

Report the value of physical locations

If the value of a physical location must be reported, a sum of transactions per location, as described in the previous section, isn’t the solution.

The correct approach is to calculate the value per location by using the following simple formula:

Value = Cost object, cost × physical object, quantity

Cost object:

  • Speaker + Black + Site 1
Resource Color Site Quantity Value Avg. unit cost
Speaker Black 1 2.00 24.00 12.00

 

Inventory objects:

  • Speaker + Black + Site 1 + WH 11
  • Speaker + Black + Site 1 + WH 12
Resource Color Site Warehouse Quantity Formula Value
Speaker Black 1 WH11 0.00 12.00 × 0.00 0.00
Speaker Black 1 WH12 2.00 12.00 × 2.00 24.00

 

In Microsoft Dynamics AX 2012 R3, a new report that is named Inventory aging was introduced. As the name of the report implies, this report does more than just report the value by physical location. It can also show the age of the current inventory in the user-defined buckets.

In the report dialog box, enter the following information.

Field group Field Setup value
As of date 31-01-2017
View Item number View
  Color View
  Site View
  Warehouse View
Aging period Unit of aging period Days
  Aging period 1 30
  Aging period 2 60
  Aging period 3 90
  Aging period 4 120

 

The following table shows only the first section of the Inventory aging report, but the user-defined buckets have been omitted.

Resource Color Site Warehouse On-hand Quantity On-hand Value Inventory value quantity Inventory value Avg. unit cost
Speaker Black 1 WH11 0.00 0.00 2.00 24.00 12.00
Speaker Black 1 WH12 2.00 24.00 2.00 24.00 12.00

 

Conclusion

If your organization must provide inventory value by any physical location, you don’t have to update the current configuration of inventory dimension groups. This change can be very intrusive, and also affects the cost calculation and performance. We also don’t recommend that you build a custom report for this purpose.

The Inventory aging report is designed to calculate the cost per cost object and then can apply it to any physical level that is selected on the report. This report is designed to automatically detect the level that the cost object is defined at per item. It then applies the formula to calculate the value by physical location.

 


Negative inventory in inventory accounting

$
0
0

Allowing physical negative inventory may have undesirable consequences in inventory accounting, especially if the inventory costing principle is Actual and the valuation method is either FIFO or Weighted average.

Most of the issues that are related to physical negative inventory can be mitigated by using the correct configuration and maintenance of data.

Example: Why is the cost out of sync?

The following table lists the required setup for the Item model groups.

Item Inventory model Physical negative inventory Latest cost price Active planned cost
A FIFO Yes Yes No

 

The purchase from the supplier always takes place at a unit cost of 7,500.00.

The following table lists the events as they occur, in chronological order.

Financial date Reference Receipt Issue Quantity Cost amount
10/6/2017 Sales order 01 Sold

-3.00

10/6/2017 Purchase order 01 Purchased

2.00

15,000.00

10/6/2017 Sales order 02 Sold

-3.00

-22,500.00

10/6/2017 Purchase order 02 Purchased

1.00

7,500.00

10/6/2017 Sales order 03 Sold

-3.00

-22,500.00

10/6/2017 Purchase order 03 Purchased

3.00

22,500.00

10/6/2017 Purchase order 04 Purchased

2.00

15,000.00

10/6/2017 Purchase order 05 Purchased

3.00

22,500.00

10/6/2017 Sales order 04 Sold

-1.00

-18,750.00

 

The system starts issuing from inventory at cost per unit of 18,750.00 even though the cost of purchase has not exceeded 7,500.00.

Why does this happen?

In order to explain this in better detail, lets add a few more columns on the rightmost side, in green. These new columns represent the inventory balance after posting the specific transaction. The inventory balance is also known as InventSum.

Financial date Reference Receipt Issue Quantity Cost amount Quantity Value Avg. unit cost
10/6/2017 Sales order 01 Sold

-3.00

1)

-3.00

$0.00

$0.00

10/6/2017 Purchase order 01 Purchased

2.00

15,000.00

-1.00

$15,000.00

-$15,000.00

10/6/2017 Sales order 02 Sold

-3.00

-22,500.00 2)

-4.00

-$7,500.00

$1,875.00

10/6/2017 Purchase order 02 Purchased

1.00

7,500.00

-3.00

$0.00

$0.00

10/6/2017 Sales order 03 Sold

-3.00

-22,500.00 3)

-6.00

-$22,500.00

$3,750.00

10/6/2017 Purchase order 03 Purchased

3.00

22,500.00

-3.00

$0.00

$0.00

10/6/2017 Purchase order 04 Purchased

2.00

15,000.00

-1.00

$15,000.00

-$15,000.00

10/6/2017 Purchase order 05 Purchased

3.00

22,500.00

2.00

$37,500.00

$18,750.00

10/6/2017 Sales order 04 Sold

-1.00

-18,750.00 4)

1.00

$18,750.00

$18,750.00

 

Notes:

  1. The Cost per unit is 0.00. When the balance is negative, the system looks for a fallback cost to apply.
    1. First, the system looks for an active cost. This fails.
    2. Second, the system looks for cost set up in the Cost price field in the item master record. The cost is equal to 00.
  2. The Cost per unit is 7,500.00. The balance is still negative. The system looks for a fallback cost to apply.
    1. The system looks for an active cost. This succeeds.
    2. The latest cost price was set to Yes on the item record. The prior Purchase order unit cost of 7,500.00 has now become the active cost.
  3. The same condition applies as in number 2.
  4. The Cost per unit is 18,750.00. If the balance is positive at the time of posting the issue transaction, the system applies the average cost of the balance.
    1.  Average cost is calculated as: 37,500.00 / 2.00 = 18,750.00

The issue is that the inventory balance of 1 piece at 18,750.00 is overvalued because the item has never been purchased at a cost higher than 7,500.00. The reason for this overvaluation is that the first issue transaction leaves inventory at a cost per unit of 0.00. The wrong cost estimation will continue to ripple through the following transactions.

The only way to get the inventory balance back in sync is to run either the Recalculation or Inventory close jobs.

Financial date Reference Receipt Issue Quantity Cost amount Qty Value Avg. Unit cost
10/6/2017 Sales order 01 Sold

-3.00

-3.00

$0.00

$0.00

10/6/2017 Purchase order 01 Purchased

2.00

15,000.00

-1.00

$15,000.00

-$15,000.00

10/6/2017 Sales order 02 Sold

-3.00

-22,500.00

-4.00

-$7,500.00

$1,875.00

10/6/2017 Purchase order 02 Purchased

1.00

7,500.00

-3.00

$0.00

$0.00

10/6/2017 Sales order 03 Sold

-3.00

-22,500.00

-6.00

-$22,500.00

$3,750.00

10/6/2017 Purchase order 03 Purchased

3.00

22,500.00

-3.00

$0.00

$0.00

10/6/2017 Purchase order 04 Purchased

2.00

15,000.00

-1.00

$15,000.00

-$15,000.00

10/6/2017 Purchase order 05 Purchased

3.00

22,500.00

2.00

$37,500.00

$18,750.00

10/6/2017 Sales order 04 Sold

-1.00

-18,750.00

1.00

$18,750.00

$18,750.00

30/6/2017 Sales order 01

-22,500.00

30/6/2017 Sales order 04

11,250.00

1.00

7,500.00

 

The Inventory close will apply the selected Inventory model, in which case is FIFO, and then adjust the cost on the issue transactions accordingly.

Note: If the inventory balance is negative when executing the inventory close, the balance will not be adjusted. A full adjustment can only occur when the balance is positive, and enough receipts exist that can adjust the issues.

Conclusion

By default, all items should have an active cost. If you plan to allow temporary physical negative inventory, which is a valid scenario in certain business, its essential to apply an active cost before creating any transactions on the item.

WMSI/WMS2 item migration

$
0
0

Introduction

This blog describes the new capabilities that allow you to migrate existing items with open inventory transactions so they can use the new storage dimensions. This can be needed when you upgrade from older versions of Microsoft Dynamics 365 for Finance and Operations that supported the pallet dimension or if you want to use the Warehouse management functionality for existing items that were previously using WMS1 processes.

Typical migration scenarios:

  • You have existing items with the location dimensions enabled.
  • You have existing items with the location dimensions enabled and the pallet dimensions active.
  • You have existing items with the location enabled which are catch-weight items.

The goal when migrating items to use warehouse management enabled processes

The following setup is required to use an item in warehouse management processes:

  1. The item must use a storage dimension group that is set up to use warehouse management processes which means that the Inventory status dimension, the location and the license plate must be active.
  2. A reservation hierarchy must be assigned.
  3. A unit sequence group must be assigned.

The goal of the migration is to enable the items to meet the above  criteria and ensure that all related data is consistent with the items’ new settings allowing business processes to proceed after the migration.

 

High-level overview of the process

The upgrade process – blocking items

If you upgrade from a version that supported pallets the upgrade will identify the items that had the pallet dimension active and create a record in a new table called InventUpdateBlockedItem. This is done to block the items from all inventory processes because the item is configured using unsupported settings.

Items that are blocked must be migrated. The blocked items can be viewed in the Items blocked for inventory updates form.

The migration cockpit Change storage dimension group for items

The migration cockpit is simple. It allows you to enter the item ID of the items you want to be migrated and the new storage dimension group. If the item is to be downgraded from a group with the pallet dimension active, this is all you need.

If the item should be converted to use warehouse management enabled processes, you need to assign a reservation hierarchy and a unit sequence group.

The illustration below is a screenshot of the form.

Using entities to populate the data

You can use both OData which allows you to use Excel directly and data management to import and export the data.

OData

You can use the OData approach by clicking the Open in Microsoft Office icon and export the data to Excel. Once the information has been entered, the changes can be synchronized back.

Data management

For larger datasets, data management is the most effective. The entity is called Item storage dimension group change request and follows normal data management patterns.

 

Validation

Before the migration is started, the validation should be performed to ensure that the data is ready for migration. Several conditions are validated:

  • A default inventory status value must be defined
  • Inventory on-hand on pallets must not exist on non-license-plate-tracked locations
  • Inventory on-hand without pallets must not exists on license-plate-tracked locations
  • That the combination of the selected storage dimension group and reservation hierarchy is valid
  • If migrating to use warehouse management processes, the item cannot be enabled with catch weight

 

The list is not exhaustive, but it covers the most important validation points.

Starting the migration

The migration is started by clicking the Process changes button.

The migration supports parallel processing for parts of the process. The batch framework is used and the different steps will be handled by different batch tasks.

The recommendation is to set the Recommended number of parallel tasks field to two times the number of cores that are available. It is recommended to have a dedicated batch server for the migration since the migration is a heavy process due to the updates to the inventory dimensions.

Un-supported scenarios

Catch weight enabled items:  Catch weight enabled items are not supported in the new WHS. If such items exist, and they have the pallet dimension active, they will need to be downgraded to a dimensions group where only the location is active., Otherwise an ISV solution should be used.

Reserve Ordered transactions: Because of the way reservations work for warehouse management enabled items there are certain constraints on the state of the inventory transactions. If there are Reserved ordered transactions with a “hole” in the dimensions, the item cannot be converted.

A “hole” could exist for an item that has the batch dimension active and has the batch placed below the location in the reservation hierarchy. If a reservation exists on site, warehouse, batch, then the location is missing, which is what we refer to as a “hole”. This is not supported.

The mitigation is to either assign the missing dimensions or clear the dimensions so the “hole” is removed.

Customization that involves inventory dimensions

If you have customizations related to inventory dimensions that fall in one of these two categories:

  • New inventory dimensions field on existing table
  • New table with and inventory dimensions

You need to do something before you can use the migration process. Otherwise you will get an error like the one below:

Since a new inventory dimensions field exists, the system needs to know what actions should be taken for the dimensions in the table. This is done by implementing an event handler.

Three situations where an inventory dimension field is added:

  1. You do not want the data updated
  2. You want the data updated and the table has the itemId on it
  3. You want the data updated but the table does not have the itemId on it

 

In the below examples we will assume that we have added a table looking like this:

Handling situation 1 and 2

The below eventhandler illustrates how an eventhandler for situation 1 and 2 can be implemented. Here we want to update the dimensions related to the InventDimIdAllDimensions but not the dimensions in InventDimIdOnlyProductDimensions

[SubscribesTo(classStr(InventItemInventoryDimensionConversionTaskInitiator), delegateStr(InventItemInventoryDimensionConversionTaskInitiator, tableWithInventDimIdDiscoveredDelegate))]
    public static void tableWithInventDimIdDiscoveredStorageConversionDelegateHandler(
        TableId _updateTableTableId,
        FieldId _inventDimIdFieldId,
        InventItemInventoryDimensionConversionType _conversionType,
        EventHandlerResult _result)
    {
        if (_updateTableTableId == tableNum(MyOwnTableWithInventDimId))        {
            
            if (_inventDimIdFieldId == fieldNum(MyOwnTableWithInventDimId, InventDimIdAllDimensions))
            {
                InventItemInventoryDimensionConversionTaskCreator creator = InventItemInventoryDimensionConversionTaskCreator::newStorageConversion();
                creator.createTasksForTableWithItemId(
                    _updateTableTableId, //tableId of the table that should be updated
                    _inventDimIdFieldId, //fieldId of the inventDimId field that should be updated
                    fieldNum(MyOwnTableWithInventDimId, ItemId),  //fieldId of ItemId field
                    fieldNum(MyOwnTableWithInventDimId, DataAreaId)); //field id of DataAreaId
                _result.booleanResult(true); //we need to update
            }
            else if (_inventDimIdFieldId == fieldNum(MyOwnTableWithInventDimId, InventDimIdOnlyProductDimensions))
            {
                _result.booleanResult(false); //no update needed
            }
        }

Handling situation 3

Situation 3 is different since the itemId is on a different table. Here we need to write code specifically to the datamodel for the involved tables. The best approach is to follow the existing examples in the code. The InventBatchJournalResult table is a good example. This table is more complex because it has an InventDimId, but the itemId is on the inventBatchJournal table. The code below shows how this scenario is handled.

public class InventItemInventDimConversionInventBatchJournalLinePopulationTaskProcessor implements InventItemInventoryDimensionConversionITaskProcessor
{
    public boolean process(InventItemInventoryDimensionConversionTask _conversionTask)
    {
        var queryBuilder = InventItemInventoryDimensionChangePopulatorItemIdTableJoinedQueryBuilder::newFromParameters(
            _conversionTask.UpdateTableName,
            _conversionTask.InventDimIdFieldId,
            _conversionTask.DataAreaIdFieldId,
            tableStr(InventBatchJournal),
            fieldNum(InventBatchJournal, ItemId));

        InventItemInventoryDimensionChangePopulator::newFromQueryBuilder(queryBuilder).populateDimensionChanges();

        return true;
    }

}

Additional information

You can find more information as part of the product documentation:

https://docs.microsoft.com/en-us/dynamics365/unified-operations/supply-chain/warehousing/upgrade-migration-warehouse-management-processes

Customizing the warehouse mobile app: multi-scan pages

$
0
0

Introduction

This is another blog post in the series about warehouse mobile devices in Dynamics 365 for Finance and Operations. In the last blog post, the difference between customizing for WMDP and the warehouse mobile app was discussed. This blog post will be walking you through a new control scheme that was recently released, explaining how it unlocks new potential for partial offline processing in the warehouse mobile app.  This new functionality is called “multi-scan” and it enables a user to perform a series of offline scanning operations and then return them all to the server in one round trip operation. The goal for this control scheme is to allow for very quick scanning operations (many scans per second as an example) in high transactional warehouses where the standard model of a server round trip after each scan will not scale. Especially in sequential operations where the user does not need to look and verify on the device after each scan, but rather just need to register all scans in one go.

Multi-scan Functionality

If you download the latest version of the warehouse mobile app, you will have some new capabilities in the demo-mode which shows how this new control pattern works.  Once you have enabled the demo mode you should see the following menu:

Cycle counting is the flow we have enabled in the demo with multi-scanning to demonstrate the new capabilities.  It is designed to simulate a user performing a spot cycle count at a location in a warehouse or retail store where there are many items to scan. Currently this in only available in demo mode of the app, there is no support for this functionality when connected to a Dynamics 365 for Finance and Operations environment.

The first screen that is displayed is a location scanning screen – you can enter (or scan) anything in the demo mode here to move to the next screen.

Once you have scanned the location, the app enters the multi-scanning mode.  This is the new control that is being introduced in this release, so let’s go through the different UI elements that have been introduced to support this new flow.

This is the initial screen – you can tell it is the multi-scanning interface because of the new list icon in the bottom left corner; clicking the list icon will show you the list of items you have scanned so far. The checkbox icon in the bottom right is used to report to the app that you are done scanning and it is the only time the processing returns to Dynamics 365 – everything else will take place within the app locally on the device.

Once a worker starts to scan barcodes (or enter data manually into the app) the UI will change slightly.  Every item scanned will be added to an internal buffer and the number of items scanned will be displayed in the main UI.  For example – after a few scans the UI will now display the scanned count of three:

At any time, the user can click the list icon in the lower left, which will then display the list of items that have been scanned (in this example perhaps product barcodes in the location).  The UI for this looks like the following:

This lists the barcodes that have been scanned as well as a count of the times they have been scanned by the user.  This is very useful in the counting scenario, as a user can simply scan each product’s barcode to generate a count of items at that location.

You might note that there are two disabled buttons at the bottom of the screen.  These become active when a row is selected by the user in the list – as you can see below:

The edit icon on the left allows you to manually change the number of scans for the selected row. The icon on the right with the “X” deletes the selected row in case something was scanned accidentally.  

The edit icon will open a new screen with the numeric stepper UI allowing the user to quickly increment or decrement the number of scans or click on the value to open the numeric keyboard:

When clicking on the value, the numeric keyboard will open. As the number of barcodes cannot be negative, or integers, buttons that aren’t relevant for this use case has been disabled:

Returning to the main screen (by clicking the back button in the upper left corner) we are ready to submit the scanned list of items and their counts to the server. We do this by clicking the checkbox button in the bottom right – this is when we finally make the round-trip to the server and communicate with Dynamics 365. Later in the blog post the API will be explained and how to consume the scanned items and their quantities in X++ code.

In the demo flow, the next screen that is displayed is the following list of items which are not present in the location:

This is the second control pattern that we have introduced as part of this release – it allows a workflow to display a list of items (for example barcodes or product UPCs) and then allow the user to “scan to remove” from the list.  In this demo example we are displaying the items that were found in the cycle count but are not currently registered as on-hand for this location; the intention is that the warehouse worker would double check this list and scan any items that were indeed found as an extra validation check.  Scanning “T0001” in the above screen would then remove this from the list – and remember that this is all done client-side at this point. It is also possible to click on any value in the list and remove it.  Then when the user clicks that checkbox/submit button the new list of items would be submitted to the server for processing through a X++ workflow.

Custom Workflow

Hopefully that walkthrough gives you some idea of the capabilities we have added with these two new client-side control screens.  It is important to know that we have not currently added any multi-scan capabilities to the core product yet – the above cycle counting workflow is just a demo inside the app.  The goal of introducing these new control screens is to enable partners and customers to build new workflow-based solutions in the mobile app that support client-side driven scanning operations.  As such let’s walk through a simple customization example to show how the new control screens can be utilized in a real workflow.

Page Patterns

The way to enable the multi-scan screen is through a Page Pattern.  This might not be something you are aware of in the mobile app, as most of the time this is handled for you by the standard framework.  The Page Pattern is what tells the mobile app what type of UI to display on the device itself.  If you look at the WHSMobileAppPagePattern Enum you can see the different options available:

  • Default
    • This is the page pattern used for 90% of the screens in the app. It displays a primary scanning UI and a set of controls in the secondary tab – of which a few can be promoted to the first screen.  An enter and cancel button and an optional set of additional buttons in the menu are supported.
  • Custom
    • This Page Pattern is not used in many places in the core mobile flows – it is designed to allow partners to convert their old WMDP pages into the new model. Using this pattern will render the controls as it was done in WMDP  – each control simply vertically stacked in a single screen.
  • Login
    • This is used for the initial login page.
  • Menu
    • The Menu screens are rendered with this Page Pattern.
  • Inquiry
    • This Page Pattern support the workflows that allow the user to search for something and then see the results – such as LP or Item lookup screens.
  • InquiryWithNavigation
    • This is the Page Pattern that supports the Worklist view in the app. It is similar to the Inquiry pattern, except that includes some sorting options as well as the tiles are navigable.
  • MultiScan
    • This is the new pattern that has been added which will display the multi-scan UI shown in the demo above.
  • < MultiScanResult>
    • Note that as of the 8.1.1 release there is one missing and will be added in an upcoming release. If you want to enable a workflow to use the second screen described above – the “result list” of items, you would need to add a new Enum and return the value MultiScanResult. 

The actual job of returning the Page Pattern to the app is done through a class which derives from WHSMobileAppServiceXMLDecorator. This abstract class has a “requestedPattern” method that can be overridden to return the specific Page Pattern that is necessary.  This is typically done through a workflow-specific factory class that understands the correct workflow steps and thus can return the correct XMLDecorator class depending on the stage in the state machine.

For example – here is the standard factory class for the Work List functionality.  You can see that it typically will return the WHSMobileAppServiceXMLDecoratorWorkList object – which will render the work list Page Pattern as you would expect, however if the user has switched to the edit filter view then we need to display a different Page Pattern – thus the factory has the context to make this switch.

Multi-Scan API

Now that we know how to enable the Multi-Scan UI through a Page Pattern, we need to understand the basic API for passing the scanned items back and forth.  Once the MultiScan Page Pattern is requested, the first input control registered on the page will be used for the multi-scan input.  Remember that most of the UI interaction is all done client-side – so the only thing the server X++ code needs to do is define this control and the data that it contains.

When the user clicks that “submit” check box and sends the multi-scan data back to the X++ code, this is formatted in a very specific way.  The actual parsing of the data is done using the same interaction patterns as before – it will be stored in the result pass object for the specific control defined as the primary input of this page.  But the data will be passed in this format:

                         <scanned value>, <number of scans>|<scanned value>, <number of scans>|…

Thus, in my demo example above the data that the server would receive would be the following:

                         BC-001,2|BC-002,1|BC-003,1

In the X++ code you would then be responsible for parsing this string and storing the data in the necessary constructs.  We will see a simple example in a moment of how to parse this data.

Asset Scanning

The workflow I will demonstrate is very similar to some of the WHS workflow demos we have described in previous blog posts.  In this flow we will be scanning a container and then capturing all the “assets” that are stored in that container.  Imagine that these assets are very numerous and thus are stored outside of the standard batch tracking mechanisms in AX – they are implemented in the sample as a simple asset table associated with a container.  The assumption here is that scanning assets needs to be extremely quick and thus the offline “multi-scan” mode is the perfect solution.

The state machine for this workflow is similar to our previous examples – we will have an initial scan container screen, which will transition into the multi-scan enabled “Scan Assets” state – and finally when the list is returned we process the assets and return to the initial state. 

You can see this reflected in the core displayForm method below.  We will not be covering some of the lower-level details of the code – please review the earlier blog posts for details on the enums and control classes necessary to facilitate the new workflow.  All the code necessary for the solution can be downloaded at the end of the post if you want to dig into the details.

The getContainerStep is identical to our previous examples – it simply shows a simple UI and grabs the container ID from the user.  The getAssetStep method validates this container ID and calls the buildGetAssets method – which is where the UI for the multi-scan screen is built.  This is copied below:

As you can see this does not look much different that standard WHS code we have done previously.  The first input control (in this case the Asset ID field) will be used as the multi-scan field, but this code does not need to be modified in any way to support the multi-scan Page Pattern.  Instead what we need to do in ensure the correct Page Pattern is returned to the app during the correct workflow step.  To make this happen I have added a new DecoratorFactory class which will return a WHSMobileAppServiceXMLDecoratorMultiScan object at the appropriate step for my workflow – which in turn is what renders the Page Pattern to the app.

Please note the attribute at the top of this class – it is the same WHSWorkExecuteMode mapping attribute used for the WHSWorkExecuteDisplayAssetScan class in the code sample above.  This is how the framework knows that this specific decorator factory class is used for this work execute mode – the enum-based attribute ties these classes together through the sysExtension framework.  The key point here is that if you need a custom decorator factory to define when exactly to switch to multi-scan mode, the above example is how you will enable this.

In the final workflow step we need to process the incoming multi-scan results. As mentioned before these are returned to the server in the same way as normal data – it will simply look like a specially formatted string in the value of the input control.  Recall the discussion above with the format of the string being <scanned value>, <number of scans>|… In my simple example below, I am parsing this string using X++ and saving the assets to a new table associated with the Container.  In this case I am not making use of the second piece of information in the collection – the number of scans was not necessary in this case.

Hopefully it is clear how we loop through all the scanned assets and save each one to the new table.  After this is complete, we reset the workflow and move back to the first stage in the state machine.

Example Workflow

Now that you have seen the code to enable this in a custom workflow, let’s walk through this demo.  You can download the complete code for this project in the link at the bottom of this post – you just need to get it up and running on a dev environment and configure the necessary menu items to enable the workflow for your system.

The initial screen shows the Container ID scanning field.  Not that in the sample project I have included the necessary class to default this to the scanning mode – however you will need to set these up in Dynamics as defined here.

Scanning a container id (CONT-000000001 works if you are in USMF in the Contoso demo data) will navigate you to the next screen and enable the multi-scan Page Pattern.

Here you can enter any number of assets and the app will store them into the local buffer.  As we described above you can view the scanned assets by clicking the icon in the lower left.  After a few scans we would see the UI updated:

Clicking the list icon would show us the scans we have performed offline:

Finally clicking the “submit” button on the main screen will push the items to the server, which will then be saved to the custom table we have and the UI will display the success message.

Conclusion

Hopefully this help you understand the new control scheme that was added and how it can enable fast scanning operations.  The code used for this demo is available to download here – please note that this code is demonstration code only and should not be used in a production system without extensive testing.

The Dynamics 365 Marketing 2019 release wave 2 update is rolling out starting now!

$
0
0

The Dynamics 365 Marketing 2019 release wave 2 update is rolling out starting now! As usual, this release provides many performance improvements, reliability improvements, and bug fixes. It also includes the final versions of all features that were released for early access in August and September, plus a few new ones.

We’ll be rolling out the update on a region-by-region basis, and we expect them to be available to all regions by the last week of October 2019.

For ongoing information about recently released and planned new features, keep an eye on the Dynamics 365 and Power Platform Release Plan.

How to get the update

Dynamics 365 Marketing 2019 release wave 2 update is ready for use on all types of environments. We recommend updating all Marketing instances, including production instances, as soon as you can. As soon as the update is available in your region, youll be able to see and apply it as described inKeep Marketing up to date. You must manually update each instance.

For instances previously enabled for early access, this update will remove the early-access flag (thereby reverting them to standard instances) and apply the final versions of all available features.

New features added for October

In addition to finalizing all early-access features, Dynamics 365 Marketing 2019 release wave 2 also introduces a few new features.

New product branding

Starting now, weve shortened the name of Dynamics 365 for Marketing to Dynamics 365 Marketing. Youll also notice new app icons and a unified graphical identity across all Dynamics 365 apps.

New logos

Content last updated October 5th, to remove inaccurate statement that referenced the Common Data Service.

Full support for business units in Marketing

Large organizations with multiple customer bases often use multiple business units to manage their marketing data sets and campaigns. On top of these, a parent business unit often manages centralized reporting or creates templates to be propagated across all the child business units. The Common Data Service platform supports this model, and the Marketing app now supports this during all aspects of marketing execution, including: access to contact records, display of segment members, access to contact insights, availability of email templates, and more.

For more information, see Use business units to control access to Marketing records in the online help.

New save as segment buttons for blocked emails and stopped contacts

You could already generate segments that find contacts who produced various results on a selected customer journey tile, but now you can also generate segments that find contacts that were stopped or blocked during a specific journey.

To use this new feature, open a journey, go to its Insights tab and then select Incomplete journeys from the side-panel navigator. Select any of the reasons listed under Stopped contacts or Blocked emails and then select the Save as segment button

Save as segment button

. This generates a dynamic segment that finds all contacts who were stopped or blocked on that journey for that reason.

Incomplete journeys

For more information, see Generate dynamic interaction segments from customer journey results in the online help.

View milestones in the customer journey life cycle

Customer journeys pass through many states while you create, edit, and run them. You can now view a full history of these milestones for any customer journey. To see them, open any live or previously live journey, go to its Designer tab, make sure no tile is selected, and then view the Data panel.

Journey events

For more information, see Use customer journeys to create automated campaigns.

New design and design options for form-submission feedback dialog boxes

Marketing forms provide feedback to let your contacts know whether they have successfully submitted the form or if a submission error has occurred. Though this basic feature was already part of the product, we have improved the overall design and added a few new design options for the 2019 release wave 2 update. With the new version:

  • Users can now specify custom images for the submission-success and submission-failure dialog boxes.
  • Submission dialog boxes now use a single-window (CSS-based) mechanism rather than a browser pop-up window. The new dialog boxes work more smoothly and are more attractive than in the previous version.

The following image shows the new success dialog, where users can customize both the graphic (the green circle shown here is the default) and the message.

Form-submit dialog

For more information, see The form element for marketing pages.

Improved instance management and administration

Weve made it much easier to work with Marketing instances by removing the need to stop live records and manually uninstall Marketing when doing many instance operations. However, some special steps are still necessary for other types of operations, so be sure to review the updated documentation.

For more information, see Manage your Dynamics 365 Marketing instances in the online help.

New email language setting to control the language displayed for option sets in dynamic content

Option-set fields in the Dynamics 365 database can store display values in multiple languages. You can now define the language for each email message to ensure that dynamic data drawn from option-set fields will show the same language as the rest of the email.

For more information, see Set the email language in the online help.

Previous early-access features are now generally available

The features listed in this section were released for early access in August and September but are now generally available to all updated instances. If you never joined early access, then these are the great new features that you can expect to see when you apply the 2019 release wave 2 update. We already blogged about these in August and September, so well just summarize the features here, provide links, and point out any updates that weve added since early access:

  • Customer Insights integration
    The Customer Insights app for Dynamics 365 applies artificial intelligence to analyze rich pools of customer data collected from across other apps like Dynamics 365 for Sales, Service, and Marketing. Now you can export segments created in Customer Insights to create matching segments in Dynamics 365 for Marketing. Since the early-access release, weve improved the way segments in Dynamics 365 Marketing show details for segments exported from Customer Insights. For more information, see Use segments from Dynamics 365 Customer Insights with Dynamics 365 Marketing in the online help and the August release blog post.
  • Email A/B testing
    Use email A/B testing to test two slightly different email designs on a small part of a target segment to find out which design is more successful, and then automatically send the winning design to the rest of the segment. Since releasing the early-access version in August, weve added the ability to test all body elements, track the lifecycle of each test, and replace version A with version B after a test is over. Weve also improved the test-result display and introduced many functional improvements. For more information, see Design and run A/B tests on your email designs in the online help, the August release blog post and the September release blog post.
  • Multi-column layouts and formatting for all content designers
    Create multi-column layouts for emails, marketing pages, and marketing forms simply by dragging section elements onto your design. Each section element can now take on any of several different column layouts, plus set formatting options like border, padding, marketing, and background color. In early access, only emails were supported by this feature, and fewer formatting options were available. For more information, see Design your digital content and Section (layout) elements in the online help, the August release blog post and the September release blog post.
  • Easy subscription lists
    Create marketing lists that are preconfigured to work as subscription lists for Dynamics 365 Marketing with just a few clicks, right inside the Marketing app. This feature hasnt changed since the early access release. For more information, see Create a subscription list in the online help and the August release blog post.
  • Improved segmentation experience
    The early-access release introduced a new and much more intuitive segmentation designer. Since the early-access release, weve enabled the new UI to display legacy segments in the graphical designer, which means the designer also now supports the TRAVERSE operator. Weve also added a new display option so users can choose to view the segment designer in tree view or the new natural-language view. For more information, see Working with segments, and its related topics, in the online help and the August release blog post.
  • Support for adding a custom approvals feature
    Dynamics 365 Marketing provides an infrastructure with extensibility features that offer new possibilities for developers, and one way to take advantage of this new extensibility is to create an approvals feature, possibly including integration with Microsoft Flow. This feature hasnt changed since the early access release. For more information, see Build an approvals feature in the online help and the August release blog post.
  • View details about failed form submissions
    Every now and then, errors in form design or changes to system settings can cause form submissions to fail some or all of the time. Previously, failed submission were usually lost, but now the system will store what it can of erroneous submissions so you can examine them later and possibly recover key information from them. This feature hasnt changed since the early access release. For more information, see View and recover from failed form submissions in the online help and the August release blog post.

Bug fixes included with the 2019 release wave 2 update

The Dynamics 365 Marketing 2019 release wave 2 update fixes the following bugs on all instances:

  • In customer journey tiles, the default tile name now updates to match new email, page, or activity names for these and other records created using the New button on the tiles Properties
  • A label for one of the fields that helps identify templates in the template gallery for marketing pages was changed from Market type to Type.
  • All email, page, and form templates now include default height and width settings for all images
  • Confirmation emails are no longer sent to contacts who join a subscription list they already belong to.
  • The form-capture feature now correctly captures forms on pages that include multiple whitespace characters in the <body> tag of the page.
  • Leads generated by a captured form now correctly store values for option-set fields.
  • Previews for live emails with A/B testing enabled can now display both version B and version A.
  • Email A/B tests that are in-progress or finished can now display both version B and version A.
  • The form-capture feature now correctly receives submissions from forms that use a jQuery submit command to submit the form.
  • The form-capture feature now captures form fields with <input type = hidden>.
  • The form-capture feature now handles drop-down fields more reliably. When a Dynamics 365 Marketing user is setting up the form, the user is prompted to map each drop-down list option to a specific option-set value in the Dynamics 365 Marketing database, thus ensuring all possible input values are valid.
  • We fixed a minor issue that prevented a small number of organizations from upgrading successfully.
  • A/B testing now works for a test with a 20%/20% distribution of versions delivered to a segment of 5 contacts.

 

The post The Dynamics 365 Marketing 2019 release wave 2 update is rolling out starting now! appeared first on Dynamics 365 Blog.

Examples of extending Dynamics 365 Customer Insights with Azure ML

$
0
0

Dynamics 365 Customer Insights offers a platform to integrate customer data from various sourcesinto one unified view.This unified data presents a perfect starting point for building custom machine learning(ML)models to generate key business metrics. In an earlier blog, we saw how to bring custom ML models from Azure Machine Learning (AML) Studio to work with the unified data from Customer Insights. To accelerate the initial model development, we offer AML Studiobased model pipelines for three frequently encountered use cases:

  1. Churnanalysis
  2. Customerlifetimevalue (CLTV) prediction
  3. Productrecommendations

We will go over these models inmoredetail in this blog.

Hotel Scenario

We will use the Contoso Hotelscenario for the models discussed in this article.AttheContoso Hotel,CRM data is gatheredandconsists of hotel stay activity. In this data, the information about the dates of stay are logged for each registered customer. Along with this, the data also contains information about the booking, room types, details of spend,etc.The data spans aboutfouryears from January 2014 to January 2018.

The second set of datais from customer profiles. These profiles contain personal information for each customer since they are registered with the hotel or since their first stay. This information includes name, birth date, postal address, gender, phone number,etc.

The third set of data includes useof other services offered by the hotel. For example, the use of spa, laundryservices,WiFi, courier,etc. This information is also logged for each registered customer. Typical use of services is linked with the stay, but it is not required;in some cases, the services can be used by customers without actually staying in the hotel.

Churn Analysis

Churn analysis can be performed in different situations (e.g., retail churn, subscription churn, service churn, etc.). In this example, were going to look at service churn, specifically in the context of hotel servicesas described above.Although it may not cover allofthe scenarios explicitly, the model will provide insights into all the steps in building a custom model using Azure ML andCustomer Insights. It will also provide a working example of an endtoend model pipeline that can be used as a starting point for any other type of churn model.

Definition of Churn

The definition of churn can differ significantly based on the scenario. In this case of hotel activity, our definition isif a customerhas not visitedthe hotel inthe pastyear,s/he should belabeled as churned.

As described inourprevious blog,the AML Studio experiment can be imported fromthegallery.Below is a screenshot of the import blocks that read these tables from the Azure blob storage location.

Import data for Churn Model

Featurization

Based on the definition of churn,we first identify the raw features that will have some causal effect or impact on the label. Then, we further process these raw features into numerical features that can be used with ML models.Data integration happens in Customer Insights so as a result, joining these tables can be done by simply using the Customer ID created byCustomer Insights.

Featurization for Churn Model

The featurization for building the model for churn analysiscan be a little tricky. The problem is typically cast as a static problem like image classification; however, the underlying data is not static like a set of images. The data is a function of time with new hotel activity recorded on daily basis. Hence, featurization should take this into consideration and generate static features from the dynamic data. In this case, we generate multiple features from hotel activity with a sliding window ofoneyear. We also expand the categorical features like room type, booking type, etc. into separate features using the technique of one-hot encoding.

The final list of features isshown below:

NumberOriginal_ColumnDerived Features
1Room TypeRoomTypeLargeCount,RoomTypeSmallCount
2Booking TypeBookingTypeOnlineCount,BookingTypePhoneCallCount
3Travel CategoryTravelCategoryBusinessCount,TravelCategoryLeisureCount
4Dollars SpentTotalDollarSpent
5Check-in and Checkout datesStayDayCount, StayDayCount2016, StayDayCount2015, StayDayCount2014,StayCount, StayCount2016. StayCount2015, StayCount2014
6Service UsageUsageTenure,ConciergeUsage,CourierUsage,DryCleaningUsage,GymUsage,PhoneUsage,RestaurantUsage,SpaUsage,TelevisionUsage,WifiUsage

Model selection

Once the feature set is ready, the next step is to choosetheoptimal algorithm to use. In this case, we have majority of features coming out of categorical features.Typically,in such situations,decisiontreebased models perform well. In case of purely numerical features,neural networks could be a better choice. Support vector machine (SVM) also is a good candidate in such situations; however, it needs quite a bit of tuning to extract the best performance. We choose gradient boosted decision tree asthefirst model of choicefollowed by SVM asthesecond model. AML Studio lets you performA/B testing of two models to compare and contrast. To make better use of this, its always beneficial to start with two models rather than one.

The following image shows the model training and evaluation pipeline from AML Studio.

Train-Score-Evaluate for Churn Model

We also apply atechniquecalled “Permutation Feature Importance. This is a crucial aspect of model optimization. Allofthe built-in models present a black box model with little to no insight into the impact of any specific feature on the final prediction. The feature importance calculator uses a custom algorithmto compute the influence of individual features on the final outcome for a specific model. The feature importances are normalized between +1 to -1. The negative influences essentially mean that the corresponding features have counter intuitive influenceon the outcomeand should be removed from the model. Higher positive influence indicates that the feature is contributing heavily towards the prediction. These values should not be confused with correlation coefficients as they are completely different metrics. For more details, see Permutation Feature Importance.

Completing the integration withCustomer Insights

Once the training experiment is complete and the resulting metrics are acceptable, we can create a predictive service as described in the previous blog.Make sure the predictions are accompanied with the customer IDs fromCustomer Insights. After that the predictions can be exported to the same blob storage and ingested back intoCustomer Insights.

The entire churn experiment is available in the Azure ML gallery.

Customer lifetime value (CLTV)prediction

The customer lifetime value (CLTV) calculation is one of the key metrics that a business can use to assessand segmentits customers. Forthehotelbusiness, it iscriticalto know their customers.For instance, understanding the differencebetweencustomers thatbring more valueversusthe customers that dontcan provide crucial information to hotel management. This type of segmentation can help hotel management assess which features they need to focusonand improve to satisfy their high paying customersagainstfeaturesthatarelessimportant. These decisions can have a direct impact on sales and earnings. In this example,we will define the CLTV as the cumulative amount brought in by the customer in the designated time frame.

Definition of CLTV

In this context we are going to define the CLTV of a customer as of today, as the total dollar amount the customer is expected to spend in the next365 days or 1 calendar year. We are going to use the past three years’ worthof data for all customers to predict this value.

Featurization

In this case, featurization is going to be quite similar to the churn scenario; however, the label and predicted values are different than defined above.

Model selection and training

Predicting the CLTV is a regression problem as the predicted value is a positive valued continuous variable. Based on the feature properties, we select Boosted Decision Tree Regression as one algorithm and Neural Network Regression as another algorithm to train the model.Train-Score-Evaluate for CLTV Model

Completing the integration with Customer Insights

As described in the churn model, the output of the CLTV model is tied with Customer IDs and ingested back into Customer Insights for further analysis.

The entire CLTV experiment is available in the Azure ML gallery.

Productrecommendation or Next Best Action

Product recommendation in the context of the hotel scenario is interpreted as recommending services offered by the hotel to the customers. The objective is to choose the appropriate services for customers so that their usage is maximized. The problem is similar to the problem of movie recommendations for video streaming service users.

Definition of Product Recommendation or Next Best Action

We define the goal as maximizing the dollar amount of service usages by offering the best matching services to hotel customers according to their interest.

Featurizationand Training

Similar to the churn model, we are joining the hotelServiceCustomerIDwithCustomerIDin order to build recommendations consistently perCustomerID.

Featurization for Next Best Action Model

As described in the beginning, the data is sourced from threedifferent entities and features are derived from them. The featurization for the problem of recommendation is different compared to churn or CLTV scenarios. The recommendation model needs input data in the form of threesets of features. One set of features represents the past usage of services by the customers, and thesecondset representsthe details of each service itself and the third set represents the details of the customers.

We use the algorithm called Matchbox Recommender to train the recommendation model.

Matchbox Recommender Model

From the figure above, thethreeinput ports for the Train Matchbox Recommender model takes in the training service usage data, customer description (optional), and service description.There arethreedifferent ways of scoring the model. Oneis for model evaluation where an NDCG score is computed to evaluate the rated items rank. In this experiment, we have NDCG score as 0.97.The other two options are scoring the model on the entire recommendable service catalog or scoring only on items that users have not used before depending on the business requirement.

Looking further on the distributions of the recommendations on the entire service catalog, we notice thatphone,WiFi, andcourier are the top services to be recommended. This is consistent with what we found from the distributions of the service consumption data:

NBA Model Insights into Features

The entire product recommendation experiment can be accessed in Azure ML gallery.

More information

Readour Team blog to stay up-to-date with the latest features and ongoing innovation.

Engagewith us on our Community siteand provide ideas and feedback on the product.

The post Examples of extending Dynamics 365 Customer Insights with Azure ML appeared first on Dynamics 365 Blog.

Announcing Dynamics 365 Commerce preview

$
0
0

Dynamics 365 Commerce, now in preview, delivers a complete omnichannel solution that unifies back-office, in-store, and digital experiences built on Dynamics 365 Retail capabilities.

Retail is one of those industries that everyone can relate to. Shopping is ingrained in our daily lives, with todays consumer demanding engaging and integrated shopping experiences across storefronts–physical stores, online and mobile. As traditional commerce channels are disrupted and new ones emerge, shoppers have ever-greater control of their experience, from researching product price and quality to maximize the value of every dollar spent, to purchasing from the brand that offers the most personalized, convenient service.

With this power shift comes a great opportunity for retailers. Those that use modern tools and insights at their disposal have the opportunity to close the gap between the smart online consumer and the offline retailer, and thereby stand out in an ever-competitive marketplace. Traditional retailers are also tasked to bring together historically isolated and disconnected shopping channels to deliver seamless shopping experiences to their customers.

To meet the growing demands, retailers need a modern, flexible cloud commerce solution that will help them be nimble, compete better, and build lasting relationships with their consumers. An intelligent solution that creates rich, customer-first experiences at all touchpoints and that is seamlessly tied with backend operations is critical. Unifying data across all the siloes and leveraging a data driven approach, retailers can attract customers through personalized experiences, deliver merchandise that they desire on their terms, while providing employees with tools and information for ultra-responsive customer service.

Delivering a true connected commerce experience

Today we’re proud to announce the preview of Dynamics 365 Commerce. Built on the proven Dynamics 365 Retail capabilities, Dynamics 365 Commerce delivers a comprehensive omnichannel solution across web, physical stores, and call center channels.

It provides seamless merchandising, inventory, order management, warehousing and financials that is differentiated through integrated clienteling, AI driven personalization, fraud protection, and search. In addition, Commerce supports the market leading capabilities of Power Platform to deliver analytics, business workflow orchestration as well as easy ways to extend the solution to make it your own.

Dynamics 365 Commerce introduces e-commerce functionality to the Dynamics 365 family which includes the creation of digital experiences using built-in web authoring and development tools to produce engaging and intelligent digital storefronts. An integrated content management along with headless commerce engine further enables the seamless management of content, assets, promotions, inventory, and pricing across all channels.

Screenshots of Fabrikams retail commerce desktop home page and mobile app

The e-commerce technology behind Dynamics 365 Commerce has been driving Microsofts own digital storefronts for many years to deliver great experiences to customers across the globe. We are bringing this proven technology to our Dynamics 365 Commerce customers to deliver a world class, scalable, compliant and secure solution for their omnichannel needs.

Digital transformation at Ste. Michelle Wine Estates leverages Dynamics 365 Commerce

Ste. Michelle Wine Estates has a long history in the Pacific Northwest and is counted as one of Washington States founding wineries. They have a reputation of delivering exceptional wines, supported through scores of awards, pared with amazing customer experiences. By partnering with Microsoft, they are building a comprehensive commerce platform that knits together 14 distinct brands, multiple sales channels including wholesale, online and retail. As an early preview customer, Ste Michelle Wine Estates is starting by transforming one of their premium brands, Col Solare, and will then expand this functionality across other brands. By implementing Dynamics 365 Commerce Ste. Michelle Wine Estates will:

2) Chateau Ste. Michelle winerys wine on shelves.
  • Provide their customers with elevated digital experiences
  • Transform the way they do business with an end-to-end omnichannel solution across physical and digital channels
  • Develop deep insights and leverage advanced decision-making capabilities the company needs to continue to modernize

Our approach to unified commerce

Dynamics 365 Commerce enhances retail and customer experiences by delivering across five key priorities:

  • Everything to build and run digital commerce and modern store operations
  • Build loyalty and exceed customer expectations
  • Enable flexible and intelligent omnichannel experiences
  • Streamline operations using cloud intelligence
  • Deliver a scalable, reliable, secure and compliant solution

These priorities, supported through a connected data platform, can create seamless and personalized shopping experiences, increase employee productivity, optimize operations, and deliver better business outcomes.

Everything to build and run digital commerce and modern store operations

According to a recent study by BRP, 51 percent of consumers feel it is important to get a personalized experience across all digital channels within a brand.

Dynamics 365 Commerce makes e-commerce authoring and enriching pages easy with a robust set of tools to support new and experienced developers. With a built in content management system and digital asset management capabilities, the solution streamlines digital commerce processes and improves operational excellence. A modern web rendering platform is designed to deliver simple, yet comprehensive capabilities including the option for complete extensibility to enhance and deliver content rich and immersive web experiences for customers. Digital insights are not isolated to online. Employees are empowered in a physical stores environment to utilize digital tools on mobile devices to better serve customers by bringing assisted selling, line busting, special ordering, and endless aisles to life, while integrated store inventory processes and task management make them efficient and productive.

Build loyalty and exceed customer expectations

Dynamics 365 Commerce app profile of customer displaying their recent activity and recent purchases

According to Accenture, 91 percent of consumers are more likely to shop with brands who recognize, remember, and provide relevant offers and recommendations.

Personalization is no longer an optional component for retailers. Shoppers have come to expect web experiences that surface relevant information based on their preferences and purchase history. Dynamics 365 Commerce brings with it a range of clienteling tools that give retailers and sales associates the insights to respond to customer needs at every level of engagement.

AI driven recommendations, and customer insights as well as loyalty capabilities are all easily accessible and flow across physical and digital channels thereby enabling retailers to deliver consistent experiences that elevate their brand appeal.

Enable flexible and intelligent omnichannel experiences

According to PWC, consumers are willing to spend up to 16 percent more on products and services with companies that offer a better experience.

Retailers that are currently still operating with disconnected channels are not only creating frustration for customers, but are also driving inefficiencies in their business operations by isolating integral business data like inventory, pricing, and promotion information across channels. Dynamics 365 Commerce helps deliver frictionless engagement across physical and digital channels, allowing customers to purchase when, how, and where they want on any device including the following key capabilities:

  • Out of the box cross channel experiences like buy online pick up in store, buy online return in store etc.
  • Leverage physical store as a warehouse to deliver products faster to customers
  • Consistent and immersive experiences across channels through intelligent search powered by Bing
  • User generated product ratings and reviews available in all channels to drive conversion
  • Customer can take advantage of wish lists, inventory visibility, gift cards, and loyalty programs to further enrich their shopping experience.

Streamline operations using cloud intelligence

Accordingto a report by Econsultancy, 52 percent of companies face challenges connecting the dots between data stored across different parts of their organization.

Dynamics 365 Commerce app analytics dashboard.

Intelligence is the fuel that helps businesses transform. By infusing intelligent technology into their business operations retailers can gain insights that enable them to drive growth and maximize operational efficiencies. Insights can be derived by visualizing and analyzing comprehensive and consistent data across all aspects of their business.

Key capabilities include:

  • AI driven product recommendations to upsell and cross sell while delivering personalized experiences for shoppers
  • Comprehensive data across web and physical stores as well as back office operations in a consistent format that allows for omnichannel analytics and insights
  • Integrated AI driven payment fraud protection capabilities to improve shopper experiences while minimizing fraud related costs and increasing revenues
  • Intelligent order orchestrations delivered by distributed order management for reducing operational cost while improving speed of delivery to customers
  • AI driven user content moderation to ensure accuracy and legitimacy
  • AI driven validation of web content for accessibility issues
  • Automated video streaming capabilities to provide rich customer experiences that elevates brand appeal
  • Integrated merchandising, inventory, pricing, and promotions to innovate faster and stay ahead of competition

Deliver a scalable, reliable, secure, and compliant solution

Accoridng to a report by Zebra, 50 percent of companies are implementing planning and forecasting technologies, with an additional 32 percent increase in investments by these companies in the next year.

Undertaking a transformation that impacts the core of a retailer business is not done light heartedly. Retail companies are looking to technology partners to help them deliver solutions that are grounded in trust and understanding of their business needs. Dynamics 365 Commerce offers flexible deployment options supported by robust SLAs, global compliance, and security standards, along with configurable and extensible developer options. Dynamics 365 Commerce also uses a unique solution to help retailers in areas where infrastructure is lacking. By using Scale Units, retailers can ensure they are not only able to transact at all times but also scale their operations globally to operate large multi-brand, multi-company, multi-national organizations.

Dynamics 365 Commerce will enable retailers to build brand loyalty through personalized customer engagements, increase revenue with improved employee productivity, optimize operations to reduce costs and drive supply chain efficiencies, ultimately delivering better business outcomes.

Learn more at the Business Applications Virtual Launch Event

Attend our Virtual Launch Event on Thursday, October 10th— streaming live at 8:00 am Pacific time, then on-demand–for a look at Dynamics 365 Commerce and all the other new innovations coming to market. Be sure to register for updates and reminders leading up to the event. Register now

The preview for Dynamics 365 Commerce is available now. Request a preview to evaluate for yourself or contact us to speak with a Microsoft expert or Microsoft partner near you.

The post Announcing Dynamics 365 Commerce preview appeared first on Dynamics 365 Blog.

Protect your e-commerce business with Dynamics 365 Fraud Protection

$
0
0

Big data AI is no longer a fantasy, but a reality. The AI marketspace is delivering real solutions for real world problems. Currently, e-commerce retailers are faced with fraud losses daily; reduced revenue, increased operational expenses, and wrongful rejections are just some of the impacts fraud creates on a local and global scale, all of which contribute to a suboptimal experience for customers. Current approaches to fraud protection solutions require account creation and customers to complete multi-step authentication, forming barriers within the ecommerce channel.

Microsoft, at the forefront of innovation as a global e-commerce technology leader, is equally impacted by fraud, necessitating a fraud protection system that can help safeguard more than a billion transactions a year and deliver the best shopping and purchasing experiences possibleboth at the same time. Microsoft developed Dynamics 365 Fraud Protection as an application designed to provide the best fraud protection to fulfill both Microsofts, and our customers needs. It provides the agility and capabilities to apply adaptive AI and operation research to millions of assessments necessary, which puts merchants at ease.

Microsoft Dynamics 365 Fraud Protection benefits

Dynamics 365 Fraud Protection Helps increase revenue, reduce operational expenses, seamless shopping experience, decrease wrongful rejects and increase bank acceptance rates, reduce fraud losses and manual review expenses.
Dynamics 365 Fraud Protection helps increase revenue, reduce operational expenses, create a seamless shopping experience, decrease wrongful rejects and increase bank acceptance rates, and reduce fraud losses and manual review expenses.

Over the last 2 years, Microsoft Dynamics 365 Fraud Protection has saved Microsoft more than $76 million in incremental fraud costs by reducing fraud losses and manual review rates, as well as helping boost revenue by hundreds of millions of dollars. Now all online merchants can use Dynamics 365 Fraud Protection to help reduce fraud and its related costs, increase revenue, and deliver better buying experiences with lower friction and more support.

Dynamics 365 Fraud Protection is comprised of three unique offerings that can work in parallel:

  • Diagnose a risk-free assessment using three months of customer data to provide insights to the potential revenue boost Dynamics 365 Fraud Protection could provide.
  • Evaluate an API integration, by comparing insights in real time with real world data to current solution(s) that are being used.
  • Protect the full solution to help safeguard e-commerce retail from fraud threats.

Get started with Dynamics 365 Fraud Protection - Diagnose: analyze your historical data to quickly gain fraud insights in your environment using previous 3 months data, Evaluate: test using real time transactions and compare to your incumbent solution, Protect: use as your primary assessment tool in production environment.
Diagnose: analyze your historical data to quickly gain fraud insights in your environment using previous 3 months data, Evaluate: test using real time transactions and compare to your incumbent solution, Protect: use as your primary assessment tool in production environment.

Dynamics 365 Fraud Protection is an innovative solution with five powerful capabilities designed to capitalize on the strength of machine learning to provide merchants with an innovative fraud solution:

  • Adaptive AI technology continuously learns and adapts from patterns and equips fraud managers with tools to optimize fraud controls.
  • A fraud protection network maintains up-to-date connected data that provides a global view of fraud activity and maintains the security of merchants confidential information and shoppers’ privacy.
  • Transaction acceptance booster shares transactional trust knowledge with issuing banks to help boost authorization rates.
  • Customer escalation support provides detailed risk insights about each transaction to help improve merchants customer support experience.
  • Account creation protection monitors account creation, helps minimize abuse and automated attacks on customer accounts, and helps to avoid incurring losses due to fraudulent accounts.

How Dynamics 365 Fraud Protection complements the existing payment authorization flow for better fraud assessment and signaling to issuing banks:

Innovation: Shared intelligence with issuers - Deep bank partnerships help improve acceptance rates.
Deep bank partnerships help improve acceptance rates.

How global data is used to benefit all: Dynamics 365 Fraud Protection is architected to bring global data across participating merchants together in a secure and privacy-aware way to enable improved fraud protection across the ecosystem.

Innovation: The fraud protection network - The fraud protection network delivers shared insights. Pooled deidentified data across merchants helps detect fraudulent transactions faster and reduce fraud losses.
The fraud protection network delivers shared insights. Pooled deidentified data across merchants helps detect fraudulent transactions faster and reduce fraud losses.

As a global e-commerce leader, Microsoft cares about the bottom line just like you, and encourage you to learn more by visiting the web page Microsoft Dynamics 365 Fraud Protection and viewing the product video.

Virtual Launch Event for a closer look at Dynamics 365 Fraud Protection

We invite you to attend our Virtual Launch Event on Thursday, October 10th streaming live at 8:00 am Pacific time, then on-demand, for a look at Dynamics 365 Fraud Protection and all the other new innovations coming to market.Be sure to register for updates and reminders leading up to the event.

The post Protect your e-commerce business with Dynamics 365 Fraud Protection appeared first on Dynamics 365 Blog.


Watch the Microsoft Business Applications October Virtual Launch Event

$
0
0

The Microsoft Business Applications virtual launch event for the 2019 wave 2 release is just two days away, streaming live this Thursday morning! Don’t miss this opportunity to get a first-hand look at the new innovations were rolling out for Dynamics 365 and the Microsoft Power Platform. Register today for this free event, and then tune in to the live stream on October 10, 2019 from 8:00 AM 9:30 AM Pacific Time.

Youll get an in-depth look at the new capabilities announced in the 2019 wave 2 release across Dynamics 365 and the Microsoft Power Platform. James Phillips, Corporate Vice President of the Business Applications Group, and other Microsoft experts will demonstrate new applications and features, guide you through the new updates, and discuss what these releases mean for your business.

Learn how these new Dynamics 365 and Power Platform features and applications will help you:

  • Reimagine how you engage your customers, proactively and across every channel.
  • Create a flexible, scalable platformto extend existing applications, build new solutions, and integrate your choice of technologies.
  • Make fast and informed decisions, quickly adapt to changing market demands, and drive rapid business growth.
  • Use enhanced artificial intelligence capabilities in Dynamics 365 to accelerate the transformation of customer service, sales, and marketing functions.
  • Unify your relationships, processes, and data for greater impact across applications and ecosystems.
  • Build higher-quality apps more easily and better engage your customer and partners using PowerApps Portals, AI Builder, and enhancements to Microsoft Flow

With updates, insights, and demonstrations directly from the experts, youllbetter understand how toleverage thesenew technologiesas part of your organizations digital transformation initiatives.

Onboard the new capabilities in Dynamics 365 and Power Platform with confidence prepare for the updates, read the Dynamics 365 and Power Platform release plans, and then tune in on October 10.

Unlock whats next for your business: Watch the virtual launch event today!

Register today for the MIcrosoft Business Applications Virtual Launch Event

The post Watch the Microsoft Business Applications October Virtual Launch Event appeared first on Dynamics 365 Blog.

Defining customer experience and customer engagement

$
0
0

Technology is fueling seismic changes in customer expectations. Research shows that customer expectations continue to rise year over year, while businesses continue to struggle to meet these ever-changing expectations. In response, many businesses are transforming how they understand and value the customer over every channel across the entire customer life cycle.

Customer experience and customer engagement are significant to a companys overall success. But creating a positive customer experience and increasing customer engagement can seem like moving targets. Plus, confusion can arise as these terms are often used interchangeably. Understanding the difference is key to achieving both.

Customer experience (also known as CX) is how customers perceive their interactions with your company. The first half of the definition focuses on perception, where the experience is positive, useful, and enjoyable. The second half focuses on the exchange, the two-way interaction with the brand. CX is the customers emotional, physical, and psychological connection with your brand, stemming from a product, system, service and/or channel interactions. CX considers the context and empirical aspects of the interaction and the customers perceptions. Simply put, customer experience is about a moment in time and the memory of that moment.

Customer experience is one of the primary differentiators that businesses can exert control. By 2020, some analysts predict customer experience will overtake price and product as a key brand differentiator. Its not easy, but CX should be measured against customer expectations across all touch points. Was the customer satisfied, frustrated, angered, or delighted? Did the interaction meet the customers expectations? When customers navigate to your website, contact your call center, visit a retail location, make a purchase, use your product, and reply to your emails, they’re making judgments about whether or not you satisfy their needs, are easy to do business with, and whether their experience is positive.

For the customer experience to be great, every interaction along the customer journey must be exceptional, which doesnt start and end within one department. The entire organization needs to work together to deliver a positive customer experience. When marketing, sales, operations, finance, and customer service departments operate independently, and are measured by different key performance indicators (KPIs), delivering a consistent positive customer experience can be a significant challenge.

Customer engagement

Customer engagement differs from customer experience. Customer engagement is the ongoing, value-driven, emotional relationship between the customer and the business. Its not the memory of one moment, but the sum of all momentsthe customers overall emotional connection arising from the totality of experiences with the company. This includes direct, indirect, offline, and online interactions, as well as the actions that the customer might takeposting, emailing, tweeting, liking, recommending, buying and so on.

If you provide a positive customer experience, your customer should become more engaged. Highly engaged customers buy more and are advocates of your brand. They refer friends, write positive reviews, and are more loyal. However, all it takes is one negative experience to damage the memory of the entire customer experience and the association with a brand. This can ultimately lead to a disengaged customer, who can act on their dissatisfaction by purchasing from competitors and letting others know.

Understanding the difference between the customer experience and customer engagement is critical. Customer engagement goes beyond managing individual experiences from each touch point to include all of the ways companies motivate customers to invest in an ongoing relationship with a brand or product. More and more customer interactions spanning across more and more touch points are shaping the amount of engagement a customer has with your company. Knitting together each experience and focusing on the customer journey will generate greater engagement and a positive ROI.

Measuring customer experience

Its clear that the customer experience is integral to customer engagement, as a better customer experience generates better customer engagement. But how does a company measure the customer experience to identify gaps? What are the areas that need improvement?

Get customer feedback. An overwhelming 90 percent of customers want to provide feedback about their experience with you and your product, while only 37 percent are occasionally given the opportunity to share. This frustration can be easily fixed through an automated email survey. Surveys can provide a wealth of information. However, surveys wont help if you fail to analyze the responses.

Understand churn. Churn is natural in business, but understanding when churn happens can help you prevent churn in the future. Regularly analyze your churned customers so you know whether your churn rate is increasing or decreasing, and what action you can take in the future to prevent a similar customer from moving on.

Solicit ideas from comments on products and features. This is similar to customer feedback, but in a community forum where your customers can request new features, share new ideas about products or share problems theyre trying to resolve. Give customers the opportunity to proactively offer suggestions and actively monitor the forum and participate. If there are recurring topics, it may be a sign you may need to do additional research into product development.

Analyze support ticket trends. Review your customer or field service support tickets for recurring issues that are causing customer angst and/or are taking significant agent time to resolve. The solution could be as simple as an edit to a product manual, a new quick start guide or an update to an online FAQ.

Get the right tools. It can be daunting to create positive customer experiences across all channels and touchpoints when customer data is fragmented into silos within a confusing landscape of independent applications and disparate departments. Most companies struggle to measure performance over time and across channels, and are unable to identify areas for growth and remove barriers to improving productivity. Without measurable insights into your customer experience, a lot of time and budget can be wasted pursuing unicorns. Instead get the right tool to unify and measure your data so you can easily glean valuable insights and take informed action to improve the customer experience, boost engagement, and strengthen loyalty.

Microsoft Dynamics 365 Customer Insights is an easy to implement and use application to help you personalize the customer experience by unifying data, presenting a 360-degree view of the customer, and helping you discover insights to further drive a positive customer experience. Using historical customer data and machine learning models, organizations can derive insights that empower employees across all lines of business to deliver the best message or service for every customer scenario. From marketing advertisements based on customer search histories to next-best-offer sales suggestions based on past purchases or interests, and proactive customer service support leveraging predictive analytics and anomaly detection. Dynamics 365 Customer Insights enables cross-department alignment on every interaction a customer has with your organizationfrom sales and marketing to finance and operations, and customer servicecreating a seamless customer experience across the organization.

Remember, building positive customer experiences that increase customer engagement isnt magic. Its hard work, but its work that pays off with strengthened customer loyalty and increased revenue. Dont forget that acquiring a new customer is anywhere from five to 25 times more expensive than retaining an existing customer. Focusing on the customer experience and deepening customer engagement is not only critical, its the most cost-effective strategy for long term success of your business. Companies that create positive customer experiences, and design and execute an effective customer engagement strategy will fast track forward, leaving the competition behind.

Learn more about Dynamics 365 Customer Insights today.

The post Defining customer experience and customer engagement appeared first on Dynamics 365 Blog.

Celebrate Customer Service Week and the agents who make it all happen

$
0
0

Customer Service Week is this week, October 7-11, and it certainly feels like an opportune moment to reflect on how much has changed in the customer service space over the past year. For those of you who understand what goes on behind the veil of customer service, you know how it feels to get in that groove of providing answers and support, knowing youre helping to improve someones day. You also know how crucial it is that the tools you use to get your job done dont fail you in the middle of said groove.

The general understanding of a contact center is rather simple: call in and get an answer. Period. However, anyone who has ever worked in a contact center knows the reality of how operations are run, and that general understanding is far from simple. Running a contact center takes strategy, analytical thinking, flexibility, and creativityand most of all, it takes grit.

How well you deliver customer service is really based on two factors: your customer service operating system and the people wielding the tools. There needs to be a balance and a harmony between the customer service application and the agents, because one is only as effective as the other. Your agents and your customer service application are equally important in this customer service equation and need to be in sync to maximize efficiency and productivity.

When agents and technology are off-kilter

If your customer service application is under-performing, then its safe to assume your agents are under-performing as well. For example, clumsy, ill-kept customer service knowledge bases lengthen issue resolution, as agents must dig through content to secure an answer. This increases call handling times, which in turn affects agent job performance and ultimately leads to agent turnover and poor customer satisfaction.

Perhaps worse than having a poorly maintained knowledge base is the absence of any customer self-service option at all. When self-service isnt an option, agents must carry the burden of handling even the most trivial customer inquiries, which takes their time and attention away from resolving more stimulating and challenging issues. Monotonous, repetitive tasks and the lack of intellectual stimulation are often cited as factors in agent turnover.

Consider the paradox of offering agents a high-performing customer service application but failing to adequately train agents on how to leverage the tools provided to them. Whats the value of a tool if the user doesnt know how to use it? Nails are of little use without a hammer. These are just a few of the imbalances that plague customer service organizations.

How to create a state of Zen in your contact center

First, since this is Customer Service Week, Id like to embrace the equation of balance and take time to honor every agents contribution and fortitude to resolve customer issues day in and day out. Its hard to imagine what the customer-brand relationship would look like without these dedicated stewards of customer care.

With this sense of gratitude in mind, lets look at some of the ways to create better balance within your customer service organization by leveraging technology to empower your people.

Offer a self-service portal

As previously mentioned, repetitive, mundane inquiries can erode an agents morale. This lack of challenge creates tedium, which can drive an agent to seek employment elsewhere. Rather than saddling agents with this monotony, create a self-service portal where customers can receive 24/7 support to answer the most common, easily-resolved questions. Since 66 percent of consumers opt to begin with self-service options before seeking help from a live agent, satisfy your customers needs for independent, immediate resolution by providing a self-service portal for routine inquiries. Give your agents time to tackle more complex issues when the simplest questions are being resolved on their own.

Automate, automate, automate

Free up agent time even more by automating warranty registrations, information on product deliveries, disseminating manuals and quick start guides, updating address changes, and billing inquiries. Customers can complete a form or answer a few questions, and then be guided to the right department or process to complete the task.

Virtual agents or bots are a great way to introduce automation to the self-service workflow. Bots can be created to assist customers in better defining their service needs and can guide customers to the right article or action. Bots can be designed to complement self-service options by navigating customers to the best knowledge article to find the best answer. Customer service bots should engage conversationally with customers using natural language processing, and if the issue is too complex, bots can provide a warm hand-off to your human agent. In this way, agents are challenged by only receiving the issues bots are unable to resolve.

Food for thought: beef up your knowledge base

After ensuring your self-service portal and virtual agents are established, and agents are spending their time on more complex issues, you can focus on leveraging your agents knowledge by having them help with ongoing knowledge base article updates. Your agents harbor a wealth of knowledge after spending most of their time on the front lines tackling customer questions and knowing which information is most pertinent in getting answers. Documenting agent knowledge is a great way to assess the skill set of your agents while sharing their expertise on a particular product or service. Plus, it offers variety to their workday and allows them to showcase their strengths.

Agents can also help create and maintain bots. Dynamics 365 Virtual Agent for Customer Service uniquely allows those closest to the customer to create bots without the need of a developer or data scientist. Your subject matter experts can update the bot with fresh content at-will, thereby avoiding the need for intermediaries, while learning something new.

Never stop learning

Continuous training and career advancement can help create balance. Keeping agents abreast of new customer service application features and processes can ignite agent interest and creativity around improving processes. Staying in-check with what agents know and are interested in can also lead to identifying agents based on skills or expertise in specific areas and can make it easier to set up a skills-based routing system. A skills-based routing system directs specific issues to specific agents based on that agents area of expertise. Segmenting agents based on expertise can increase first contact resolution rates while providing a sure-fire way for agents to successfully resolve issues they know the most about.

Provide the best toolbox

Of course, none of these suggestions will help create greater balance if you fail to provide your agents with the best tools available. You can create a portal, add bots, train, and incentivize your agents, but their performance will never be optimal if you dont give them the right toolset. To fully create a state of Zen, you need a customer service application that reflects your strategy, analytical thinking, flexibility, and creativitythat is, a customer service application designed to empower agents to succeed.

Microsoft Dynamics 365 Customer Service offers a rich toolset designed to arm your agents with exactly what they need for continued success. Dynamics 365 Customer Service offers a 360-degree view of the customer, including a complete customer history available on an intuitive and easy to use dashboard. This ensures agents have all the information they need to resolve issues quickly. And, with omnichannel capabilities, agents can resolve issues on the customers channel of choice, bridging the entire channel landscape and providing a single, seamless experience for the customer.

And thats just the beginning. Customer Service and Virtual Agent for Customer Service easily integrate with Dynamics 365 Customer Service Insights, an AI-enabled analytics program that identifies opportunities for improvement within customer service organizations. This set of customer service applications fuels your organization with a modern, efficient, and adaptive work environment that enables you to earn customers for life.

Now that is how you create a state of Customer Service Zen.

Get more information on Microsoft Dynamics 365 Customer Service.

Learn more about Microsoft Dynamics 365 Customer Service Insights and Microsoft Dynamics 365 Virtual Agent for Customer Service.

The post Celebrate Customer Service Week and the agents who make it all happen appeared first on Dynamics 365 Blog.

New scenarios added to Dynamics 365 Higher Education Accelerator

$
0
0

Dynamics 365 Higher Education Accelerator now includes internships, scholarships, grants, accomplishments, and more.

Technology is transforming how institutions engage with students and their constituents and improving student outcomes. Last year at Educause we released the Microsoft Higher Education Accelerator which provided a data model and sample apps and analytics tailored for higher education.

Along the way weve made updates, and today at Educause we announced additions to the Higher Education data model to include scenarios around business partner management. The Higher Education Accelerator now includes use cases around internships, scholarships, grants, and student accomplishments. Schools will now be able to track students who have applied for various positions offered by various business partners and track the status of students’ applications. The Accelerator also includes scenarios around student accomplishments which helps schools, business partners, and potential employers evaluate a students achievements outside their curriculum and extracurricular activities.

The Higher Education Accelerator includes a new research grant mobile app to easily view and take action on applications from Ph Ds and Doctoral candidates.

The Higher Education Accelerator includes a new research grant mobile app to easily view and take action on applications from Ph Ds and Doctoral candidates. In addition, you can experience a new student engagement bot and portal experience.

The Higher Education Accelerator includes a new student engagement bot and portal experience.

In addition, weve added new partners to our ecosystem who are building on top of the Common Data Model for Higher Education including Frequency Foundry and KPMG.

At Cambrian College, we have a vision: to motivate everyone who studies with us to use imagination, inspiration, and innovation to make the world a better place, no matter where they live in it. By partnering with Frequency Foundry to implement Dynamics 365 greymatter and the Microsoft Higher Education Accelerator, we can build stronger relationships with potential students from anywhere in the world. We will be able to better understand their needs, which will allow us to make their post-secondary education more accessible and effective. Were excited to use greymatter to change the world, one mind at a time. – Rene Scott, Director of Student Success and Recruitment, Cambrian College

You can test drive the new experience on AppSource today or access the preview in your own PowerApp or Dynamics 365 environment by filling out this short form. The Higher Education data model and Accelerator is free and open sourced and can be found on AppSource and GitHub.

The post New scenarios added to Dynamics 365 Higher Education Accelerator appeared first on Dynamics 365 Blog.

4 essential capabilities to make the most of AI in the workplace

$
0
0

To realize the benefits of AI, your business needs more than great technology and great data. Thats a given. You need tools and applications your employees will actually use that empower them to quickly develop solutions that drive efficiencies. Then, as they become more familiar with AI, that help them confidently reach for bigger outcomes. Lets look at specific AI capabilities that can empower your team to unlock your most ambitious digital transformation goals.

We believe AI is most useful and usable when its most accessible

But first well share a quick word on our vision for AI in the enterprise.

As described in our initial post in the Reimagining AI for Microsoft Business Applications blog series, we believe AI works best when its in the hands of people closest to a problem. When you let people devise their own solutions instead of scrambling to have someone do it for them, you enhance their competencies and magnify their impact. This opens the way to market differentiation and competitive advantage.

Sounds great, but how exactly do you make this happen? What technologies, capabilities, and policies help your people harness their know-how to achieve more with AI? How do you choose tools that wont sit on a proverbial shelf and will alternatively be readily adopted? Here are some criteria we consider essential to useful, usable AI.

Recommended capabilities for your AI evaluation checklist

  • AI integrated into everyday business workflows. Most AI implementations are set apart from the rest of an enterprises systems. This puts AI in somewhat of a gilded cage beautiful but inaccessible. If AI is embedded in everything you do as part of a modern workflow, business users without technical knowledge can create highly-effective AI solutions. This not only drives results but also builds satisfaction, because people naturally feel good about being able to achieve success using AI. And that has the added benefit of accelerating adoption throughout your company.
  • Relationships, processes, and data sources unified across applications. What good is all of your data if its trapped in business silos and hidden from view? Its much better for your data, business analytics, and insights to be unified on one platform, so that people throughout your organization can see the entire picture of a customers experience or fully comprehend a critical business operation. As a result, everyone has the knowledge to innovate to create more relevant customer experiences and more optimal processes.
  • An on-ramp to robust AI capabilities, not just a starter set. Its never desirable to put a ceiling on what people can accomplish. In order to create lasting change, your team needs to be able to tap into sophisticated AI products and guidance, not limited functionality. This means the tools need to be usable by people with domain expertise but be as full-featured as those of data scientists.
  • Scalable, flexible platform. It can be daunting to get started with AI. Many organizations begin by using a point solution to focus on a specific challenge, with plans to expand their use of AI as they develop in-house competencies and skillsets. This is a wise approach, but the AI system in place needs to be able to scale to accommodate additional users, data, and data sources, and many more applications across the enterprise.

We believe all these capabilities are vital to your success. Thats why we elected to infuse our AI as a core ingredient across our Microsoft Business Applications offerings. Check out the links below for a closer view.

Learn more

How do your employees benefit when you make AI accessible to all? How do they work smarter and faster? That’s the topic of our next post in Reimagining AI for Microsoft Business Applications.

The post 4 essential capabilities to make the most of AI in the workplace appeared first on Dynamics 365 Blog.

Customer Data Platform (CDP): It’s not just for B2Cs anymore

$
0
0

The CDP Institutes latest research indicates that 34 percent of B2B companies plan to start deploying a customer data platform (CDP) in the next year, compared with just 19 percent of B2C companies. B2Bs have significantly longer and more complex sales cycles that create huge volumes of data, and the relationship-driven nature of B2B business requires a persistent and holistic view of the customer across the entire customer journey.

Also, todays B2B buyers are changing the rules of the game. Accustomed to fast, frictionless, and personalized buying experiences in their everyday life as a consumer, they bring those high expectations to their roles as B2B buyers. They are technically savvy and comfortable engaging via digital channels, which means their data is scattered across different systems. Without unified customer data, its impossible for companies to personalize experiences with B2B decision-makers.

A CDP provides B2B organizations with the means to unify customer data and gain a complete view of customers. This unified data is the foundation for gaining insights, from better account segmentation to predictions about customer behavior, that drive intelligent and personalized experiences.

A CDP brings together customer data from all sources – CRM, ERP, email, website, POS, cases, partner systems, firmographics, and social networks like LinkedIn – and performs identity resolution at the contact and account level to generate unified profiles for individuals and accounts. The data combined with AI generates insights – accounts to target, content to share, products to recommend, and the best time to call. Insights are activated when they are integrated with business applications and tools like sales applications, marketing applications, workflow, and analytics. In todays fast-paced, competitive environment, a robust CDP is an essential tool for delivering personalized B2B experiences:

  • Account-based marketing Complete customer profiles and the resulting intelligence lead to better prioritization of high-potential customers and alignment of B2B sales and marketing teams in delivering coordinated and personalized experiences.
  • Sales enablement Organizations that equip their B2B sales team with rich customer data, curated content, and insights from across the customer journey, without salespeople having to search for it, can have more intelligent conversations, deepen relationships, and be more productive.
  • Recommended next best action and automated workflow Proactive recommendations and automated processes based on unified customer profiles including product usage data, ensure a well-orchestrated customer journey. For example, when product trial usage exceeds a threshold, an alert is automatically sent to the salesperson to follow-up with a call.

In order to deliver personalized experiences at scale, organizations need a foundation to better understand and engage their target customers. Microsofts CDP solution, Dynamics 365 Customer Insights, is a pre-assembled and ready-to-go CDP solution that helps B2B organizations achieve a 360-degree view of customers and deliver personalized omnichannel experiences, making B2B experiences as engaging as B2C experiences.

To learn more, read Digitally Transforming Customer Experiences.

The post Customer Data Platform (CDP): It’s not just for B2Cs anymore appeared first on Dynamics 365 Blog.

Improved packing functionality (Dynamics 365 for Operations 1611)

$
0
0

Dynamics 365 for Operations 1611 – Improved packing functionality

 

Based on the input that we have received from many of our customers and partners, we have improved the packing station experience in Dynamics 365 for Operations version 1611 (November 2016) to make sure that it seamlessly integrates with the rest of the warehouse workflows.

On a high level, we have improved the following areas:

  • Setup experience is better aligned with the rest of Warehouse management.
  • The packing station is now seen as a location. When the warehouse workers are logging in at the packing station, they will only see and operate on shipments and containers that are planned at the specific packing location.
  • Work can now be generated to bring goods from the packing station to the staging and bay door locations.
  • The concept of container groups has been introduced to allow multiple containers to be moved out of the packing station in one operation.
  • A new packing policy has been introduced to give warehouse managers greater flexibility in how containers should be handled in the packing process.
  • The concept of manual manifesting has been introduced to allow a loosely coupled integration to external transportation provider systems.
  • The user experience for packing and container processing has been improved.

Upgrade from Dynamics AX 2012

If you are not upgrading from a previous Dynamics AX version where packing processes were used, you can skip this section.

The In packing status has been removed from the shipments and loads as they were not working consistently and resulted in redundant data. Consequently, the list pages for In shipments and Loads in packing have been deprecated. Containers in packing are tracked at a location level.

In previous versions, the packing location was defined as a Location profile ID. In the current version, this is changed so setup of packing location will be defined using location types to align with the process for identifying staging and final shipping locations.

It is possible to continue the operation with the current setting, but we recommend that you update the setting because the legacy packing setting will be deprecated in future versions.

Please note that this process is irreversible. After clearing and saving the Profile ID for packing location field, the field will be disabled and cannot be used anymore. For installations where the legacy has not been used, the legacy setting will always be disabled.

IMPORTANT UPGRADE GUIDELINES

  • All containers must be closed before upgrade. In previous versions, containers did not have a container packing policy assigned on creation. In the current version and going forward, container packing policy must be assigned to containers to process containers. This can be mitigated by using the Change container packing policy function on the Container form, but it is not a recommended approach.
  • In the current version and going forward, it is required that the locations that operate as packing stations must be LP controlled. If the packing station is not LP controlled, it is not possible to process containers after upgrade.
  • Before using the newly upgraded system, make sure that the right container packing policies have been defined and are associated with the correct packing profiles.

 pack1 

Define location profiles and packing locations

Set up packing location profiles and packing locations in the same way as setting up staging and final shipping locations.

Create a location type that identifies the packing.

pack2

Under Set up parameters for Warehouse management, select Pack in the Packing location type.

pack3

Create one or more location profiles that use the packing location type.

 pack4

Notice the setup for the packing location profile:

  • Use license plate tracking must be set to Yes.
  • Allow negative inventory should be set to No.
  • Allow mixed items should be set to Yes.
  • Allow mixed inventory statuses should be set to Yes.
  • Allow mixed inventory batches should be set to Yes.

Set up the locations that operate as packing stations to use the new packing location profile ID.

pack5

Use location directives to bring goods to the packing station

Overall, the concept of using location directives to bring goods to the packing station is not changed.

The setup for using work to move goods out of the packing station will be described later in this document.

 pack7

 pack8

Log in the packing station

Before the packing station can be used, the Dynamics 365 for Operations user account must be associated with a user and the user must be created as a warehouse worker as shown below.

 pack9

pack10

 

When navigating to the Pack form, the warehouse worker will be asked to log in the packing station by specifying the location of the packing station and the packing profile.

pack11

As it is very common that the same warehouse worker will work at the same packing station for a longer period, it is recommended to set up default values for the worker as shown below.

pack12

For the default packing station, it is possible to set up any combination. You can choose site only, site and warehouse, or even site, warehouse and location if the worker is always logging in the same packing station. All the values are the default values, but can be changed after login.

The default profile can be used for the warehouse manager to guide the warehouse worker at the packing station on what process to use when operating at the packing station, or it can be used for the warehouse worker to store favorite packing settings.

When selecting a Packing profile ID that has a Container packing policy associated with it, it is not possible to change the Container packing policy. If selecting a Packing profile ID without a Container packing policy, it will be possible to specify another default Container packing policy.

Set up container packing policies

The Close container profile field has been renamed to Container packing profile because it has a different impact on how containers are processed during packing.

In the previous versions, the Close container profile field was only used when a container was closed waiting for the decision as to which final shipping location the container should go to and what unit of measure should be used as the default value when weighing the container. As no work creation was supported, the container immediately appeared at the final shipping location after the container was closed.

In the current version, the Container packing policy defines how the container should be processed and consequently, it is applied immediately when a new container is created.

pack13 

On the Overview tab, it is still possible to specify the actions when closing the container, but now it is possible to operate with or without work creation as well as defining when the container should be released from the packing station.

Container release policy

Using this parameter, it is possible to define what should happen when the container is released from the packing station by specifying one of the following options:

  • Make available at final shipping location. This is the same as in the previous versions. As soon as the container is released, it is updated to the specified location for the final shipping location. When using this option, the field Default location for final shipment is enabled and used for specifying a preferred location for the container after closing it.
  • Create work to move container from packing station. Using this option will create work for moving the container from the packing station to the staging area or directly to the bay door. When using this option, the field Work template is enabled and can be used for specifying a work template that should be applied when creating the work for the container.

Work template

A new work order type called Packed container picking is introduced. The work order type is used to describe the work created after a container or container group is released from the packing station.

In most cases, it is recommended to create work for moving the containers as it results in a better representation of the actual manual processes in the warehouse. There might be setups that are very simple or where packing station is located directly in the bay door area where it would be preferable to let the container be available at the final shipping location.

It is not possible to use work breaks, but it is possible to set up different work templates for different warehouses depending on the warehouse or the shipping carrier.

The examples below show templates for moving a container from staging or directly to the bay door.

pack14

pack15

 

Container closing policy

By using this parameter, it is possible to define what should happen when closing the container by specifying one of the following options:

  • Automatic release. The container will be considered released from the packing station and the action specified under the Container release policy will be triggered.
  • Delayed release. The container will not be released from the packing station immediately. It will be up to the warehouse worker to release it at a later point in time.
  • Optional. During the process of closing the container, it will be possible to choose whether the container should be released at the closing time.

The setting of this parameter will depend on the nature of the individual customer and packing stations. If the packing station is mainly handling single container shipments directly to customers, it will be most natural to release the containers immediately. If the packing station is handling shipments with multiple containers or even pallets it will probably be optimal to delay the release until the entire shipment or pallet is packed and ready for pick up.

Weight unit

This parameter enables the user to choose a default unit of measure used for container closing and manifesting. Usually this will be the unit of measure of the scale used at the packing station.

The parameter will work for policies with or without work creation.

Manifesting

Manifesting is the process of specifying the weight of a container, container group or shipment as well as a tracking ID provided by the transportation provider.

There is no direct integration with external transportation provider systems. The warehouse worker must print the label from the external provider system and scan the tracking number when completing the manifest procedure.

As manifest requirements vary from customer to customer and even from shipment to shipment, the packing policies allow a lot of flexibility when it comes to the workflow. It is possible to set up manifests for containers, container groups and shipments in any combination.

If using a multiple level manifest procedure, it is a requirement that:

  • All containers must be manifested before container group is manifested.
  • All container groups must be manifested before shipment is manifested.

Manifesting will be described in more details when the workflow of the packing station is explained.

Container manifest

Container manifesting should be enabled if it is required to complete a manifest for every single container packed at the packing station.

Manifesting is activated by the parameter Manifest requirement for container. If this is set to Manual, the manifesting will be included as a requirement in the packing workflow. It will not be possible to close and release the container before the manifesting is completed. If the parameter is set to Transportation management, the manifesting will still be performed through the TMS rate engines. Please note that this requires partners to implement a specific engine for the transportation provider and will not work out of the box in the current version. 

If activating the Automatic manifest at container close, the warehouse worker must specify the manifest information as part of the Close container dialog to avoid a two-step process. This is usually the preferred setting if the same worker is packing and manifests the containers.

If activating the Print container content parameter, the container content report will automatically be printed as part of the container close. The report can of course also be printed and reprinted on demand.

Container group manifest

Container group manifesting should be enabled if it is required to complete a manifest for every single container group packed at the packing station. This will normally be used if containers are packed on a pallet and the entire pallet is manifested.

Manifesting is activated by the parameter Manifest requirement for container group. If this is set to Manual, the manifesting will be included as a requirement in the packing workflow. All containers included in the group must be closed before the group can be manifested.

There’s no transportation management engine support for container groups in the current version.

There’s no manifest report for container groups in the current version.

Shipment manifest

Shipment manifest should be enabled if it is required to complete a manifest for the entire shipment packed at the packing station. This will normally be used when one consolidated manifest is required even though the shipment consists of multiple containers or container groups.

Manifesting is activated by the parameter Manifest requirement for shipment. If this is set to Manual, the shipment manifest will be included as a requirement in the packing workflow. It will not be possible to release any containers on the shipment before the manifesting is completed. If the parameter is set to Transportation management, the manifesting will still be performed through the TMS rate engines. Please note that this requires partners to implement a specific engine for the transportation provider and will not work out of the box in the current version. 

If activating the Print packing slip parameter, the packing slip report will automatically be printed as part of the shipment manifest. The report can of course also be printed and reprinted on demand.

 

Packing station workflow

The first step for the warehouse worker is to log in the packing station. In the example below, we will log in the packing station at the location Pack.

pack16

Overall, the user interface for the packing station looks like the packing station in previous versions, but has several additions and workflow optimizations.

pack17

Prepare for packing

After the warehouse worker scans the shipment ID or the license plate identifying the shipment, the lines will be displayed and the packing of the shipment can be started.

Container packing policy

The new Container packing policy is now applied when containers are created. Normally the same packing policy will be used for a single shipment or even for the entire packing station.

Container group license plate ID

The Container group concept is introduced. This can be used if containers will be packed on a pallet and will be moved out of the packing station in one operation, instead of moving the individual containers.

Usually this field should be set up when starting to pack on a new pallet. The warehouse worker should scan the pallet license plate and it will work as a default container group for all new containers being packed and closed.

Please note that Container groups can only be used for containers that have a Container packing policy with delayed work creation.

pack18

It is possible to use an existing license plate, but if scanning a non-existing license plate, it will automatically be created.

License plates for containers that are already shipped should not be reused.

When closing the container, the default value will be used in the Close container dialog and it is possible to change it.

One way to add a container to a container group is through one of the containers forms, for example, Containers for shipment, Open containers at packing station, etc.

 pack19

Both open and closed containers can be added to a container group. However, there are several restrictions when this can be done. For example: released containers can’t be added to a container group and containers from different shipments or different container packing policies can’t be added to the same container group.

Through the container forms, it is also possible to remove container from a container group by just clearing the Container group license plate ID field.

Pack the shipment

The shipment can now be packed in one or more containers. The first step is to create a new container with the selected Container packing profile.

pack20

The new container will be automatically selected in the Open containers view and packing can now be started. The view will also show the status of the container, for example, how much is packed, is the manifesting requirement met for the container, etc.

 pack21 

When an open container is selected, the warehouse worker will be able to start packing by scanning items using the Item packing section.

pack22

A new feature has been added so that it is now possible to pack everything on the selected open line by using the Pack button on the Action Pane. This will allow the warehouse worker to speed up packing shipments where it is not necessary to scan and pack individual items.

 

Manifest the container

If the container is using a policy with manual container manifest requirements, the Manifest container dialog can be opened and the container weight and tracking number can be specified.

pack23

Close the container

When the container is packed and any container manifest requirements are met, the warehouse worker can close the container. As the container is already manifested, it will no longer be possible to change the weight or the container tracking number.

pack24

If the container is using a policy with manual container manifest requirements and the policy parameter Automatic manifest at container close is enabled, the worker will be able be scan the container tracking number as part of the closing process.

pack25

If the container is not using a packing policy with container manifest requirements, the tracking number will not be displayed in the Close container dialog and the Manifest container button will not be enabled.

pack26

After the container is closed, follow the actions specified in the Container packing policy.

  • If the policy parameter Container closing policy is set to Automatic release, the container will immediately be released when the container is closed.
  • If the policy parameter Container closing policy is set to Delayed release, the container will be closed, but will be pending until released by the warehouse worker.
  • If the policy parameter Container closing policy is set to Optional, the container will be closed and the worker can decide to release it as part of closing the container.

pack27

Delaying the release of the container can be very helpful in scenarios with or without work creation. In most situations, it would not be optimal to create work every time a container is closed, but rather wait until the entire shipment is packed. It can also be utilized when running without work creation and the containers are kept at the packing station until the truck arrives and the containers can be loaded.

Remember that an even more optimized work creation process can be achieved when using container groups for work creation container policies.

Please note that the old Close container form has been deprecated. In the case where it is needed to support the workflow where packing and closing take place in separate operations, the container closing should be performed on the Containers form.

 

Release the container

If the container is not part of a container group and there’s no requirement for shipment manifesting, the container can be released as part of the container close.

Depending on the Container packing policy, one of the following actions will occur when releasing the container:

  • If the policy parameter Container release policy is set to Make available at final shipping location, the container will immediately be available at the specified location when the container is closed.
  • If the policy parameter Container release policy is set to Create work to move container from packing station, work will be created for moving the container out of the packing station.

 

Unmanifest container

If the container is still open and manifested, it can be unmanifested from the Pack form. Containers cannot be unmanifested when they are closed or released.

 

Container group manifesting

If a Container group license plate is selected, the container group with the selected group license plate can be manifested using the Manifest container group button.

To manifest the container group, all manifest requirements for the containers in the group must be met and the containers must be closed.

When manifesting a container group, the following dialog will be shown and it is possible to specify the total gross weight and tracking number for the container group.

pack28

Unmanifest container group

If a Container group license plate is selected, the container group with the selected group license plate can be manifested using the Manifest container group button.

A container group cannot be unmanifested if the containers in the group are already released.

When the unmanifesting process is completed, the tracking number is removed from the container group and a confirmation message is displayed.

Manifest shipment

If a shipment is selected, the shipment can be manifested using the Manifest shipment button.

To manifest the shipment, all manifest requirements for the containers and the container groups in the shipment must be met and the containers must be closed.

When manifesting a shipment, the following dialog will be shown and it is possible to specify the total gross weight and tracking number for the shipment.

pack29

Unmanifest shipment

If a shipment is selected, the shipment can be unmanifested using the Unmanifest shipment button.

When the unmanifesting process is completed, the tracking number is removed from the shipment and a confirmation message is displayed.

View containers

There are different ways to view containers based on the context. When packing a shipment, it is useful to see containers that are part of the shipment.

The following form shows open, closed and released containers.

From this form, the packer can also perform all operations on containers such as closing, manifesting, reopening and releasing.

pack30It is also possible to see all containers that are physically at the packing station. The Packing station form has buttons that can be used to view all open and closed containers at the packing station. These views will not be restricted to a specific shipment.

pack31

pack32

The views can be very helpful in the situation where one worker is packing the containers and the other worker is manifesting and releasing the containers.

Furthermore, a consolidated view of all containers is also available. This will mostly be useful for users working outside the context of a single packing station.

 pack33

Work creation

If the packing station is operating with a container packing policy with work creation, work will be created when the container is released as shown in the example below, where we are using a work template including staging.

pack34

Work cancellation

If a container was released by mistake, it is possible to reopen it if the work is not started yet. If the warehouse worker reopens the container, the corresponding work will be cancelled.

If the other worker is cancelling the Packed container picking work, the corresponding container will also be reopened.

In scenarios where the container is already moved out of the packing station it is no longer possible to reopen the container by cancelling work. The container must be manually moved back to the packing station for reprocessing.

Work execution

The Packed container picking work will be executed through the mobile device using menu items for packed container picking and packed container loading as showed in the example below.

Packed container picking

pack35

pack36

 

Packed container loading

pack38

pack39

 

Work creation and possibilities for container groups

The work that gets created for the container groups is very similar to the one for just one container.

pack40

You will notice a couple of differences: Target license plate ID is the same as the Container group license plate ID and not the Container ID. The work quantity is also created from all the containers in the group.

The work execution itself is also similar.

pack41

pack42

There are some additional possibilities with the container groups that are not available to individual containers. Namely, it is possible to remove a container from a container group if the container group is at a staging location.

To make this possible, there is a new warehouse mobile device menu item called Remove container from group.

pack43

By default, when a container is removed from the group, then the related Packed container picking work is updated to consider that the container group now has a different number of containers on it.

It is also possible to turn on the Cancel related work when removing container from group setting. If that is the case, then the related Packed container picking work gets canceled when the container is removed from the group.

This is how the removing container flow looks like.

For example, let’s take the container group from the above work. It has three containers.

pack44

pack45

pack46

pack47

If we click the Selected container, we can see which containers are going to be removed. Please notice that none of the containers are removed at this point and that it is possible to get out of the flow by clicking the Cancel button.

pack48

When the Remove containers button is selected, the flow ends.

pack49

This is how the work looks like now.

pack50

The removed containers are now at the staging location and can be moved freely.

Use multiple packing stations

In this section, we’ll describe how to set up multiple packing stations and use them for packing the same shipment. Of course, it is possible to use multiple packing stations for multiple shipments.

There are multiple ways to end up in a situation where there are items from the same shipment at different packing stations, for example, overriding the put location and selecting the Full button during sales order picking work, but we’ll describe one way to do it.

First, let’s set up the work template. To guide items to different packing stations, there should be multiple works. To accomplish this, we’ll break work by Item ID (and shipment, but that is not relevant for our case).

pack51

Setup of the work template query.

pack52

Setup of the work breaks.

pack53 

Now, we need to set up the location directives.

We need to set up one location directive for the first item.

pack54

Location directive query.

pack55

Location directive action query.

pack56

The one for the other item is similar and it just filters for item A0002 and location Pack2.

If we now have a sales order with these two items and release it to warehouse, it will generate two work headers that will bring items to different packing stations.

pack57

pack58

pack59

The user can now proceed and pack the items at two different packing stations.

Currently, the interaction between the two packing stations is very limited. For example, it is not possible to move items between them even if the items belong to the same shipment. It is also not possible to add containers to container groups that are at different packing stations.

Also, after the container is closed and released, it is not possible to move the container back for repacking at a different packing station.

It’s important to notice that if the items are at the packing station, it is still possible to adjust items, leaving the container in an inconsistent state.

 


Announcing Dynamics 365 for Operations – Warehousing

$
0
0

We're very happy to announce that Dynamics 365 for Operations – Warehousing has been made available on Windows Store and Google Play store. This app empowers warehouse workers in your organization to complete tasks in a warehouse by using mobile devices. It enables material handling, receiving, picking, putting, cycle counting, and production processes with your Dynamics 365 for Operations subscription.

The Dynamics 365 for Operations - Warehousing app includes the following features to boost productivity:

  • A tailored interface designed for fast warehouse scanning
  • Supports over 40 different warehouse processes
  • Custom built on-screen numeric keypad for you to hit numbers easily
  • A simple calculator for you to enter and calculate quantities in a breeze
  • Possibility to adjust font size and width of input fields on any device

This blog post will take you through the prerequisites, how to navigate the app, and the options to configure the app in Dynamics 365 for Operations.

Prerequisites

The app is available on Android and Windows operating systems. To use this app, you must have one of the following supported operating systems installed on your devices. You must also have one of the following supported versions of Dynamics 365 for Operations.

Use the information in the following table to evaluate if your hardware and software environment is ready to support the installation.

Platform Version
Android 4.4, 5.0, 6.0
Windows (UWP) Windows 10 (all versions)
Dynamics 365 for Operations Microsoft Dynamics 365 for Operations version 1611

-or-

Microsoft Dynamics Dynamics AX version 7.0/7.0.1 and Microsoft Dynamics AX platform update 2 with hotfix KB 3210014

Install the app

The app is available for download here:

For detailed steps on how to install and configure the app, refer to this tutorial: Install and configure Dynamics 365 for Operations - Warehousing

Navigating the app

The app comes with a new user experience. In this section I will go through and show different pieces and elements that we have changed in the UI.

Log-in screen and menu

Once the app is installed and configured to connect to a Dynamics 365 for Operations instance, you will be presented with a log-in screen. Sign in with the User ID and password of the warehouse worker. Learn how to manage warehouse workers with this tutorial: Manage warehouse workers.

In the below image you can see the log-in experience, as well as the menu structure and navigation.

log-in-6

Task and details page

For our most common flows that follow the same pattern of scanning input fields, we have changed the UI to split all information into two pages, the task or details page. In the task page, the information shown will be the main input field, three rows of additional information, and a previously scanned value. Sometimes there's more information to any given screen than what can fit in three rows, and therefore we made the Details page, which will contain all overflowing information and input fields, as well as product picture in case that exists for the item. You can control in what order you want information to be prioritized to be shown on the Task page, this is done from the Warehouse app field priorities page in Dynamics 365 for Operations. This will be explained a bit further down in this blog post.

details-page-2

Numeric keypad

The app comes with a custom numeric keypad, specially designed with rugged environments in mind. It has large buttons that are easy to touch, and a nifty calculator for those occasions where quantities needs to be converted on the fly.

numeric-keypad-4

Alternatively, we have added a stepper for quantity input fields, where you can deduct or add to the quantity field without using the numeric keypad. This can be useful when it is not a high amount, and just a quick change is needed.

stepper-1

Multiple input fields

If there's multiple input fields in any given screen with values not seen before, the app will recognize this and display a different UI. If there is 3 or less input fields, a carousel will be shown, which will allow the warehouse worker to quickly switch between input fields, without leaving the task page.

carousel-3

If there's more than 3 input fields filled out and not seen before, a multi-input page with all input fields shown in a list will be displayed. The example below is during a movement of goods, where an existing license plate is scanned for movement, where the app receives information on what item, quantity, unit etc. that is on the license plate. It will then display that content with multiple input fields on the Task page, in order to enable the warehouse worker to quickly review, and move forward to the next step.

multi-input-4

Action pane

As you might have noticed from the previous pictures, there's not any buttons displayed on any of the screens except for the green OK button. We have deliberately moved all other buttons to an action pane, that is accessible from the hamburger menu in the top right corner.

action-pane-3

Settings in Dynamics 365 for Operations

There are two new pages added in Dynamics 365 for Operations:

  • Warehouse management > SetupMobile deviceWarehouse app field names
  • Warehouse management > SetupMobile deviceWarehouse app field priorities

I will explain below the use of these pages, and how they relate to the app.

Configure warehouse app field names

In Operations you can configure how metadata should be shown on a warehouse mobile device on the Warehouse app field names page.

In a new environment or company, you can select Create default setup to generate all field names that exist in any of the warehouse mobile device workflows, and assign them a default preferred input mode and input type.

Once you've generated a list of field names, the following options are available:

  • Preferred input modeThis option defines whether a scanning field or a manual entry input field should be shown for the selected field name. This is useful to distinguish fields depending on if barcodes are used for the field or not. Note: Field names with preferred input mode set to Scanning can still enter information manually in case the barcode is unreadable or damaged.
  • Input typeThis option defines what input type should be used for the selected field name. Four options are available:
    • Selection - The selection list is used for field names that contain a list of options to choose from. This option is not editable, and can only be change through extension.
    • Date - Field names specified as date will show a date format with the label, to help warehouse workers know which format to enter the date in. This option is not editable, and can only be changed through extension.
    • Alpha - If Alpha is selected, the device keyboard will be used when entering information manually in the app. The keyboard experience can change depending on the device used.
    • Numeric - For field names that you know will use numeric input only, you can select this option to display a custom numeric keypad with the input field instead of the device keyboard.

warehouse-app-field-names

Configure warehouse app field priority

In the Warehouse app field priority page, it is possible to put field names into different priority groups. This makes it possible to decide what information should be promoted to the main task page when warehouse workers are performing work using the app.

If you click Create default setup, a default set of priority groups will be generated. It is possible to create as many priority groups as needed, but only three priority groups will be shown on the task page of the app at any given time.

When Operations is sending out metadata to the app, it will give each field a relative priority depending on its priority group, and the app will display the first three priority groups contained in the metadata on the task page of the app. The rest of the overflowing metadata will be presented on a secondary details page.

warehouse-app-field-priorities

Summary

This blog post has provided a brief overview of Dynamics 365 for Operations - Warehousing. As always, we would appreciate any feedback you may have. We hope you enjoy using the app.

Financial dimensions on a purchase requisition

$
0
0

Concepts

Financial dimensions are available on each requisition line in the lines details. The purpose is to let you update the accounting distribution ledger account on the requisition line. The accounting distribution ledger account consists of a main account and financial dimension values. Accounting distributions are used to define how an amount will be accounted for, such as how the expense, tax, or charges will be accounted for and posted in the ledger.

Updates on the financial dimension values on the requisition line will update the accounting distributions ledger account, not the other way around.

Create a requisition line and set up initial financial dimensions values

When a purchase requisition line is created, the values of financial dimensions are assigned from various sources that are specific to the purchase requisition line.

This works such that the logic will apply values from what is considered the most important or specific source toward the least important source. The sources are ranked in the following order:

  1. Project
  2. Requester
  3. Vendor
  4. Item

If one of the sources is not on the requisition, e.g. not related to a project or does not include a reference to a specific item from the master data, then the source is ignored.

The financial dimensions are only assigned a value once. This is done by first taking all dimension values available from the project, and then taking the dimension values from Requestor that are used but not already assigned a value. Next, the values from the Vendor for dimensions that were not already assigned a value are used, and so on. In the following example, the default financial dimension values are set up for Vendor 1 and Requester.

Financial dimensions on different Sources Business unit (BU) Department (Dep)
Vendor 1 001 025
Requester (Worker) 033

 

Create a requisition line for an item that has the default Vendor1.

Business unit (BU) Department (Dep)
1. Create the line and select the item. Vendor 1 is defaulted to the line. 001 033

 

As you can see from the table above, the Requestor’s default value for financial dimension is Department (033). This value takes priority over the Vendor’s default value Department (025).

If the requisition is not for a project, then that source will not contribute to the financial dimension values.

The accounting distribution ledger account dimension values will be set according to the final result of the values on the requisition line.

Manually update the financial dimension on a requisition line

When you update a financial dimension value on the requisition line to a non-blank value, that will update the dimension values on the accounting distributions. If the accounting distribution lines are split, then all lines will be updated with the new value.

  • For non-stocked items and lines not referring to a catalog item - Setting a financial dimension value to blank on the requisition line will not update the accounting distribution.
  • For stocked items and fixed assets - Setting a financial dimension value to blank on the requisition line will update the accounting distribution by removing the dimension.

For stocked items and fixed assets, the financial dimensions need to be in sync between the financial dimension on the line and the accounting distributions. Note that the accounting distributions cannot be split or edited manually for such cases.

Update a vendor or project

Two of the original sources for setting financial dimension can be changed on the requisition line: project and vendor. Changing one of these on the requisition line will reinitialize the financial dimensions on the requisition line according to the ranking of the sources described above. The new initialization of the financial dimension values will only update the financial dimensions that do not have any value, i.e. are blank. The existing financial dimension values on the purchase requisition line will take priority, and thereby keep their value.

Changing the project or vendor will also mean that the accounting distributions ledger account is reset and updated based on the new project or vendor and the updated set of financial dimensions. If the accounting distributions are spilt, then the split will be removed during the reset.

Note that if you want to ensure that the financial dimensions are reset to how the requisition line was initially created when changing the project or vendor, clear all the financial dimensions on the requisition line that you want to re-default.

Example

Set up the following default values.

Financial dimensions on different Sources Business unit (BU) Cost center (CC) Department (Dep)
Vendor 1 001 025
Vendor 2 002 008
Vendor 3 003 009 026
Requester (Worker) 033

 

Create a requisition line for a non-catalog item.

Business unit (BU) Cost center (CC) Department (Dep)
1. Create a line without a Vendor, the Requester’s default Dep is added. 033
2. Select Vendor 1. Because BU is blank and Dep is not blank only BU is updated from Vendor. 001 033
3. Change to Vendor 2. Only CC is blank and can be updated from Vendor 2. 001 008 033
4. Delete BU on line details and Dep. Manually update the cost center to 010. 010
5. Select Vendor 3,
  • BU is blank and will therefore be updated with dimension from the Vendor 3's default dimension 003.
  • CC has a value 010 so it will keep that value and ignore Vendor 3’s CC 009.
  • Dep is also blank but since the Requester has a default dimension 033 this will overrule the Dep dimension 026 from the vendor.
003 010 033

 

Use a template to update the accounting distribution

You can only use a template for non-stocked items and lines not referring to a catalog item. The lines should also not be categorized as a fixed asset item.

When you apply a template on your requisition line it will update the accounting distribution directly with a split distribution on different dimensions. Applying a template will not change the financial dimension values on the requisition line.

However, if you manually change a financial dimension value to a non-blank value on the requisition line, then that dimension will be updated on all split accounting distribution lines. Clearing a financial dimension value on the requisition line will not change the accounting distributions.

If you change a vendor or project the financial distributions from the vendor or project will update the financial dimension on the requisition line as described above; however, using a template will prevent the accounting distribution split from being cleared. Any updated dimension value will update all the split lines in accounting distributions.

If you remove the template from the requisition line, then the accounting distributions will be reset based on the financial dimension values on the requisition line. Any split lines in the accounting distributions will be removed.

Customizing the Warehousing Mobile App

$
0
0

Introduction

We last looked at the Warehouse Mobile Devices Portal (WMDP) in detail in a series of blog posts here, here, and here.  The last one covered how to build custom solutions and walked through building a new sample workflow for the WMDP.  This post will be updating that sample to cover some of the changes that have occurred with the Advanced Warehousing solution and the Dynamics 365 for Finance and Operations - Enterprise Edition warehousing application.

WMDP vs Dynamics 365 for Warehousing Mobile App

The Warehouse Mobile Devices Portal (WMDP) interface, which is an IIS-based HTML solution (described in detail here), is being deprecated in the July 2017 release of Dynamics 365 for Finance and Operations (see deprecated features list here). Replacing this is a native mobile application shipping on Android and Windows 10 devices.  The mobile app is a complete replacement for the WMDP and contains a superset of capabilities – all existing workflows available in the WMDP will operate in the new mobile app.  You can find more detail on the mobile app here and here.

Customizing the new Dynamics 365 for Warehousing Mobile App

The process for customizing the new mobile app is largely unchanged – you can still utilize the X++ class hierarchy discussed in the previous blog post.  However - I want to walk through some of the differences that enable customizations to exist as purely extensions.  The previous solution required a small set of overlayered code.  Moving forward this practice is being discouraged and we recommend all partners and customers create extensions for any customizations.

As before, we will be focusing on building a new workflow around scanning and weighing a container.  The inherent design concept behind the Advanced Warehousing solution is unchanged – you will still need to think and design these screens in terms of a state machine – with clear transitions between the states.  The definition of what we will build looks like this:

WHSWorkExecuteMode and WHSWorkActivity Enumerations

Just as in the previous blog post – to add a new “indirect work mode” workflow we will need to add values to the two enumerations WHSWorkExecuteMode and WHSWorkActvity.  The new enum names need to match exactly as one will be used to instantiate the other deep inside the framework.  Note that both should be added as enumeration extensions built in a custom model.  Once this has been done it will be possible to create the menu item in the UI – since the WHSWorkActvity enumeration controls the list of available workflows in the UI:

You can see the extension enumeration values in the following screenshots:

  

WHSWorkExecuteDisplay class

The core logic will exist within a new class you will create, which will be derived from the WhsWorkExecuteDisplay base class.  This class is largely defined the same way as the WMDP-based example, however there is now a much easier way to introduce the mapping between the Execute Mode defined in the Menu Item and the actual class which performs the workflow logic – we can use attributes to map the two together.  This also alleviates the need to overlay the base WHSWorkExecuteDisplay class to add support for new derived classes (as the previous WHSWorkExecuteDisplay “factory method” construct forced us to do).

The new class will be defined like this:

[WHSWorkExecuteMode(WHSWorkExecuteMode::WeighContainer)]
class conWhsWorkExecuteDisplayContainerWeight extends WhsWorkExecuteDisplay
{
}

Note that all the new classes I am adding in this example will be prefixed with the “con” prefix (for Contoso).  Since there is still no namespace support it is expected partner code will still leverage this naming scheme to minimize naming conflicts moving forward.

The displayForm method is required – and acts as the primary entry point to the state machine based workflow.  This is completely unchanged from the previous example:

[WHSWorkExecuteMode(WHSWorkExecuteMode::WeighContainer)]
class conWhsWorkExecuteDisplayContainerWeight extends WhsWorkExecuteDisplay
{
    container displayForm(container _con, str _buttonClicked = '')
    {
        container    ret = connull();
        container    con = _con;

        pass = WHSRFPassthrough::create(conPeek(_con, #PassthroughInfo));

        if (this.hasError(_con))
        {
            con = conDel(con, #ControlsStart, 1);
        }

        switch (step)
        {
            case conWeighContainerStep::ScanContainerId:
                ret = this.getContainerStep(ret);
                break;

            case conWeighContainerStep::EnterWeight:
                ret = this.getWeightStep(ret, con);
                break;
       
            case conWeighContainerStep::ProcessWeight:
                ret = this.processWeightStep(ret, con);
                break;

            default:
                break;
        }

        ret = this.updateModeStepPass(ret, WHSWorkExecuteMode::WeighContainer, step, pass);

        return ret;
    }
}

A detailed analysis of this code can be found in the previous blog post – we will skip forward to the definition of the getContainerStep method, which is where the first screen is defined.  The two methods used to define the first screen are below:

private container getContainerStep(container _ret)
{
    _ret = this.buildGetContainerId(_ret);
    step = conWeighContainerStep::EnterWeight;

    return _ret;
}

container buildGetContainerId(container _con)
{
    container ret = _con;

    ret += [this.buildControl(#RFLabel, #Scan, 'Scan a container', 1, '', #WHSRFUndefinedDataType, '', 0)];
    ret += [this.buildControl(#RFText, conWHSControls::ContainerId, "@WAX1422", 1, pass.lookupStr(conWHSControls::ContainerId), extendedTypeNum(WHSContainerId), '', 0)];
    ret += [this.buildControl(#RFButton, #RFOK, "@SYS5473", 1, '', #WHSRFUndefinedDataType, '', 1)];
    ret += [this.buildControl(#RFButton, #RFCancel, "@SYS50163", 1, '', #WHSRFUndefinedDataType, '', 0)];

    return ret;
}

Note that I am using a class to define any custom constants required for the Warehousing logic.  This was typically done with macros in the previous version – but these can cause some issues in extension scenarios.  So instead we are encouraging partners to define a simple class that can group all their constants together – which can then be referenced as you see in the code above.  The only area where this does not work is in attribute definitions – this will still need a Macro or String definition.  Here is mine so far for this project:

class conWHSControls
{
    public static const str ContainerId = "ContainerId";
    public static const str Weight = "Weight";
}

The other important thing to notice in the above code is that I have explicitly defined the data type of the input field (in this case extendedTypeNum(WHSContainerId)).  This is important as it tells the framework exactly what type of input field to construct – which brings us to the new classes you need to add to support the new app functionality.

New Fields

In the previous version of this blog we discussed the fact that since we are adding new fields to the warehousing flows that are not previously handled in the framework we must modify (i.e. overlayer) some code in the WHSRFControlData::processControl method.  This allows the framework to understand how to handle the ContainerId and Weight fields when they are processed by the WMDP framework.

In the new model these features are controlled through two new base classes to customize and manage the properties of fields.  The WHSField class defines the display properties of the field in the mobile app – and it is where the default input mode and display priorities are extracted when the user configures the system using the process described here.  The WhsControl class defines the logic necessary for processing the data into the field values collection.  For my sample, we need to add support for the ContainerId field – so I have added the following two new classes:

[WhsControlFactory('ContainerId')]
class conWhsControlContainerId extends WhsControl
{
    public boolean process()
    {
        if (!super())
        {
            return false;
        }

        fieldValues.insert(conWHSControls::ContainerId, this.data);

        return true;
    }
}

[WHSFieldEDT(extendedTypeStr(WHSContainerId))]
class conWHSFieldContainerId extends WHSField
{
    private const WHSFieldClassName Name = "@WAX1422";
    private const WHSFieldDisplayPriority  Priority    = 65;
    private const WHSFieldDisplayPriority  SubPriority = 10;
    private const WHSFieldInputMode InputMode = WHSFieldInputMode::Scanning;
    private const WHSFieldInputType InputType = WHSFieldInputType::Alpha;

    protected void initValues()
    {
        this.defaultName = Name;
        this.defaultPriority = Priority;
        this.defaultSubPriority = SubPriority;
        this.defaultInputMode = InputMode;
        this.defaultInputType = InputType;
    }
}

Obviously my conWhsControlContainerId class is not doing much – it is just taking the data from the control and placing it into the fieldValues map with the ContainerId name – which is how I will look for the data and utilize it later in the system.  If there was more complex validation or mapping logic I could place that here.  For example, the following is a snapshot of the process logic in the WhsControlQty class – this manages the logic for entering in quantity values from the mobile app:

public boolean process()
    {
        Qty qty = WHSWorkExecuteDisplay::str2numDisplay(data);
        if (qty <= 0)
        {
            return this.fail("@WAX1172");
        }

        if (mode == WHSWorkExecuteMode::Movement && WHSRFMenuItemTable::find(pass.lookup(#MenuItem)).RFDisplayStatus)
        {
            controlData.parmFromInventStatusId(controlData.parmInventoryStatusSelectedOnControl());
        }
        else
        {
            controlData.parmFromInventStatusId(controlData.getInventStatusId());
        }

        if (!super())
        {
            return false;
        }

        if (mode == WHSWorkExecuteMode::Movement && fieldValues.exists(#Qty))
        {
            pass.parmQty(qty ? data : '');
        }
        else
        {
            fieldValues.parmQty(qty ? data : '');
        }

        //When 'Display inventory status' flag is unchecked, need the logic for #FromInventoryStatus and #InventoryStatusId
        this.populateDataForMovementByTemplate();

        return true;
    }

The buildGetWeight method is very similar to the previous UI method – the only real difference is the Weight input data field.  Note that we don’t need to define a custom WHSField class for this field because it already exists in the July Release.

Error Display

There was another minor change that was necessary before I could get the expected behavior, and it points to a slight change in the framework itself.  In the previous version of the code when I reported that the weight was successfully saved I did so with an “addErrorLabel” call and passed in the WHSRFColorText::Error parameter to display the message at the top of the screen.  This same code in the new warehousing app will now cause the previous step to be repeated, meaning I will not get the state machine transition I expect.  Instead I need to use the WHSRFColorText::Success parameter to indicate that I want to display a status message but it should not be construed as an error condition.

container processWeightStep(container _ret, container _con)
…
ttsBegin;
containerTable = WHSContainerTable::findByContainerId(pass.lookupStr(conWHSControls::ContainerId),true);
if(containerTable)
{
    containerTable.Weight = pass.lookupNum(conWHSControls::Weight);
    containerTable.update();
    _ret = conNull();
    _ret = this.addErrorLabel(_ret, 'Weight saved', WHSRFColorText::Success);
    pass.remove(conWHSControls::ContainerId);
    _ret = this.getContainerStep(_ret);
}
else
{
    _ret = conNull();
    _ret = this.addErrorLabel(_ret, 'Invalid ContainerId', WHSRFColorText::Error);
    pass.remove(conWHSControls::ContainerId);
    _ret = this.getContainerStep(_ret);
}
ttsCommit;

 

Caching

The mobile app as well as the AOS perform a significant amount of caching, which can sometimes make it difficult to add new classes into the framework.  This is because the WHS code is heavily leveraging the SysExtension framework.  I find that having a runnable class included in the project which simply calls the  SysExtensionCache::clearAllScopes() method can help resolve some of these issues.

Conclusion

At this point I have a fully functional custom workflow that will display the new fields correctly in the mobile app.  You can see the container input field and weight input below.  Note that if you want to have the weight field display the “scanning” interface you can change the “preferred input mode” for the Weight EDT on the “Warehouse app field names” screen within the Dynamics 365 environment itself.

 

The Dynamics 365 for Operations project for this can be downloaded here.  This code is provided “as-is” and is meant only as a teaching sample and not meant to be used in production environments.  Note that the extension capabilities described in this blog are only available in the July 2017 release of Dynamics 365 for Finance and Operations or later.

Check out the new simplified way to configure the Cost Accounting module

$
0
0

In the latest version of Dynamics 365 for Finance and Operations, Enterprise Edition we put a lot of effort to make it easier to create initial configuration of the Cost Accounting module.

Take a look how simple it is!

What’s new in CU13 for WMS and TMS

$
0
0

Cumulative update 13 for Microsoft Dynamics AX 2012 R3 is now available for download on Lifecycle Services, PartnerSource and Customersource. In this blog post, we will give you an overview of the feature improvements for warehouse and transportation management. If you want more details about the release of CU13, see the Dynamics AX In-Market Engineering blog. The knowledge base article for Cumulative Update 13 is KB4032175.

 

  • Packed goods can now be brought from the packing station to the staging area or loaded directly on a truck.
  • Ability to move one item or the entire license plate (LP) although there is replenishment work behind.
  • Transfer order receiving and returns are now enabled as part of Mixed pallet receiving.
  • Guided partial cycle counting at a location has been enabled.
  • Short picking - Inventory reallocation. Ability to pick items from another location in short picking scenarios.
  • Use the demand replenishment method in the raw material picking process.
  • Correct reservation status after re-marking of WHS items with the Storage dimension enabled.
  • Timing of planned production orders when overlap jobs are enabled and the route operations use different calendars.
  • Product confirmation requested by the system before a put is completed.
  • Ability to report consumption of staged and order picked material.
  • Plan purchase orders through TMS in an inbound process when using Change management.
  • Pick (other) work order lines even if one of the order lines is blocked by demand replenishment.
  • RAF\Transfer Order integration. Finished goods can be cross docked to bay door locations providing an alternative to the put-away process where finished goods from the production output would normally be put in the Finished goods put location.
  • With a maximum weight or volume on the work template, the work split is now based on the directive unit and not on the lowest unit of measure.

 

List of feature enhancements Description of enhancements
Packed goods can now be brought from the packing station to the staging area or loaded directly on a truck. The packing station experience has been improved to ensure that it will seamlessly integrate with the rest of the workflows in the warehouse.

This is a backporting of an enhancement added to a later version of the product.

 

Ability to move one item or the entire license plate (LP) although there is replenishment work behind If the Allow movement of inventory with associated work check box on the Work users page is enabled, you can now move part of or an entire license plate that is tied to replenishment work.
Transfer order receiving and returns are now enabled as part of Mixed pallet receiving With this enhancement, it is also possible to scan the product and then update the quantity manually.

The traditional way of using the system is still supported.

Guided partial cycle counting at a location has been enabled. The changes in the hotfix include adding support to do partial cycle counting. Work line breaks are added to the cycle counting work template and partial cycle counting work will be generated during cycle counting planning.

This is a backporting of an enhancement added to a later version of the product.

 

Short picking - Inventory reallocation. Ability to pick items from another location in short picking scenarios. Items in short picking scenarios can now be picked from another location which enables a process where goods can be shipped as fast as possible. Note that this feature requires kernel 6.3.1000.1928 (KB3048540) or higher.

For more informatin, see Set up short picking item reallocation.

Use the demand replenishment method in the raw material picking process. A wave template can now be constructed for raw material picking and a demand replenishment method can be added for production orders and kanbans. The capabilities correspond to the capabilities for sales order picking and transfer order picking.
Correct reservation status after re-marking of WHS items with the Storage dimension enabled. Warehouse items with the Storage inventory dimension enabled now get the correct reservation status after re-marking.
Timing of planned production orders when overlap jobs are enabled and the route operations use different calendars Planned production orders were proposed too early when overlapping jobs were enabled and the route operations used different calendars. This issue has now been resolved so that in this situation, planned production orders are proposed duly.
Product confirmation requested by the system before a put is completed. For cluster picking, piece-by-piece picking can now be enabled to have the system request a confirmation before a put is completed.

 

For more information, see: Product confirmation for cluster picking.

Ability to report consumption of staged and order picked material. It is now possible to report consumption of material that is either reserved or picked.
Plan purchase orders through TMS in an inbound process when using Change management. Purchase orders in an inbound process can now be updated from Transportation management when Change management is activated. Previously, this would require that the entire purchase order would have to be routed through the approval steps once again.
Pick (other) work order lines even if one of the order lines is blocked by demand replenishment. The replenishment work blocking policy can now be set up to allow that users can pick (other) work order lines even if one of them is blocked by demand replenishment.

This is a backporting of an enhancement added to a later version of the product.

RAF\Transfer Order integration. Finished goods can be cross docked to bay door locations providing an alternative to the put-away process where finished goods from the production output would normally be put in the Finished goods put location. When reporting as finished, goods can now be cross docked to a bay door location based on a transfer order demand.

A transfer order that is released to warehouse will generate work of the type Transfer issue and this work can then be picked from the production output location and put to a location that is determined by the Transfer issue location directive for work.

With a maximum weight or volume on the work template, the work split is now based on the directive unit and not on the lowest unit of measure. Previously, when you set up a maximum weight or volume on the work template, work would split on the lowest unit of measure (UOM). Now work splits on the directive unit.

 

 

Viewing all 534 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>