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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.03.2019, 11:20   #181  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от ax_mct Посмотреть сообщение
DMF и web-service отвергнуто клиентом самостоятельно.
Убедить клиента, что он не прав и надо использовать DMF. Может быть, даже создать свой набор упрощенных классов, а не заморачиваться со стандартными. Импортировать текстовые файлы.
Старый 07.03.2019, 12:14   #182  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,907 / 5717 (196) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от EVGL Посмотреть сообщение
Убедить клиента, что он не прав и надо использовать DMF. Может быть, даже создать свой набор упрощенных классов, а не заморачиваться со стандартными. Импортировать текстовые файлы.
Тут в Яммере Сунил задал вопрос "Какие Anti-patterns при работе с data entities вы знаете". В тему внесены 22 ответа за два дня. Перечислены все области функционала, кроме примитивного одноразового импорта ограниченного числа строк.
Старый 07.03.2019, 12:28   #183  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от fed Посмотреть сообщение
Тут в Яммере Сунил задал вопрос "Какие Anti-patterns при работе с data entities вы знаете". В тему внесены 22 ответа за два дня. Перечислены все области функционала, кроме примитивного одноразового импорта ограниченного числа строк.
И есть реально что-то интересное кроме паттернов которые сам MS настоятельно просит не использовать во всех techtalks, вроде объемного data management и Power BI через OData? Что для упоротых эти рекомендации не указ, в общем и так было понятно

P.S. суд по количеству лайков под постом trud о том, что подбирать надо не лучшую технологию "вообще", а технологию под конкретную задачу - прочитали его многие, поняли и оценили не все. Ничего личного, просто мысли вслух
__________________
-ТСЯ или -ТЬСЯ ?

Последний раз редактировалось Vadik; 07.03.2019 в 12:48.
Старый 07.03.2019, 13:48   #184  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Импорт JSON текстовых файлов. А подойдет DMF для update? Все изменения (246 полях из 39 таблиц) должны приниматься AX.
И AIF тоже выглядит вкусно как готовый шаблон который можно местами расширить, местами сдублировать.
JSON не поддерживается, в вот почему: https://www.mssqltips.com/sqlservert...tion-services/
Для update подойдет. Там, где это можно, entity работают в режиме UPSERT, пользуемся этим каждый день.
Про AIF уже все было сказано.

Извините, в который раз отредактировал вместо того, чтобы ответить.

Последний раз редактировалось EVGL; 07.03.2019 в 13:55.
Старый 07.03.2019, 14:00   #185  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от Vadik Посмотреть сообщение
И есть реально что-то интересное кроме паттернов которые сам MS настоятельно просит не использовать во всех techtalks, вроде объемного data management и Power BI через OData? Что для упоротых эти рекомендации не указ, в общем и так было понятно

P.S. суд по количеству лайков под постом trud о том, что подбирать надо не лучшую технологию "вообще", а технологию под конкретную задачу - прочитали его многие, поняли и оценили не все. Ничего личного, просто мысли вслух
Сначала размер задницы и только потом памперс. Просто брать тот же DMF и его пилить потому что он лучший выбор вообще, конечно же нет. Скорость разработки и надежность работы важнее правильности. Даже если это будет 246 копи-пастов c прямой работой с табличными буферами и вызовом .modifiedField(). Никто не осудит.
Но конечно этого хочется избежать. Продебажу стандартный AIF сервис и копну DMF. А там задница подскажет без оглядки на рекомендации MS.

P.S. Прикольно я сам с собой разговариваю. Cпасибо!

Последний раз редактировалось ax_mct; 07.03.2019 в 14:03.
Старый 07.03.2019, 15:34   #186  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,907 / 5717 (196) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от Vadik Посмотреть сообщение
И есть реально что-то интересное кроме паттернов которые сам MS настоятельно просит не использовать во всех techtalks, вроде объемного data management и Power BI через OData? Что для упоротых эти рекомендации не указ, в общем и так было понятно
1. Глюки change tracking и interactive push (сам сталкивался при работе data integrator)
2. Очень медленная выгрузка больших объемов в BYOD
3. Отстутствие параллелизма для многих типов Entity. (Да - я знаю что некоторые из них на number sequence завязаны, но грузить-то их как-то надо).
Не из темы, а из собственного опыта:
1. Вчера внезапно у клиента перестал работать тупой экспорт из Customers в excel. Диагностики нету, есть только код ошибки от SSIS. Удалось победить заменив экспорт в excel на экспорт в CSV. Это Tier-2 окружение, в котором я точно никакого странного постороннего софта не ставил.
2. Несколько раз видел когда один и тот же набор данных грузился в обычном режиме и выдавал какую-то загадочную диагностику от SQL в Set Based update. (Хотя ok, Set Based update - это экстрим. Но с другой стороны - он заявлен и галочка не скрыта...)

