Skip to main content


Showing posts from 2017

Dynamics 365 - Odata integration (Code snippet)

Dynamics365 integration - Odata:
Guys below code snippet can help you when you play with Odata integration with D365: public static void customers(Resources context) {             DateTime dateTime = new DateTime(2017, 01, 01);             //Filter the query var customers = context.Customers.AsEnumerable().Where(x => x.CreatedDateTime >= dateTime);
            foreach (var customer in customers)             { Console.WriteLine(" Customer Account # - {0}, Name - {1}", customer.CustomerAccount, customer.Name);             } }
Inserting the record in D365 table (Just a simple example, FYR): DataServiceCollection<CustomerGroup> customerGroupCollection = new DataServiceCollection<CustomerGroup>(context);
customerGroupCollection.Add(customerGroup); customerGroup.CustomerGroupId = "1000"; customerGroup.Description = "test"; customerGroup.PaymentTermId = "Net30"; context.SaveChanges(SaveChangesOptions.PostOnlySetProperties);
Updating the …

Dynamics 365 For Operations: Integration helpers (URL)

The following link contains simple examples for OData, Soap, and JSON.
It helps developer to view and understand the sample code to understand the integration between dynamics 365 For Operations: 
Microsoft /Dynamics-AX-Integration
Data management and integrationthrough data entities

Dynamics 365 For Operations: GenerateDrillThroughLink/DrillThroughProvider - Hyperlink on SSRS report data fields

The process for embedding custom drill-down navigation links into application forms in Dynamics 365 for Operations differs from solutions in AX2012
Dynamics 365 for Operations Reporting framework does NOT auto-generate hyperlinks based on EDT relations.
How to get hyperlink on SSRS report data field:
In the Precision design, field 'Action' property, you can find the expression like:
=Microsoft.Dynamics.Framework.Reports.BuiltInMethods.GenerateDrillThroughLink(Parameters!AX_ReportContext.Value, Parameters!AX_UserContext.Value, "[MenuItemName]", "[MenuItemType]", "[TableName]", "{Arguments}")
Example: =Microsoft.Dynamics.Framework.Reports.BuiltInMethods.GenerateDrillThroughLink(Parameters!AX_ReportContext.Value, Parameters!AX_UserContext.Value, "ProjTable","Display","ProjTable", "ProjId",fields!ProjId.Value)

Dynamics 365 For Operations: Keyboard shortcuts

Action Shortcuts: 1. Open Action Search: Ctrl + ‘ and Alt + Q
2. Move to the Standard Action Pane: Ctlr + F6
3. To Open a Tab in the Action Pane or a Menu: Enter/Space/Alt+Down Arrow
4. Go to Next/Previous Option in a Menu: Down Arrow/Up Arrow
5. To Close a Tab in the Action Pane/Menu: Esc
6. Simulate a Right-Click: Shift + F10
7. To Open Dynamics 365 for Operations Context Menu: Ctlr + F10
8. To Execute the Default Button on a Form/Dialog: Alt + Enter
9. Click a Button or Tile: Enter/Space
10. View Refresh Information for a Count Tile: Alt + Up Arrow Date Picker Shortcuts: 1. To Open the Date Picker: Alt + Down Arrow
2. Move between Dates in the Date Picker: Ctlr + Arrows
3. Move to Next/Previous Month: Page Down/Page Up
4. Move to the Next/Previous Year: Ctrl + Shift + Page Down/Ctlr + Shift + Page Up FactBox Shortcuts: 1. Open the FactBox Pane: Ctrl + F2
2. Close FactBox Pane: Esc
3. Move to Previous/Next FactBox: Alt + Shift + Down Arrow/Alt + Shift + Up Arrow
4. Move to the th Factbox…

Dynamics 365 for Operations: Class extensions and Chain of Command (COC)-Next keyword

