Union view basics and common issues in AX 2012

Continue reading

Views in Microsoft Dynamics AX 2012 are basically virtual tables which contents are defined by one or more sources of data.

IDynamics AX 2012 views enables you to use the power of SQL Server more efficiently than simply creating complex queries from the code.

Let’s imagine a situation where you want to combine data from multiple datasources. To achieve that you can use union views.

First you must create Union Query. When you do that you must remember about few things:

  • Number of columns and their type must be the same on each datasource,
  • There is no conversion between types (neither explicit nor implicit),
  • You cannot use union query to update records,
  • Field names that union query uses are taken from the first datasource.

For each datasource except the first one you will have the possibility to select UnionType, which is basically asking you if you want to have duplicates (UnionAll) or not (Union).

For the sake of demonstration I created two tables with one field of type string and one of type integer (which I will not use) and then created following query of QueryTypeUnion.

Created tables.

Next step I created a view and drag and dropped Query1 into it.

Query structure after action.

Next step is to select wanted fields from datasrouce Table1_1 into the (View2 -> Fields), if you for some reasons forget to do this you will have the following error:

“You are not authorised to access table ‘View2’ (View2). Contact your system administrator.”

Another issue that you might stumble across is when there is a mismatch between UnionType on datasource of the view and on the union query used or there are different QueryTypes on different datasources.

“Invalid column name 'UnionAllBranchId'.”

SQL Error - Invalid column name.

If everything was created fine and there are no errors, you can use your view in the system just like a regular table.

View without errors.
More articles
Explore our blog

What can we do for you?

We'd love to hear about your project. Our team will get back to you within two working days.

Thank you for inquiry, we’ve passed it to our sales department, our representative will reach you back in his earliest convenience.

Oops! Something went wrong while submitting the form.
.

Dziękujemy za zapytanie, przekazaliśmy je do naszego działu sprzedaży. Nasz przedstawiciel skontaktuje się z Państwem w najbliższym możliwym terminie.

Ups! Coś poszło nie tak podczas przesyłania formularza.