Я собственно нигде не отрицаю, что надо инструмент сообразно задаче выбирать. Просто опыт работы с DMF показывает что все кроме простейшего функционала там неустойчиво, неоттестировано и не имеет средств диагностики.

Последний раз редактировалось fed; 07.03.2019 в 16:54.
За это сообщение автора поблагодарили: sukhanchik (3).
Старый 08.03.2019, 08:41   #187  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,907 / 5717 (196) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от Vadik Посмотреть сообщение
Так сказать, day in life нашего клиента. Не совсем типичный, обычно процессим 1-5К строк журналов в 10 компаниях (странах) ежедневно. В общем, не так все страшно
Кстати, а как вы диагностируете проблемы, если что-то ломается на стадии загрузки в staging ? В таких ситуациях обычно только в event log полная информация об ошибке есть,а event log в prod не доступен. Вроде бы часть информации из event log в environment diagnostics тянется, но лога именно интеграции SSIS и D365FOE я там не нашел. (Возможно - плохо искал).
Старый 08.03.2019, 10:12   #188  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от fed Посмотреть сообщение
Кстати, а как вы диагностируете проблемы, если что-то ломается на стадии загрузки в staging ?
У нас ломалось только на битых файлах "с той стороны". Тогда - View execution log \ Staging log details. Уже не помню когда в телеметрию последний раз заглядывал
Цитата:
Глюки change tracking и interactive push (сам сталкивался при работе data integrator)
Очень медленная выгрузка больших объемов в BYOD
Я за коммунизм агитировать не буду, просто напишу что у меня есть клиент который в BYOD проводки ГК (GeneralJournalAccountEntry) выгружает инкрементально несколько раз в час - отчеты из BYOD и TB сходятся
__________________
-ТСЯ или -ТЬСЯ ?
Старый 11.03.2019, 22:10   #189  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Есть такой интересный посыл от евангелиста (Martin Dráb)
Цитата:
D365FO doesn't come with it's own way for handling these things; simply take a .NET API of your choice and use it as in any other .NET application. It also means that you'll find a plenty of information on internet - tutorials, code samples and so on.

Just wrap the logic in a .NET class library, add a reference to your X++ project and call classes in the library when needed.

https://community.dynamics.com/365/f...f/765/t/300455
В связи с чем у меня вопрос. Если при вызове со стороны D365 все понятно что можно все, тот же TCP WCF (к сожалению .NET Remoting прибили для кросс-платформенности).

А вот как стучаться в D365 из .NET сборки на том же сервере? ODATA если вставка записей или custom service JSON/SOAP если обращение к коду? То есть только через Active Directory и IIS?

И чем им .NET/Business Connector помешал? При чем тут кросс-платформенность не понимаю.
Старый 12.03.2019, 00:14   #190  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1630 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от ax_mct Посмотреть сообщение
А вот как стучаться в D365 из .NET сборки на том же сервере? ODATA если вставка записей или custom service JSON/SOAP если обращение к коду? То есть только через Active Directory и IIS?
Это вроде описано в документации. есть даже пример с открытым кодом
https://github.com/Microsoft/Recurri...ions-Scheduler
Старый 12.03.2019, 13:46   #191  
Stitch_MS is offline
Stitch_MS
Участник
Аватар для Stitch_MS
Соотечественники
 
397 / 478 (16) +++++++
Регистрация: 27.02.2006
Адрес: Дания
Цитата:
Сообщение от fed Посмотреть сообщение
Просто опыт работы с DMF показывает что все кроме простейшего функционала там неустойчиво, неоттестировано и не имеет средств диагностики.
Только что наткнулся
За это сообщение автора поблагодарили: ax_mct (2).
Старый 12.03.2019, 15:32   #192  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от ax_mct Посмотреть сообщение

А вот как стучаться в D365 из .NET сборки на том же сервере? ODATA если вставка записей или custom service JSON/SOAP если обращение к коду? То есть только через Active Directory и IIS?
Цитата:
Сообщение от trud Посмотреть сообщение
Это вроде описано в документации. есть даже пример с открытым кодом
https://github.com/Microsoft/Recurri...ions-Scheduler
Пример классный спасибо. Интересно и очень в тему. Там сервис который перемещает файлы c данными и умеет это делать в частности в Azure BLOB.

Но это не совсем "то". Хотя я уже все понял. Martin Dráb сказал что можно все что можно в .NET и я призадумался. И обнаружил что в современном .NET можно сделать гораздо меньше чем в мое время.

