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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.02.2019, 15:11   #1  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от lvan Посмотреть сообщение
Я слышал, что в планах есть что-то типа Common Data Model (CDM), но в немного другом виде.
т.е. все вендоры, типа SAP, SalesForce, Microsoft придут к единой модели ентитей, что позволит упростить все интеграции
Видел даже презентацию, но забыл название, поищу

про ODBC смешно вы пишете тут.
я это слово уже лет 10 не слышал
Цитата:
Сообщение от mazzy Посмотреть сообщение
Entity, CDM - это частные случаи шаблона проектирования фасад.

Один из последних фасадов - AIF-DIXF. Который задумывался как О-го-го интеллектуальный! А в итоге получился еще одним транспортным уровнем.
В том то и дело что есть еще транспортный уровень. Абстрагируясь от внутренней реализации фасадом почему то при этом намертво привязались к web-service.

Фасад в ООП это прежде всего некий код как точка входа, но в Common Data Model вообще и в частности это прежде всего de-normalized view в базе данных. И только потом код. В качестве фасада выступает физическая таблица базы данных.
Data entities
https://docs.microsoft.com/en-us/dyn.../data-entities

ODBC/JDBC никогда не устаревало. Web-service имеют смысл только тогда когда точка входа это код бизнес-логики. А тут у нас куча служебного кода и компонентов обслуживающих конкретный вид транспорта (Web-service) только для того чтобы положить данные в Staging/Entity table.

Задача - положить данные в таблицу. В чем преимущество Web-service перед ODBC?

В упор не вижу. Кроме того что ODBC делает это лучше во всех смыслах.

При этом никакого фасада не нарушается так как весь код до Staging/Entity обслуживает только Web-service причиндалы. Да потенциально есть универсальность XML и возможность принимать те же Sales orders от кучи систем с разными схемами документов. Только интересно где такое есть. На Луне, не иначе.
Старый 28.02.2019, 11:20   #2  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Задача - положить данные в таблицу. В чем преимущество Web-service перед ODBC?
Вы упорно игнорируете практическую сторону вопроса. Основное преимущество в том, что Web-service в D365FO PROD есть, а ODBC к PROD DB нет! Вот и все. Речь не о преимуществах, а сугубо прагматических вопросах использования доступных инструментов. Дискутировать о преимуществах того, что нет по сравнению с тем, что есть, а также как эти премущества донести до X-го этажа корпуса Advanta в Сиэттле - это другая тема, которая изначально здесь не затрагивалась.
За это сообщение автора поблагодарили: trud (3).
Старый 28.02.2019, 18:10   #3  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от EVGL Посмотреть сообщение
Вы упорно игнорируете практическую сторону вопроса. Основное преимущество в том, что Web-service в D365FO PROD есть, а ODBC к PROD DB нет! Вот и все. Речь не о преимуществах, а сугубо прагматических вопросах использования доступных инструментов..
Точно нет?

Вот к примеру
Microsoft® ODBC Driver 17 for SQL Server® - Windows, Linux, & macOS
https://www.microsoft.com/en-us/down....aspx?id=56567

Microsoft ODBC Driver 17 for SQL Server is a single dynamic-link library (DLL) containing run-time support for applications using native-code APIs to connect to Microsoft SQL Server 2008, SQL Server 2008 R2, SQL Server 2012, SQL Server 2014, SQL Server 2016, SQL Server 2017, Analytics Platform System, Azure SQL Database and Azure SQL Data Warehouse. Microsoft ODBC Driver 17 for SQL Server should be used to create new applications or enhance existing applications that need to take advantage of newer SQL Server features.

А есть еще CDATA driver
Read, Write and Update D365 Finance & Operations through ODBC
https://marketplace.visualstudio.com...TASOFTWARE.dy2

P.S. Вот эти ребята даже сертифицировали свое решение. И они используют ODBC компании CDATA как я понимаю.
Не знаю насколько у них хорошее решение, но сам факт использования именно ODBC (то ли как один из вариантов то ли как основной, не так важно)
https://www.to-increase.com/business...r-dynamics-crm
Цитата:
At To-Increase, our Connectivity Studio solution, thoroughly tested and proven in many customer integration scenarios, is effective in Dynamics AX 2012 environments and is now also certified for Microsoft Dynamics 365 for Operations. By using this solution, we easily set up an integration with Salesforce CRM or Microsoft Dynamics CRM.

