BPS流程怎样设计业务与流程的结合

2024-01-16 10:20

本文主要是介绍BPS流程怎样设计业务与流程的结合,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

阅读原文

场景描述

BPS工作流默认客户端界面中包括"待办任务列表"、"已办任务列表"等纯流程信息,而为了业务操作人员更全面了解任务相关的业务信息,往往需要在任务列表中显示相关的业务属性信息。

本场景适用BPS服务器与用户应用集中部署的方式,流程引擎的数据库和应用的数据库存放在同一数据库中。

案例简介

业务场景描述:

在报销流程中,审批人登录系统后能结合工作项和报销业务表查询到待审批的报销单信息,查询条件为报销人,如下图所示:

场景实现(关键步骤描述)

  1. 报销业务表 (通过流程实例ID与流程进行关联)
    create table EXPENSEINFO
    (
       EXPID          NUMERIC( 18 ) not null ,
       PROCESSINSTID  NUMERIC( 18 ) not null ,
       EXPNAME        VARCHAR( 20 ) not null ,
       EXPMONEY       NUMBER not null ,
       REASON         VARCHAR( 255 ),
       ISBUDGETITEM   CHAR( 1 ),
       AUDITOR        VARCHAR( 20 )
      );
    alter table EXPENSEINFO  add constraint P_EXP primary key (EXPID);
    -- Add comments to the columns
    comment on column EXPENSEINFO.EXPID
       is '报销单编号' ;
    comment on column EXPENSEINFO.PROCESSINSTID
       is '流程实例ID' ;
    comment on column EXPENSEINFO.EXPNAME
       is '报销人' ;
    comment on column EXPENSEINFO.EXPMONEY
       is '报销金额' ;
    comment on column EXPENSEINFO.REASON
       is '报销原因' ;
    comment on column EXPENSEINFO.ISBUDGETITEM
       is '是否是预算内项目' ;
    comment on column EXPENSEINFO.AUDITOR
       is '财务审阅人' ;
  2. 构造业务实体对应的XSD和HBM
    • expdata.xsd代码如下:
      ?
      <?xml version= "1.0" encoding= "UTF-8" standalone= "no" ?>
      <xs:schema xmlns= "com.eos.workflow.expdata" xmlns:sdo= "commonj.sdo" xmlns:sdoJava= "commonj.sdo/java"
        xmlns:xs= "<a href="http://www.w3.org/2001/XMLSchema" "="">http://www.w3.org/2001/XMLSchema" targetNamespace= "com.eos.workflow.expdata" >
           <xs:complexType name= "Expenseinfo" >
               <xs:sequence>
                   <xs:any/>
                   <xs:element name= "expid" type= "xs:long" />
                   <xs:element name= "processinstid" type= "xs:long" />
                   <xs:element name= "expname" type= "xs:string" />
                   <xs:element name= "expmoney" type= "xs:long" />
                   <xs:element name= "reason" type= "xs:string" />
                   <xs:element name= "isbudgetitem" type= "xs:string" />
                   <xs:element name= "auditor" type= "xs:string" />
               </xs:sequence>
           </xs:complexType>
      </xs:schema>
    • expdata.hbm代码如下:
      ?
      <?xml version= "1.0" encoding= "UTF-8" ?>
      <!DOCTYPE hibernate-mapping PUBLIC  "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "<a href="http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" "="">http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
      <hibernate-mapping>
           < class dynamic-insert= "true" dynamic-update= "true" entity-name= "com.eos.workflow.expdata.Expenseinfo"
            table= "EXPENSEINFO" >
               <tuplizer class = "com.primeton.server.das.tuplizer.SDOEntityTuplizer" entity-mode= "sdo" />
               <id name= "expid" type= "long" >
                   <column length= "18" name= "EXPID" />
                   <generator class = "assigned" />
               </id>
               <property name= "processinstid" type= "long" >
                   <column length= "18" name= "PROCESSINSTID" not- null = "true" />
               </property>
               <property name= "expname" type= "string" >
                   <column length= "20" name= "EXPNAME" not- null = "true" />
               </property>
               <property name= "expmoney" type= "long" >
                   <column length= "22" name= "EXPMONEY" not- null = "true" />
               </property>
               <property name= "reason" type= "string" >
                   <column length= "255" name= "REASON" />
               </property>
               <property name= "isbudgetitem" type= "string" >
                   <column length= "1" name= "ISBUDGETITEM" />
               </property>
               <property name= "auditor" type= "string" >
                   <column length= "20" name= "AUDITOR" />
               </property>
           </ class >
      </hibernate-mapping>
  3. 把expdata.hbm和expdata.xsd放在"${BPS_HOME}\apache-tomcat-5.5.20\webapps\default\WEB-INF\ _srv\work\system\com.eos.workflow\com\eos\workflow"目录下。
  4. 结合业务查询关键代码
    ?
    public List<WFWorkItem> getUserTasks4SDO(User user,ExpenseInfoForm expenseInfoForm, PageCond pageCond)
        throws WFServiceException {
         List<WFWorkItem> tasklist = new ArrayList();
             //获取工作列表查询器接口
         IWFWorklistQueryManager workListMng = client.getWorklistQueryManager();
             //创建并封装工作项查询对象
         DataObject workItemFilter=DataFactory.INSTANCE.create( "com.primeton.das.criteria" , "criteriaType" );
             workItemFilter.set( "_entity" , "com.eos.workflow.data.WFWorkItem" );
             //创建并封装业务查询对象
         DataObject bizEntityFilter=DataFactory.INSTANCE.create( "com.primeton.das.criteria" , "criteriaType" );
             bizEntityFilter.set( "_entity" ,
             "com.eos.workflow.expdata.Expenseinfo" );
         String expname = expenseInfoForm.getExpname();
             if (expname != null && ! "" .equals(expname))
             {
                 bizEntityFilter.set( "/_and[1]/_expr[1]/expname" , expname);
                 bizEntityFilter.set( "/_and[1]/_expr[1]/_op" , "like" );
                 bizEntityFilter.set( "/_and[1]/_expr[1]/_likeRule" , "all" );
             }
             DataObject pageCondSDO=DataFactory.INSTANCE.create( "com.eos.foundation" , "PageCond" );
             pageCondSDO.set( "begin" , pageCond.getBegin());
             pageCondSDO.set( "length" , pageCond.getLength());
             pageCondSDO.set( "isCount" , pageCond.getIsCount());
             DataObject[] objs = workListMng.queryPersonBizEntities4SDO(user.getUserId(), "ALL" , "ALL" ,
      bizEntityFilter, workItemFilter, "processinstid" , pageCondSDO);
             //回填查询记录数,更新输入的分页信息
             pageCond.setCount(pageCondSDO.getInt( "count" ));
             //将查询结果(DataObject数组类型)转化为WFWorkItem的List类型(JavaBean类型)
              tasklist = BPSDataConvertor.convertToUserObjectList(objs, com.eos.workflow.data.WFWorkItem. class );
             return tasklist;
         }

