2015-02-12 2 views
0

Я обнаружил, что есть значительные преимущества для записи представлений в SQL Server Management Studio, а не для их создания в AOT. Однако представляется, чтоСохранение представления SQL Server для Dynamics AX AOT

  • Представления, созданные на SQL Server, недоступны из кода X ++ и не отображаются в AOT.
  • Представления, созданные в AOT, а затем модифицированные в студии SQL Server Management, могут быть доступны из кода X ++, но перезаписываются, когда просмотр AOT перекомпилирован или синхронизирован.

Есть ли какой-либо путь вокруг этой проблемы? В идеале представления SQL могут быть реинжинированы для сохранения в AOT, но это не представляется возможным.

ответ

0

У нас было требование для просмотра, которое невозможно было спроектировать в AOT.

Нашего обходной подход:

  1. вид конструкции в AOT с полями только (вычисляемые столбцы с соответствующим ЭРЛОМ) - просто добавьте любую таблицу (главную)
  2. создать статический метод просмотра сервера с SQL DDL (от SSMS) и выполнить, что с Statement.executeQuery
  3. вызова этот статический метод на DB Synchonize (Application.dbSynchronize)
+0

Если мы используем Statement.executeQuery, то обязательно будет какая-либо необходимость иметь любую версию вида, сохраненную в AOT, поскольку представление не будет ссылаться ни на один код X ++? – Dilitante

+0

Вам нужен этот * Просмотр * внутри AX или нет? Если вам это нужно в AX, вам нужно AOT. Если только внешние приложения будут использовать это представление непосредственно в базе данных, вам не нужно это представление в AOT - только автоматизировать создание в DB Synchronyze. – Matej

+0

Извините, я неправильно понял ваш ответ. Я думал, что вы предлагаете вызывать Statement.executeQuery везде, где я хотел получить доступ к представлению. Ясно, что это не то, что вы предлагали. – Dilitante

0

Вы можете изменить процесс syncronization в X ++, чтобы избежать этого, но это действительно не рекомендуется. Например, созданные вручную или измененные представления подвергаются высокому риску избежать защиты от AOT. На всякий случай у вас серьезные проблемы с производительностью, это может стоить риска.

Процесс синхронизации всегда AOT-> SQL, поэтому процесс проектирования может иметь это во внимание.

+1

Спасибо за совет, в конце мы изменили наши требования, чтобы избежать этого. – Dilitante

Смежные вопросы