cmscockpit中子组件属性的同步

2020-09-02 19:33发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,我有一个父组件,其中有2-3个子组件。 在CMSCockpit中,如果我编辑父组件,然后对其进行同步,则更改将正确反映。 但是,如果我编辑子组件属性然后同步父组件,则子组件相关的更改不会同步。

有人可以为此提出建议吗?

谢谢Meera

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,我有一个父组件,其中有2-3个子组件。 在CMSCockpit中,如果我编辑父组件,然后对其进行同步,则更改将正确反映。 但是,如果我编辑子组件属性然后同步父组件,则子组件相关的更改不会同步。

有人可以为此提出建议吗?

谢谢Meera

付费偷看设置
发送
10条回答
半个程序猿
1楼 · 2020-09-02 20:02.采纳回答

不久前我们就知道了这一点,但我真的很想分享。

应该考虑在此值列表中添加一个Map-Key:

  
          
              <地图>
                  
                      <列表>
                          <!-摘要页->
                           AbstractPage.restrictions 
                           AbstractPage.contentSlots 
                           ContentSlotForPage.contentSlot 
                           ContentSlot.cmsComponents 
                          <!-AbstractCMSComponent->
                           AbstractCMSComponentContainer.simpleCMSComponents 
                           AbstractCMSComponentContainer.currentCMSComponents 
                           RotatingImagesComponent.banners 
                           AbstractCMSComponent.restrictions 
                           NavigationBarComponent.link 
                           AbstractFooComponent.abstractStuff 
                           BarComponent.paragraph 
                           FooComponent.buttons 
                          <!-CMSNavigationNode->
                           CMSNavigationNode.children 
                           CMSNavigationNode.entries 
                           CMSNavigationNode.links 
                           CMSNavigationEntry.item 
                           CMSLinkComponent 
                          媒体
                      
                  
              
          
      

  

首先,如果相关值发生变化,这会导致更好的反馈。 通常,还应在底部添加"媒体"或" CMSLinkComponent",如果这些项目包含在其他组件中,则会考虑进行同步。

我们可以以此解决许多CMS-Item-Dependency问题。 特别是,我们不需要在以前的" AbstractPage"和" AbstractCMSComponent" -Key中冗余声明依赖项。 (因为,如果您未在两个键中都声明它们,则AbstractPage将最有可能,但并不总是取决于使用情况,即win。原因是位于SynchronizationServiceImpl内部的cache-Map)

可能不需要包含CMSNavigationNode-Data,但这必须进行更详细的评估。

期待有关此解决方案的问题和反馈。

樱桃小丸子0093
2楼-- · 2020-09-02 20:13

此解决方案对我们有效,同步状态也正确反映在同步图标上。

灬番茄
3楼-- · 2020-09-02 20:11

在这种情况下,可能需要将这些子组件添加到cmscockpit的ynchronizationService的relatedReferencesTypesMap中。

如果使用加速器,则可以直接在yacceleratorcockpits项目( 项目名称可能会因您的主要项目名称而异)/yacceleratorcockpits/resources/yacceleratorcockpits/cmscockpit/spring/cmscockpit-services.xml

  
      
          
              <地图>
                  
                      <列表>
                           AbstractPage.restrictions 
                           AbstractPage.contentSlots 
                           ContentSlotForPage.contentSlot 
                           ContentSlot.cmsComponents 
                           AbstractCMSComponentContainer.simpleCMSComponents 
                           AbstractCMSComponentContainer.currentCMSComponents 
                           RotatingImagesComponent.banners 
                           AbstractCMSComponent.restrictions 
                      
                  
                  
                      <列表>
                           AbstractCMSComponentContainer.simpleCMSComponents 
                           AbstractCMSComponentContainer.currentCMSComponents 
                           RotatingImagesComponent.banners 
                           AbstractCMSComponent.restrictions 
                           NavigationBarComponent.link 
                      
                  
                  
                      <列表>
                           CMSNavigationNode.children 
                           CMSNavigationNode.entries 
                           CMSNavigationNode.links 
                           CMSNavigationEntry.item 
                           CMSLinkComponent 
                      
                  
              
          
      
 

  

您要做的就是将组件层次结构添加到此配置中,就像对其他组件所做的一样。 RotatingImagesComponent.banners。

干杯,Pawel
SAP浪
4楼-- · 2020-09-02 20:16

是的。面对同样的效果,它在两个级别上都可以正常工作。例如,如果子组件具有CMSParagraphComponent之类的CMS组件作为属性,则其更改不会影响父组件 component.Any想法可能是解决方案。

天桥码农
5楼-- · 2020-09-02 20:13

嗨,我面临类似的问题,但它在产品驾驶舱中。 让我详细解释这个问题。 我已经通过具有一对多关系的自定义属性扩展了产品。 在源目录[暂存]版本中分配了要同步到目标目录[暂存]版本的同步作业。 我的自定义属性完全同步,并已添加到同步作业的根类型。

现在问题在这里。 当我在productcockpit中对产品的相关属性进行任何更改时,同步状态按钮的颜色不会变成红色,同时如果我对产品类型,同步按钮的颜色进行了更改,并且能够 正确同步。

我能够通过hmc成功同步,而没有任何问题,这个问题仅在productcockpit中出现。

任何建议/想法/帮助对我来说都是最宝贵的。

关于柔山

lukcy2020
6楼-- · 2020-09-02 19:57

Dawid:

感谢您的回复。 即使我更改了所有三个项目Product,DiscountRow和Discount,它似乎仍未同步。 唯一的例外似乎是,如果我手动删除Discount的ItemSyncTimestamp,则同步可以通过产品座舱完美地工作。 Hybris在ItemSyncTimeStamp与Discount和DiscountRow之间寻找什么,它基于两者之间的修改时间吗?

我是小鹏鹏啊
7楼-- · 2020-09-02 20:06

@David Sweda

您提到了"为了使同步能够正确地计划拥有项目,您必须将其标记为手动修改,最好在项目的部分业务代码中进行标记。"

请让我知道我需要在何处编写业务逻辑

一周热门 更多>