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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.09.2010, 16:13   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от fed Посмотреть сообщение
По секрету тебе скажу - все системы автоматизированного тестирования являются внешними программами
fed, извини, но сейчас ты занимаешься подменой понятий.
снова хочу обратить на первоисточник.
В первоисточнике не говорилось об аспекте внутренний/внешний. В первоисточнике говорилось о разных механизмах доступа к данным.

будет ли это внутренней программой (ключевое слово select, класс query на том же самом AOS, запись логов из AOS в отдельную базу как в TraceParser) или внешней программой - не важно. Важен механизм доступа (select/query - один механизм, прямой запрос/connection - другой механизм).

мы говорим о механизмах доступа к тестируемым данным (как на чтение, так и на запись)
механизмы доступа должны использоваться те же самые, что и у клиентов.

возможно, разработчики выдерут из ядра Аксапты кусок работы с aod и данными - ради бога, пусть.
возможно, разработчики даже оформят это отдельной программой с какими-то дополнительными опциями по связи с их системой тестирования - ради бога, пусть.

но чего ни в коем случае не должны делать разработчики - придумывать совсем другой механизм доступа к данным!
__________________
полезное на axForum, github, vk, coub.
Старый 17.09.2010, 16:22   #2  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
мы говорим о механизмах доступа к тестируемым данным (как на чтение, так и на запись)
механизмы доступа должны использоваться те же самые, что и у клиентов.
полностью согласен! ведь народ который использует эту программу, пользуется механизмами, которые написаны в самой аксапте, на Х++. А не внешними программами, которые написанны (+ ко всему) на других языках.
что собственно mazzy уже не в первом посте пытается донести!
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 17.09.2010, 16:35   #3  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,913 / 5736 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от lev Посмотреть сообщение
полностью согласен! ведь народ который использует эту программу, пользуется механизмами, которые написаны в самой аксапте, на Х++. А не внешними программами, которые написанны (+ ко всему) на других языках.
что собственно mazzy уже не в первом посте пытается донести!
С большим трудом представляю себе клиента или партнера, который, ну например, много раз, программным путем вставляет в таблички salesTable/salesLine фиксированный набор заказов для конкретных клиентов
Забудтье про клиентов и партнеров - это юнит-тесты. Такого на реальных внедрениях не бывает...
Старый 17.09.2010, 16:44   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от fed Посмотреть сообщение
С большим трудом представляю себе клиента или партнера, который, ну например, много раз, программным путем вставляет в таблички salesTable/salesLine фиксированный набор заказов для конкретных клиентов
Забудтье про клиентов и партнеров - это юнит-тесты. Такого на реальных внедрениях не бывает...
мы например, делаем. но не так.
дело в том, что стандартные средства Аксапты позволяют избавиться от большого числа рутинных операций типа "вставляет в таблички".

у нас обычно есть настроенная компания-шаблон, в которой по результатам тестирования настройки меняются.

мы много раз копируем эту компанию и выполняем заранее записанную последовательность действий (разносим документы, выполняем периодические операции). После чего проверяем заранее определенные ожидаемые параметры и результаты. Меняем настройки в шаблонной и снова копируем.

Да, иногда приходится (после изменения настроек) перевбивать данные в компанию шаблон (например, пересоздавать те же самые заказы после смены парамера авторезервирования). Но процесс перевбивания также выполняется в отдельной компании. И также четко контролируется.

Если бы встроенный в Аксапту модуль unitTest умел бы работать именно так, то я был бы щастлив.
__________________
полезное на axForum, github, vk, coub.
Старый 17.09.2010, 16:48   #5  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от fed Посмотреть сообщение
С большим трудом представляю себе клиента или партнера, который, ну например, много раз, программным путем вставляет в таблички salesTable/salesLine фиксированный набор заказов для конкретных клиентов
Ну например розничная торговля:
Есть сеть магазинов, например 50, есть РЦ. В каждом магазине заказывается товар, возьмем например Масло подсолнечное. Соответственно у каждого магазина примерно известно кол-во потребляемого масла, и по потребностям магазина делается закупка на РЦ. При физ разноске закупки на РЦ автоматом формируются Заказы на Розничного клиента с разными складами (каждый склад, свой магазин).
Так как потребность у магазина постоянно примерно одинаковая (не считая сезонные всплески\падения по отдельным позициям), Вот и получается: "много раз, программным путем вставляет в таблички salesTable/salesLine фиксированный набор заказов для конкретных клиентов" как то так...

