| 
			
			 | 
		#181 | 
| 
			
			 Banned 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от Raven Melancholic
			 
 
			Проблема даже не в том, что поставщик/клиент это разные справочники с разными таблицами отслеживания взаиморасчетов, потом объединенные в какие-то общие иерархии, мапы. Меня больше смущает подход, когда обработку платежей/начислений именно клиентов/поставщиков так объединили, а для остальных сделали отдельную обработку. Чем такая обработка для клиентов/поставщиков отличается от тех же действий с сотрудниками, с подотчетными лицами, с акционерами, с инвесторами и заемщиками, государством и т.п.? 
		
	Однако, задачи модулей РсП и РсК отличаются: в одном случае есть задача платить как можно позднее (все это казначейство, бюджеты и тп) а в другом - получить деньги как можно быстрее (инкассо, collections, cash flow). Поэтому смотреть на это как на одну сущность - это упрощение.  | 
| 
	
 | 
| 
			
			 | 
		#182 | 
| 
			
			 Модератор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Угу, тем более что контрагент может быть одновременно и поставщиком, и покупателем. 
		
		
		
		
		
		
		
	С Уважением, Георгий  | 
| 
	
 | 
| 
			
			 | 
		#183 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Инфологическая модель не обязана отражаться в физическую один в один  | 
| 
	
 | 
| 
			
			 | 
		#184 | 
| 
			
			 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.  | 
| 
	
 | 
| 
			
			 | 
		#185 | 
| 
			
			 NavAx 
		
			
	 | 
	
	
	
		
		
		
		 
			
			это, кстати, как раз рождение в муках велосипеда под названием "контрагент". Просто люди никогда велосипеда не видели и не знают зачем нужны велосипеды. Поэтому инженерный процесс непростыми путями следует.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Isn't it nice when things just work?  | 
| 
	
 | 
| 
			
			 | 
		#186 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
  объектовые свойства не используются те же рассуждения применимы при проектировании физической модели где нет наследования по логической где есть.
		 | 
| 
	
 | 
| 
			
			 | 
		#187 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Не так все просто ) Для ERP ещё важно, чтобы одновременно сотни/тысячи пользователей могли вставлять/обновлять быстро и без блокировок множество записей. И для этого как раз лучше подходит более нормализованная модель. То, что в Аксапте кубы настраивались прямо на рабочую базу - это исключение из правила ) Обычно для dwh делают отдельную, более денормализованную базу.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#188 | 
| 
			
			 NavAx 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ну и по какой форме у нас нынче DirParty нормализована?  
		
		
		
		
		
		
			 
		
				__________________ 
		
		
		
		
	Isn't it nice when things just work?  | 
| 
	
 | 
| 
			
			 | 
		#189 | 
| 
			
			 Banned 
		
			
	 | 
	
	
	
		
		
		
		 
			
			У меня сейчас одна из задач в AX2012 обеспечить установку primary vendor на уровне site в разрезе customer/customer group.  
		
		
		
		
		
		
		
		
			ООП вроде бы крутое везде и всюду с наследованием контрактов и прочим, а мне надо искать и заменять все вхождения inventTable.PrimaryVendor на что-то типа salesLine.getPrimaryVendor(). ООП надо чтобы salesLineType.getPrimaryVendor() то есть расширение конкретной функциональности, а не затем чтобы переставлять технический код местами чтобы расчлененка была более кровавой. При этом если бы не было в системе ООП вообще а было что-то типа процедурно getPrimaryVendor_SalesLine(salesLine) то я бы не плакал. И клиент не рыдал ![]() То есть пользы от ООП в АX я не вижу, только вред. Последний раз редактировалось ax_mct; 27.06.2017 в 19:35.  | 
| 
	
 | 
| 
			
			 | 
		#190 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#191 | 
