Свойства связей таблиц в Dynamics AX 2012

В этой статье будут описаны свойства связей таблиц Dynamics AX 2012. Надеюсь, что данное описание поможет вам правильно настраивать связи между таблицами.

Validate

В случае если установлено значение Yes, то проверяется наличие значения поля ссылки в родительской таблице, если значения не существует, то значение в поле ссылки не установится. Кроме того, удаление записи родительской таблицы при наличии ссылки в дочерней невозможно, либо удаление произойдет каскадно, как настроено в DeleteActions на таблице.

Значение No используется, когда значени свойства RelationshipType равно Link. Так же можно его задавать временно, например, для создания новых записей со значением в поле ссылки, которое не существует в родительской таблице. При смене значения свойства на значение Yes, созданные записи таким способом не будут проверяться.

По умолчанию проставляется значение Yes.

EntityRelationshipRole

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

По умолчанию пустое значение.

RelatedTableCardinality

Данное свойство указывает на то может ли быть поле ссылки пустым или должно быть заполнено в текущих записях таблицы. Возможные значения свойства:

— NotSpecified – значение по умолчанию

— ZeroOne – поле ссылки может быть не заполнено

— ExactlyOne – поле ссылки должно быть заполнено во всех записях таблицы

По правилам BestPractices должно быть указано либо ZeroOne либо ExactlyOne.

По умолчанию проставляется значение NotSpecified.

Cardinality

Это свойство указывает сколько записей дочерней таблицы должны ссылаться на одну запись родительской таблицы, т.е. связь 1:1 или 1:М. Дальше описаны возможные значения свойства:

— NotSpecified – значение по умолчанию

— ZeroOne – запись в родительской таблице может ссылаться на одну запись дочерней таблицы либо не ссылаться вообще

— ExactlyOne – запись в родительской таблице должна ссылаться только на одну запись дочерней таблицы

— ZeroMore — запись в родительской таблице может ссылаться на несколько записей дочерней таблицы либо не ссылаться вообще

— OneMore — запись в родительской таблице должна ссылаться как минимум на одну запись дочерней таблицы

По правилам BestPractices должно быть указано одно из четырех следующих значений: ZeroOne, ExactlyOne, ZeroMore или OneMore.

По умолчанию проставляется значение NotSpecified.

RelationshipType

Данное свойство является более тонкой настройкой связи между таблицами. Оно может принимать следующие значения:

— NotSpecified – значение по умолчанию

— Specialization – используется только при наследовании таблиц, в связях между базовой и производной таблицами

— Link – этот тип предназначен только для поддержки миграции связей через EDT для обновления до DAX 12 с более ранних версий продукта. Данный тип требует, чтобы свойство Validate было установлено в значение No

— Composition – это более сложный тип Aggregation. В таблице не может быть более одной связи с данным типом. Например, дом состоит из комнат и данная комната не может быть больше ни в каких домах.

— Aggregation – этот тип подходит, когда дочерняя таблица является подчиненной к родительской таблице. Используется, когда выполняется одно из условий:

  1. В родительской таблице настроен DeleteAction на дочернюю таблицу
  2. Одно из полей ссылки на родительскую таблицу имеет свойство Mandatory = Yes

— Association – тип определяющий концепцию стандартного внешнего ключа.

По правилам BestPractices должно быть указано любое значение кроме NotSpecified.

По умолчанию проставляется значение NotSpecified.

UseDefaultRoleNames

Указывает нужно ли генерировать значения по умолчанию для свойств Role и RelatedTableRole. Если установлено значение Yes, то значения для свойств Role и RelatedTableRole будут сгенерированы, но не будут отображаться в окне свойств, если No, то значения для этих свойств нужно ввести вручную, если того требует связь.

По умолчанию проставляется значение Yes.

RelatedTableRole

Текстовое поле, в котором указывается описание назначение связи. В случае, когда существует только одна связь к родительской таблице, можно указать наименование самой родительской таблицы, в случае если связей к одной родительской таблице больше, то нужно указывать более конкретное назначение, чтобы можно было отличить от назначения другой связи по этой же родительской таблице. Значение этого свойства можно использовать в свойстве JoinRelation в настройках связи между источниками данных в Query в AOT.

По умолчанию пустое значение.

Role

Текстовое поле, в которое указывается описание значения или роль связи. Например, одна связь с таблицей HcmWorker может быть сотрудником, а другая связь с HcmWorker может быть сотрудником замещающим первого, например на должности при отсутствии первого. Поэтому в первой связи можно указать HcmWorker_Worker а во второй HcmWorker_DeputyWorker.

По умолчанию пустое значение.

CreateNavigationPropertyMethods

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

По умолчанию проставляется значение No.

NavigationPropertyMethodNameOverride

Здесь можно указать наименование метода навигации, если поле оставить пустым, то наименование метода будет браться из свойства RelatedTableRole.

По умолчанию пустое значение.

EDTRelation

Если указано Yes, то это значит, что связь была перенесена в таблицу из EDT, программными инструментами.

По умолчанию проставляется значение No.

Comments

So empty here ... leave a comment!

Добавить комментарий

Sidebar