P.S. ещё добавлю. А если магазинов не 50, а 1000 и эти магазины разбиты по менеджерам по 100-штук например. То получаем что 10 пользователей одновременно для 1000 магазинов(клиентов) вставляют записи в таблички salesTable\salesLine
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем

Последний раз редактировалось lev; 17.09.2010 в 16:53.
Старый 17.09.2010, 17:34   #6  
Evgeniy2020 is offline
Evgeniy2020
Участник
 
309 / 68 (3) ++++
Регистрация: 10.04.2007
Адрес: Москва, САО, СЗАО
а в чем проблема?

если AOT объекты, совместно со всеми настройками,
ключами, RLS, и т.д. переведут в ms sql server

то компоновать правильные запросы там будет не проблема под конкретного пользователя.

это в текущей версии много чего находится в Аксапте,
а если АОТ объекты (application objects)
со всеми конф. ключами, RLS перегонят в MS SQL Server

то я думаю можно сделать движок напрямую который будет считывать
правильно сущности с учетом прав, филдов, rls

как по мне это классно, вот только если мелкие потоки данных еще как бы нормально. а если проводки за весь период передавать на какого нибудь дохленького клиента, то трфик будет большой.

считать пару строк не проблема. а 10 млн строк ))

тогда это будет немного похоже на 1С подход,
при котором

в Аксапте появляются объекты сущности как губки, которые втягивают в себя емкие данные на сервере,
а уже на клиента передают готовый агрегат который должен содержать про суммированные значения,

а если большой поток данных, я бы их сначала сильно упаковал бы на сервере ms sql и потом передевал клиента, а если размер слишком большой то данные лучше передавать на АОС,
а тот уже минимальными порциями данные или готовый отчет,

то есть ниже определенного размера можно и на клиента, а выше то на АОС,
а тот уже выдает порциями небольшими или результирующий аос.

а вообще можно было бы сделать обертку и движок на MS SQL
чтобы он веб интерфейс создавал прямо у себя, и клиент получал порцию уже готовую для отображения,

правда скролинг будет низкий по скорости, зато клиент будет весьма тонким

а еще можно сделать язык смешанный
c# + T-SQL
такой, что всю бизнес логику можно было бы хранить прямо на сервере MS SQL
тогда клиентов можно сделать весьма тонкими,
а трафик вообще не гонять между AOS - MS SQL
все будет крутится в MS SQL

бизнес логика которая прямо будет в базе хранится,
зачем тогда далеко считывать все, досаточно будет 128 GB ОЗУ
на MS SQL Server там все и крутится и хранится,
и скорость будет зашибительная
почти никакого трафика,

а уже отображения результатов на клиенте,
то есть чуть ли не html поток или xml
тогда клиентом к такой erp
может быть IE, Excel, Biztalk, или некий родной клиент аксапты,

скорости обработки будут высокими,
все метаданные, правила, ключи, rls, application objects будут в MS SQL
будет супер производительность

только при таком подходе сама Аксапта пропадет,
ее переварит MS SQL
получится MS C# SQL Advanced Business Server
то есть MS SQL сервер с оболочкой для разработки и бизнес логикой которая рядом с данными

тогда AX rip

при таком подходе можно будет управлять erp системой с ipad
просо мега сервер 16 процессоров + 128 GB памяти
внутри него и данные и бизнес логика и ключи и rls и olap

а с ipad можно делать что угодно и быстро, и красиво получать любую картинку

Вот если бы меня пригласили архитектором в Редмонд
там бы я напроектировал правильную ERP систему ))

MS SQL + Business logic
Database services
Reporting services
OLAP services
Business logic services (ERP объекты CRM объекты, application logic, conf.keys, seq keys, rls, C# + T-SQL, репозиторий)
Source safe services
Presentation Services (это потоки данных под различных клиентов ie,excel,biztalk,ipad)

я за ))

Последний раз редактировалось Evgeniy2020; 17.09.2010 в 18:38.
За это сообщение автора поблагодарили: George Nordic (1), Lemming (5).
Старый 17.09.2010, 19:43   #7  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,480 / 1255 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Цитата:
Сообщение от Evgeniy2020 Посмотреть сообщение
а в чем проблема?
если AOT объекты, совместно со всеми настройками,
ключами, RLS, и т.д. переведут в ms sql server
то компоновать правильные запросы там будет не проблема под конкретного пользователя.
это в текущей версии много чего находится в Аксапте,
а если АОТ объекты (application objects)
со всеми конф. ключами, RLS перегонят в MS SQL Server
то я думаю можно сделать движок напрямую который будет считывать
правильно сущности с учетом прав, филдов, rls

