Понимание синтаксической инструкции Impex в Hybris - PullRequest
0 голосов
/ 08 октября 2018

Здравствуйте, я пытаюсь изучить Hybris, и, поскольку у меня нет доступа к сайту Wiki, мне трудно понять основы кода.Может кто-нибудь, пожалуйста, помогите мне понять нижеприведенные высказывания Impex для текста "Добро пожаловать на домашнюю страницу" на главной странице.

Мои вопросы из приведенного ниже кода:на самом деле, у меня есть больше, но я не хочу обременять, но если вы можете помочь мне в большинстве основ заявления Impex, я буду очень признателен.

1) В каком-то месте используется более одной точки с запятой, почему?
2) Что такое uid?
3) Кажется, значения параметров, определенных в запусках, начинаются после двух точек с запятой (;;)в каждом утверждении дайте мне знать, что я прав?

INSERT_UPDATE CMSParagraphComponent;$contentCV[unique=true];uid[unique=true];name;&componentRef;;;;content;
;;welcomeInfoComponent;Welcome information;welcomeInfoComponent;;;;welcome to home page;

INSERT_UPDATE ContentSlotName;name[unique=true];template(uid,$contentCV)[unique=true][default='LandingPage2Template'];validComponentTypes(code);compTypeGroup(code)
;welcomeInfo;;;wide

INSERT_UPDATE ContentSlot;$contentCV[unique=true];uid[unique=true];name;active
;;welcomeInfoSlot;welcome info slot;true

INSERT_UPDATE ContentSlotForTemplate;$contentCV[unique=true];uid[unique=true];position[unique=true];pageTemplate(uid,$contentCV)[unique=true][default='LandingPage2Template'];contentSlot(uid,$contentCV)[unique=true];allowOverwrite
;;WelcomeInfo-LandingPage2;welcomeInfo;;welcomeInfoSlot;true

INSERT_UPDATE ContentSlot;$contentCV[unique=true];uid[unique=true];cmsComponents(uid,$contentCV)
;;welcomeInfoSlot;welcomeInfoComponent

1 Ответ

0 голосов
/ 09 октября 2018

что такое uid?

uid - это атрибут, определенный как уникальный в CMSItem.В основном все элементы CMS расширяют CMSItem.Таким образом, вы должны дать уникальное значение для всех ваших записей в вашем Impex.Кроме того, uid был использован для объявления CMSItem в качестве каталога.

<itemtype code="CMSItem" jaloclass="de.hybris.platform.cms2.jalo.contents.CMSItem" extends="GenericItem" autocreate="true"
    generate="true" abstract="true">
    <custom-properties>
        <property name="catalogItemType">
            <value>java.lang.Boolean.TRUE</value>
        </property>
        <property name="catalogVersionAttributeQualifier">
            <value>"catalogVersion"</value>
        </property>
        <property name="uniqueKeyAttributeQualifier">
            <value>"uid"</value>
        </property>
    </custom-properties>
    <attributes>
        <attribute qualifier="uid" generate="true" autocreate="true" type="java.lang.String">
            <persistence type="property" />
            <modifiers optional="false" unique="true" />
        </attribute>
        <attribute qualifier="name" generate="true" autocreate="true" type="java.lang.String">
            <persistence type="property" />
        </attribute>
        <attribute qualifier="catalogVersion" type="CatalogVersion">
            <modifiers optional="false" unique="true" />
            <persistence type="property" />
        </attribute>
    </attributes>
</itemtype>

кажется, что значения параметров, определенных в start, начинаются после двух точек с запятой (;;) в каждом утверждении, дайте мне знать, что я 'm правильно?

Позвольте мне сначала отформатировать ваш импекс, чтобы вы получили идею

INSERT_UPDATE CMSParagraphComponent ; $contentCV[unique=true] ; uid[unique=true]     ; name                ; &componentRef        ;  ;  ;  ; content              ;  
                                    ;                         ; welcomeInfoComponent ; Welcome information ; welcomeInfoComponent ;  ;  ;  ; welcome to home page ;  

Здесь

  • INSERT_UPDATE это режим вашего импекса
  • CMSParagraphComponent это ItemType
  • Тогда вы должны поставить ;(точка с запятой) , который является просто разделителем значений.Отсюда вы можете начать объявлять имя атрибута / столбца (например, uid, name и т. Д.) Вместе с модификатором (например, [unique = true]).
  • Теперь ваше значение должно находиться ниже определения столбца в первой строке (вызовите какзаголовок).Для некоторого столбца вам не требуется объявлять значение или вы хотите объявить пустое значение, тогда вы просто оставляете его пустым, как мы это делали для $ contentCV
  • Вот $ contentCV - это макрос для подачи значения атрибута catalogVersion , который в основном определяется в верхней части файла.Во время импорта эти макросы анализируются, и имя макроса заменяется значением макроса.Поэтому мы оставляем значение пустым, поскольку нам не требуется указывать его значение для каждой строки значения.

В некоторых местах используется более одной точки с запятой, почему?

Просто для удобства чтения вашего файла вы можете указать столько точек с запятой, сколько захотите, в заголовке и столько же в строке значения.Если вы удалите эти лишние ; , даже если ваш Impex будет работать

INSERT_UPDATE CMSParagraphComponent ; $contentCV[unique=true] ; uid[unique=true]     ; name                ; &componentRef        ;  content              ;  
                                    ;                         ; welcomeInfoComponent ; Welcome information ; welcomeInfoComponent ;  welcome to home page ;  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...