|
![]() |
#1 |
NavAx
|
А откуда этот вопрос проистекает? Где сказано что в бизнесе между этими процессами много общего? Ace of Database говорит что у него джобы зеркально выглядят. Но они зеркально выглядят потому, что в системе Cust и Vend отзеркалены, а не потому что у бизнеса нужды такие. То что можно отзеркалить, вообще не должно в этих таблицах находиться. Справочник адресов и справочник юр. лиц отдельные сделать и все. Никакой иерархии наследования. Никакого зеркалирования. Юр. лицо, это юр. лицо, независимо от того, поставщик это, клиент, сотрудник на контакте, субподрядчик по проекту или еще кто. Проводки и по поставщикам и по клиентам должны отражаться в ГК. Это общее. Но они совершенно по разному отражаются. Разная детализация, разный смысл. Платежи, как уже упоминал, совершенно по разному обрабатываются. Процесс разный, зачастую сопровождается разными документами. И поэтому вся эта иерархия CustVendOutPaym только под ногами путается.
__________________
Isn't it nice when things just work? Последний раз редактировалось macklakov; 23.06.2017 в 11:56. |
|
|
За это сообщение автора поблагодарили: ta_and (4). |
![]() |
#2 |
Участник
|
Цитата:
![]() Вопрос такой: зачем вообще нужна потребность делато что-то одинаковое для закупок и заказов, если между ними нет ничего общего? Например, ко мне не может подойти начальник и сказать "испеки мне скорость и булочки с изюмом" просто потому, что для этих двуз понятий нет никакого общего смысла что-то делать. А вот для AR и AP возникла. Как так получается? Цитата:
То что можно отзеркалить, вообще не должно в этих таблицах находиться. Справочник адресов и справочник юр. лиц отдельные сделать и все. Никакой иерархии наследования. Никакого зеркалирования.
То есть в одном справочнике есть юридический адрес, а в другом на этом месте табуретка? |
|
![]() |
#3 |
Участник
|
Цитата:
поставщики и клиенты - это контрагнеты. контрагенты бывают: = юрики, физики, банки, государства = клиенты, поставщики, субподрядчики, перевозчики, охрана, всевозможные брокеры, страховые, нотариусы и прочие третьи лица и так далее. среди действительно общих операций можно отметить только расчет курсовой разницы. а также сугубо технические операции типа сопоставления дебет-операций с кредит-операциями. контрагентов пытались получить на DirParty. со всей вытекающей сложностью. Цитата:
1. maps изобрели не чтобы избежать, а чтобы хоть как то работать с дублированием. 2. не всю ) 3. не очень элегантное. в стандартном функционале постоянно приходится писать if/switch... методы map имеют чудовищный синтаксис и очень плохо используются. люди на проектах часто делают врапперы типа такого https://github.com/mazzy-ax/SysCustVend Цитата:
Цитата:
это просто техническое решение - сделать их похожими. Цитата:
Зря ты принижаешь возможности начальника. )))) Может конечно подойти и может сказать. Это твоя проблема как разработчика объяснить почему ты не будешь делать как начальник сказал )))) Цитата:
Цитата:
Оver-engineering - "зачем так сложно?" |
|
|
За это сообщение автора поблагодарили: macklakov (5). |
![]() |
#4 |
Участник
|
Цитата:
В каком смысле сопоставление "техническая" операция? Цитата:
будем справедливы:
1. maps изобрели не чтобы избежать, а чтобы хоть как то работать с дублированием. Цитата:
3. не очень элегантное. в стандартном функционале постоянно приходится писать if/switch... методы map имеют чудовищный синтаксис и очень плохо используются.
Цитата:
люди на проектах часто делают врапперы типа такого
https://github.com/mazzy-ax/SysCustVend Цитата:
а нет такой потребности.
это просто техническое решение - сделать их похожими. Цитата:
да. у физика нет юридического адреса.
Цитата:
Собственно это и есть тема этой ветки:
Оver-engineering - "зачем так сложно?" |
|
|
За это сообщение автора поблагодарили: macklakov (5). |
![]() |
#5 |
Участник
|
Цитата:
что-то общее имеет. имеет и что-то различное. в бизнесе ее используют не очень часто. это технический прием, чтобы явно указать какой дебет в какой части какому кредиту соответствует. Цитата:
Как скажешь. Цитата:
Да, некоторые считают, что некоторые они - оверэнжиниры. Цитата:
я говорил, что есть некоторые общие вещи. их не обязательно порывать общим кодом. разница как между классом-потомками и интерфейсом-реализациями. Цитата:
Цитата:
а специфику сделки выносят в договор (там есть свои тараканы и есть свои минусы) некоторые системы, например банковские, оперируют понятиями поставщик, а вместо клиентов могут быть разные типы аккаунтов - накопительные/текущие/карточные/валютные (там есть свои тараканы и есть свои минусы) некоторые системы типа всяких CRM оперируют понятием "контакт". не со всеми типами контактов можно заключить договор (делать бизнес), а также не со всеми типами контактов можно контактировать (например, юр.лица - для них должны быть указаны контактные лица-люди) Просто ДВА модуля/справочника с одинаковыми полями - это не единственное решение. Справочников/модулей может быть и больше, и меньше. |
|
![]() |
#6 |
NavAx
|
Цитата:
Цитата:
Ну иерархию в DirParty сделали ведь. Значит и скорость испечь сможете. Технически вы отборные специалисты, лучшие на рынке. Значит справитесь.
__________________
Isn't it nice when things just work? |
|
![]() |
#7 |
Banned
|
Цитата:
сжать - разжать, туда-сюда, молчит - говорит. Ну и супер-предка - Отверстие. Общего - до фига. А дублировать код - не по жабьи. |
|
|
За это сообщение автора поблагодарили: S.Kuskov (5). |
![]() |
#8 |
Участник
|
Цитата:
Никак не мог для себя понять. ЗАЧЕМ было разделять таблицу контрагентов на две независимые таблицы. Единственное, что меня успокоило и более или менее оправдало это решение - это разграничение прав доступа. Ведь в Ах ранних версий настроить права доступа по записям было на два порядка сложнее, чем разграничить права доступа к разным таблицам. Видимо только поэтому родились Cust и Vend вместо Contragent. Ну а после того, как родился этот уродец с одним телом, но двумя головами, пошла поехала вся даунутая родня уродского семейства CustVend. И Мапы таблиц придумали не от хорошей жизни, а как раз из-за необходимости одеть одну шапочку одновременно на две головы. (я ничего не имею против Мапов самих по себе. Решение интерфейсов к таблицам идеальное) Последний раз редактировалось ta_and; 24.06.2017 в 11:33. |
|
|
За это сообщение автора поблагодарили: macklakov (5). |
![]() |
#9 |
Участник
|
Несомненно свысока своего опыта мы понимаем, что было бы лучше, что хуже.На мой взгляд просто перестраховались, так как вендор и кастер (ну предположим Вася Пупкин) совершенно разные единицы в управленческом и бухгалтерском учете.
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
![]() |
#10 |
Участник
|
Цитата:
"Спросите у специалистов, почему у жирафа такая длинная шея и получите много абсолютно правильных и обоснованных ответов, почему так получилось. А теперь спросите, раз это все так важно, то почему у жирафа шея длинная, а у зебры нет?" это должно быть помечено (С), но я не знаю чьим. |
|
![]() |
#11 |
NavAx
|
Цитата:
ООП прекрасный подход для написания всяких фреймворков и системных вещей. К примеру, drag-n-drop, на ООП выглядит очень красиво, элегантно и просто. Но, в случае ERP, главное это база данных. Ради нее все делается и вокруг нее все должно строиться. Внедрять в бизнес-логику ООП, в то время как у тебя используется RDB, бессмысленно. Но в AX пошли именно по пути ООП, это очевидно по ряду признаков. В ООП когда у тебя есть что-то общее, ты выделяешь класс-родитель, в структуре же данных ты выделяешь общее в отдельную таблицу. И в случае CustVend, у нас такой таблицы нет. Т.е. пляска идет не от базы, а от ООП. И именно эта общая стратегия привела к появлению сперва Maps, а потом уже и наследования таблиц. Доминирует язык, а не база. Похоже что именно несовместимость парадигм программирования и движка базы данных и порождает столько сложностей. Т.е. по хорошему, надо или делать приличную схему данных и под нее перестраивать код, тогда все будет просто, понятно и быстро работать. Либо надо как SAP, делать под себя движок БД. Чтобы все эти программистские парадигмы имели прямое отражение в БД. Тогда, опять таки, все будет просто и надежно. Но т.к. MS привязал AX к флагманскому SQL, то вариантов остается не так много. Плясать надо от SQL. Но разработчики AX явно продолжают сосредотачиваться на ООП и на языке, а базу данных подстраивают под код. И именно это порождает технические проблемы, которые потом героически пытаются решить, с переменным успехом.
__________________
Isn't it nice when things just work? Последний раз редактировалось macklakov; 25.06.2017 в 06:16. |
|
|
За это сообщение автора поблагодарили: ax_mct (10), sukhanchik (5), Alexius (6). |
![]() |
#12 |
Участник
|
Цитата:
Когда я должен дать ответ по данным кассового чека, сколько покупатель может получить бонусов за эту покупку в зависимости от текущих акций, то какая разница получил ли я данные чека из базы, в которую он уже сохранен, получил ли этот чек прямым запросом из кассовой системы через Connector или получил его запросом через WEB сервис от консультанта торгового зала с планшета? |
|
|
За это сообщение автора поблагодарили: macklakov (5), mazzy (2). |
![]() |
#13 |
Banned
|
Ответил в курилке.
Оver-engineering - "зачем так сложно?" - Мортира Карл |
|
![]() |
#14 |
NavAx
|
Цитата:
Т.е. если у на то пошло, то пляска идет даже не от базы, а от построителей отчетности. И я не знаю хороших построителей отчености по объектным базам данных, к примеру. А вот SAP, решили что им даже обычная RDB недостаточно, хороша, и потому запустили HANA.
__________________
Isn't it nice when things just work? |
|
|
За это сообщение автора поблагодарили: mazzy (2), Raven Melancholic (2). |
![]() |
#15 |
Участник
|
Цитата:
Сообщение от macklakov
![]() ООП прекрасный подход для написания всяких фреймворков и системных вещей. К примеру, drag-n-drop, на ООП выглядит очень красиво, элегантно и просто. Но, в случае ERP, главное это база данных. Ради нее все делается и вокруг нее все должно строиться. Внедрять в бизнес-логику ООП, в то время как у тебя используется RDB, бессмысленно. Но в AX пошли именно по пути ООП, это очевидно по ряду признаков. В ООП когда у тебя есть что-то общее, ты выделяешь класс-родитель, в структуре же данных ты выделяешь общее в отдельную таблицу. И в случае CustVend, у нас такой таблицы нет. Т.е. пляска идет не от базы, а от ООП. И именно эта общая стратегия привела к появлению сперва Maps, а потом уже и наследования таблиц. Доминирует язык, а не база.
А как же проводки в Управлении запасами, которые жили, не тужили в одном InventTrans'е, "обсчитываясь" двумя ортогональными иерархиями классов, реализующими всевозможные комбинации правил обновления статусов запасов с источниками этих обновлений? Там сколько разных таблиц надо было сделать, может, по одной на каждый источник (покупка, продажа, перенос, инвентаризация, списание в производство и т.п.)? А как надо было бы отвечать на вопрос, сколько товара на складе или откуда списать в резерв?.. Цитата:
Сообщение от macklakov
![]() Похоже что именно несовместимость парадигм программирования и движка базы данных и порождает столько сложностей. Т.е. по хорошему, надо или делать приличную схему данных и под нее перестраивать код, тогда все будет просто, понятно и быстро работать. Либо надо как SAP, делать под себя движок БД. Чтобы все эти программистские парадигмы имели прямое отражение в БД. Тогда, опять таки, все будет просто и надежно. Но т.к. MS привязал AX к флагманскому SQL, то вариантов остается не так много. Плясать надо от SQL. Но разработчики AX явно продолжают сосредотачиваться на ООП и на языке, а базу данных подстраивают под код. И именно это порождает технические проблемы, которые потом героически пытаются решить, с переменным успехом.
Цитата:
Цитата:
![]() Цитата:
Сообщение от Raven Melancholic
![]() Проблема даже не в том, что поставщик/клиент это разные справочники с разными таблицами отслеживания взаиморасчетов, потом объединенные в какие-то общие иерархии, мапы. Меня больше смущает подход, когда обработку платежей/начислений именно клиентов/поставщиков так объединили, а для остальных сделали отдельную обработку. Чем такая обработка для клиентов/поставщиков отличается от тех же действий с сотрудниками, с подотчетными лицами, с акционерами, с инвесторами и заемщиками, государством и т.п.?
![]() Цитата:
Сообщение от Raven Melancholic
![]() Проблема в отсутствии какого-то единого подхода в разделении и объединении. Понятно, что управлять взаимоотношениями с клиентами, поставщиками, сотрудниками, акционерами это совсем разные задачи. Понятно, что есть какие-то общие задачи – те же взаиморасчеты (но со своими нюансами с каждой категорией). Хотелось бы, чтобы подход в разных частях системы был единым.
![]() |
|
![]() |
#16 |
NavAx
|
это, кстати, как раз рождение в муках велосипеда под названием "контрагент". Просто люди никогда велосипеда не видели и не знают зачем нужны велосипеды. Поэтому инженерный процесс непростыми путями следует.
__________________
Isn't it nice when things just work? |
|
![]() |
#17 |
Участник
|
Цитата:
Инфологическая модель не обязана отражаться в физическую один в один |
|
![]() |
#18 |
NavAx
|
Цитата:
Сообщение от belugin
![]() Насколько я знаю, это зависит от свойств данных и типичных запросов http://www.agiledata.org/essays/mapp...ingInheritance
Цитата:
Цитата:
![]() С другой стороны, очень простой, жизненный, пример. Сотрудник покупает у родной конторы товар в счет будущей зарплаты... Цитата:
Вот party это как раз яркий признак того, что люди не очень понимали что и зачем они делают. С одной стороны, это как раз логичная попытка создать единый справочник экономических субъектов. В другой стороны, мотивация его создания была чисто техническая, без привязки к бизнесу. Наворотили иерархию, а балланса-то и нет. Даже регистрационные данные туда не перенесли, они так и остались на Cust и Vend. Т.е. лучше чем ничего, но попотеть приходится. Цитата:
Сообщение от gl00mie
![]() А как же проводки в Управлении запасами, которые жили, не тужили в одном InventTrans'е, "обсчитываясь" двумя ортогональными иерархиями классов, реализующими всевозможные комбинации правил обновления статусов запасов с источниками этих обновлений? Там сколько разных таблиц надо было сделать, может, по одной на каждый источник (покупка, продажа, перенос, инвентаризация, списание в производство и т.п.)?
![]()
__________________
Isn't it nice when things just work? Последний раз редактировалось macklakov; 27.06.2017 в 04:09. |
|
![]() |
#19 |
Участник
|
Цитата:
![]() |
|
![]() |
#20 |
Участник
|
Не так все просто ) Для ERP ещё важно, чтобы одновременно сотни/тысячи пользователей могли вставлять/обновлять быстро и без блокировок множество записей. И для этого как раз лучше подходит более нормализованная модель. То, что в Аксапте кубы настраивались прямо на рабочую базу - это исключение из правила ) Обычно для dwh делают отдельную, более денормализованную базу.
|
|
Теги |
sysoperation framework |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|