Friday, November 27, 2020

How to scrap the defective units in Quarantine order in Microsoft Dynamics 365 F&SCM.

Let's imagine the following scenario: 

The company has 6 units of the Surface Pro 128 GB that is under inspection in quarantine zone. Quality inspector finds out that 2 of them are defective and need to be scrapped. What are the steps to perform this operation in Microsoft Dynamics 365 F&SCM?

Create Quarantine order for 6 pieces of the Surface Pro 128 GB (Inventory management > Periodic tasks > Quality management > Quarantine orders).

Quarantine order status is Created.

Notice that inventory transactions with the reference Quarantine order will be created:

Issue status is On order from the main warehouse

Receipt status is Ordered to the Quarantine warehouse

Start the order inspection by clicking Start button. Quarantine order status is Started.

Notice that inventory transactions with the reference Quarantine order will be updated:

Issue status is Deducted from the main warehouse

Receipt status is Received to the Quarantine warehouse

Issue status is Reserved physical from the quarantine warehouse

Receipt status is Ordered to the main warehouse

From Quarantine order, select Split function

Enter a split quantity of 2

Notice that new quarantine order of 2 units is created. Status and transactions are inherited from the parent order.

Select the Scrap function

Enter a scrap quantity. 

Notice that inventory transactions with the reference Quarantine order will be updated:

Issue status is Sold from the main warehouse

Receipt status is Purchased to the Quarantine warehouse

Issue status is Sold from the quarantine warehouse

Receipt transaction to the main warehouse is removed.

Quarantine order status is Ended.

End the order inspection by clicking End button for the 4 units. Quarantine order status is Ended.

Notice that inventory transactions with the reference Quarantine order will be updated:

Issue status is Sold from the main warehouse

Receipt status is Purchased to the Quarantine warehouse

Issue status is Sold from the quarantine warehouse

Receipt status is Purchased to the main warehouse

Commitment types in the Sales/Purchase agreements in Microsoft Dynamics 365 F&SCM

Default commitment type must be selected upon sales/purchase agreements creation. Each option is defined below, but generally speaking, an agreement needs to differentiate between value (price) and quantity.

The commitment type indicates whether you agree to purchase a specific quantity of products or products for a specific amount from the vendor. If you change the default commitment type, and then create a new line, the line is defined by the commitment type that you selected. 

Product quantity commitment: You agree to purchase a specific quantity of products; The lines that use this commitment type are defined by an item number, and the quantity and unit that were agreed on; The Amount field is not editable. 

Product value commitment: You agree to purchase products for a specific amount; The lines that use this commitment type are defined by an item number and the amount that was agreed on; The Quantity and Unit fields are not available. 

Product category value commitment: You agree to purchase for a specific amount and from a specific procurement category; The lines that use this commitment type are defined by a procurement category in the hierarchy of procurement categories and an amount; The Quantity and Unit fields are not available. 

Value commitment: You agree to purchase for a specific amount, and from a top-level procurement category or the category's subordinate categories; The lines that use this commitment type are defined by the top-level procurement category in the hierarchy of procurement categories and an amount; The Quantity and Unit fields are not available.

Tuesday, September 15, 2020

Data cache clean up in Microsoft Dynamics 365 F&SCM

In addition to the ways described here: https://gfeaxblog.wordpress.com/2017/12/14/ax-2012-clear-the-cache/

you have a couple of additional options to refresh the cache

#1 Run the class from browser

https://Environment name/?cmp=Company name&mi=SysClassRunner&cls=SysFlushAOD

Note: Please replace the text highlighted with your environment data

#2 Run Data cache clean up from the System parameters

System administration > Setup > Data cache > Data cache parameters > Cache refresh tab

Thursday, September 3, 2020

PowerBI embedded in Tier1 and Tier2 environments

What is the proper way to access the data tables for Power BI in Production, Sandbox, etc?  

If you need to connect PowerBI to Microsoft Dynamics 365 for Finance and Operations you have several options depends on the environment that you are using.

Tier2 (PROD/UAT/TEST) or Tier1 (developer onebox)

  • Tier2 environments have Azure SQL AXDW database which can be configured for automatic updates using System Administration > Entity Store > Refresh all cubes/measures. In that form you can setup update recurrence(some cubes you can update once a day, some once an hour). To access data in Tier2 you can use Direct Query. Direct Query connection to the cubes (AXDW database) is done through  Azure SQL database

Note: ODATA has access only to AXDB and does not have access to cubes, only to AXDB data.

  • Tier1 environments have only SQL databases and that is real headache to configure PowerBI embedded for onebox environment. It requires external AXDW configured in Azure. 

Tuesday, August 11, 2020

How to create KPI measure in Power BI

If you want to build KPI visuals as it is presented on the screen below, you can achieve this by adding new measure and use the following DAX expression

KPI =
SWITCH (
TRUE (),
[Profit/Loss] > 0, unichar(9650),
[Profit/Loss] < 0, unichar(9660)
)

If Profit/Loss value is negative, you will have black down-pointing small triangle. If Profit/Loss is positive, you will have black up-pointing small triangle.

If you want to have different colors based on the values, you may use Conditional formatting as it is presented below.

Monday, August 10, 2020

How to apply Regional settings from the Source data formats to the exported data through Data management

As you might know, there is a possibility to setup Regional settings on the Source data format in the Data management. 



Unfortunately those settings are not applied automatically. The important thing to make it work is the following:

When create Export project and add entity to the project, set Skip staging toggle to NO. Only in this case, Regional settings will work.




How to use grouping in Power BI and apply group to the DAX expression

 Let's say you have field that contains the fixed list of values and you want to group them. In my scenario I have TypeID field that contains the following values: Revenue, Liability, Equity, ProfitandLoss, Expense, BalanceSheet, Asset, Total. In my case, Revenue, Liability, Equity corresponds to Credit and the rest to Debit. What can I do? 

  1. Highlight the TypeID, right-click and choose New group
  2. Set the Group name (TYPEIDGROUP for example)
  3. Select Revenue, Liability, Equity values in the Ungrouped values section and click Group button. Rename group in the Group and members section and set Credit name
  4. Select remaining values in the Ungrouped values section and click Group button. Rename group in the Group and members section and set Debit name. 
  5. The result should be as presented on the screen



Now, you are able to connect to the group and use it in the formula. For example, I used it in the created measure:

Actuals credits positive =
CALCULATE ( FinancialReportingTransactionDataV2_FinancialReportingFactWithSDF[Actuals],
FinancialReportingTransactionData_FinancialReportingAccount[TYPEIDGROUP] = "Debit" )
- CALCULATE ( FinancialReportingTransactionDataV2_FinancialReportingFactWithSDF[Actuals],
FinancialReportingTransactionData_FinancialReportingAccount[TYPEIDGROUP] = "Credit")

Another option is to use IN expression

Labor =
CALCULATE
(
    FinancialReportingTransactionDataV2_FinancialReportingFactWithSDF[Actual operating]*-1,
FinancialReportingTransactionData_MainAccount[VALUE] in {"600300", "600400"}
)

It's up to you to decide which approach to use.