Hello I'm trying to learn Hybris and since I don't have access to Wiki site its difficult for me to understand the basics behind the code. Can someone please help me understand the below Impex statements for a text "Welcome to home page" in the home page.
My questions from the below code are ; actually, I have more but don't want to put burden but if you can help me in most basics of Impex statement I will greatly appreciate it.
1) In some place more than one semicolon is used, why?
2) What is uid?
3) It seems values of parameters defined in starts begins after two semicolons (;;) in each statement, let me know I'm correct?
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
what is uid?
uid is an attribute defined as unique in CMSItem. Mostly all CMS items extend CMSItem. So you have to give a unique value for all your records in your Impex. Also, uid has been used to declare CMSItem as catalog aware.
<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>
it seems values of parameters defined in starts begins after two semicolons (;;) in each statement, let me know I'm correct?
Let me first format your impex, so you will get the idea
INSERT_UPDATE CMSParagraphComponent ; $contentCV[unique=true] ; uid[unique=true] ; name ; &componentRef ; ; ; ; content ;
; ; welcomeInfoComponent ; Welcome information ; welcomeInfoComponent ; ; ; ; welcome to home page ;
Here
in some place more than one semicolon is used, why?
Just for readability of your file, you can put as many semicolons as you want in your header and same in value row. If you remove those extra ; even though your Impex will run
INSERT_UPDATE CMSParagraphComponent ; $contentCV[unique=true] ; uid[unique=true] ; name ; &componentRef ; content ;
; ; welcomeInfoComponent ; Welcome information ; welcomeInfoComponent ; welcome to home page ;