ofbiz 之service eca
1. 定义文件位置
首先我们需要明白eca是什么?
在执行service 的过程中,可以把调用service 的过程分为几个步骤完成。
开启事务
用户登陆验证(auth)
依照service定义对输入参数验证(in-validate)
执行service invoke(invoke)
依照service定义对执行结果进行输出验证(out-validate)
提交事务(commit)
返回最终结果(return)
在执行这每个步骤之前,我们定义一个设置来运行其他一些service,这类设置就是service eca .
service eca与service.xml 存放位置平级,都存放在对应模块的/servicedef/底下。
2. eca定义
2.1. 例子
<eca service="TestServiceOnSimple" event="return">
<action service="TestServiceOnJava" mode="sync" result-to-context="true" result-to-result="true" result-map-name="TestServiceOnJavaEcaName"/>
</eca>
如上例就是一个简单的service eca 调用.含义为,当系统调用TestServiceOnSimple这个service 执行到将要返回结果之前调用
TestServiceOnJava这个service
如果有设置result-map-name的值,那么系统会将service TestServiceOnJava的结果以result-map-name的值为key放进的service TestServiceOnSimple的输入参数并覆盖原来。(即:context(TestServiceOnSimple).put(${result-map-name }, result(TestServiceOnJava));)
,并将service TestServiceOnJava的执行结果赋到service TestServiceOnSimple 的输入参数以及service TestServiceOnSimple 的输出结果(需要将service TestServiceOnJava的输出结果依据service TestServiceOnSimple的输出定义进行过滤)。
2.2. Eca
: service:触发eca调用的service 名称。
:event:触发eca调用的event 关键字,即service 调用执行的那几个步骤。这里调用eca 一那几个步骤之前,如event 的 值为commit ,那么则会在commit 之前调用eca.
2.3. Condition、Condition-service、condition-field
这几个都是对是否调用eca service 进行条件判断的命令。条件满足则调用eca,不满足则直接退出。
Condition : 参数变量与固定值进行比较。
<condition operator="equals" field-name="workEffortId" map-name="ParaMap" value="12345"/>
详细请参考minilang 解析的 condition-expr,差不多。map-name如果有 设置 的话参数变量为ParaMap.workEffortId 。
condition-field :参数变量与参数变量进行比较。
to-field-name 被比较参数变量名称,to-map-name 如果不为null ,则被 比较参数变量为${to-map-name}.${to-field-name}
Condition-service
通过调用service 进行判断,如果返回结果状态码为error 则不满足条件,
其他情况条件满足. Java service 中返回结果状态码为error有两种情况
re.put("error", errorMsg);
return re;
或者
return ServiceUtil.returnError();
这三个condition 和 action 组合使用。
2.4. set
请参考 minilang 的set .
无论set 还是Condition、Condition-service、condition-field 所使用和操作的参数变量都是在eca 的输入参数context 中进行的。
那么eca 的输入参数context 从哪来 ?
假设A服务的eca action B服务被调用,B 的参数来源会根据event 的类型决定其来源,如event为"commit "、"out-validate"、"global-commit-post-run"、"return",那么B的参数来源为A的context和A的result ,而其他event类型则参数只来源于A服务的context。
2.5. Action
Eca 触发service 定义。
result-map-name、result-to-context、result-to-result
2.1例子中解释过了。
:mode="sync":同步执行。mode="async"则为异步执行。
- 浏览: 1763348 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (520)
- Oracle (10)
- Oracle错误集 (8)
- Oracle安装升级 (15)
- Oracle日常管理 (51)
- Oracle字符集 (7)
- Oracle备份恢复 (24)
- Oracle优化 (4)
- Oracle编程 (52)
- Oracle导入导出 (19)
- Oracle体系结构 (15)
- Oracle网络 (2)
- Oracle安全 (2)
- Oracle权限 (3)
- Oracle数据字典和性能视图 (2)
- Oracle常用地址 (5)
- SQLPLUS专栏 (7)
- SqlServer (13)
- SqlServer2005编程 (27)
- SqlServer2005管理 (15)
- MySQL (20)
- Dorado应用 (1)
- C# (24)
- Arcgis Server开发 (20)
- ArcSDE技术 (19)
- UML学习 (2)
- 设计模式 (2)
- JAVA EE (4)
- JavaScript (3)
- OFBIZ (27)
- JAVA WEB开发 (22)
- Linux&Unix (34)
- SHELL编程 (14)
- C语言 (11)
- 网络协议 (14)
- FREEMARKER (2)
- GROOVY (2)
- JAVA语言 (3)
- 防火墙 (0)
- PHP (2)
- Apache (2)
- Loader Runner (1)
- Nginx (3)
- 数据库理论 (2)
- maven (1)
最新评论
-
怼怼怼怼:
oracle的timestamp类型使用 -
怼怼怼怼:
oracle的timestamp类型使用 -
怼怼怼怼:
oracle的timestamp类型使用 -
pg_guo:
感谢
oracle中查看用户权限 -
xu234234:
5、MapResourceManager控件中添加了两个服务, ...
北京ArcGis Server应用基础培训笔记1
发表评论
-
ofbiz导入eclipse后源码启动
2015-01-21 11:35 8921、首先执行ant build 2、解决包冲突和class ... -
ofbiz促销引擎学习
2015-01-07 23:59 2872ofbiz促销引擎基本上是按照满足什么条件,执行什么动作这样 ... -
ofbiz:设立sql语句在控制台的输出
2014-12-19 23:36 1065ofbiz:设置sql语句在控制台的输出 为研究ofbiz ... -
如何让OFBIZ使用中文界面
2014-10-12 00:49 1070Ofbiz默认使用的是英文 ... -
ofbiz权限判断语法整理
2014-10-11 13:59 717用户的权限都是以权限组来分配的:相关的几个表如下:securi ... -
ofbiz之 entity 实体解析
2014-10-11 13:57 1249ofbiz 之entity实体1. 实体定义文件实体定义文件一 ... -
OFBiz 的中文乱码解决方案
2014-10-11 13:54 840OFBiz开发时遇到乱码的问题,MySQL数据库插入中文数据 ... -
OFBIZ中显示包含HTML标记的内容
2014-10-11 13:52 739在OFBIZ中,出于安全性的考虑,所以动态的内容输出到前台时都 ... -
如何查看OFBIZ生成的SQL
2014-10-11 13:47 932查看SQL语句:在OF中通过实体来进行数据的维护。将SQL隐 ... -
ofbiz的webservice接口提供(1)-WSDL的生成
2014-09-22 23:49 1600ofbiz的service:这个是ofbiz赖以骄傲的设计方 ... -
ofbiz切换到mysql,load-demo数据后,更新个公司名称报错
2014-09-16 20:23 1150报错: 控制台报错 ---- stack trace ... -
ofbiz切换到mysql
2014-09-15 19:26 1477ofbiz自带的数据库是Derby,以下列出如何将ofbiz ... -
ofbiz12.04环境搭建
2014-09-04 16:32 1208一、软件必备: 1、jdk1.6下载地址 http:// ... -
OFBIZ--对数据库的操作(转)
2014-09-03 14:10 1188/** * 功能:取得demo信息列表 * @p ... -
Widget小窗口和Decorator装修器的使用
2014-08-08 16:44 621ofbiz中的Widget小窗口和Decora ... -
ofbiz之entity实体写法
2014-07-11 08:42 5291实体定义文件 实体定义文件一般存放位置是在对应模块的ent ... -
ofbiz之entity 实体解析
2014-05-25 10:32 659ofbiz 之entity实体 1. 实体定义文件 实体定义文 ... -
ofbiz_screen_widget_cookbook
2014-05-21 18:59 1592THE SCREEN-WIDGET COOKBOOK = ... -
screen widget 框架页面生成原理初探
2014-05-21 18:59 753v: screen widget 本质是基于freema ... -
ofbiz的form网下资料总结
2014-05-20 23:38 1415ofbiz form中下拉列表的代码 • <field ...
相关推荐
基于spring封装的ofbiz所有服务,使用spring security进行安全验证,可以方便的发布为微服务,同时实现了一套直接使用ofbiz实体引擎操作ofbiz所有数据库表的spring应用框架设计
OFBiz采用Service Engine、Entity Engine、Component Engine和Web App Framework等核心组件,提供了一个灵活且可扩展的平台。在OFBiz中,CmsBackEnd是指内容管理系统(Content Management System)的后台部分,它...
Ofbiz,全称为The Open For Business Project,是一个开源的企业应用框架,主要由Apache软件基金会维护。这个项目旨在提供一套全面的、可扩展的企业级应用程序解决方案,涵盖了电子商务、供应链管理、客户关系管理等...
服务是OFBIZ中实现业务逻辑的单元,定义在`service.xml`文件中。服务可以调用其他服务,实现业务流程的编排。 ### 12. 国际化资源 OFBIZ支持多语言,通过`.properties`文件提供国际化资源,如错误消息、提示信息等...
这可以通过扩展ECA(Event Condition Action)规则来实现权限验证,如`exampleGenericPermission`(位于`examplecomponent`下)所示。 ##### 7、service编程级别 在编写服务逻辑时,有两种方式来实现权限验证: -...
Ofbiz 安装与配置指南 Ofbiz 是一个基于 Java 的开源企业级电子商务平台,提供了强大的电子商务解决方案。为了帮助初学者快速上手 Ofbiz,我们将详细介绍 Ofbiz 的安装与配置过程。 环境搭建 在开始安装 Ofbiz ...
此外,理解Ofbiz的事件驱动模型和基于服务组件架构(Service Component Architecture, SCA)的设计原则也至关重要。 总之,Ofbiz提供了一个全面的平台,让开发者能够高效地构建企业级应用。通过逐步学习和实践,你...
Apache Ofbiz是一个开源的企业应用框架,它为构建复杂的业务应用程序提供了全面的功能,包括供应链管理、电子商务、财务会计、人力资源等。对于初学者来说,理解Ofbiz的基本架构和工作原理是至关重要的。 Ofbiz的...
服务引擎是OFBIZ的核心组件之一,它允许开发者定义服务接口,实现业务逻辑,并通过XML请求和响应进行通信。服务可以通过本地或远程调用,提供了强大的跨模块交互能力。 工作流引擎则管理各种任务和流程,如审批流程...
《OFBiz数据结构设计详解》 OFBiz,全称为Open For Business Project,是一个开源的企业级应用框架,主要用于构建和管理电子商务、供应链管理、客户关系管理等业务系统。OFBiz的数据结构设计是其核心组成部分,它...
2. **架构概述**:Ofbiz基于Service Engine、Entity Engine、Event Engine、WorkEffort Engine等核心引擎,文档可能会解析这些组件的作用及其相互关系,帮助读者理解Ofbiz的设计理念。 3. **模块详解**:Ofbiz包含...
标题中的"ofbiz10.04表结构"指的是OFBiz 10.04版本的数据模型设计,这是企业级开源应用框架OFBiz的一个重要组成部分。OFBiz全称为Open For Business Project,它是一个用于构建企业应用程序的全面业务解决方案,涵盖...
在提供的OFBIZ_Demo压缩包中,用户可以找到OfBiz的演示版本,这是一套预配置的环境,展示了OfBiz在实际业务场景下的功能和操作。这个演示通常包括以下部分: 1. **安装与配置**:压缩包可能包含了安装指南和配置...
2. 使用SVN:版本控制系统SVN(Subversion)是获取OFBiz源代码的途径之一。TortoiseSVN是SVN的一个客户端,用于通过图形界面来操作SVN仓库。 3. 安装Java开发工具包(JDK):JDK是开发Java应用的必要工具包,这里...
《OFBiz API 开发文档详解》 在信息技术领域,OFBiz(Open For Business Project)是一个开源的企业级应用框架,主要用于构建复杂的电子商务系统。OFBiz 提供了一整套全面的业务组件,涵盖了从供应链管理到客户关系...
### Apache OFBiz Cookbook 知识点解析 #### 一、Apache OFBiz 概述 - **定义**:Apache OFBiz(Open For Business)是一款开源的企业级应用框架,它集成了ERP(企业资源规划)、CRM(客户关系管理)以及E-...
在《Ofbiz开发快速入门》中,你将了解到Ofbiz的核心概念,如实体模型(Entity)、服务(Service)和组件(Component)。实体模型是Ofbiz的基础,它定义了业务数据结构;服务则负责处理业务逻辑,是Ofbiz实现功能的...
<service name="findCountries" engine="simple" location="component://myfirstdemo/script/org/ofbiz/demo/DemoServices.xml" invoke="findCountries"> <description>Find Countries Service </service> ``` ...