There are two main ways to achieve this integration. We can use the services technology directly, which involves some critical details and requires a higher level of technical expertise. Or, we can build the integration by means of an ODBC connection, which is extremely simple to set up. Instead of spending days on development and resolving technical challenges, you can have a new integration done within minutes.

Most of us working in complex Dynamics ERP environments are used to ODBC—it’s a well-known interface, designed for optimal interoperability, easy to understand and implement. In the background, ODBC accesses the available services, which means it is safe and predictable. It’s not a hack that bypasses existing functionality.
https://appsource.microsoft.com/en-u...d-c3c385c80fb2
https://www.to-increase.com/business...io-integration

В Release notes - Connectivity Studio for Microsoft Dynamics 365 for Operations упоминается ремарка
Цитата:
This release not yet contains the new feature to initialize fields on the ODBC document using the CDATA or
the DEVART ODBC driver. The initialize fields feature only works for SQL ODBC driver only.
https://gallery.azure.com/artifact/2...3728377e4f.pdf

Последний раз редактировалось ax_mct; 28.02.2019 в 19:18.
Старый 28.02.2019, 19:53   #4  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5813 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Цитата:
Сообщение от EVGL Посмотреть сообщение
Основное преимущество в том, что Web-service в D365FO PROD есть, а ODBC к PROD DB нет!
Точно нет? Вот к примеру Microsoft® ODBC Driver 17 for SQL Server® - Windows, Linux, & macOS

Microsoft ODBC Driver 17 for SQL Server is a single dynamic-link library (DLL) containing run-time support for applications using native-code APIs to connect to Microsoft SQL Server 2008, SQL Server 2008 R2, SQL Server 2012, SQL Server 2014, SQL Server 2016, SQL Server 2017, Analytics Platform System, Azure SQL Database and Azure SQL Data Warehouse.
Тут, наверно, возникла некоторая путаница в понятиях: ODBC к D365FO PROD DB в Azure нет не в техническом смысле, а в организационном - не дают индусские админы прямой доступ к рабочей базе D365FO в Azure, даже если Microsoft ODBC Driver 17 себе поставить.
Старый 27.02.2019, 16:28   #5  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,914 / 5737 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Проблемы Data Entity не в только в том, как именно данные в Staging Table кладутся, но и с дальнейшей их перекачкой в реальные таблицы.
То есть - разработчики очень пытались создать иллюзию виртуальной таблицы. То есть - ты в момент дизайна как-то какие-то таблицы заджойнил и отфильтровал, а дальше система сама разбирается, как данные из Staging по разным таблицам растащить. В теории, система должна при этом проверять ограничения целостности, вызывать всякие стандартные ValidateWrite или ValidateDelete. Оно и в самом деле работает - по крайней мере для 95% случаев, может даже для 99%. В оставшемся одном проценте тебе придется мучительно трассироваться в авто-сгененированном коде и пытаться понять что же именно не работает.
Не помогает ситуации и тот факт, что отдокументированы все стандартные методы data entity очень поверхностно.
Так что я вполне могу согласиться с одноразовым использованием data entity для импорта данных в начале проекта. Вероятно - можно рискнуть использовать все это для регулярных интеграций с невысоким потоком данных (типа закачки какой-нибудь платежной ведомости раз в месяц). Но вот для ежедневных интеграций по критическим потокам данных - я бы не рискнул все это использовать. Просто страшно...

