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

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条回答
d56caomao
2020-09-16 14:44

您真的尝试过吗?

因为使用hybris 5.1,即使您引入了子类型,它仍然不起作用:

  
       <属性>
           
               <修饰符read =" true" write =" true"初始=" false"/>
               
           
           
               <修饰符read =" true" write =" true"初始=" false"/>
               
           
       
   

  

更新平台并创建订单后,尝试编辑" CustomConsignment"的" namedDeliveryDate"时,仍然会出现异常:

由于以下错误,无法保存该项目:属性" namedDeliveryDate"不可更改

我认为这是因为" namedDeliveryDate"被定义为" initial",似乎无法重新声明" initial"。 也许某些类型系统专家可以在这里进行说明?

一周热门 更多>