May 23, 2017

How to enable ARM for D365 deployment

Hi Folks,

Many of us trying to deploy the new D365 environment using LCS and Azure, but due to ARM configuration we face below issue, 

Issue: Lifecycle Services can't connect to the Azure subscription using Azure Resource Manager. Click the Microsoft Azure Settings button and edit the selected Connector to provide the required permissions to ERP applications in your Azure subscription. If the issue persists, please contact support with this Id: da1c591d-7360-413c-b370-b51ec1ddef2b

Here are some good links on how we can fix this issue once for all, 

Hope this will help.

May 19, 2017

Breakpoint not hit in Visual studio [Dynamics 365]

Hi Folks,

Situation: While put a breakpoint and try to hit debug on any object which is not a part of your solution/project; Breakpoint will not hit. You will get below message.

“The breakpoint will not currently be hit. No symbols have been loaded for this document.”


Possible reason: This is because of one of Debugger property that will not load any symbols for other than Solution/Project objects.
Solution: To enable such debugging, you have to set the debugger property,
Uncheck this option Load symbols only for items in the solution as shown below snaps,

Step 1: Go to Dynamics 365 menu in Visual studio and select option


Step 2: Choose Debugging option from list and uncheck the Load symbols only for items in the solution


Now try to run again, this time breakpoint should hit as expected.



May 13, 2017

Send Message to all Online users [Dynamics 365 FO]

Hi Guys,

In D365 where we manage most of the things using LCS, if there is any Planned/Unplanned activity need to perform on server and down time require.
In such case, you need to send a message to all online used for that particular environment. To do that simply follow below steps,

Step 1: Login into your LCS account. 

Step 2: Under Environment section > select your environment. > Click on maintain option > Select Message online users.


Step 3: Here you will have two options
i.                    Broadcast a new message for downtime: Post a new message
ii.                 Cancel message: To cancel any previous posted message.


Step 4: Select Broadcast a new message for downtime, you have to provide message start date time and when this operation will begin OR massage valid to date time. click on Post button and click when asking for confirmation.


Step 5: When a user will login into environment he/she must get this message

Step 6: Now if in case you have to postpone or cancel this activity, choose second option i.e. Cancel message, system will ask which message you want to cancel as there can be multiple messages.

Let’s try to cancel first message that we created in last step. In the right corner, you will found a delete icon, click on that icon and hit yes when ask for confirmation. You will see now only two messages are active here


Now when user will login in next time he/she will not any notification from system.


May 06, 2017

Merger two LedgerDimension in Dynamics 365

Hi Folks,

In my previous post I shared  information about new classed that introduced in D365 for Dimension actions. In this post, I am sharing a sample code to merge two different ledger dimension and get a new LedgerDimension id.
This is rough code, please feel free to copy and update it according to your requirement.

public static void main(Args _args)
       LedgerJournalTrans  ledgerJournalTrans1, ledgerJournalTrans2 ;
       RefRecId            dim1, dim2, mergerDim;
       select firstonly TrvExpTrans where TrvExpTrans.ExpNumber == "USMF-000565";
       select firstonly AccountingDistribution where AccountingDistribution.SourceDocumentLine == SourceDocumentLine::find(TrvExpTrans.SourceDocumentLine).RecId;
       dim1 = TrvCostType::find("mycategory").LedgerDimension; //First dimension
       dim2 = 5637236123;//AccountingDistribution.LedgerDimension; //Second dimension
       mergerDim = LedgerDimensionFacade::serviceMergeLedgerDimensions(dim1, dim2);
      info(strFmt("Dim1: %1" , DimensionAttributeValueCombination::find(dim1).DisplayValue));
      info(strFmt("Dim2: %1" , DimensionAttributeValueCombination::find(dim2).DisplayValue));
      info(strFmt("merge dim: %1", DimensionAttributeValueCombination::find(mergerDim).DisplayValue));

Please share your queries/feedback in comment box, I will be happy to help you.


May 04, 2017

New classes for Ledger/Default Dimensions in D365FO

Hi Folks,

Since many days, I was trying to perform few logics over LedgerDimensions and DefaultDimensions, like merge and replace etc. In AX2012 its handled by DiemsionDefaultingService class that having many static methods to help us to play around ledger/default dimensions.

But in Dynamics 365 FO , this class is deprecated, and MS introduce few more classes to help us with these requirements. Here are few names of classes and method that can be used.

1. LedgerDimensionFacade : 
This class used for fixed LedgerDimension, we have many static methods here, like Merge Dimension, getdefaultDimension and many more, refer below image.


2. LedgerDimensionDefaultFacade: 
This class will help us to perform an action over the default dimension. Like, Merge specify default dimension into a single default dimension, replace attribute value etc.

Please refer below image, 


Both classed having an almost same method that is available in AX with DiemsionDefaultingService class.

See Also,

How to merge two dimension