То есть .NET Remoting (https://en.wikipedia.org/wiki/.NET_Remoting) в D365FO не применим. Это конечно вопрос к .NET.
То есть .NET Business Connector уже не часть D365FO и варианты вызова кода это только веб-сервисы. Через AAD и IIS и никак иначе. И тут я всплакнул за Business Connector.
Старый 12.03.2019, 15:42   #193  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от ax_mct Посмотреть сообщение
То есть .NET Business Connector уже не часть D365FO и варианты вызова кода это только веб-сервисы..
Если сборка уже загружена в процесс dyn365fo и вызвана оттуда, то из нее можно вызывать X++ классы https://docs.microsoft.com/en-us/dyn...business-logic
Старый 12.03.2019, 16:29   #194  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от belugin Посмотреть сообщение
Если сборка уже загружена в процесс dyn365fo и вызвана оттуда, то из нее можно вызывать X++ классы https://docs.microsoft.com/en-us/dyn...business-logic
Классный пример в копилку. Спасибо.
В приведенном примере AXQueryProvider (LINQ) и подписка на AX событие из C#.
Вызова X++ класса в примере нет.

Кстати жалуются что данный пример не рабочий из-за binding errors.
"12 Sep 2018 Bug 246523 has been logged to track this issue." и до сих пор.
https://github.com/MicrosoftDocs/dyn...lic/issues/326

Но идея интересная сама по себе. Только мне кажется что это даже чинить не будут, закроют такую фичу как ненужную. Оставив замечательную статью о возможностях

И будет сакральное знание о том что так делать не стоит уделом экспертов которым платят за то что они знают чему верить, а чему нет. Я например из этого понял что AX из C# это плохой и проблемный дизайн в данном контексте. Так как то же самое можно сделать с C# из X++ и спокойнее спать.

Или таки есть опыт вызовов X++ классов из C#?
Старый 12.03.2019, 17:40   #195  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от ax_mct Посмотреть сообщение
к сожалению .NET Remoting прибили для кросс-платформенности.
...
Martin Dráb сказал что можно все что можно в .NET и я призадумался. И обнаружил что в современном .NET можно сделать гораздо меньше чем в мое время.
Что интересно Java RMI так и осталось. Те же удаленные вызовы кода на уровне сокетов по внутреннему протоколу.
https://en.wikipedia.org/wiki/Java_r...hod_invocation
https://docs.oracle.com/javase/1.5.0...llo-world.html

При этом да, судя по всему Java RMI сейчас используют намного меньше чем раньше, все делают REST. Как бы общий тренд вообще.
P.S. По сути формально оставшись Java RMI тоже с рынка ушла.

Но добавляя (интеграционный) компонент на ту же машину (в виде DLL в случае .NET) и использовать
web-средства коммуникации, это странно.
Даже в on-premise это сборка (подписанная причем) должна быть зарегистрирована как приложение в Azure AD и ходить TCP через IIS (в AX).

Последний раз редактировалось ax_mct; 12.03.2019 в 17:59.
Старый 28.03.2019, 00:56   #196  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Но сейчас у меня задача выбора архитектуры и создания рабочего прототипа.
Есть AX2012R3 и есть отдельная система master data management в которую должно быть передано управление номенклатурой товаров со всеми этими 30 таблицами вокруг этого.
2 совещания сегодня, есть список из 200-300 полей в 20-30 таблицах в AX которые должны обновляться из этой другой системы.

DMF и web-service отвергнуто клиентом самостоятельно.

Задача создания предельно стандартной коленки чтения из JSON файлов.
Цитата:
Сообщение от trud Посмотреть сообщение
Вам надо изначально создать документ который будет описывать интеграцию.
В этом документе вы должны ответить на все вопросы(т.е. по сути каждый ответ может кардинально изменить подход и способ интеграции), далее уже можно будет думать и обсуждать как этого достить.
Цитата:
Сообщение от EVGL Посмотреть сообщение
Убедить клиента, что он не прав и надо использовать DMF. Может быть, даже создать свой набор упрощенных классов, а не заморачиваться со стандартными. Импортировать текстовые файлы.
...
JSON не поддерживается, в вот почему:
...
Для update подойдет. Там, где это можно, entity работают в режиме UPSERT, пользуемся этим каждый день.
Про AIF уже все было сказано.
Делюсь опытом. Честно покопался в DMF, поиграл с AIF, в результате сделал коленку. DMF это зависимость от DLL, а AIF это использование XML и AIF настроек. За то время за которое я сделал свой фреймворк я бы только разбирался с очередной ошибкой в DMF или AIF. То есть точно то что уже говорилось в теме.

Сложный фреймворк - простой/стандартный бизнес процесс. Настроить без программирования.
Простой фреймворк - сложный бизнес процесс. Только с простым можно программировать.

Использование DMF, AIF для программирования противоречит 3 закону кибернетики.
Только простой фреймворк может компенсировать Agile и нестандартные но при этом логичные требования клиента.
Старый 28.03.2019, 14:20   #197  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1630 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от ax_mct Посмотреть сообщение
За то время за которое я сделал свой фреймворк я бы только разбирался с очередной ошибкой в DMF или AIF.
Это положительный момент или отрицательный? (ну т.е. могли к примеру зачаржить 150часов, а зачаржили 40)
За это сообщение автора поблагодарили: Stitch_MS (1).
Старый 28.03.2019, 20:29   #198  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от trud Посмотреть сообщение
Это положительный момент или отрицательный? (ну т.е. могли к примеру зачаржить 150часов, а зачаржили 40)
Хороший вопрос. Одномоментно может быть но не в средней перспективе.
Один раз зачаржишь 150 часов на AIF, в следующий раз будет делать тот кто делает на коленке за 40 часов. Конечно если клиент может сравнивать. А они как правило могут.

Скорее всего сделав с AIF за 150 часов потом будешь отлавливать там чисто технические ошибки за свой счет вместо того чтобы чарджить дальше за реализацию новых бизнес-задач в своем собственном фреймворке.

Если он сам не упирается рогом что хочет именно AIF/DMF то вряд ли он поймет увеличение стоимости в разы. Есть некое количество дней в мозгах у всех на примерные задачи.
Оценив в 20 дней скорее всего работы просто бы не было или была но мозг бы сьели потом. Интерфейсные вещи это 5-10 дней начально по крайней мере.

При данном заказе для клиента важна прозрачность и понятность ошибок по отношению к каждому полю в JSON файле, что выяснилось кстати уже после демонстрации прототипа и основное отличие в охвате импорта, порядка 40 таблиц с 300 полями. Задача просто бы не взлетела с AIF/DMF. То есть в Agile, когда все нюансы требований в процессе уточнения, использовать танки вместо телеги просто опасно. Я пару раз облегченно вздохнул что на коленке.

Последний раз редактировалось ax_mct; 28.03.2019 в 20:33.
Старый 28.03.2019, 21:14   #199  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Скорее всего сделав с AIF за 150 часов потом будешь отлавливать там чисто технические ошибки за свой счет вместо того чтобы чарджить дальше за реализацию новых бизнес-задач в своем собственном фреймворке
https://youtu.be/-nJ8tXXLJNQ

Что, неужели так много ошибок нашли пока разбирались?
__________________
-ТСЯ или -ТЬСЯ ?
Старый 28.03.2019, 22:02   #200  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от Vadik Посмотреть сообщение
https://youtu.be/-nJ8tXXLJNQ

Что, неужели так много ошибок нашли пока разбирались?
Запустил AIF Service классы из джобика с целью продебажить конкретный нужный мне сервис на предмет его расширения, поймал ошибки конфигурации в схеме и понял что не хочу связываться.
Я честно посвятил AIF 10 минут своей жизни и понял что это не мое

Совсем мне не захотелось заниматься еще и конфигурациями и настройками просто затем чтобы читать из файла. Как бы нюансы деплоймента и надежности работы. Совсем неинтересно зависеть от AIF настроек в политически сложном проекте.

Ладно там если веб-сервисы, но вот зачем мне XSD, XML чтобы прочитать из JSON файла? Какая мне польза как программисту от AIF как инструмента при импорте из файла?

Всю возможную пользу от AIF в случае импорта из текстового файла можно выборочно оттуда взять максимум за два дня. Что я и сделал. Есть полезный код, да. Поскольку с AIF уже работал то просто уже знал откуда брать.

Entity из DMF использую как структуру, тоже честно DMF посмотрел, примерно часик посмотрел и впечатлился глубиной извращений. Ну его в болото такое дергать. Оно не для программиста этот фреймворк.

Как ни странно полезное нашел в PBA и Retail классах как пример API для создания продуктов.
А все остальное что в DMF что в AIF приходит к validateField, modifiedField, validateWrite, write.
Ну и зачем мне обертки от которых одна боль?
Теги
#msftadvocate, aif, абстракции, закопаем стюардессу, индийская кухня, интеграция, как правильно, холивар

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Должностные лица - использовать или нет? olesh DAX: Программирование 5 04.03.2019 16:22
Модуль Проекты можно ли использовать Aquarius DAX: Функционал 1 27.02.2015 18:35
AX.NET: интеграция .NET-приложений с Аксаптой и (будущие) возможности облачных вычислений gl00mie DAX: Программирование 2 23.04.2010 00:47
Андре: Интеграция Ax с системами контроля версий Андре DAX Blogs 7 03.03.2008 14:47
Управление командой разработчиков - что лучше использовать ShadowFromXZone DAX: Прочие вопросы 66 05.02.2007 19:58

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

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

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