Posts

Showing posts from April, 2024

Using Python to plot D365FO data and visualize the trend, by using dataframes

Image
  I am sure you must have read my earlier post: https://subsd365.blogspot.com/2024/03/using-python-to-fetch-data-from-d365.html, which outlines a way of reading the data from D365FO, using Python. This post will help you just not fetching the data from F&O, but also visualise the data plot against x and y axes and then understanding the trend of your business (eg: you can see which Item is a high demand item, which customer has made the maximum transactions across a given time frame -- even when could a customer potentially could transact again: examples galore). And uh, ok -- before you proceed you have read the above post first and make sure: a. You have installed Jupyter notebook on your machine (it's free and absolutely easy to install and operate). b. You have a valid Microsoft Entra Id configured and given API permission to D365F&O. c. You have listed the client Id in your D365F&O side Entra Id registration. Before we begin, let us  quickly  check: what is a  Data

Your data entity might not operate, as expected, if you haven't taken care of it your Entity data-structure already

Image
  D365FO DMF has an inherent issue with the grouping of its data sources. If you have selected/included a field under the group Node: And you have already set the change-tracking enabled in your datasource: Then when you turn on the Change tracking of the entity as 'Enable primary datasource'  and if you have enabled the incremental data: then this structure simply won't work.  When you run it, the export simply fails to export any record, although when you run it in 'Full push' mode, it works as expected. Reason: the underlying query for primary datasource for change tracking simply fails to extract data, based on group-by field, explicitly. The table query ' AifSqlChangeTrackingEnabledTables ' treats only those records which got changed/created based on timestamp and processes them accordingly. In all such cases make us of your CT query and include the group by field you want to include in your code: public static Query defaultCTQuery()     {         Query