Последний раз редактировалось fed; 27.02.2019 в 16:38.
За это сообщение автора поблагодарили: ax_mct (5).
Старый 01.03.2019, 13:41   #6  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1853 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от fed Посмотреть сообщение
Так что я вполне могу согласиться с одноразовым использованием data entity для импорта данных в начале проекта. Вероятно - можно рискнуть использовать все это для регулярных интеграций с невысоким потоком данных (типа закачки какой-нибудь платежной ведомости раз в месяц). Но вот для ежедневных интеграций по критическим потокам данных - я бы не рискнул все это использовать. Просто страшно...
Так сказать, day in life нашего клиента. Не совсем типичный, обычно процессим 1-5К строк журналов в 10 компаниях (странах) ежедневно. В общем, не так все страшно
Миниатюры
Нажмите на изображение для увеличения
Название: RI_day_in_life.GIF
Просмотров: 217
Размер:	17.9 Кб
ID:	12234  
__________________
-ТСЯ или -ТЬСЯ ?
Старый 01.03.2019, 13:51   #7  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,914 / 5737 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от Vadik Посмотреть сообщение
Так сказать, day in life нашего клиента. Не совсем типичный, обычно процессим 1-5К строк журналов в 10 компаниях (странах) ежедневно. В общем, не так все страшно
Видишь ли, у нас на основании такого же подхода работает Микрософтовский Data Integrator. Он время от времени выгружает из CRM текстовые файлы (в CSV-формате насколько я помню) и шлет через Recurrent Integrations в Ax. В среднем раз в месяц оно переглюкивает.
Отсюда весь мой скептицизм по поводу этого механизма.

Последний раз редактировалось fed; 01.03.2019 в 13:56.
Старый 08.03.2019, 08:41   #8  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,914 / 5737 (197) ++++++++++
Регистрация: 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   #9  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1853 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от fed Посмотреть сообщение
Кстати, а как вы диагностируете проблемы, если что-то ломается на стадии загрузки в staging ?
У нас ломалось только на битых файлах "с той стороны". Тогда - View execution log \ Staging log details. Уже не помню когда в телеметрию последний раз заглядывал
Цитата:
Глюки change tracking и interactive push (сам сталкивался при работе data integrator)
Очень медленная выгрузка больших объемов в BYOD
Я за коммунизм агитировать не буду, просто напишу что у меня есть клиент который в BYOD проводки ГК (GeneralJournalAccountEntry) выгружает инкрементально несколько раз в час - отчеты из BYOD и TB сходятся
__________________
-ТСЯ или -ТЬСЯ ?
Старый 28.02.2019, 01:42   #10  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Судя по предлагаемым сценариям весь импорт в D365FO это использование entities.
https://docs.microsoft.com/en-us/dyn...d-ops/toc.json
То есть если импорт обходя entities то это уже "на коленке".

JSON формата {key, value, type} кстати не видно. Тот же SQL Server 2016 уже умеет OPENJSON.
Прикрутят, не удержаться. Как еще один слой между чем-нибудь. XML -> CSV -> JSON -> Entity -> JSON просто напрашивается.

К слову у меня сейчас клиент предлагает именно JSON файлы в AX читать. Как бы хайп XML прошел, сейчас время JSON
Старый 28.02.2019, 09:19   #11  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Энтити поддерживают ODATA в формате JSON, по крайней мере, на вывод.

