Поле обязательного перечисления Dynamics AX не может быть правильно установлено через пользовательский интерфейс - PullRequest
2 голосов
/ 13 апреля 2011

Может ли кто-нибудь объяснить мне следующее поведение?

Когда для типа поля в таблице AX задано Enum, вы можете выбрать любое из значений Enum в качестве значения для поля.

Но если вы сделаете поле Mandatory, вы больше не сможете выбирать первое значение Enum в списке через пользовательский интерфейс.

Очевидно, что это можно обойти, если не сделать поле Mandatory.Я ищу объяснение этого странного поведения.

Ответы [ 2 ]

6 голосов
/ 13 апреля 2011

AX не имеет понятия нулевого значения.Вместо этого следующие значения считаются «не введенными» по определению:

  • строка: пусто
  • int и int64: 0 (ноль)
  • перечисление: 0 (обычнопервое значение)
  • дата: 01 \ 01 \ 1900 (отображается пустым)

Для новых базовых перечислений введите пустое нулевое значение перечисления (по условному названию это None).Это позволит использовать обязательные поля для этого типа перечисления.

Также обратите внимание на это: Отметьте обязательные поля в форме, если они не заполнены действительным значением

1 голос
/ 14 апреля 2011

Вы говорите: «если вы сделаете поле Mandatory, вы больше не сможете выбирать первое значение Enum в списке через интерфейс пользователя» - это именно то, что свойство Mandatory делает для перечислений: не позволяет использовать нользначение.Например, если вы сделаете NoYesId обязательным, вы сможете ввести только Yes, потому что No больше не будет разрешено - зачем вам это нужно в форме?

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

...