|  12.02.2015, 22:11 | #1 | 
| Участник | Required поле в схеме AIF документа 
			
			Две таблицы связаны по RecId (SurrogateKey: ChildTable.TableRefRecId = ParentTable.RecId). Есть соответствующий relation TableRefRecId поле в ChildTable таблице обязательное (Mandatory = yes) На основе этих двух таблиц создан запрос и соответвующий document service. С чем связано, что, не смотря на то, что это surrogate key, в схеме документа автоматически для TableRefRecId проставляется required = yes (т.е minOccurs = 1) ? AX2012 R2 Последний раз редактировалось kitty; 12.02.2015 в 22:19. | 
|  | 
|  12.02.2015, 22:31 | #2 | 
| Banned | Цитата: 
		
			Сообщение от kitty
			   Две таблицы связаны по RecId (SurrogateKey: ChildTable.TableRefRecId = ParentTable.RecId). Есть соответствующий relation TableRefRecId поле в ChildTable таблице обязательное (Mandatory = yes) На основе этих двух таблиц создан запрос и соответвующий document service. С чем связано, что, не смотря на то, что это surrogate key, в схеме документа автоматически для TableRefRecId проставляется required = yes (т.е minOccurs = 1) ? AX2012 R2 | 
|  | 
|  12.02.2015, 23:28 | #3 | 
| Участник | 
			
			Не логично, тк при импорте документа , если TableRecid - required, то валидация документа провалится с ошибкой.  На момент импорта ParentTable.RecID вообще еще не существует ( присвоится только при вставке ParentTable записи в Ax и потом должно соответствующее значение автоматически присвоится childTable.TableRecId) Причем, в prepareForSaveExtended есть соответсвующий код, присваивающий потомкам tableRecId родителя Последний раз редактировалось kitty; 12.02.2015 в 23:30. | 
|  | 
|  13.02.2015, 00:19 | #4 | 
| Banned | Цитата: 
		
			Сообщение от kitty
			   Не логично, тк при импорте документа , если TableRecid - required, то валидация документа провалится с ошибкой.  На момент импорта ParentTable.RecID вообще еще не существует ( присвоится только при вставке ParentTable записи в Ax и потом должно соответствующее значение автоматически присвоится childTable.TableRecId) Причем, в prepareForSaveExtended есть соответсвующий код, присваивающий потомкам tableRecId родителя Система просто рендерит свойство поля таблицы в схему. Раз обязательно там значит обязательно и здесь. Железная логика. | 
|  | 
|  13.02.2015, 00:50 | #5 | 
| Участник | 
			
			наверное, мы друг друга не понимаем) Представьте, что вы импортируете заказ. У него еcть шапка и линии Как можно требовать в сообщении указывать recid шапки на строках, если этот RecId создается только в момент вставки шапки заказа. Последний раз редактировалось kitty; 13.02.2015 в 01:44. | 
|  | 
|  13.02.2015, 10:15 | #6 | 
| Участник | 
			
			Может, у вас схема документа получилась "какая-то не такая"? Посмотрите, какая схема у тех же заказов на продажу - там прекрасно создаются шапка и строки, несмотря на то, что SalesId создаваемого заказа в строках явно не указывается.
		 | 
|  | 
|  13.02.2015, 14:26 | #7 | 
| Участник | 
			
			Проблема в том, что на одном приложении все прекрасно, а на другом - нет(( Пытаюсь понять в чем разница. все relations есть. Сравнила классы, таблицы -все одинаковые, перекомпилила не раз, update document service делала, refresh service, пересоздала порт сам и все никак. Схема упорно требует заполнения parentRecid (((. Временно пришлось сделать поле как mandatory = no.. - подхватил и сделал поле необязательным в схеме Но это ж не выход, на таблице оно должно быть Mandatory((. | 
|  | 
|  13.02.2015, 16:56 | #8 | 
| Участник | 
			
			ну может попробовать в методе initMandatoryFieldsExemptionList класса Ax<Имя таблицы> прописать строчку для этого поля - тогда не придется св-во Mandatory поля менять. Хотя конечно странно все это...
		 | 
|  | 
|  13.02.2015, 18:05 | #9 | 
| Banned | Цитата:  На индексе в таблицах свойство AllowDublicates одинаковое? | 
|  | 
|  | 
| 
 |