关系类型问题从4.7迁移到5.0.3

2020-09-18 15:27发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨 从4.7迁移到5.0时,我...

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

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


从4.7迁移到5.0时,我在做所有蚂蚁时遇到异常。 这是因为" SavedValueEntriesRelation"现在已从hmc扩展名移至核心。 以下是一个例外。 考虑到我们有一个可以在4.7上完美运行的直播网站,解决此问题的最佳方法是什么

java.lang.IllegalArgumentException:由于重复的类型代码'savedvalueentriesrelation':SavedValueEntriesRelation ::(((hmc)):: YRelation [hmc-items),无法将名称空间((hmc))合并到(())中。 xml:54(RelationTypeTagListener)] SavedValueEntriesRelation ::(((core)):: YRelation [core-items.xml:322(RelationTypeTagListener)] 在de.hybris.bootstrap.typesystem.YNamespace.mergeNamespace(YNamespace.java:158) 在de.hybris.bootstrap.typesystem.YTypeSystem.mergeNamespaces(YTypeSystem.java:85) 在de.hybris.bootstrap.typesystem.YTypeSystem.finalizeTypeSystem(YTypeSystem.java:76) 在de.hybris.bootstrap.typesystem.YTypeSystemLoader.finish(YTypeSystemLoader.java:593) 在de.hybris.bootstrap.codegenerator.CodeGenerator.readTypeSystem(CodeGenerator.java:289) 在de.hybris.bootstrap.codegenerator.CodeGenerator.getTypeSystem(CodeGenerator.java:90) 在de.hybris.bootstrap.codegenerator.jalo.JaloClassGenerator.generateClasses(JaloClassGenerator.java:50) 在de.hybris.bootstrap.codegenerator.CodeGenerator.generateJaloClasses(CodeGenerator.java:228) 在de.hybris.bootstrap.codegenerator.CodeGenerator.generate(CodeGenerator.java:200) 在de.hybris.bootstrap.codegenerator.CodeGenerator.generate(CodeGenerator.java:447) 在de.hybris.ant.taskdefs.compiling.CodeGeneratorTask.execute(CodeGeneratorTask.java:31) 在org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292) 在sun.reflect.GeneratedMethodAccessor4.invoke(未知来源) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:606) 在org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 在org.apache.tools.ant.Task.perform(Task.java:348) 在org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68) 在net.sf.antcontrib.logic.IfTask.execute(IfTask.java:197) 在sun.reflect.GeneratedMethodAccessor23.invoke(未知来源) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:606) 在org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 在org.apache.tools.ant.TaskAdapter.execute(TaskAdapter.java:154) 在org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292) 在sun.reflect.GeneratedMethodAccessor4.invoke(未知来源) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:606) 在org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 在org.apache.tools.ant.Task.perform(Task.java:348) 在org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68) 在org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292) 在sun.reflect.GeneratedMethodAccessor4.invoke(未知来源) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:606) 在org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 在org.apache.tools.ant.Task.perform(Task.java:348) 在org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:396) 在org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292) 在sun.reflect.GeneratedMethodAccessor4.invoke(未知来源) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:606) 在org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 在org.apache.tools.ant.Task.perform(Task.java:348) 在org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68) 在org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292) 在sun.reflect.GeneratedMethodAccessor4.invoke(未知来源) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:606) 在org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 在org.apache.tools.ant.Task.perform(Task.java:348) 在org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:396) 在org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292) 在sun.reflect.GeneratedMethodAccessor4.invoke(未知来源) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:606) 在org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 在org.apache.tools.ant.Task.perform(Task.java:348) 在org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68) 在org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292) 在sun.reflect.GeneratedMethodAccessor4.invoke(未知来源) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:606) 在org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 在org.apache.tools.ant.Task.perform(Task.java:348) 在org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:396) 在org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292) 在sun.reflect.GeneratedMethodAccessor4.invoke(未知来源) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:606) 在org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 在org.apache.tools.ant.Task.perform(Task.java:348) 在org.apache.tools.ant.Target.execute(Target.java:435) 在org.apache.tools.ant.Target.performTasks(Target.java:456) 在org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393) 在org.apache.tools.ant.Project.executeTarget(Project.java:1364) 在org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) 在org.apache.tools.ant.Project.executeTargets(Project.java:1248) 在org.apache.tools.ant.Main.runBuild(Main.java:851) 在org.apache.tools.ant.Main.startAnt(Main.java:235) 在org.apache.tools.ant.launch.Launcher.run(Launcher.java:280) 在org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)

1条回答
悻福寶寶
2020-09-18 16:10 .采纳回答

这就是我们解决问题的方式。

1)查询包含所有多对多关系类型的组合类型表。 从COMPOSEDTYPES中选择*,其中INTERNALCODE = 。 复制数据并将其保存在文件中。

2)查看此查询返回的结果集中的ITEMJNDINAME列。 让我们假设JNDI名称为de.hybris.platform.persistence.link.Link。

3)这意味着与这些类型有关的所有数据都存储在"链接"表中。 从-items.xml中删除这些关系将无效。 在运行系统更新时,Hybris根据JNDI名称选择旧的部署表(de.hybris.platform.persistence.link.Link)。

4)我们需要通过执行下面的查询从ComposedType表中删除这些条目。

从COMPOSEDTYPES中删除,其中INTERNALCODE = <此处是您的类型>

5)执行步骤1仔细检查是否已从该表中删除条目。

6)现在更改您的items.xml文件,并为这些多对多类型添加部署表。

7)运行ant clean all并启动hybris服务器,然后进行系统更新

8)此时,再次运行步骤1以查看结果集的JNDI名称,它应该已更改为 de.hybris.platform.persistence.link。 _ <此处是您的类型>

9)现在,使用以下查询更新多对多关系的PK。 从步骤1中保存的备份文件中复制PK

10)更新COMPOSEDTYPES集pk =其中INTERNALCODE = <此处是您的类型>

11)完成后,再次运行系统更新

12)现在应在新的部署表上执行所有选择和插入操作。 运行impex进行验证。

一周热门 更多>