• OFBiz进阶之HelloWorld(五)创建新实体


    参考文档 https://cwiki.apache.org/confluence/display/OFBIZ/OFBiz+Tutorial+-+A+Beginners+Development+Guide

    1 Creating Custom Entity

    新实体的创建你可以再参考 example 组件,为此你可以看下 example 组件的 entitymodel.xml 文件。你可以按下列步骤创建新的实体:

    a. 在 hot-deploy/practice/  下创建一个 entitydef 的子目录。

    b. 创建一个 entitymodel.xml 文件。这个文件包括你想定义的实体定义。

    c. 要装载定义,你需要在 ofbiz-component.xml 文件中定义一个条目,如下:

    <entity-resource type="model" reader-name="main" loader="main" location="entitydef/entitymodel.xml"/>

       可以看出必须重启服务器才能让那些修改生效。
       详细请参考:http://docs.ofbiz.org/display/OFBTECH/General+Entity+Overview.
       实际应用中将很少去定义新的实体,因为在 OFBiz 已经存在对业务处理有很大作用的实体定义。虽然你可能感觉在某些地方要给存在的实体增加更多字段,你能如何做那些呢?下一步将告诉你方法,为你的客户化需要扩展一个实体。
       先前我们通常在相同目录中需要一个或更多 entitygroup.xml 文件,这个不再需要,因为代码已经检入到 trunk 中(because code is checked in to the trunk for this)。

    2 Extending an Existing OOTB Entity

    是的,你可以扩展已存在的实体满足你客户化的需要。按下列方式完成: 

    a. 在你的客户化应用的 entitydef/entitymodel.xml 文件中按以下方式扩展你的实体。

    <extend-entity entity-name="">
        <field name="" type=""/>
    </extend-entity>

    作为例子,你可以参考 party 组件的 entitymodel.xml 文件。

    这是一个最简单的表单,它也能变得更复杂,增加一个或更多字段到已存在的实体中,这个依赖于你想要进行客户化需求的字段。这儿你也能定义与其它实体的关系。但在做这些之前,你得特别地搜索下,可能你要加的字段作为其它目的已经存在。也要去进行数据模型的扩展学习然后再做。

    实体引擎配置可参考:Entity Engine Configuration Guide

    3 Preparing Data For Custom Application

    你的 practice 应用准备数据可按下列步骤:

    a. 在 practice 创建一个目录"data",在这创建一个 PracticeData.xml 文件。

    b. 我们给一个用户创建数据,我必须为一个会员按指定顺序准备好,如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <entity-engine-xml>
        <Party partyId="DemoUser" partyTypeId="PERSON"/>
        <Person partyId="DemoUser" firstName="Practice" lastName="Person"/>
        <PartyRole partyId="DemoUser" roleTypeId="VISITOR"/>
        <ContactMech contactMechId="5000" contactMechTypeId="EMAIL_ADDRESS" infoString="practice.person@gmail.com"/>
        <PartyContactMech partyId="DemoUser" contactMechId="5000" fromDate="2001-05-13 00:00:00.000" allowSolicitation="Y"/>
        <PartyContactMechPurpose partyId="DemoUser" contactMechId="5000" contactMechPurposeTypeId="PRIMARY_EMAIL" fromDate="2001-05-13 00:00:00.000"/>
    </entity-engine-xml>

    目的是创建一个带有VISITOR 角色的个人会员,然后为那个会员创建一个电子邮件地址作为主要的电子邮件地址。

    更多信息请参考:Handling of External data#Preparexmlfile 

    c. 现在也可以添加网站数据,如下:

    <WebSite webSiteId="PRACTICE" siteName="Practice Application" visualThemeSetId="BACKOFFICE"/>

    d. This data is used for theme setup of a specific application and logged in user can change his theme for the back office application.

    e. 现在我们需要在ofbiz-component.xml 中加入一个如下条目:

    <entity-resource type="data" reader-name="demo" loader="main" location="data/PracticeData.xml"/>

    在完成这些后,你运行命令ant run-install 会导入demo 数据,从这个文件的数据将作为demo 数据导入。一旦你
    启动服务器,在practice 应用的Person 表单里你能看到为个人增加的记录,或者你可以访问
    https://localhost:8443/webtools/control/entitymaint ,查找每一个实体检查这些记录是否加入到数据库中。

  • 相关阅读:
    如何卸载VS 2017之前版本比如VS 2013、VS2015、 VS vNext?
    在SQL Server中如何进行UPDATE TOP .....ORDER BY?
    EntityFramework 6.x和EntityFramework Core插入数据探讨
    2017-2018:时间戳
    http协议进阶(六)代理
    认清性能问题
    <转>安全测试思维导图
    RESTful API浅谈
    http协议进阶(五)连接管理
    聊聊软件测试的职业规划
  • 原文地址:https://www.cnblogs.com/yanchuanblog/p/3998021.html
Copyright © 2020-2023  润新知