Hybris 如何获取 Backoffice 中属性的标签?

Posted

技术标签:

【中文标题】Hybris 如何获取 Backoffice 中属性的标签?【英文标题】:How does Hybris get the label of the attributes in Backoffice? 【发布时间】:2018-04-19 12:17:25 【问题描述】:

label (java.lang.String):本地化列名的键。该值在本地化包中查找。如果此字符串为空,则该列根据@qualifier 命名。

例如 *-backoffice-config.xml 中的 type="AbstractOrder":

<editorArea:tab name="hmc.properties"> 
...
  <editorArea:section name="hmc.common"> 
    <editorArea:attribute qualifier="name"/> 
    <editorArea:attribute qualifier="description"/> 
    <editorArea:attribute qualifier="expirationTime"/> 
  </editorArea:section> 
...
</editorArea:tab>

那么,标签属性是如何从数据库中获取的呢?我不明白。我尝试查看两个表

属性描述符

属性描述符SLP

但还是不清楚? 例如,产品代码属性的标签可以在 core-locales_en.properties 中找到并修改为英语 正如你上面提到的。但是,当您更改值时,我仍然看到存储在数据库中的配置值。当我在配置文件中删除此值时。然后 ant clean all -> start server ->[ hac -> Platform -> Update. (仅选中“本地化类型”)]。虽然配置文件中的值被删除了,但是标签没有改变(和数据库中的值类似)。可以说:标签值是在配置文件中配置的。但如果在配置文件中找不到,它将在数据库中查找。我是这么认为的。但是我还是不明白它的实现机制……

【问题讨论】:

【参考方案1】:

这个问题与你上一个问题的答案相同。标签由属性文件提供。检查后台扩展中的资源文件夹。

【讨论】:

如上所述。但是,当您更改值时,我仍然看到存储在数据库中的配置值。当我在配置文件中删除此值时。然后 ant clean all -> start server ->[ hac -> Platform -> Update. (仅选中“本地化类型”)]。虽然配置文件中的值被删除了,但是标签没有改变(和数据库中的值类似)。可以说:标签值是在配置文件中配置的。但如果在配置文件中找不到,它将在数据库中查找。我是这么认为的。但是我还是不明白它的实现机制…… hybris 为自己的 ORM 上的每种类型提供 pk。当您制作本地化类型时,它会更新 ORM 系统。 ORM系统将其配置保存到DB并使用。如果你想使用数据库翻译,你可以覆盖 LabelService 和 i18nService。 “当你进行本地化类型时,它会更新 ORM 系统。ORM 系统将其配置保存到数据库并使用”。但是我还是不明白它的实现机制。你能告诉我Hybris核心的代码吗?谢谢你... 你能多说一些吗?谢谢 mkysoft。 您可以查看 de.hybris.platform.servicelayer.model.ModelService 以创建、删除或更改项目(模型)的属性。我没有更新 ORM 表的类名。也许您可以找到正在更新 maptypes 表的代码。

以上是关于Hybris 如何获取 Backoffice 中属性的标签?的主要内容,如果未能解决你的问题,请参考以下文章

SAP Hybris Backoffice - 默认打开高级搜索

如何在 Hybris 中创建新语言?

在 Hybris 6.7 中为 hac 和 BackOffice 中的用户凭据设置的密码策略

SAP CRM WebClient UI和Hybris backoffice UI开发的相同点

SAP CRM WebClient UI和Hybris backoffice UI开发的相同点

如何在Hybris commerce里创建一个media对象