首页 > 解决方案 > 用于创建 CMS 页面的 Impex 文件位置?

问题描述

我想在 SAP Hybris 中创建一个新页面。在浏览了一些文章之后,我发现我必须遵循一些步骤,比如编写 impex 命令,创建带有适当标签的 jsp 文件等等,现在我的问题是我应该在哪里编写这些 impex 命令才能使其成功运行?如果我在 HAC(Hybris 管理控制台)上运行这些,它们会成功运行而没有任何错误,但我看不到任何应该创建的结果页面。如果我点击链接;

https://electronics.local:9002/trainingstorefront/electronics/giftPageTemplate

它抛出 404 错误。

我完整的 impex 脚本如下:-

$contentCatalog=electronicsContentCatalog
$contentCatalogName=Electronics Content Catalog
$contentCV=catalogVersion(CatalogVersion.catalog(Catalog.id[default=$contentCatalog]),CatalogVersion.version[default=Online])[default=$contentCatalog:Online]
$productCatalog=electronicsProductCatalog
$productCatalogName=Electronics Product Catalog
$productCV=catalogVersion(catalog(id[default=$productCatalog]),version[default='Online'])[unique=true,default=$productCatalog:Online]
$picture=media(code, $contentCV);
$image=image(code, $contentCV);
$media=media(code, $contentCV);
$page=page(uid, $contentCV);
$contentPage=contentPage(uid, $contentCV);
$product=product(code, $productCV)
$category=category(code, $productCV)
$siteResource=jar:de.hybris.platform.electronicsstore.constants.ElectronicsstoreConstants&/electronicsstore/import/sampledata/contentCatalogs/$contentCatalog
$productResource=jar:de.hybris.platform.electronicsstore.constants.ElectronicsstoreConstants&/electronicsstore/import/sampledata/productCatalogs/$productCatalog
$jarResourceCms=jar:de.hybris.platform.electronicsstore.constants.ElectronicsstoreConstants&/electronicsstore/import/sampledata/cockpits/cmscockpit


INSERT_UPDATE PageTemplate;$contentCV[unique=true];uid[unique=true];name;frontendTemplateName;restrictedPageTypes(code);active[default=true]
                          ;;giftPageTemplate  ;Gift Wrapping Template   ;layout/giftPageTemplate ;;


INSERT_UPDATE ContentSlotName;name[unique=true];template(uid,$contentCV)[unique=true][default='giftPageTemplate'];validComponentTypes(code)
                             ;HeaderArea;;
                             ;NavBarArea;;
                             ;ASectionArea;;



INSERT_UPDATE ContentSlot;$contentCV[unique=true];uid[unique=true];name;active
                         ;;HeaderAreaSlot;Header Area Content Slot;true
                         ;;NavBarAreaSlot;NavBar Area Content Slot;true
                         ;;ASectionAreaSlot;A Section Area Content Slot;true

INSERT_UPDATE ContentSlotForTemplate;$contentCV[unique=true];uid[unique=true];position[unique=true];pageTemplate(uid,$contentCV)[unique=true][default='giftPageTemplate'];contentSlot(uid,$contentCV)[unique=true];allowOverwrite[default=true]
                                    ;;HeaderArea-giftPageTemplate;HeaderArea;;HeaderAreaSlot;true
                                    ;;NavBarArea-giftPageTemplate;NavBarArea;;NavBarAreaSlot;true
                                    ;;ASectionArea-giftPageTemplate;ASectionArea;;ASectionAreaSlot;true


INSERT_UPDATE ContentPage;$contentCV[unique=true];uid[unique=true];label;title[lang=en];name;masterTemplate(uid, $contentCV);defaultPage[default='true'];approvalStatus(code)[default='approved']
                         ;;giftCustomPage;giftPageTemplate;Gift Wrapping Page;Gift Wrapping custom page;giftPageTemplate;;;

标签: hybrisimpex

解决方案


如果您使用的是 2005 并且我猜您这样做了,那么您应该注意 DefaultPageController 中的一个错误。它负责渲染每个内容页面。但是,它不再在标准加速器中调度。(遗憾的是,我手头没有准备好相关的票(我正在度假:D。如果您在 answers.sap.com 中搜索“DefaultPageController”,您应该会找到该票。)

将 @RequestMapping("/**) 添加到 DefaultPageController 并查看它是否有效。SAP 也在解决 AspectJ 的问题。不知道它是否已经在 2005.3


推荐阅读