This blog is a continuation from Configuring the Dynamics AX 2-12 R3 Entity Store. This is part 2 of a 3-part series:
Part 1 – Setting up and Configuring the Dynamics AX 2012 R3 Entity Store
Part 2 – Publishing a Dynamics AX 2012 R3 default entity
Part 3 – Creating and publishing a custom Dynamics AX 2012 R3 entity
When we last left off we had configured the Entity Store but hadn’t published an Entity due to challenges with some of the default entities fields (namely the memo field). For this blog, I’ll be publishing the SalesTable entity since it does not contain the memo field. To do this, I selected the SalesTable entity and clicked Publish:
Then I selected my source and clicked publish . . . .DRATS! Foiled again!
Apparently, some of the tables that are referenced by the DMFSalesTableTargetEntity query (tables referenced in the data sources) do not have the ModifiedBy property set to Yes. This means I’ll have to locate all the tables in all the data sources and verify that ModifiedBy is set to Yes. To do this I did the following on the SalesTable and PriceDiscChangePolicy table.
- In the AOT go to Data Dictionary, Tables, [Table]
- Right click on table (if properties pane does not appear on the right) and select Properties
- Find the Modifiedby property and change it to Yes
- Click the Save button in the AOT
- Synchronize
- Restart the AOS (I found this was required for it to pick up the changes, your mileage may vary)
Once the SalesTable and PriceDiscChangePolicy reflected the change I went back and attempted to republish the SalesTable entity.
Success! Now to check I opened up SQL Server Management Studio and queried the table that was published (DMFSalesTableEntity). As you can see there is no data because this only published the definition (schema) of the entity to the database but did not push the data over.
To populate the table with data, go back to AX, open the Data import export framework Area page and click on Manage refresh schedule.
Click New.
Create a group to hold the entities that you will sync.
Once a group is created, select it and then click Entities.
Select the SalesTable Entity we created before (ignore the other one, that will be in a later post on creating a custom entity)
Select the source
Click New schedule
Within the schedule form you have 2 ways to get data:
- On a schedule
- Ad-hoc
If you simply click OK, the dialog will close and the population process will kick off. You can also schedule this to run on a batch server and on a set schedule (click Recurrence) for an automatic incremental refresh. For now, I’m going to click OK. When the processing is complete you will see something like this:
Back in management studio I now see data!
And that completes publishing a default entity. For the final post, I will cover how to modify the existing entities that contain memo fields that are incompatible with SQL. For now, you can hook up PowerBI to the table that was created and start reporting!
Hi Josh,
What do you think? We may go with entity store or create our own DWH for reporting would be better or painless?
Thank you for sharing,
Metin
Hi Metin,
The Entity Store is a great option for an organization that is planning on reporting off of data coming directly out of AX and not any other data source. If you don’t have the need to integrate data with other data sources such as another ERP system or CRM (or other sources) then you can use the entity store. However, if you have information requirements where you need to extract data from AX and other systems and integrate that data then a data warehouse is the way to go.
Another aspect to note about the entity store is that it can only be accessed with Power BI DirectQuery mode. So if you have any requirements that can’t be satisfied with Power BI, then you will want to consider building a data warehouse.
The least painful method is probably the entity store, but it does have its limitations as mentioned above. If you are considering a data warehouse, we would suggest building out a roadmap first of the data and KPI’s you want to prioritize and bring in the data warehouse. This will enable you to break the DW implementation into manageable pieces and make it less painful.
Regards,
Michael
Hi!
What a great blog post. We are in the process of changing our way of getting data out of AX and into our DW. I have tried to read as much as possible about Entity Store but have also come across DIXF. What is you take on this? Is one better then the other or can they be combined somehow?
Regards,
Erik Liffner
Hello Erik,
Either option can work, but it depends on what you need for your data warehouse. If you want a direct connection like the entity store functionality provides, then that’s what I would attempt to use first. If there would be requirements to rip out a file and import that file to the data warehouse that’s when I’d go down the path of using the DIEF Export functionality.
Regards,
Dalton