AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.05.2022, 20:34   #1  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
674 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Создать таблицу в D365FO из X++ без синхронизации
Пиполь, вот в старые недобрые времена можно было взять да и создать табличку прямо из кода:

treeNodeTable = treeNode.AOTadd(#tmpTablesTable);

но теперь, в D365FO это нельзя (и правильно!), а как же можно?

нужно временное хранилище (то есть необязательно прямо таблицу как таблицу, а вообще что-то похожее на неё) на пару-тройку столбцов. прямым SQL выстрелом? или как-то ещё?

спасибо
__________________
Felix nihil admirari
Старый 09.05.2022, 20:46   #2  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,325 / 3548 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Собственно 2 вопроса:
1. Почему нельзя воспользоваться обычным SQL-оператором CREATE TABLE? (как в "своей" БД, так и во временной)
2. Почему нельзя заранее создать в АОТе временную (TempDB) табличку и потом уже к ней обращаться, хоть из T-SQL?

Т.е. вопрос глобальный один. Даже в старых версиях - зачем нужно было из кода создавать табличку именно в АОТе?
__________________
Возможно сделать все. Вопрос времени
За это сообщение автора поблагодарили: wojzeh (1).
Старый 09.05.2022, 21:41   #3  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
674 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Собственно 2 вопроса:
1. Почему нельзя воспользоваться обычным SQL-оператором CREATE TABLE? (как в "своей" БД, так и во временной)
я не говорил, что нельзя - я спрашиваю, можно ли. и где именно она создатся? такой трюк можно провернуть только в devbox или вплоть до prod?

Цитата:
Сообщение от sukhanchik Посмотреть сообщение
2. Почему нельзя заранее создать в АОТе временную (TempDB) табличку и потом уже к ней обращаться, хоть из T-SQL?

Т.е. вопрос глобальный один. Даже в старых версиях - зачем нужно было из кода создавать табличку именно в АОТе?
ответ всё тот же: нужно сделать это "на лету", без promotion. примерно за тем же, зачем сделали теперь вот это https://docs.microsoft.com/en-us/dyn...custom-scripts

(кстати, никак не могу понять, как эту фичу активировать. upd: нашёл: INSERT INTO SYSFLIGHTING (FLIGHTNAME, ENABLED, FLIGHTSERVICEID) VALUES ('AppConsistencyCustomScriptFlight', 1, 12719367)
__________________
Felix nihil admirari

Последний раз редактировалось wojzeh; 09.05.2022 в 21:56.
За это сообщение автора поблагодарили: sukhanchik (4).
Старый 10.05.2022, 00:38   #4  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,325 / 3548 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от wojzeh Посмотреть сообщение
я не говорил, что нельзя - я спрашиваю, можно ли. и где именно она создатся? такой трюк можно провернуть только в devbox или вплоть до prod?
Для SQL Server суть неважно - devbox или prod. Здесь важно, чтобы были необходимые права в самом SQL Server. Вот тут не подскажу. Какое-то (достаточно большое) количество PU назад - было всё возможно и по сути можно было закодить мини SQL Management Studio на X++ для управления БД на облачном проде. И этим активно пользовались. Поэтому здесь выход только один - надо пробовать. Ну и не забывать о том, что Microsoft всегда без предупреждения может урезать права.
Всё вышесказанное относится к постоянной таблице в базе AxDB.
Если говорить про временные таблицы в TempDB, то тут вообще всё без проблем, потому что сами таблицы и так регулярно создаются системой (т.е. у AppPool-а априори есть права на создание таблиц в TempDB). Но работать с такой таблицей сможет только T-SQL.
Если же есть возможность заранее создать структуру таблицы в AOT-е (как TempDB), то появится возможность управлять этой таблицей из X++ (помимо T-SQL), что может облегчить работу с данными в таблице.
__________________
Возможно сделать все. Вопрос времени
Старый 10.05.2022, 01:39   #5  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Вот это https://docs.microsoft.com/en-us/dyn...defined-fields создает поля на лету без синхронизации. Посмотрите как работает.
За это сообщение автора поблагодарили: sukhanchik (2), trud (2), wojzeh (1).
Старый 10.05.2022, 19:41   #6  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
674 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Нажмите на изображение для увеличения
Название: cannot.jpg
Просмотров: 44
Размер:	162.3 Кб
ID:	13380
__________________
Felix nihil admirari
Старый 10.05.2022, 19:53   #7  
Pandasama is offline
Pandasama
Участник
 
457 / 137 (5) +++++
Регистрация: 11.08.2014
Адрес: Барнаул
Я на практике с 365й не работал, но, по идее - у АОСа есть практически полные права на базу аксапты? То есть можно из кода SQL-запросом создать там что угодно? Возможно, на временную таблицу, но постоянную, которую потом дропнуть?
Старый 10.05.2022, 21:10   #8  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от wojzeh Посмотреть сообщение
А как Вы собираетесь деплоить код для доступа к этим данным без остановки приложения ?
__________________
-ТСЯ или -ТЬСЯ ?
Старый 11.05.2022, 02:02   #9  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
674 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от Vadik Посмотреть сообщение
А как Вы собираетесь деплоить код для доступа к этим данным без остановки приложения ?
Custom code flight feature.
Грузим код через готовый deployable package, а уж он там на месте сам всё создаёт - и таблицы, и форму, и логику для работы с этими таблицами
__________________
Felix nihil admirari
Старый 11.05.2022, 06:58   #10  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
647 / 350 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Цитата:
Сообщение от wojzeh Посмотреть сообщение
нужно временное хранилище (то есть необязательно прямо таблицу как таблицу, а вообще что-то похожее на неё) на пару-тройку столбцов. прямым SQL выстрелом? или как-то ещё?
Struct?
__________________
// no comments
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Alexdmeyer: Current State of D365FO User Licensing for May 2020 Blog bot DAX Blogs 0 22.05.2020 00:14
emeadaxsupport: Inspecting a D365FO Meta Data Hotfix Content Blog bot DAX Blogs 0 19.10.2018 14:11
d365technext: SSRS Report with custom fonts in D365FO Blog bot DAX Blogs 0 15.08.2018 17:15
erconsult: Copy-paste with keyboard script 2: from Excel to D365FO Blog bot DAX Blogs 0 03.08.2018 11:12

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 00:45.