The functionality of extension classes (also known as class augmentation) is being improved to allow developers to wrap logic around methods defined in a base class. This allows extending the logic of public and protected methods without the need to use event handlers. When you wrap a method, you can also access other public and protected methods and variables of the class. This way, you can start transactions and easily manage state variables associated with your class. Class Student
    real studentAge(int arg)    {
} It is now possible to extend the functionality of method1 using an extension class by reusing the same name to add pre-and post-logic to it. [ExtensionOf(ClassStr(Student))]
class Student_Extension
    real studentAge (int arg)     {
     var s = next studentAge(arg + 4);

      return s;
Wrapping studentAge and the required use of the next keyword creates a Chain of Command (CoC) for the method. Here is what happens when the following code executes. …

MS Dynamics 365 for Operations: Class extensions (ExtensionsOf[])

Hello J I would be discussing on how easily classes can be extended in Dynamics 365 for Operations. As we are aware that classes can be easily customizable by writing delegate and subscribing the method in the new extension class. But this could be sometime hectic and cumbersome as it consume lot of time when complex logic (Multiple scenarios or method) needs to be written. So in order to save time and effort, extension of class features can be easily adopted. Below syntax shows you how we can write extensions of for a particular class: Class Student
    real studentAge(int arg)    {
class Student_Extension
    real studentAge (int arg)     {
     var s = next studentAge(arg + 4);

      return s;
We have observed a new keyword here “next” in the extension class. For the time being I would just say it creates a Chain of Command,  We will learn more about it in my next blog post. J

Dynamics 365 For Operations: Pack your data in ZIP folder

Hello guys,
Today, I would be sharing the code in D365 FO to pack your data (can be Xml, Excel, Word etc.) in ZIP folder.

using System.IO.Compression; classSBSCreateZipFile {       
/// <summary> /// Runs the class with the specified arguments. /// </summary> /// <param name = "_args">The specified arguments.</param> publicstaticvoid main(Args _args)     { SBSCreateZipFile file = newSBSCreateZipFile();         File.createAndDownloadExcelFileViaZip();     }
publicvoid createAndDownloadExcelFileViaZip()     { conststr extensionZIP = '.zip'; conststr extensionExcel =

Dynamics 365 For operations: How can you open table browser in IE?

In order to view the table data, normally from VS(visual studio) we can right click on the table and select the "Open table browser", it open up the table with data. Other way we can view the table data in the IE/Chrome browser by using the below method: https://<AX7URI>/?mi=SysTableBrowser&prt=initial&cmp=<Company>&tablename=<TableName>&limitednav=true AX7 URI Company:"USMF","GBSI" or which company wanted to view the data. TableName: Mention the AX table name i.e. like Customer/Vendors/CustGroup - which table data wanted to be viewed.

Dynamics 365 For Operations [D365FO]: Ledger dimension and Default dimension helper class

Hello guys, I would be posting the important classes which handles the ledger dimension and default dimension logics like merging or replacing in D365FO (Dynamics 365 for operations). Like how we used to have DiemsionDefaultingService class in AX2012, We have the following two classes shown below:
LedgerDimensionFacade : 
This class used for fixed LedgerDimension, we have many static methods here, like Merge Dimension, getdefaultDimension and many more, refer below image.

publicstaticDimensionDisplayValue getDisplayValueForLedgerDimension(DimensionCombinationBase _dimensionCombinationBase)     { DimensionAttributeValueCombination dimensionAttributeValueCombination;
if (_dimensionCombinationBase == 0)         { return"";         }
selectfirstonly DisplayValue from dimensionAttributeValueCombination where dimensionAttributeValueCombination.RecId == _dimensionCombinationBase;
return dimensionAttributeValueCombination.DisplayValue;     }

Dynamics AX7 / D3FO: Code for Excel importing

Now Dynamics AX 365 is running on Web browser so import the data in AX using Excel, CSV, text etc. has been changed. FileName, FilenameOpen extended data type is no more supported to browse the excel file. If we compare Excel file import process between AX 2012 and Dynamics AX 365 then in AX 2012 file was importing from Client (from local system) to AX database directly but now the new AX is running on web server over the IIS so to import file in AX mean first file need to import on server and need to store in File server or SharePoint or Database. And then read the file from stored location may be from File server, SharePoint or Database. So how we can import data in AX using Excel file? The simple way is via using Data entities and if data entity does not exist then need to create new Data entity for table and then we can import data via using the excel file or any other supported file using that Data entity. But sometime required to import the data in AX using dialog in that case Data…