View Definition Examples
This pages provides example configuration for list view customizings.
When referencing Product 360 Core repository fields, make sure to specify the field identifier from the custom area but not the field identifier from the types area.
List with texts in multiple languages
List format:
Product No. |
Status |
Short description (German) |
Short description (English) |
Short description (Spanish) |
Short description (Finish) |
Short description (French) |
Example screen:
Definition (product.listmodel.xml):
<definition defaultDefinition=
"false"
i18NKey=
"Product list multi language"
rootEntity=
"Product2G"
>
<field identifier=
"Product2G.ProductNo"
sortable=
"true"
/>
<field identifier=
"Product2G.CurrentStatus"
sortable=
"true"
/>
<field identifier=
"Product2GLang.DescriptionShort"
sortable=
"true"
>
<logicalKey identifier=
"ArticleLangType.LK.Language"
value=
"7"
/>
</field>
<field identifier=
"Product2GLang.DescriptionShort"
sortable=
"true"
>
<logicalKey identifier=
"ArticleLangType.LK.Language"
value=
"9"
/>
</field>
<field identifier=
"Product2GLang.DescriptionShort"
sortable=
"true"
>
<logicalKey identifier=
"ArticleLangType.LK.Language"
value=
"10"
/>
</field>
<field identifier=
"Product2GLang.DescriptionShort"
sortable=
"true"
>
<logicalKey identifier=
"ArticleLangType.LK.Language"
value=
"11"
/>
</field>
<field identifier=
"Product2GLang.DescriptionShort"
sortable=
"true"
>
<logicalKey identifier=
"ArticleLangType.LK.Language"
value=
"12"
/>
</field>
</definition>
Variables support for views
${user.language} variable could be used as logical key to specify UI language for views.
Definition (product.listmodel.xml):
<definition defaultDefinition=
"false"
i18NKey=
"Product list multi language"
rootEntity=
"Product2G"
>
<field identifier=
"Product2G.ProductNo"
sortable=
"true"
/>
<field identifier=
"Product2G.CurrentStatus"
sortable=
"true"
/>
<field identifier=
"Product2GLang.DescriptionShort"
sortable=
"true"
>
<logicalKey identifier=
"ArticleLangType.LK.Language"
value=
"${user.language}"
/>
</field>
</definition>
List with different price types
Example screen:
List format:
Product No. |
Net customer price (from 1) |
Non-binding price recommendation (from 1) |
Definition (article.listmodel.xml):
<definition defaultDefinition=
"false"
i18NKey=
"Product list with prices"
rootEntity=
"Article"
>
<field identifier=
"Product2G.ProductNo"
sortable=
"true"
/>
<field identifier=
"Product2GPriceValueSales.Amount"
sortable=
"true"
>
<logicalKey identifier=
"ArticlePriceValueType.LK.LowerBound"
value=
"1"
/>
<logicalKey identifier=
"ArticlePriceType.LK.PartyMS"
value=
"1[|]"
/>
<logicalKey identifier=
"ArticlePriceType.LK.Type"
value=
"3"
/>
<logicalKey identifier=
"ArticlePriceType.LK.Currency"
value=
"EUR"
/>
<logicalKey identifier=
"ArticlePriceType.LK.Territory"
value=
"DE"
/>
<logicalKey identifier=
"ArticlePriceType.LK.ValidAt"
value=
"now"
/>
</field>
<field identifier=
"Product2GPriceValueSales.Amount"
sortable=
"true"
>
<logicalKey identifier=
"ArticlePriceValueType.LK.LowerBound"
value=
"1"
/>
<logicalKey identifier=
"ArticlePriceType.LK.PartyMS"
value=
"1[|]"
/>
<logicalKey identifier=
"ArticlePriceType.LK.Type"
value=
"5"
/>
<logicalKey identifier=
"ArticlePriceType.LK.Currency"
value=
"EUR"
/>
<logicalKey identifier=
"ArticlePriceType.LK.Territory"
value=
"DE"
/>
<logicalKey identifier=
"ArticlePriceType.LK.ValidAt"
value=
"now"
/>
</field>
</definition>
List with Structure Group Name
Example screen:
Definition (product.listmodel.xml):
<definition defaultDefinition=
"false"
i18NKey=
"Transition fields"
rootEntity=
"Product2G"
>
<field identifier=
"Product2G.ProductNo"
sortable=
"true"
/>
<field identifier=
"Product2G.CurrentStatus"
sortable=
"true"
/>
<field identifier=
"Product2GStructureMap.StructureGroup"
sortable=
"true"
>
<logicalKey identifier=
"ArticleStructureMapType.LK.StructureId"
value=
"10000"
/>
</field>
</definition>
List of additional price tiers
File: article.detailtab.xml, section detail_purchase_prices
<
tableDefinition
i18NKey
=
"%web.client.article.tab.prices.purchase"
identifier
=
"detail_purchase_prices"
rootEntity
=
"ArticlePricePurchase"
>
<
field
identifier
=
"ArticlePricePurchase.PriceType"
sortable
=
"false"
/>
<
field
align
=
"e"
identifier
=
"ArticlePriceValuePurchase.Amount"
sortable
=
"false"
>
<
logicalKey
identifier
=
"ArticlePriceValueType.LK.LowerBound"
value
=
"1"
/>
</
field
>
<
field
align
=
"e"
identifier
=
"ArticlePriceValuePurchase.Amount"
sortable
=
"false"
>
<
logicalKey
identifier
=
"ArticlePriceValueType.LK.LowerBound"
value
=
"10"
/>
</
field
>
<
field
align
=
"e"
identifier
=
"ArticlePriceValuePurchase.Amount"
sortable
=
"false"
>
<
logicalKey
identifier
=
"ArticlePriceValueType.LK.LowerBound"
value
=
"100"
/>
</
field
>
<
field
align
=
"e"
identifier
=
"ArticlePriceValuePurchase.Amount"
sortable
=
"false"
>
<
logicalKey
identifier
=
"ArticlePriceValueType.LK.LowerBound"
value
=
"1000"
/>
</
field
>
<
field
identifier
=
"ArticlePricePurchase.Currency"
sortable
=
"true"
/>
<
field
identifier
=
"ArticlePricePurchase.Territory"
sortable
=
"true"
/>
<
field
identifier
=
"ArticlePricePurchase.ValidFrom"
sortable
=
"true"
/>
<
field
identifier
=
"ArticlePricePurchase.ValidTo"
sortable
=
"true"
/>
<
field
identifier
=
"ArticlePricePurchase.Supplier"
sortable
=
"true"
/>
</
tableDefinition
>
List of DQ Status per Channel (Transition Fields)
File: product.listmodel.xml
<
definition
defaultDefinition
=
"true"
i18NKey
=
"Quality Overview"
identifier
=
"product.table.config.dq"
rootEntity
=
"Product2G"
>
<
field
identifier
=
"Product2G.ProductNo"
sortable
=
"true"
width
=
"100"
/>
<
field
identifier
=
"Product2G.CurrentStatus"
sortable
=
"true"
width
=
"180"
/>
<
field
identifier
=
"Product2GLang.DescriptionShort"
sortable
=
"true"
>
<
logicalKey
identifier
=
"ArticleLangType.LK.Language"
value
=
"English"
/>
</
field
>
<
field
identifier
=
"Product2G.Status"
sortable
=
"true"
caption
=
"Status Mobile"
>
<
transitionField
identifier
=
"QualityStatusSummary.Status"
>
<
logicalKey
identifier
=
"StatusSummaryType.LK.Channel"
value
=
"Mobile"
/>
</
transitionField
>
</
field
>
<
field
identifier
=
"Product2G.Status"
sortable
=
"true"
caption
=
"Status Web Shop"
>
<
transitionField
identifier
=
"QualityStatusSummary.Status"
>
<
logicalKey
identifier
=
"StatusSummaryType.LK.Channel"
value
=
"Web Shop"
/>
</
transitionField
>
</
field
>
</
definition
>
List of DQ Rule Status and Message (Transition Fields)
File: product.listmodel.xml
<
definition
defaultDefinition
=
"false"
i18NKey
=
"Quality Rule Status"
identifier
=
"product.table.config.dqrule"
rootEntity
=
"Product2G"
>
<
field
identifier
=
"Product2G.ProductNo"
sortable
=
"true"
width
=
"100"
/>
<
field
identifier
=
"Product2G.CurrentStatus"
sortable
=
"true"
width
=
"180"
/>
<
field
identifier
=
"Product2GLang.DescriptionShort"
sortable
=
"true"
>
<
logicalKey
identifier
=
"ArticleLangType.LK.Language"
value
=
"English"
/>
</
field
>
<
field
identifier
=
"Product2G.Status"
sortable
=
"true"
caption
=
"Long Descr Status"
>
<
transitionField
identifier
=
"QualityStatusEntry.Status"
>
<
logicalKey
identifier
=
"StatusEntryType.LK.ProcessIdentifier"
value
=
"Check long desc"
/>
</
transitionField
>
</
field
>
<
field
identifier
=
"Product2G.Status"
sortable
=
"true"
caption
=
"Long Descr Message"
>
<
transitionField
identifier
=
"QualityStatusEntry.Message"
>
<
logicalKey
identifier
=
"StatusEntryType.LK.ProcessIdentifier"
value
=
"Check long desc"
/>
</
transitionField
>
</
field
>
</
definition
>
Use of "displaySectionWidget" attribute in detail tabs
If the attribute "displaySectionWidget" is set to "true" for a sub-entity, then the Logical Keys with field 'Editable' set to "true" are displayed as
labels in the detail tabs by default.
<
definition
debugId
=
"article_surcharges_tab"
i18NKey
=
"%web.article.detail.tab.surcharges"
id
=
"web.article.detail.tab.surcharges"
permissionId
=
"web.article.detail.tabs.surcharges"
position
=
"100"
rootEntity
=
"Article"
>
<
column
>
<
fieldGroup
displaySectionWidget
=
"true"
subEntityId
=
"ArticleSurchargeMetal"
>
<
field
identifier
=
"ArticleSurchargeMetal.Amount"
/>
<
field
identifier
=
"ArticleSurchargeMetal.Weight"
/>
<
field
identifier
=
"ArticleSurchargeMetal.Base"
/>
<
field
identifier
=
"ArticleSurchargeMetal.Currency"
/>
<
field
identifier
=
"ArticleSurchargeMetal.Step"
/>
<
field
identifier
=
"ArticleSurchargeMetal.IsPercentage"
/>
<
field
identifier
=
"ArticleSurchargeMetal.CalculateOnStepComplete"
/>
</
fieldGroup
>
<
fieldGroup
>
<
field
identifier
=
"ArticleSurchargeOther.Amount"
/>
<
field
identifier
=
"ArticleSurchargeOther.Currency"
/>
<
field
identifier
=
"ArticleSurchargeOther.Step"
/>
<
field
identifier
=
"ArticleSurchargeOther.IsPercentage"
/>
<
field
identifier
=
"ArticleSurchargeOther.CalculateOnStepComplete"
/>
</
fieldGroup
>
</
column
>
</
definition
>
Combo box with a change in the configuration as shown below (selectable="true").
<
definition
debugId
=
"article_texts_tab"
i18NKey
=
"%web.article.detail.tab.texts"
id
=
"web.article.detail.tab.texts"
permissionId
=
"web.article.detail.tabs.texts"
position
=
"20"
rootEntity
=
"Article"
>
<
column
>
<
fieldGroup
displaySectionWidget
=
"true"
subEntityId
=
"ArticleLang"
>
<
field
identifier
=
"ArticleLang.DescriptionShort"
/>
<
field
identifier
=
"ArticleLang.DescriptionLong"
/>
<
field
identifier
=
"ArticleLang.Keyword"
/>
<
field
identifier
=
"ArticleLang.Segment"
/>
<
field
identifier
=
"ArticleLang.Remarks"
/>
<
logicalKey
identifier
=
"ArticleLangType.LK.Language"
selectable
=
"true"
value
=
"${user.language}"
/>
</
fieldGroup
>
</
column
>
</
definition
>
If the attribute "displaySectionWidget" is set to "false" for a sub-entity, then the LogicalKeys are not displayed.
<
definition
debugId
=
"article_texts_tab"
i18NKey
=
"%web.article.detail.tab.texts"
id
=
"web.article.detail.tab.texts"
permissionId
=
"web.article.detail.tabs.texts"
position
=
"20"
rootEntity
=
"Article"
>
<
column
>
<
fieldGroup
displaySectionWidget
=
"false"
subEntityId
=
"ArticleLang"
>
<
field
identifier
=
"ArticleLang.DescriptionShort"
/>
<
field
identifier
=
"ArticleLang.DescriptionLong"
/>
<
field
identifier
=
"ArticleLang.Keyword"
/>
<
field
identifier
=
"ArticleLang.Segment"
/>
<
field
identifier
=
"ArticleLang.Remarks"
/>
<
logicalKey
identifier
=
"ArticleLangType.LK.Language"
selectable
=
"true"
value
=
"${user.language}"
/>
</
fieldGroup
>
</
column
>
</
definition
>