ofbiz学习介绍

<service name="userLogin" engine="java" location="org.ofbiz.commonapp.security.login.LoginServices" invoke="userLogin"> <description>Authenticate a username/password; create a UserLogin object</description> <attribute name="login.username" type="String" mode="IN"/> <attribute name="login.password" type="String" mode="IN"/> <attribute name="userLogin" type="org.ofbiz.core.entity.GenericValue" mode="OUT" optional="true"/> </service>上面的service名称是userLogin,它是采用java engine. 这个服务需要两个输入参数(来自request): login.username and login.password. 如果这两个参数不符合名称和对象类型,这个service将不会调用,有些参数可以不发往给service,这些参数需要定义为optional. 在这个service被调用以后, 输出OUT参数将被检测一下,当然只有标记为required才会被检测,当然这个服务也可以不返回任何参数。 ofbiz也有自己一套类似struts的MVC模型。 ofbiz的Entity引擎虽然不错,可以在上面挂很多具体应用,但是我感觉似乎复杂点,不如使用Jbuilder CMP来开发更方便。 ofbiz的service framework是最值得借鉴的。 步骤大概是这样: 1. 编写xpdl文件 2. 把xpdl文件用webtools下提供的xpdl reader 导入到数据库 3. 在service定义文件里添加上你写的workflow的表示, service type是workflow 4. 写好你在xpdl文件里用到的一些自定义的Implementation Tool, 我都是用PROCEDURE, 即service, 用来实现对应用数据的操作. 5. 如果你有用到ExtendedAttribute的limitAfterStart, 还要写limitService, 通常我用limitService来实现超时处理. 6. 最后是写一些test unit利用service engine来做一些测试, 主要目的是看定义在xpdl里的Transitions是否正确. 我的文档向来写得很差, 以上只是一些要点, 希望对你有用. 我道建议你先看看ofbiz中的XPDL,从这里入手你会决定容易一点。 ofbiz_home/commonapp/src/org/ofbiz/commonapp/order/order/orderProcessXPDL.xml 读懂它可能你还要参看WFMC关于接口一的文章