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

03-06-13 flyJndi
ofbiz只有一个很简单的Guide,没有详细说明。问题:

Client Api具体怎么用? 当中流程怎么控制?

有没有简单的例子参考一下啊?

fishandfly
2003-06-13 19:43
强烈的顶!

ofbiz中其他的都还好理解,但是workflow和rule engine却很难!而且文档相当的少!也许不是ofbiz的核心?我看它的应用中的workflow.xml看不懂:( , 一团乱!

真的希望有已经了解workflow的高手们略微指点一下!大家一起研究,进步才能更快啊!

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

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

fishandfly
2003-06-15 19:20
banq在吗?是不是在学习ofbiz workflow呢?

:)

banq
2003-06-15 20:51
工作流 以前经常在这里浆糊已经有专门研究:

http://www.easyworkflow.org/

hi_liuyang
2003-06-24 15:57
ofbiz 中使用xpdl定义工作流,所以要看定义语言,另外,ofbiz中的order模块是通过工作流实现的,

此流程,首先在网上下订单,然后内部进行处理。

lhbcool
2003-06-26 14:56
请问,用设计工作流,是用obe好,还是ofbiz好?

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

lxf9501
2003-06-27 18:05
www.easyworkflow.org连不上?????

浆糊
2003-07-01 13:50
现在可以吗 ?

hi_liuyang
2003-08-20 15:16
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"]

calvinma
2003-09-25 01:34
我开始看的时候也觉得看不明白,但是就在这个网站的其他贴子中也找到一些帮助。一步一步根据一下做,希望你能明白(下面不是我写的是抄来的):

步骤大概是这样:

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关于接口一的文章

猜你喜欢