Цитата:
[Your organization's root URL]/data/Customers?$format=json List all the customers in a JSON format that can be used to interact with JavaScript clients.

Последний раз редактировалось belugin; 28.02.2019 в 10:12.
За это сообщение автора поблагодарили: ax_mct (3).
Старый 28.02.2019, 17:47   #12  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2161 (81) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Т.е. еще одна тема, в которой пора разделять аксу на две версии: облачную и он-прем.
__________________
Ivanhoe as is..
За это сообщение автора поблагодарили: ax_mct (3).
Старый 01.03.2019, 15:09   #13  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,480 / 1255 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Простите что вмешиваюсь в интересную дискуссию, а как там BizTalk поживает? Или уже не поддерживается сие чудо? Или Data Integrator - его часть?

С Уважением,
Георгий
Старый 01.03.2019, 15:25   #14  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от George Nordic Посмотреть сообщение
Простите что вмешиваюсь в интересную дискуссию, а как там BizTalk поживает? Или уже не поддерживается сие чудо? Или Data Integrator - его часть?
Вопрос о какой-то специфической поддержке не идет. Надо поставить ODATA адаптор.
Старый 01.03.2019, 15:35   #15  
twilight is offline
twilight
MCTS
MCBMSS
 
890 / 241 (10) ++++++
Регистрация: 17.10.2004
Адрес: Королёв
Цитата:
Сообщение от George Nordic Посмотреть сообщение
Простите что вмешиваюсь в интересную дискуссию, а как там BizTalk поживает?
Да вроде работает. Это же полностью независимый продукт.
__________________
I could tell you, but then I would have to bill you.
Старый 01.03.2019, 20:27   #16  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от George Nordic Посмотреть сообщение
Простите что вмешиваюсь в интересную дискуссию, а как там BizTalk поживает? Или уже не поддерживается сие чудо? Или Data Integrator - его часть?

С Уважением,
Георгий
BizTalk ползет на кладбище. Сейчас вместо него облачный Logic Apps. https://azure.microsoft.com/en-gb/services/logic-apps/

BizTalk вообще интересная тема в контексте интеграции и энтерпрайз в том смысле что интеграция всегда у нас нужна, а это такая супер-пупер мощная и гибкая штука. Обязана была завоевать мир.
Но как-то практически весь AX мир обошелся CSV файлами на коленке. Очень хороший пример что при наличии выбора между сложным инструментом и коленкой, выбирается коленка. Но эта земная физика наверно неприменима к облакам (*aaS, “as-a-Service”), там небесные законы и божий промысел.

Вот неплохая статья про то что полагается использовать (уже была эта ссылка несколько постов назад)
Choose a data integration (import/export) strategy
https://docs.microsoft.com/en-us/dyn...d-ops/toc.json
За это сообщение автора поблагодарили: EVGL (2).
Старый 01.03.2019, 22:56   #17  
Stitch_MS is offline
Stitch_MS
Участник
Аватар для Stitch_MS
Соотечественники
 
397 / 483 (17) +++++++
Регистрация: 27.02.2006
Адрес: Дания
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Но как-то практически весь AX мир обошелся CSV файлами на коленке.
Цитата:
Heavy is good. Heavy is reliable.
За это сообщение автора поблагодарили: Logger (1).
Старый 01.03.2019, 23:29   #18  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Stitch_MS
Это Taken 2: Take the Fucking Elephant!
Старый 02.03.2019, 17:29   #19  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,726 / 1208 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Очень хороший пример что при наличии выбора между сложным инструментом и коленкой, выбирается коленка.
Немножко не так.

Интеграция - легко и просто делается для конкретных таблиц/документов, но крайне сложно сделать "вообще". Т.е. некую универсальную оболочку для интеграции реализовать невозможно. В принципе.

Даже для простейших схем интеграции плоских таблиц-справочников "в общем случае" надо "наворочать" "километры" кода. Что бы там кто ни говорил, что вот у них сделано и работает, но если "заглянуть под капот", то это "тихий ужас" и "без поллитры не разберешься".

И ведь, зараза такая, все это оправдано! Если все-таки начать разбираться, то, да, в общем случае и это нужно, и вот то. А если вот такой вариант, то нужно еще вот здесь обойти, здесь перепрыгнуть, а вот здесь, вообще подкоп сделать

Соответственно, и встает выбор - разбираться в крайне не тривиальном коде и таком же крайне не тривиальном дизайне или "по быстрому" написать "на коленке" без всех этих универсальных "общих случаев"

---------------------

Но! Блин! Ведь при интеграции много однотипных операций! Ну как же здесь не попытаться этот самый универсальный инструмент сделать! Ну очень хочется! Однотипные же... Но не получается... Но хочется...

Так что, попытки написания универсального инструмента интеграции были, есть и будут. И все будут провальными именно для "общего случая", но вполне рабочими для каких-то "частных задач".
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...

Последний раз редактировалось Владимир Максимов; 02.03.2019 в 17:38.
За это сообщение автора поблагодарили: AlGol (2), trud (1), twilight (1), Raven Melancholic (2).
Старый 02.03.2019, 21:42   #20  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Однотипные же... Но не получается... Но хочется...

Так что, попытки написания универсального инструмента интеграции были, есть и будут. И все будут провальными именно для "общего случая", но вполне рабочими для каких-то "частных задач".
В итоге уже три варианта от трех разных обвешанных всякими золотыми и прочими статусами партнеров интеграции куплено.
Покупались конкретные прикладные модули, вместе с ними шли супер универсальные модули синхронизации.
Все три раза специалисты этих партнеров не смогли настроить свои же модули синхронизации для своих же прикладных модулей. В итоге останавливались на частных механизмах синхронизации этих прикладных модулей, а про купленные универсальные три разных партнера произносили одну и ту же фразу - "Вы сможете использовать их для других задач".
За это сообщение автора поблагодарили: fed (5), EVGL (5), Logger (3).
Теги
#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, время: 18:35.