| 
			
			 Banned 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от macklakov
			 
 
			Вот party это как раз яркий признак того, что люди не очень понимали что и зачем они делают. С одной стороны, это как раз логичная попытка создать единый справочник экономических субъектов. В другой стороны, мотивация его создания была чисто техническая, без привязки к бизнесу. Наворотили иерархию, а балланса-то и нет. Даже регистрационные данные туда не перенесли, они так и остались на Cust и Vend. Т.е. лучше чем ничего, но попотеть приходится. 
		
	 | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: gl00mie (2). | |
| 
			
			 | 
		#192 | 
| 
			
			 NavAx 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Не понял, протестуешь против возможности посмотреть общий баланс по контрагенту?
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
		
			Isn't it nice when things just work? Последний раз редактировалось sukhanchik; 28.06.2017 в 08:02.  | 
| 
	
 | 
| 
			
			 | 
		#193 | 
| 
			
			 Banned 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#194 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#195 | 
| 
			
			 NavAx 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Значит я неправильно донес мысль. Что DirParty выделили это хорошо и правильно. Но то как ее реализовали, вызывает сомнения в том, что присутствовало отчетливое понимание.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Isn't it nice when things just work?  | 
| 
	
 | 
| 
			
			 | 
		#196 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Если подумать, то и наследование таблиц - также over-engineering. При нормализации таблиц уже до 3-й формы наследование излишне. У меня когда-то лет 7 назад была идея, а что если у таблиц сделать наследование полей, как в ООП... начал ковырять и пришел к нормализации таблицы :-)
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	// no comments  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Ace of Database (2). | |
| 
			
			 | 
		#197 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
X++: vendor = salesLine.getPrimaryVendor(); X++: vendor = SalesLine::getPrimaryVendor(salesLine); сам метод интерпретируется как X++: public VendTable getPrimaryVendor(SalesLine _salesLine)
{
;
    this = _salesLine;
    ...
}ООП предназначено для другого: наследование, инкапсуляция и полиморфизм. Не будь наследования, мы бы погрязли в дублировании кода. Полиморфизм позволяет работать с базовым классом, и не держать руку на пульсе, каждый раз спрашивая себя, а с функцией какой сущности (то бишь класса) я работаю? Вот инкапсуляция - это да, она конкретно не доработана. Очень не хватает свойств, хотя методы доступа get/set/parm есть, но с ними не так удобно. 
				__________________ 
		
		
		
		
	// no comments  | 
| 
	
 | 
| 
			
			 | 
		#198 | 
| 
			
			 Модератор 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
 
		
				__________________ 
		
		
		
		
	-ТСЯ или -ТЬСЯ ?  | 
| 
	
 | 
| 
			
			 | 
		#199 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от Vadik
			 
 
			мне кажется, это была попытка сначала нормализовать структуру данных "правильно, по тру-программистски", а когда стало очевидно что любое обращение к ней требует соединения дюжины-двух таблиц - материализовать эту структуру. Правильно это или нет - сказать сложно. В AOT смотришь - вроде удобно и логично, в DirPartyTable в БД - кровавое месиво какое-то. Но в целом - работает  
		
	![]() 
				__________________ 
		
		
		
		
	// no comments  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: ta_and (4). | |
| 
			
			 | 
		#200 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			По моему, главная проблема с наследованием таблиц в Ax - это решение о том что родитель содержит в себе все поля всех наследников. Из за этого им пришлось в ранних версиях автоматически делать outer join родителя ко всем наследникам, а в поздних версиях - просто складывать все поля наследников в одну большую таблицу-родителя. 
		
		
		
		
		
		
		
	В классической системе мэппинга объектных отношений в реляционную БД, обращение к таблице наследнику, неявно делает inner join с таблицей родителем. В обращение к родителю ни к каким автоматическим join не приводит. Из за того что MS решил пойти своим путем, использование наследования привело к большому оверхиду - либо из за джойнов, либо из за тучи неиспользуемых полей в таблице.  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Vadik (1). | |
| Теги | 
| sysoperation framework | 
| 
	
	 | 
	
		
		
  |