ATG中“contactInfo”的项描述符继承

时间:2012-09-21 08:58:55

标签: atg

我正在尝试继承“contactInfo”项并创建一个新的项描述符..如下所示:

<item-descriptor name="testContactInfo" super-type="contactInfo">
    <table name="test_contact_info" type="auxiliary" id-column-name="contact_id" shared-table-sequence="1">
        <property name="fixedlinenumber" column-name="fixed_line_num" data-type="string"/>
    </table>
</item-descriptor>

启动服务器时出现以下错误。

14:19:52,856 ERROR [ProfileAdapterRepository] Error parsing template: atg.repository.RepositoryException: Your item-descriptor definition for testContactInfo has super-type contactInfo but no sub-type attribute.

我在这里做错了什么?我已将该定义保留在userProfile.xml

2 个答案:

答案 0 :(得分:1)

第一个问题:你真的想要创建一个contactInfo项描述符的子类型 - 也就是说,你期望你的系统中有一些类型为contactInfo的项目和一些类型为testContactInfo的项目 - 或者你只是希望将自定义属性添加到现有的contactInfo项描述符?

如果您实际上是在尝试创建contactInfo的子类型,那么您需要修改contactInfo的描述符,告诉它如何区分contactInfo类型的项和testContactInfo类型的项。您需要向contactInfo添加一个属性,比如contactType,并设置子类型属性

<item-descriptor name="contactInfo" sub-type-property="contactType" ...>
  ...
  <property name="contactType" data-type="enumerated">
    <option value="standard"/>
    <option value="test"/>
  </property>
  ...
</item-descriptor>

然后你可以对它进行子类型化

<item-descriptor name="testContactInfo" super-type="contactInfo" sub-type-value="test">
  ...
</item-descriptor>

但是,如果您只是想为其添加自定义属性,则可以很好地添加到现有定义中。您不需要子类型来扩展开箱即用的项目。例如

<item-descriptor name="contactInfo">
  <table name="test_contact_info" type="auxiliary" id-column-name="contact_id" shared-table-sequence="1">
    <property name="fixedlinenumber" column-name="fixed_line_num" data-type="string"/>
  </table>
</item-descriptor>

将导致将一个名为fixedlinenumber的新属性添加到标准的contactInfo项中。

答案 1 :(得分:0)

项目描述符继承可以通过两种方式完成。你可以: -

  1. 为现有项描述符添加新属性。 在这里,您可以向现有项描述符添加许多属性。这可以是开箱即用的,也可以是您的自定义存储库。
  2. 例如,您可以将employeeId属性设置为contactInfo项描述符,该属性可用于所有contactInfo项。

    1. 创建项目描述符的子类型。 这通常用于具有特定项目描述符的独特属性。
    2. 例如,在您的contactInfo类型中,您可以拥有一个“employeeContactInfo”,其中您要存储额外的员工ID,并且您只能为此类型设置“employeeId”。

      所以,它基本上取决于你的要求。你可以在这个网站上看到一些细节..很好的教程: -

      http://learnoracleatg.blogspot.in/2014/11/art203-how-to-extend-out-of-box-non.htmlhttp://learnoracleatg.blogspot.in/2014/12/art204-how-to-add-new-item-descriptor.html