бизнес логика которая прямо будет в базе хранится,
зачем тогда далеко считывать все, досаточно будет 128 GB ОЗУ
на MS SQL Server там все и крутится и хранится,
и скорость будет зашибительная
почти никакого трафика,

скорости обработки будут высокими,
все метаданные, правила, ключи, rls, application objects будут в MS SQL
при таком подходе можно будет управлять erp системой с ipad
просо мега сервер 16 процессоров + 128 GB памяти
внутри него и данные и бизнес логика и ключи и rls и olap

Вот если бы меня пригласили архитектором в Редмонд
там бы я напроектировал правильную ERP систему ))
Спаси нас, Господи!

Женя, молодец. Порадовался. Судя по последним веяниям, надо претендовать на роль главного архтектора бизнес - приложений.

Но! Мой Вам совет: Вы уже отстали от жтзни. Нодо все переносить в облако!! И предоставлять он деманд. Да, блин, СОА тоже неплохо аоткнуть - вдруг кто-нить вспомнит!

С Уважением,
Георгий
За это сообщение автора поблагодарили: Lemming (5).
Старый 17.09.2010, 16:26   #8  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,913 / 5736 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от mazzy Посмотреть сообщение
мы говорим о механизмах доступа к тестируемым данным (как на чтение, так и на запись)
механизмы доступа должны использоваться те же самые, что и у клиентов.


но чего ни в коем случае не должны делать разработчики - придумывать совсем другой механизм доступа к данным!
Обрати внимание - шаги 1 и 3 - это фактически тупое перенесение данных в таблички аксапты, грубо говоря, из Excel и последующее вынимание результирующих данных с целью сравнения с Excel. Какой сакральный смысл в использовании Аксаптовских мезанизмов для этой задачи ? Что мы проверим - генерацию recid, способность подставлять dataAreaId в записи, работу RLS ? Стоит ли гемор с работой через .net bc, столь скромных результатов ?
Все равно те данные которые мы читаем и пишем имеют мало отношения к реальности и мало чего позволяют оттестировать. Это же юнит-тест, просто ловушка для глупых ляпов. Тупо табличку записали, потом тупо прочитали...
Комплексного тестирования юнит-тесты не заменяют, и смысла из юнит-теста пытаться сделать универсальный тест и для ядра и для .net bc и для злосчастной логистики я не вижу...
Просто по хорошему после юнит-тестов время от времени должен проходить комплексный тест (уже не автоматический), а живыми людми делаемый. И боюсь как раз с этим-то в разработке аксапты и нехорошо....
За это сообщение автора поблагодарили: MikeR (2).
Старый 17.09.2010, 16:37   #9  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от fed Посмотреть сообщение
Обрати внимание - шаги 1 и 3 - это фактически тупое перенесение данных в таблички аксапты, грубо говоря, из Excel и последующее вынимание результирующих данных с целью сравнения с Excel. Какой сакральный смысл в использовании Аксаптовских мезанизмов для этой задачи ?
Ты перечитай какие параметры должны учитываться в этом "тупом перенесении данных" и "тупом вынимании"
Выборка данных через AOS vs SQL Server

либо придется генерить кучу наборов данных (во что лично я не верю).
либо использовать таки механизм Аксапты с разные настройками самой Аксапты (хотя бы в вариантах лицензий BE и AM) с одним и тем же набором данных.

Выбор "тупого варианта" автоматически означает, что сильно затруднено тестирование (например, Глобальная адресная книга может быть в вирутальной компании, а может не быть в ней).

Выбор "тупого варианта" автоматически означает, что не будет протестированы аспекты, связанные с кэшированием. а также куча других аспектов.

Конечно хоть какое-то тестирование лучше, чем никакого.
Но я сильно опасаюсь, что выбрав "тупой вариант" разработчики остановятся и будут рапортовать "ошибок нет". А на самом деле ошибки просто останутся невыявленными.
__________________
полезное на axForum, github, vk, coub.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
SQL Server 2005, 2008: Создание недостающих индексов Poleax DAX: Прочие вопросы 6 05.06.2010 01:28
axperf: Important SQL Server Change! - Parameter Sniffing and Query Plan Caching Blog bot DAX Blogs 3 24.05.2010 02:53
Dynamics AX Sustained Engineering: SQL Server 2005 sp3 & SQL Server 2008 with Dynamics AX Blog bot DAX Blogs 0 12.02.2009 06:08
Arijit Basu: Microsoft SQL Server Reporting Services Integration Blog bot DAX Blogs 0 20.07.2007 11:50
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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