Почему по enumtype dynamic = "false" установлено в false? - PullRequest
0 голосов
/ 26 апреля 2018

Почему для enumtype dinamic = "false" установлено значение false?и когда я должен установить его в true?

<enumtype code="MyEnumType" generate="true" autocreate="true" dynamic="false">
    <value code="NONE" />
    <value code="ONE" />
</enumtype>

Спасибо!

Ответы [ 3 ]

0 голосов
/ 26 апреля 2018

С помощью перечислимого типа hybris вы можете определить статическое или динамическое перечисление.Static (dynamic = "false") означает, что перечисление содержит только определенные элементы.Во время выполнения вы никогда не сможете добавлять элементы в перечисление.Это отличается, когда вы используете динамическое перечисление (dynamic = "true").С динамическими перечислениями вы можете добавлять значения во время выполнения.Поэтому, если вы хотите, чтобы ваше перечисление было статическим, используйте dynamic = "false".Если вы хотите добавить значения во время выполнения, используйте dynamic = "true".

0 голосов
/ 26 апреля 2018

Проще говоря, я могу сказать, что статическое перечисление (dynamic="false", значение по умолчанию) генерируется как перечисление Java.В котором список значений может быть изменен только во время компиляции путем изменения items.xml.В случае динамического перечисления (dynamic="true") мы можем изменить (добавить / удалить) его значения во время выполнения, используя hmc или Impex.


Статическое перечисление:

    <enumtype code="FixedValueType" autocreate="true" generate="true">
        <value code="value1"/>
        <value code="value2"/>
    </enumtype>

ДинамическоеEnum:

    <enumtype code="OrderStatus" autocreate="true" generate="true" dynamic="true">
        <value code="CREATED"/>
        <value code="ON_VALIDATION"/>
        <value code="COMPLETED"/>
        <value code="CANCELLED"/>
    </enumtype>

подробнее о перечислении hybris

0 голосов
/ 26 апреля 2018

Я думаю, что нашел трудный путь:

INSERT_UPDATE ManufacturerName;code[unique=true];name[lang=de];name[lang=en]

    ,,,,Exception : line 9: cannot create ManufacturerName with values ItemAttributeMap[ registry:  null, type: <null>, data: {code=00000023344, name={8796093054536->de=3D , 8796093054536->en=3D }} ] due to [de.hybris.platform.servicelayer.interceptor.impl.EnumerationValidator@197d511d]:Enum type ManufacturerName is not dynamic - can not create new enum value 00000023344. If you want to add a new value to this type you have to define the enum type as non dynamic at items.xml (needs system update afterwards).
...