ofbiz的工作流引擎怎么用啊?强烈呼唤帮助!

ofbiz只有一个很简单的Guide,没有详细说明。问题:
Client Api具体怎么用? 当中流程怎么控制?
有没有简单的例子参考一下啊?

强烈的顶!
ofbiz中其他的都还好理解,但是workflow和rule engine却很难!而且文档相当的少!也许不是ofbiz的核心?我看它的应用中的workflow.xml看不懂:( , 一团乱!
真的希望有已经了解workflow的高手们略微指点一下!大家一起研究,进步才能更快啊!

我记得之前看struts的时候,国内研究的人少之又少,中文文档更是见不到,然而不到1年的时间,不仅研究的人增多了,而且很多相关的项目也都出现了!高手更多了!希望ofbiz的研究能像struts一样迅速发展!:)

banq同意吗?希望banq指点指点!:)

banq在吗?是不是在学习ofbiz workflow呢?
:)

工作流 以前经常在这里浆糊已经有专门研究:

http://www.easyworkflow.org/

ofbiz 中使用xpdl定义工作流,所以要看定义语言,另外,ofbiz中的order模块是通过工作流实现的,
此流程,首先在网上下订单,然后内部进行处理。

请问,用设计工作流,是用obe好,还是ofbiz好?

关于工作流,因为它是实现了omg和wfmc的规范,所以需要大家了解相关的规范才行。具体的使用方法可以看ofbiz的demo,以及他的原代码。我在www.easyworkflow.org加了2个ofbiz的文挡,大家可以参考一下。

www.easyworkflow.org连不上?????

现在可以吗 ?

order例子的运行过程
processorder--]checkblacklist --]processpayment --]success --] clearchart --] initiateOrderWorkflow --]start the workflow

1.首先根据订单提交时的用processorder,根据ecommerce下的controller.xml发现
[request-map uri="processorder"]
[security https="true"/]
[event type="java" path="org.ofbiz.commonapp.order.shoppingcart.CheckOutEvents" invoke="createOrder"/]
[response name="success" type="request" value="checkBlacklist"/]
[response name="error" type="view" value="checkout"/]
[/request-map]
在调用createOrder成功后,根据success的条件,调用checkBlacklist,同样在根据ecommerce下的controller.xml发现

[request-map uri="checkBlacklist"]
[security direct-request="false"/]
[event type="java" path="org.ofbiz.commonapp.order.shoppingcart.CheckOutEvents" invoke="checkOrderBlacklist"/]
[response name="success" type="request" value="processpayment"/]
[response name="failed" type="request" value="failedBlacklist"/]
[response name="error" type="view" value="checkout"/]
[/request-map]

在checkOrderBlacklist成功后,根据success,转向processpayment
[request-map uri="processpayment"]
[security https="true" direct-request="false"/]
[event type="java" path="org.ofbiz.commonapp.order.shoppingcart.CheckOutEvents" invoke="processPayment"/]
[response name="success" type="request" value="clearcartfororder"/]
[response name="fail" type="view" value="checkoutoptions"/]
[response name="error" type="view" value="checkout"/]
[/request-map]

processPayment成功后,转向clearcartfororder
[request-map uri="clearcartfororder"]
[security direct-request="false"/]
[event type="java" path="org.ofbiz.commonapp.order.shoppingcart.ShoppingCartEvents" invoke="clearCart"/]
[response name="success" type="request" value="initiateOrderWorkflow"/]
[response name="error" type="view" value="checkout"/]
[/request-map]

成功后,调用initiateOrderWorkflow,
[request-map uri="initiateOrderWorkflow"]
[security https="true" direct-request="false"/]
[event type="java" path="org.ofbiz.commonapp.order.shoppingcart.CheckOutEvents" invoke="initiateOrderWorkflow"/]
[response name="success" type="request" value="checkExternalPayment"/]
[response name="error" type="view" value="checkout"/]
[/request-map]

在initiateOrderWorkflow中,
dispatcher.runAsync("processOrder", UtilMisc.toMap("orderId", orderId, "orderStatusId", orderHeader.getString("statusId")));启动工作流,对应services_order.xml中的
[service name="processOrder" engine="workflow" location="org.ofbiz.commonapp.order.order" invoke="ProcessOrder"]
[description]Service for testing the workflow engine[/description]
[attribute name="orderId" type="String" mode="IN" optional="false"/]
[attribute name="orderStatusId" type="String" mode="INOUT" optional="false"/]
[/service]
此service的engine为workflow表示是一个工作流的服务,

service的定义ProcessOrder中的location表示xpdl定义中的package,
[Package Id="org.ofbiz.commonapp.order.order"]
invoke对应与在orderProcessXPDL.xml中,
[WorkflowProcess Id="ProcessOrder" Name="Processes incoming orders"]

我开始看的时候也觉得看不明白,但是就在这个网站的其他贴子中也找到一些帮助。一步一步根据一下做,希望你能明白(下面不是我写的是抄来的):
步骤大概是这样:
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关于接口一的文章