Top.Mail.Ru

Случай расширения Enum в Dynamics 365

В Dynamics 365 добавлены два новых значения в перечисление в той же модели, но в двух разных расширениях.

Первый из них зациклен (см. фрагмент кода ниже), и ничего, кроме индекса, для второго. Тем не менее, его значение присутствует в выпадающем списке.

[ExtensionOf(formStr(SysPolicyParameters))]
final public class CDPSysPolicyParametersForm_9180_Extension
{
    public void populateTree()
    {
        DictEnum          policyRuleTypeEnum;
        int               i;
        policyRuleTypeEnum = new DictEnum(enumNum(SysPolicyRuleTypeEnum));


        for(i = 0; i < policyRuleTypeEnum.values(); i++)
        {
            str sym = policyRuleTypeEnum.value2Symbol(i);
            info(strFmt("%1 %2 %3", i, policyRuleTypeEnum.value2Name(i), sym));
        }


        next populateTree();
    }
}

Уже построено и синхронизировано всё на свете. Что еще это может быть?

Взгляните со стороны SQL.

Есть некоторые старые значения, которые были созданы ранее, но удалены позже. Все они все еще там.

Пришлось вручную удалить эти несинхронизированные значения из SQL, затем добавить необходимые значения в AOT и синхронизировать БД.

Фактически, синхронизация БД запускается, если у вас есть некоторые изменения только в таблицах / представлениях.
Теперь это правильно пересоздано.

Кстати, есть две хорошие статьи на эту тему:

1) Extensible enums: Breaking change for .NET libraries that you need to be aware of
2) Development tutorial: Extensible base enumerations in Microsoft Dynamics AX 7

 

Источник: http://alexvoy.blogspot.com/2019/11/enum-extensions-case-in-d365.html

Comments

So empty here ... leave a comment!

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

Sidebar