加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

从WS-AppServer中触发BPM流程

发布时间:2020-12-16 22:56:01 所属栏目:安全 来源:网络整理
导读:开始之前 使用BPM流程模型之前,需要发布流程模型到运行时。 ? ? ? ? WS-AppServer应用包含执行活动必要的业务逻辑。通常,这些 应用内逻辑 做为业务处理周期一部分来执行 。 ? ? ? ?? 在另一方面,在运行时,也可以通过WS-AppServer应用来触发流程模型。下

开始之前
使用BPM流程模型之前,需要发布流程模型到运行时。

? ? ? ? WS-AppServer应用包含执行活动必要的业务逻辑。通常,这些应用内逻辑做为业务处理周期一部分来执行
? ? ? ??在另一方面,在运行时,也可以通过WS-AppServer应用来触发流程模型。下面的过程描述了这个过程。

  1. 创建业务流程模型并发布到租户中;
  2. 在Java类的扩展类,添加触发业务流程模型的代码(在下面的例子中将看到的代码片段);
  3. 再次生成Java代码(Java Code)和Web Service接口(Web Service Interface),并发布到租户中。

? ? ? ? 应用配置必要的逻辑来触发业务流程模型。

例子

? ? ? ? 例如有一个销售应用程序,涉及到国家、区域和地方的数据。在应用中,对于每次增加新的区域,需要嵌入逻辑代码来触发业务处理通知消息。程序将发送一封电子邮件给所有的利益相关者。
? ? ? ? 下面的内容描述这个逻辑如何集成到应用代码中。

注意
假设在应用中,已经有个叫“Region”的类。
系统中也有已经发布的业务流程模型,名称为“SendMail_vcmdemo10.bpm”,这个程序将发送电子邮件到指定的用户。

在Region扩展类中,扩展下面代码:

public class Region extends RegionBase
{
? ? public
Region()
? ? {
? ? ? ? this((BusObjectConfig)null);
? ? }
?
? ? public Region(BusObjectConfig config)
? ? {
? ? ? ? super(config);
? ? }
? ? ?
? ? @Override
? ? public void onAfterCommit(AfterCommitObjectEvent event) {
? ? ? ? super.onAfterCommit(event);
? ? ? ? int messageXml = 0;
? ? ? ? try {
? ? ? ? ? ? messageXml = BSF.getXMLDocument().parseString(?
? ? ? ? ? ? ? ? ? ? ? ? ? ?"<InputMessage>" +
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "<RegionID>"+getRegionID()+"</RegionID>"+
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "<RegionDescription>"+getRegionDescription()+"</RegionDescription>"+
? ? ? ? ? ? ? ? ? ? ? ? ? ?"</InputMessage>");
? ? ? ? } catch (UnsupportedEncodingException e) {
? ? ? ? ? ? throw new BsfRuntimeException(e);
? ? ? ? } catch (XMLException e) {
? ? ? ? ? ? throw new BsfRuntimeException(e);
? ? ? ? }
? ? ? ? //If inserting a Region,then notify all employees through a flow
? ? ? ? if (event.triggeredBy(StdTriggers.INSERT_OBJECT)){
? ? ? ? ? ? int result =?
WSUtil.executeProcess|WSUtil.executeProcess(
? ? ? ? ? ? ? ? ? ? ProcessType.DEFINITION,?
? ? ? ? ? ? ? ? ? ? "3.Business Process Models/Test/SendMail_vcmdemo10.bpm",?
? ? ? ? ? ? ? ? ? ? "Northwind Application",?
? ? ? ? ? ? ? ? ? ? null,?
? ? ? ? ? ? ? ? ? ? messageXml,?
? ? ? ? ? ? ? ? ? ? true,?
? ? ? ? ? ? ? ? ? ? true);
? ? ? ? ? ? System.out.println("result = "+Node.writeToString(result, true));
? ? ? ? ? ? //No need to delete messageXml node this is taken care by WSUtil.executeProcess() implementation
? ? ? ? }
? ? }?
}

? ? ? ? 在运行时,此代码将确保当一个区域对象提交到数据库时,程序将按预先定义的信息内容发送一个邮件给接收者。
? ? ? ? 这样,就是通过WS-AppServer触发业务流程模型。


译者思考

? ? ? ? 在一些事务管理中,异步问题可以参照设计:假如在流程环节送出下一步操作时,在Webservice上增加触发器,启动后台自动执行流程,将自行完成业务、事务相关工作。例如流程上的文档操作(保存数据到MongoDB中),就可以参照此模式设计。

? ? ? ??


? ? ? ? 译者水平有限,欢迎反馈讨论。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读