这篇关于BPS流程怎样设计业务与流程的结合的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/bigdabao1/article/details/70788096
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/612238

相关文章

Spring AI ectorStore的使用流程

《SpringAIectorStore的使用流程》SpringAI中的VectorStore是一种用于存储和检索高维向量数据的数据库或存储解决方案,它在AI应用中发挥着至关重要的作用,本文给大家介... 目录一、VectorStore的基本概念二、VectorStore的核心接口三、VectorStore的

python之流程控制语句match-case详解

《python之流程控制语句match-case详解》:本文主要介绍python之流程控制语句match-case使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录match-case 语法详解与实战一、基础值匹配(类似 switch-case)二、数据结构解构匹

在VSCode中本地运行DeepSeek的流程步骤

《在VSCode中本地运行DeepSeek的流程步骤》本文详细介绍了如何在本地VSCode中安装和配置Ollama和CodeGPT,以使用DeepSeek进行AI编码辅助,无需依赖云服务,需要的朋友可... 目录步骤 1:在 VSCode 中安装 Ollama 和 CodeGPT安装Ollama下载Olla

Python结合Flask框架构建一个简易的远程控制系统

《Python结合Flask框架构建一个简易的远程控制系统》这篇文章主要为大家详细介绍了如何使用Python与Flask框架构建一个简易的远程控制系统,能够远程执行操作命令(如关机、重启、锁屏等),还... 目录1.概述2.功能使用系统命令执行实时屏幕监控3. BUG修复过程1. Authorization

linux环境openssl、openssh升级流程

《linux环境openssl、openssh升级流程》该文章详细介绍了在Ubuntu22.04系统上升级OpenSSL和OpenSSH的方法,首先,升级OpenSSL的步骤包括下载最新版本、安装编译... 目录一.升级openssl1.官网下载最新版openssl2.安装编译环境3.下载后解压安装4.备份

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

springboot启动流程过程

《springboot启动流程过程》SpringBoot简化了Spring框架的使用,通过创建`SpringApplication`对象,判断应用类型并设置初始化器和监听器,在`run`方法中,读取配... 目录springboot启动流程springboot程序启动入口1.创建SpringApplicat

通过prometheus监控Tomcat运行状态的操作流程

《通过prometheus监控Tomcat运行状态的操作流程》文章介绍了如何安装和配置Tomcat,并使用Prometheus和TomcatExporter来监控Tomcat的运行状态,文章详细讲解了... 目录Tomcat安装配置以及prometheus监控Tomcat一. 安装并配置tomcat1、安装