如何重新声明属性以更改其修饰符?

2020-09-16 13:45发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我们要使用以下定义和重新...

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

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


嗨,

我们要使用以下定义和重新声明使某些属性可写(用于hmc中的更改)

  
 
                  <属性>
 
                      
                          <修饰符read =" true" write =" true"
                                     optional =" true"/>
                          
                      
                      
                          <修饰符read =" true" write =" true"
                                     optional =" false"/>
                          
                      
  ...

  

但是在构建时会抛出以下异常:

  [复制]将1个文件复制到C:\ hybris \ bin \ custom \ prj \ prjstorefront \ resources
  [ycodegenerator] 13:04:41,952 [main] INFO CodeGenerator-开始代码生成...
 
  建立失败
  C:\ hybris \ bin \ platform \ build.xml:24:执行此行时发生以下错误:
  C:\ hybris \ bin \ platform \ resources \ ant \ compiling.xml:80:exec时发生以下错误
  说这行:
  C:\ hybris \ bin \ platform \ resources \ ant \ antmacros.xml:700:exe时发生以下错误
  剪掉这条线:
  C:\ hybris \ bin \ platform \ resources \ ant \ antmacros.xml:703:java.lang.IllegalArgumentException:ca
  由于属性'Consignment.namedDeliveryDate(java.u)重复,因此未将名称空间((prjcore))合并到(())中
  til.Date):(((prjcore)):: YAttributeDescriptor [prjcore-items.xml:1424(AttributeTagListener)] [null]'vs'Consignme
  nt.namedDeliveryDate(java.util.Date):((basecommerce)):: YAttributeDescriptor [basecommerce-items.xml:858(AttributeTagListe
  ner)] [PROPERTY]'
          在de.hybris.bootstrap.typesystem.YNamespace.mergeNamespace(YNamespace.java:286)
          在de.hybris.bootstrap.typesystem.YTypeSystem.mergeNamespaces(YTypeSystem.java:86)
          在de.hybris.bootstrap.typesystem.YTypeSystem.finalizeTypeSystem(YTypeSystem.java:77)
          在de.hybris.bootstrap.typesystem.YTypeSystemLoader.finish(YTypeSystemLoader.java:583)
          在de.hybris.bootstrap.typesystem.YTypeSystemSource.readTypeSystem(YTypeSystemSource.java:125)
          在de.hybris.bootstrap.typesystem.YTypeSystemSource.getTypeSystem(YTypeSystemSource.java:55)
          在de.hybris.bootstrap.codegenerator.jalo.JaloClassGenerator.generateClasses(JaloClassGenerator.java:50)
          在de.hybris.bootstrap.codegenerator.CodeGenerator.generateJaloClasses(CodeGenerator.java:210)
          在de.hybris.bootstrap.codegenerator.CodeGenerator.generate(CodeGenerator.java:182)
          在de.hybris.bootstrap.codegenerator.CodeGenerator.generate(CodeGenerator.java:332)
          在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)

  

如果有一个简单的解决方案来完成这项工作,那将是很好的。

11条回答
一只江湖小虾
2020-09-16 14:33

我们使用hybris 4.8.15并找到了解决此问题的解决方法:此外,您需要覆盖派生项的Jalo类中的setNamedDeliveryDate方法。

公共类DeliveryConsignment扩展了GeneratedDeliveryConsignment {/** * {@inheritDoc}。 修饰符initial已设置为false,尽管如此,类* {@link de.hybris.platform.ordersplitting.jalo.GeneratedConsignment}中的生成方法已将initial属性设置为true。 * * @请参见de.hybris.platform.ordersplitting.jalo.GeneratedConsignment#setNamedDeliveryDate(SessionContext,* java.util.Date)*/@Override protected void setNamedDeliveryDate(final SessionContext ctx,final Date value){super.setProperty(ctx, NAMEDDELIVERYDATE,值); }

}

一周热门 更多>