OFBiz入门教程
OFBiz的ant命令 新建一个scm模块。
1 如何定义model
在scm/entitydef/entitymodel.xml中
新建供应商model,如下:
<entity entity-name="HSupplier" package-name="org.ofo.ooo" title="HSupplier Entity">
<field name="baseId" type="id-ne"><description>序列号</description></field>
<field name="uniqueName" type="id-ne" >
<description></description>
</field>
<field name="companyCode" type="id-ne">
<description>公司编号</description>
</field>
<field name="subCompanyCode" type="id-ne">
<description>单位编号</description>
</field>
<field name="shopCode" type="id-ne">
<description>门店编号</description>
</field>
<field name="departmentCode" type="id-ne">
<description>部门编号</description>
</field>
<field name="supplierCode" type="id-ne">
<description>供应商编号</description>
</field>
<field name="supplierName" type="name">
<description>名称</description>
</field>
<field name="address" type="name">
<description>地址</description>
</field>
<field name="zipcode" type="id">
<description>邮编</description>
</field>
<field name="contact" type="name">
<description>联系人</description>
</field>
<field name="contactPhone" type="name">
<description>联系人电话</description>
</field>
<field name="managerPerson" type="name">
<description>负责人</description>
</field>
<field name="managerPersonCode" type="name">
<description>负责人编号</description>
</field>
<field name="bankAccount" type="name">
<description>银行帐号</description>
</field>
<field name="fax" type="id">
<description>传真</description>
</field>
<field name="email" type="id">
<description>邮箱</description>
</field>
<field name="qq" type="id">
<description>QQ</description>
</field>
<field name="description" type="description">
<description>描述</description>
</field>
<prim-key field="baseId"/>
</entity>
2 如何定义service
在/scm/servicedef/services.xml中
创建2个service服务定义 新建供应商,修改供应商的服务
<service name="createHSupplier" default-entity-name="HSupplier" engine="entity-auto" invoke="create" auth="true">
<description>Create a HSupplier</description>
<auto-attributes include="pk" mode="OUT" optional="false"/>
<auto-attributes include="nonpk" mode="IN" optional="true"/>
</service>
<service name="updateHSupplier" default-entity-name="HSupplier" engine="entity-auto" invoke="update" auth="true">
<description>Update a HSupplier</description>
<auto-attributes include="pk" mode="IN" optional="false"/>
<auto-attributes include="nonpk" mode="IN" optional="true"/>
</service>
3 如何定义control
在scm/webapp/scm/WEB-INF/controller.xml中
创建request-map请求,如下: 查询供应商 、查看供应商、 编辑供应商、新建供应商、修改供应商、删除供应商。
对应的view-map请求 如下:查询供应商、查看供应商、编辑供应商。
<request-map uri="FindHSupplier"><security auth="true"/><response name="success" type="view" value="FindHSupplier"/></request-map>
<request-map uri="ViewHSupplier"><security auth="true"/><response name="success" type="view" value="ViewHSupplier"/></request-map>
<request-map uri="EditHSupplier"><security auth="true"/><response name="success" type="view" value="EditHSupplier"/></request-map>
<request-map uri="createHSupplier">
<event type="service" invoke="createHSupplier"/>
<response name="success" type="request-redirect-noparam" value="FindHSupplier"></response>
<response name="error" type="view" value="FindHSupplier"/>
</request-map>
<request-map uri="updateHSupplier">
<event type="service" invoke="updateHSupplier"/>
<response name="success" type="request-redirect-noparam" value="FindHSupplier"></response>
</request-map>
<request-map uri="deleteHSupplierMultiValue">
<event type="service" invoke="deleteMultiValue"/>
<response name="success" type="request-redirect-noparam" value="FindHSupplier"></response>
</request-map>
<view-map name="FindHSupplier" type="screen" page="component://scm/widget/ScmScreens.xml#FindHSupplier"/>
<view-map name="ViewHSupplier" type="screen" page="component://scm/widget/ScmScreens.xml#ViewHSupplier"/>
<view-map name="EditHSupplier" type="screen" page="component://scm/widget/ScmScreens.xml#EditHSupplier"/>
4 如何定义screen
/scm/widget/ScmScreens.xml中
<screenname="EditHSupplier">
<section>
<actions>
<!-- 菜单高亮显示 -->
<setfield="headerItem"value="EditHSupplier"/>
<!-- 头部标题 -->
<setfield="headerTitle"value="EditHSupplier"/>
<!-- 业务数据 -->
</actions>
<widgets>
<decorator-screenname="ScmCommonDecorator"location="${parameters.mainDecoratorLocation}">
<decorator-section name="body">
<include-formname="EditHSupplier"location="component://scm/widget/ScmForms.xml"/>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<!-- 查询页面 -->
<screenname="FindHSupplier">
<section>
<actions>
<!-- 菜单高亮显示 -->
<setfield="headerItem"value="FindHSupplier"/>
<!-- 头部标题 -->
<setfield="headerTitle"value="Supplier"/>
<!-- 业务数据 -->
<!-- 操作按钮事件 -->
</actions>
<widgets>
<decorator-screenname="FindScreenDecorator"location="component://common/widget/CommonScreens.xml">
<decorator-section name="search-options">
<include-formname="FindHSupplier"location="component://scm/widget/ScmForms.xml"/>
</decorator-section>
<decorator-section name="search-results">
<include-formname="ListHSupplier"location="component://scm/widget/ScmForms.xml"/>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
<!-- 查看详细信息 带选项卡 -->
<screenname="ViewHSupplier">
<section>
<actions>
<!-- 头部标题 -->
<setfield="headerTitle"value="ViewHSupplier"/>
<!-- 操作按钮及事件 -->
<!-- 业务数据 -->
</actions>
<widgets>
<decorator-screenname="ScmCommonDecorator"location="${parameters.mainDecoratorLocation}">
<decorator-section name="body">
<include-formname="ViewHSupplier"location="component://scm/widget/ScmForms.xml"/>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
5 ftl form的写法和注意事项
创建 编辑供应商的form(新增,修改)、查询供应商的form、列表的form
<form name="EditHSupplier" type="single" target="updateHSupplier" default-map-name="entity" >
<alt-target use-when="entity==null" target="createHSupplier"/>
<field name="baseId" ><hidden/></field>
<field name="supplierCode" title="供应商编号">
<text/>
</field>
<field name="supplierName" title="名称" position="2">
<text/>
</field>
<field name="address" title="地址">
<text/>
</field>
<field name="zipcode" title="邮编">
<text/>
</field>
<field name="contact" title="联系人">
<text/>
</field>
<field name="contactPhone" title="联系人电话" widget-style="required validate-mobile-phone">
<text/>
</field>
<field name="managerPerson" title="负责人">
<text/>
</field>
<field name="managerPersonCode" title="负责人编号" >
<text/>
</field>
<field name="bankAccount" title="银行帐号">
<text/>
</field>
<field name="fax" title="传真" >
<text/>
</field>
<field name="email" title="邮箱" >
<text/>
</field>
<field name="qq" title="QQ" >
<text/>
</field>
<field name="description" title="备注描述">
<textarea/>
</field>
</form>
<form name="FindHSupplier" type="single" target="FindHSupplier" default-map-name="entity" default-entity-name="HSupplier" >
<field name="supplierCode" title="供应商编号">
<text-find hide-options="true"/>
</field>
<field name="supplierName" title="名称" position="2">
<text-find hide-options="true"/>
</field>
<field name="address" title="地址">
<text-find hide-options="true"/>
</field>
<field name="zipcode" title="邮编" position="2">
<text-find hide-options="true"/>
</field>
<field name="contact" title="联系人">
<text-find hide-options="true"/>
</field>
<field name="contactPhone" title="联系人电话" position="2">
<text-find hide-options="true"/>
</field>
<field name="managerPerson" title="负责人">
<text-find hide-options="true"/>
</field>
<field name="managerPersonCode" title="负责人编号" position="2">
<text-find hide-options="true"/>
</field>
</form>
<form name="ListHSupplier" type="list" list-name="listIt" paginate-target="FindHSupplier" default-entity-name="HSupplier" separate-columns="true" odd-row-style="alternate-row" header-row-style="header-row-2"
default-table-style="basic-table hover-bar">
<actions>
<setfield="parameters.noConditionFind"value="Y"/>
<serviceservice-name="performFind"result-map="result"result-map-list="listIt">
<field-mapfield-name="inputFields"from-field="parameters"/>
<field-mapfield-name="entityName"value="HSupplier"/>
<field-map field-name="orderBy" value="baseId"/>
<field-mapfield-name="viewIndex"from-field="viewIndex"/>
<field-map field-name="viewSize" from-field="viewSize"/>
</service>
</actions>
<field name="baseId" id-name="checkall" title="${uiLabelMap.CommonEmptyHeader}" event="onClick" action="setCheckBox();controlButton('baseId');" widget-area-style="width15">
<check all-checked="false">
<option key="${baseId}" description=" " />
</check>
</field>
<field name="companyCode" title="公司编号">
<display/>
</field>
<field name="subCompanyCode" title="单位编号" >
<display/>
</field>
<field name="shopCode" title="门店编号" >
<display/>
</field>
<field name="departmentCode" title="部门编号">
<display/>
</field>
<field name="supplierCode" title="供应商编号">
<display/>
</field>
<field name="supplierName" title="名称">
<display/>
</field>
<field name="address" title="地址">
<display/>
</field>
<field name="zipcode" title="邮编">
<display/>
</field>
<field name="contact" title="联系人">
<display/>
</field>
<field name="contactPhone" title="联系人电话">
<display/>
</field>
<field name="managerPerson" title="负责人">
<display/>
</field>
<field name="managerPersonCode" title="负责人编号">
<display/>
</field>
</form>
相关推荐
在本教程中,我们将深入探讨如何入门Apache Ofbiz的开发,这是一个开源的企业级应用框架,专为电子商务、供应链管理和企业资源规划等业务流程设计。Ofbiz提供了强大的组件化架构,使得开发者可以方便地构建和扩展...
### Ofbiz 入门教程详解 #### 一、Ofbiz 概述 Ofbiz(Open for Business)是一款开源的企业级商务应用系统,它利用了一系列优秀的开源项目如Tomcat、Ant、BeanShell、Jboss等,构建出了一个强大的系统平台。Ofbiz...
### Ofbiz 入门教程详解 #### 一、Ofbiz 概述与环境搭建 **1. Ofbiz 简介** Ofbiz 是一个开源的企业级应用框架,它提供了全面的功能来支持电子商务业务流程,包括销售、库存管理、订单处理等。作为 Apache 软件...
2. 编写 entitymodel_study.xml 文件:按照Ofbiz的DTD定义格式,包括表的名称、字段类型等。例如: ```xml <!-- Entity Model for StudyComponent --> <title>StudyComponent Entity Model <description>Entities...
【OFBIZ快速入门】 OFBiz,全称Open For Business Project,是一个开源的企业级应用框架,专注于电子商务和业务流程管理。OFBiz旨在提供一个全面、可扩展且灵活的解决方案,适用于各种规模的企业。本篇文章将带你...
Ofbiz社区提供了大量的文档和教程,包括官方的用户指南、开发者手册以及在线论坛,这些都是学习Ofbiz的宝贵资源。同时,阅读和理解Ofbiz的源码,能够帮助你更深入地理解其工作原理。 总结来说,Ofbiz是一个功能强大...
总的来说,《Ofbiz快速开发入门详解》是一本实用的教程,适合对Java Web开发感兴趣,希望掌握企业级应用框架的开发者。通过这本书,你不仅能理解Ofbiz的基本架构,还能学会如何利用Ofbiz快速开发出满足业务需求的...
【标题】"Ofbiz入门实例(jiasudu制作)"是一个针对开源企业应用系统Ofbiz的实践教程,由博主jiasudu精心制作。这个实例教程旨在帮助初学者快速理解并上手Ofbiz,从而能够构建和管理自己的企业级应用程序。 【描述】...
本篇文章将探讨的是OFBiz的开发入门,特别是关于CmsBackEnd如何实现CRUD操作,即创建(Create)、读取(Retrieve)、更新(Update)和删除/Delete。 首先,理解OFBiz的基本架构至关重要。OFBiz采用Service Engine、Entity...
Apache OFBiz全称是The ApacheOpen For Business Project。是开放的电子商务平台,是一个非常著名的开源项目,提供了创建基于最新的J2EE/XML规范和技术标准,构建大中型企业级、快平台、跨数据库、跨应用服务器的...
"OFBiz开发快速入门.pdf"很可能是详细的教程文档,它可能涵盖OFBiz的安装步骤、基本操作、API使用示例以及最佳实践。"OFBiz其它资源.txt"可能包含进一步的学习资源链接、社区论坛地址或常见问题解答。至于"hello...
Apache OFBiz是一个开源...总之,OFBiz入门涉及环境配置、组件和应用的创建、实体模型定义以及CRUD操作的实现。通过这些步骤,你可以开始开发基于OFBiz的业务应用程序,利用其强大的功能和灵活性来满足企业的各种需求。
**OFBIZ 10.04 组件开发入门** OFBIZ,全称为Open For Business Project,是一个基于Java的企业级应用框架,主要用于构建电子商务、供应链管理、CRM等复杂业务系统。本文档主要针对OFBIZ 10.04版本,通过讲解Region...
【OFBIZ 2.0 入门指南】 OFBIZ是一个开源的电子商务软件系统,它基于Java技术栈,利用诸如Tomcat、Ant、BeanShell和Jboss等优秀开源项目构建了一个强大的商务应用平台。OFBIZ的核心组件是Entity Engine,它提供了...
本教程旨在为初次接触OFBiz框架的开发者提供一个全面且易于理解的入门指南。OFBiz是一个开源的企业级电子商务框架,提供了完整的业务流程管理解决方案,包括订单处理、库存管理、客户服务支持等功能。通过本教程的...