EOS快速开发平台项目开发规范草稿
- 格式:doc
- 大小:127.00 KB
- 文档页数:10
1.1.项目名称:com.skygp.fastdevelop1.2.构建包命名项目名称+构建包名(模块名)如: com.skygp.fastdevelop.demo1.3.系统各业务构建包说明com.skygp.fastdevelop.accOA财务处办公应用模块com.skygp.fastdevelop.busOA企管处办公应用模块com.skygp.fastdevelop.disOA总调办公应用模块com.skygp.fastdevelop.engOA工程技术办公应用模块com.skygp.fastdevelop.hrOA人事处办公应用模块A信息处办公应用模块com.skygp.fastdevelop.matOA物贸处办公应用模块com.skygp.fastdevelop.offOA办公室办公应用模块com.skygp.fastdevelop.plaOA规划处办公应用模块com.skygp.fastdevelop.pubOA公共办公应用模块com.skygp.fastdevelop.quaOA质量处办公应用模块com.skygp.fastdevelop.safOA安全处办公应用模块com.skygp.fastdevelop.thoOA思政处办公应用模块com.skygp.fastdevelop.jqueryMobile 移动端应用模块com.skygp.fastdevelop.bpsrule BPS参与者规则维护模块com.skygp.fastdevelop.pub 通用公共功能,如各种通用的公共组件com.skygp.fastdevelop.main 主模块,如系统主页面、系统设置、用户管理等功能com.skygp.fastdevelop.ws 对内、外服务接口功能以下部分构件包一般情况不需要做修改:org.gocom.cap.workflow.client.task 我的任务模块功能包2.1.数据集一般根据业务名称或功能模块来命名数据集。
1 EOS介绍 (1)1.1 EOS概述 (1)1.2 EOS产品介绍 (2)EOS构件运行环境(EOS Server) (2)EOS管理控制台(EOS Manager) (3)EOS构件集成开发环境(EOS Studio) (3)EOS工作流(EOS Workflow) (3)EOS构件库(EOS Component Library) (3)EOS页面开发环境(EOS RichWeb) (3)1.2 EOS构件运行环境(EOS Server) (4)服务层: (4)引擎服务层: (4)1.3 EOS集成开发环境(EOS Studio) (5)开发向导场景 (6)开发场景 (6)调试场景 (6)项目管理场景 (6)配置场景 (7)通用场景 (7)1.4 EOS工作流(EOS Workflow) (7)1.5 EOS构件库(EOS Component Library) (8)基础计算构件库 (8)基础业务构件库 (8)工作流构件库 (9)页面构件库 (9)1.6 EOS应用的管理控制台(EOS Manager) (9)1.7 EOS页面开发工具(EOS RichWeb) (10)自定义模板——轻而易举实现页面风格的统一控制 (11)丰富的页面向导——内置常用页面功能向导 (11)设计视图——“所见即所得”的可视化页面开发 (11)1 EOS介绍1.1EOS概述Primeton EOS(以下简称EOS)是基于J2EE平台、采用面构件技术实现企业级应用开发、运行、管理、监控、维护的中间件平台。
这是应用软件层次上一个新的层次,一方面承接底层的J2EE技术,一方面以更业务化的形式面向最终应用。
EOS平台将J2EE体系规范、构件技术、XML技术和可视化开发技术完美结合起来,为基于J2EE平台之上的应用提供了面向构件的应用架构,通过图形化的构件单元作为应用系统的基本组成元素,使应用系统可以快速高质量的搭建,建成的应用系统具有较强的可管理可维护能力,同时拥有最强的需求变化响应能力,并通过构件积累来持续积累软件知识财富。
轻松构件简单流程Primeton BPS 6.0普元信息技术有限公司Primeton Technologies, Ltd.欢迎使用目录第1章简单流程快速开发........................................................................................................ 1-11.1 需求描述............................................................................................................................ 1-11.2 流程建模模拟..................................................................................................................... 1-11.2.1 项目准备 ................................................................................................................. 1-11.2.2 创建流程应用构件包............................................................................................... 1-31.2.3 创建流程定义.......................................................................................................... 1-41.2.4 定义流程图.............................................................................................................. 1-51.2.5 流程属性定义.......................................................................................................... 1-61.2.6 活动属性定义.......................................................................................................... 1-61.3 业务实现.......................................................................................................................... 1-221.4 开发测试.......................................................................................................................... 1-221.5 流程发布.......................................................................................................................... 1-221.6 运行管理监控................................................................................................................... 1-22第1章简单流程快速开发1.1 需求描述公司希望借助BPS将平时的发文信息信息化,客户对普元的流程平台还不太了解,希望我们做一个简单的模型看看效果怎样。
PRIMETON TECHNOLOGIES, LTD.上海普元信息技术有限责任公司EOS Platform7.0 基础开发教程No part of this document may be reproduced, stored in any electronic retrieval system, or transmitted in any form or by any means, mechanical, photocopying, recording, otherwise, without the written permission of the copyright owner.COPYRIGHT 2013 by Primeton Technologies, Ltd. ALL RIGHTS RESERVED.目录目录 (2)第1章产品概述 (4)1.1产品简介 (4)1.2基本概念 (4)1.2.1 实体 (4)1.2.2表单 (5)1.2.3 视图 (7)1.2.4流程 (8)1.3产品架构 (9)1.4运行原理 (12)第2章单表维护案例 (15)2.1案例描述 (15)2.2案例开发 (15)2.3知识点总结 (28)第3章单表维护扩展开发 (30)3.1关联视图开发 (30)3.1.1案例描述 (30)3.1.2案例开发 (30)3.1.3知识点总结 (37)3.2事件编程 (38)3.2.1案例描述 (38)3.2.2案例开发 (38)3.2.3知识点总结 (47)3.3视图开发 (47)3.3.1案例描述 (47)3.3.2案例开发 (47)第4章表单流程开发 (61)4.1案例描述 (61)4.2案例开发 (62)4.3知识点总结 (79)第5章自定义流程按钮开发 (81)5.1案例描述 (81)5.2案例开发 (81)第6章NUI控件开发 (89)6.1SCE端NUI表单开发 (89)6.1.1案例描述 (89)6.1.2 案例开发 (89)6.2S TUDIO端NUI界面开发 (103)6.2.1 案例描述 (103)6.2.2 案例开发 (103)6.3知识点总结 (112)第7章典型开发场景 (113)7.1团队开发 (113)7.1.1 场景一:常规的团队开发 (113)7.1.2 场景二:先独立开发再合并 (115)7.1.3场景三:从统一开发模式切换为独立开发模式 (115)7.1.4场景四:共享数据源不共享存储 (116)7.2前后端连通 (117)7.2.1场景一:在表单/视图脚本编辑器中调用后台逻辑 (117)7.2.2场景二:在流程脚本编辑器中调用后台逻辑 (121)附录一源代码运行 (123)附录二开发注意事项 (124)第1章产品概述1.1 产品简介EOS Platform_7.0_GA基于J2EE、Eclipse等开放的技术和平台,通过配置化、组件化、图形化、一体化的平台产品为客户提供完整的覆盖应用全生命周期的支撑,可以真正意义上帮助企业客户和各类机构实现其统一SOA架构的发展策略,并达到低成本、高质量、灵活、易管控地构造SOA应用和服务的目标。
软件部项目管理项目开发规范:技术文档书写历史记录目录目录历史记录 (2)目录 (3)项目开发规范:开发过程管理 (4)1 引言 (4)1.1 编写目的 (4)1.2 背景 (4)1.3 定义 (4)2 角色定义 .................................................................................................................. 错误!未定义书签。
2.1 项目经理 (5)2.2 系统分析人员.............................................................................................. 错误!未定义书签。
2.3 交互设计人员.............................................................................................. 错误!未定义书签。
2.4 程序开发人员.............................................................................................. 错误!未定义书签。
2.5 质量控制人员.............................................................................................. 错误!未定义书签。
2.6 系统维护人员.............................................................................................. 错误!未定义书签。
eos开发(⼀)eos开发环境搭建区块链最近挺⽕的,我⼜是个⾮常缺钱的⼈,所以紧跟了潮流⼀头扎进区块链的研究中。
这EOS项⽬是⽬前⽐较⽕的⼀个项⽬,相信很多朋友拿到这份EOS的源代码后都会⼀脸懵逼,因为……这代码写得太⾼级了,⽼纸看不懂(各种宏各种模板元编程各种智能指针和所谓的⽯墨烯技术……在哪⾥?)⽬前EOS项⽬是只能运⾏在Linux和Mac操作系统上的,要想在Windows上运⾏,得想想点特别得招,⾄于什么招我不告诉你,有需要的你可以忽悠下你们公司领导,给我个百万年薪把我挖过去我们再好好聊。
哈哈哈……废话不说了,我们选择使⽤Ubuntu作为操作系统来进⾏EOS的开发吧。
⾄于什么虚拟机安装,操作系统安装什么的我就不管了,⾃⼰想办法弄去,只是这⾥要注意⼏点,就是:1、Ubuntu需要16.04以上版本2、8G内存3、20G以上硬盘空间,最好你设置虚拟机的时候给个80G,省得回头费劲去修改4、由于开发时我们需要⽤eclipse,所以安装好操作系统后你需要安装⼀下JDK(我装了个1.8版本)5、安装⼀下git好了,⼀切准备就绪,打开你的Terminal开始操作吧: 在你的home下,会⾃动创建⽂件夹eos,你下载的⽂件会放在这个eos⽂件夹中2、切换到想要的版本分⽀(我们现在要切到tag为v1.0.1的版本):git checkout v1.0.13、cd eos4、./eosio_build.sh 程序开始执⾏,会下载很多的东西,包括boost、mongodb、secp256k1、LLVM等,慢慢等着吧,这⾥⾯会有⼀个mongodb C driver有可能下载不下来,你可能需要⼿动去找⼀下5、把eosio_build.sh中的CMAKE_BUILD_TYPE=Release改成CMAKE_BUILD_TYPE=Debug6、再次运⾏./eosio_build.sh,出现如下界⾯表⽰⼀切OK:7、使⽤ cd build/programs/nodeos 跳转到nodeos下,为什么要跳转到这⾥,咱们回头再聊8、./nodeos -e -p eosio --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin ,回车,出现下边的情况,表⽰你的节点开始正常运⾏了:开⼼不开⼼?兴奋不兴奋?下⼀节我们将讲⼀下在命令⾏客户端cleos中操作EOSIO的各种命令。
EOS流程开发实例一、任务要求徐州管道操作系统申请流程管理,首先由申请人填写申请表,然后将申请表提交给信息部门负责人审批,最后由信息部门负责人转派系统管理员为此申请人分配操作系统登录的账号与密码。
表1为操作系统用户申请表。
操作系统用户申请表二、开发步骤1、数据库表的开发A、新建业务流程表每个流程都应该具有四张表:IPTWF_****_DUPLICATE、IPTWF_****_LINK、IPTWF_****_TASK、IPTWF_****_MAIN。
它们的建表语句如下:create table IPTWF_****_DUPLICATE(DUPLICATE_ID NUMBER(12) not null,MAIN_ID NUMBER(12),PROCESS_INST_ID NUMBER(12),FROM_USER_ID VARCHAR2(32),FROM_USER_NAME VARCHAR2(32),TO_USER_ID VARCHAR2(32),TO_USER_TYPE VARCHAR2(32),TO_USER_NAME VARCHAR2(32),SEND_TIME DATE,ACTIVITY_DEF_ID VARCHAR2(32),ACTIVITY_DEF_NAME VARCHAR2(32),ACCEPT_FLAG NUMBER(1),ACCEPT_TIME DATE,DELETED_FLAG NUMBER(1));comment on column IPTWF_****_DUPLICATE.DUPLICATE_IDis '抄送表ID';comment on column IPTWF_****_DUPLICATE.MAIN_IDis '工单ID';comment on column IPTWF_****_DUPLICATE.PROCESS_INST_IDis '流程实例ID';comment on column IPTWF_****_DUPLICATE.FROM_USER_IDis '发送者ID';comment on column IPTWF_****_DUPLICATE.FROM_USER_NAMEis '发送者名称';comment on column IPTWF_****_DUPLICATE.TO_USER_IDis '接收抄送人ID';comment on column IPTWF_****_DUPLICATE.TO_USER_TYPEis '接收抄送人类型';comment on column IPTWF_****_DUPLICATE.TO_USER_NAMEis '接收抄送人中文名';comment on column IPTWF_****_DUPLICATE.SEND_TIMEis '发送时间';comment on column IPTWF_****_DUPLICATE.ACTIVITY_DEF_IDis '发送所处的环节ID';comment on column IPTWF_****_DUPLICATE.ACTIVITY_DEF_NAME is '发送所处的环节名称';comment on column IPTWF_****_DUPLICATE.ACCEPT_FLAGis '是否已打开查看';comment on column IPTWF_****_DUPLICATE.ACCEPT_TIMEis '第一次打开时间';comment on column IPTWF_****_DUPLICATE.DELETED_FLAGis '是否已删除';alter table IPTWF_****_DUPLICATEadd constraint PK_****_DUPLICATE_ID primary key (DUPLICATE_ID);create table IPTWF_****_LINK(LINK_ID NUMBER(12) not null,PHASE_ADVICE_FLAG NUMBER(1),MAIN_ID NUMBER(12),PROCESS_INST_ID NUMBER(12),ACTIVITY_DEF_ID VARCHAR2(64),ACTIVITY_INST_NAME VARCHAR2(64),ACTIVITY_INST_ID NUMBER(12),OPERATE_TYPE NUMBER(12),OPERATE_TIME DATE,OPERATE_USER_ID VARCHAR2(50),OPERATE_DEPT_ID NUMBER(12),OPERATE_CONTACT VARCHAR2(32),OPERATE_ROLE_ID VARCHAR2(32),NEXT_ACCEPT_LIMIT DATE,NEXT_COMPLETE_LIMIT DATE,ACCEPT_TIME DATE,ACCEPT_FLAG NUMBER(12),COMPLETE_TIME DATE,COMPLETE_FLAG NUMBER(12),SHEET_ACCESSORIES VARCHAR2(256),REMARK VARCHAR2(256),WORKITEM_ID NUMBER(12),OPERATE_USER_NAME VARCHAR2(50), NEXTSTEPPROCESSOR VARCHAR2(256),DESCRIPTION VARCHAR2(256));comment on column IPTWF_****_LINK.LINK_IDis 'link表主键';comment on column IPTWF_****_LINK.PHASE_ADVICE_FLAGis '阶段建议标志,默认为空,1:阶段建议';comment on column IPTWF_****_LINK.MAIN_IDis 'main表主键';comment on column IPTWF_****_LINK.PROCESS_INST_IDis '流程实例id';comment on column IPTWF_****_LINK.ACTIVITY_DEF_IDis '活动定义id';comment on column IPTWF_****_LINK.ACTIVITY_INST_NAMEis '活动项名称';comment on column IPTWF_****_LINK.ACTIVITY_INST_IDis '活动实例id';comment on column IPTWF_****_LINK.OPERATE_TYPEis '操作类型:1.普通处理,2转派,3驳回,4直接提交,5阶段回复,6终止流程'; comment on column IPTWF_****_LINK.OPERATE_TIMEis '操作时间';comment on column IPTWF_****_LINK.OPERATE_USER_IDis '操作人';comment on column IPTWF_****_LINK.OPERATE_DEPT_IDis '操作部门';comment on column IPTWF_****_LINK.OPERATE_CONTACTis '操作人联系方式';comment on column IPTWF_****_LINK.OPERATE_ROLE_IDis '操作人角色';comment on column IPTWF_****_LINK.NEXT_ACCEPT_LIMITis '当前操作人对下一环节的接单时限要求:接单时限(派单操作专用) 回复时限';comment on column IPTWF_****_LINK.NEXT_COMPLETE_LIMITis '当前操作人对下一环节的完成时限要求:回复时限(派单操作专用)'; comment on column IPTWF_****_LINK.ACCEPT_TIMEis '接单时间(接单操作专用)';comment on column IPTWF_****_LINK.ACCEPT_FLAGis '接单及时标志(接单操作专用)';comment on column IPTWF_****_PLETE_TIMEis '回复时间(回单操作专用)';comment on column IPTWF_****_PLETE_FLAGis '回复及时标志(回单操作专用)';comment on column IPTWF_****_LINK.SHEET_ACCESSORIESis '附件,如果在一个页面中有多个附件分组,那么就建立多个字段,分别记录';comment on column IPTWF_****_LINK.REMARKis '处理意见';comment on column IPTWF_****_LINK.WORKITEM_IDis '工作项id';comment on column IPTWF_****_LINK.OPERATE_USER_NAMEis '操作中文名';comment on column IPTWF_****_LINK.NEXTSTEPPROCESSORis '下一步处理者';comment on column IPTWF_****_LINK.DESCRIPTIONis '处理描述';alter table IPTWF_****_LINKadd constraint PK_****_LINK_ID primary key (LINK_ID);create table IPTWF_****_TASK(TASK_ID NUMBER(12) not null, PROCESS_INST_ID NUMBER(12), ACTIVITY_DEF_ID VARCHAR2(64), ACTIVITY_INST_NAME VARCHAR2(64), ACTIVITY_INST_ID NUMBER(12), WORKITEM_ID NUMBER(12),TASK_ACCEPT_LIMIT DATE,FROM_USER_ID VARCHAR2(50), FROM_USER_NAME VARCHAR2(64), ACCEPT_FLAG NUMBER(12),TASK_COMPLETE_LIMIT DATE,COMPLETE_TIME DATE,COMPLETE_FLAG NUMBER(12),TASK_TYPE NUMBER(12),CREATE_TIME DATE,OPERATE_TIME DATE,MAIN_ID NUMBER(12),ROOT_PROCESS_INST_ID NUMBER(12),ROOT_ACTIVITY_INST_ID NUMBER(12),ROOT_WORKITEM_ID NUMBER(12), PARENT_PROCESS_INST_ID NUMBER(12), PARENT_ACTIVITY_INST_ID NUMBER(12), PARENT_WORKITEM_ID NUMBER(12), DRAW_FLAG NUMBER(12),READ_FLAG VARCHAR2(10), ACCEPT_TIME DATE,LOCKOWNER VARCHAR2(32));comment on column IPTWF_****_TASK.TASK_IDis 'task表主键';comment on column IPTWF_****_TASK.PROCESS_INST_IDis '流程实例id';comment on column IPTWF_****_TASK.ACTIVITY_DEF_IDis '活动定义id';comment on column IPTWF_****_TASK.ACTIVITY_INST_NAMEis '活动项名称';comment on column IPTWF_****_TASK.ACTIVITY_INST_IDis '活动实例id';comment on column IPTWF_****_TASK.WORKITEM_IDis '工作项id';comment on column IPTWF_****_TASK.TASK_ACCEPT_LIMITis '接单时限';comment on column IPTWF_****_TASK.FROM_USER_IDis '上一步处理人ID';comment on column IPTWF_****_TASK.FROM_USER_NAMEis '上一步处理人名称';comment on column IPTWF_****_TASK.ACCEPT_FLAGis '接单及时标志';comment on column IPTWF_****_TASK.TASK_COMPLETE_LIMITis '回复时限';comment on column IPTWF_****_PLETE_TIMEis '回复时间';comment on column IPTWF_****_PLETE_FLAGis '回复及时标志';comment on column IPTWF_****_TASK.TASK_TYPEis 'task类型:2008-11-18添加:主工单(1)、子工单(2)、抄送任务产生的(3)';comment on column IPTWF_****_TASK.CREATE_TIMEis 'task记录生成时间';comment on column IPTWF_****_TASK.OPERATE_TIMEis '操作时间';comment on column IPTWF_****_TASK.MAIN_IDis '对main表工单主键';comment on column IPTWF_****_TASK.ROOT_PROCESS_INST_IDis '发起子流程的根流程实例ID';comment on column IPTWF_****_TASK.ROOT_ACTIVITY_INST_IDis '发起子流程的根活动实例id';comment on column IPTWF_****_TASK.ROOT_WORKITEM_IDis '发起子流程的根工作项id';comment on column IPTWF_****_TASK.PARENT_PROCESS_INST_ID is '发起子流程的父流程实例id';comment on column IPTWF_****_TASK.PARENT_ACTIVITY_INST_ID is '发起子流程的父活动实例id';comment on column IPTWF_****_TASK.PARENT_WORKITEM_IDis '发起子流程的父工作项id';comment on column IPTWF_****_TASK.DRAW_FLAGis '是否已领取,1:领取,0 :未领取';comment on column IPTWF_****_TASK.READ_FLAGis '是否查看抄送:1表式已查看;对应的task_type 为3';comment on column IPTWF_****_TASK.ACCEPT_TIMEis '接单时间';comment on column IPTWF_****_TASK.LOCKOWNERis '上锁人UESR_ID';alter table IPTWF_****_TASKadd constraint PK_****_TASK_ID primary key (TASK_ID);create table IPTWF_****_MAIN(MAIN_ID NUMBER(12) not null,PROCESS_INST_ID NUMBER(12),SHEET_ID VARCHAR2(128),TITLE VARCHAR2(128),DETAIL VARCHAR2(1024),ANNEX VARCHAR2(256),STATUS NUMBER(12),SEND_TIME DATE,SEND_USER_ID VARCHAR2(50),SEND_USER_NAME VARCHAR2(32),SEND_DEPT_ID NUMBER(12),SEND_CONTACT VARCHAR2(32),SEND_ROLE_ID VARCHAR2(32),END_TIME DATE,END_USER_ID NUMBER(12),END_USER_NAME VARCHAR2(32),END_DEPT_ID NUMBER(12),END_CONTACT VARCHAR2(32),END_ROLE_ID VARCHAR2(32),DELETED NUMBER(12),PARENT_MAIN_ID NUMBER(12),PARENT_PROCESS_INST_ID NUMBER(12),PARENT_ACTIVITY_ID NUMBER(12),PARENT_WORKITEM_ID NUMBER(12),MAIN_);comment on column IPTWF_****_MAIN.MAIN_IDis 'main表主键';comment on column IPTWF_****_MAIN.PROCESS_INST_IDis '流程实例id';comment on column IPTWF_****_MAIN.SHEET_IDis '工单流水号';comment on column IPTWF_****_MAIN.TITLEis '工单标题';comment on column IPTWF_****_MAIN.DETAILis '工单信息的详细描述';comment on column IPTWF_****_MAIN.ANNEXis '新建工单附件,如果有多个附件,用逗号区分(如:111,112)'; comment on column IPTWF_****_MAIN.STATUSis '工单状态:0:草稿1:新建2:已分配、3:退回、4:处理中、5:已解决、6:已关闭';comment on column IPTWF_****_MAIN.SEND_TIMEis '派单时间,流程第一个环节的生成时间';comment on column IPTWF_****_MAIN.SEND_USER_IDis '建单id';comment on column IPTWF_****_MAIN.SEND_USER_NAMEis '建单人';comment on column IPTWF_****_MAIN.SEND_DEPT_IDis '建单人部门';comment on column IPTWF_****_MAIN.SEND_CONTACTis '建单人联系方式';comment on column IPTWF_****_MAIN.SEND_ROLE_IDis '建单人角色';comment on column IPTWF_****_MAIN.END_TIMEis '结束时间';comment on column IPTWF_****_MAIN.END_USER_IDis '结束人ID';comment on column IPTWF_****_MAIN.END_USER_NAMEis '结束人';comment on column IPTWF_****_MAIN.END_DEPT_IDis '结束人部门';comment on column IPTWF_****_MAIN.END_CONTACTis '结束人联系方式';comment on column IPTWF_****_MAIN.END_ROLE_IDis '结束人角色';comment on column IPTWF_****_MAIN.DELETEDis '是否有效:0:有效、1无效';comment on column IPTWF_****_MAIN.PARENT_MAIN_IDis 'a工单触发b工单,a工单的主键,父子流程,记录在子流程中。
Sample-EOS构件开发规范Sample: EOS构件开发规范运算逻辑开发规范运算逻辑取参数原则上按参数序号获取,即使用 BizContext 类的getParaObjectAt(0) 函数,不建议按参数名称取参数,即 BizContext 类的 getParaByName( 参数项名称 ) 。
运算逻辑原则上建议不抛出异常,而是通过捕捉异常后设置返回值返回,异常信息可以通过日志接口记录到日志文件中。
如果抛出异常,要求能在构件对应的文档中明示抛出哪些异常,建议不要抛出基类异常。
在运算逻辑中如果存在多处错误返回,应根据不同错误返回不同返回值(如 -1 、 -2 、 -3…… ),这样有助于进行错误定位。
运算逻辑中有关调试、出错提示等,一律使用 EOS 平台发布的日志记录接口TPLogger. log(Object caller,int level,String strMsgKey,String strMsg,LogContext context) ,详细用法参见构件参考手册 API 接口部分。
运算逻辑中需要进行 XML 的相关处理时,使用 EOS 平台发布的XML 处理接口类 BNXMLUtil ,详细接口参见构件参考手册 API 接口部分。
运算逻辑获取参数时,强制转换的类型为String 或Element ( Node ),对于其他 int 、 float 、double 类型可以通过 String 类型转换获得。
一般情况下,运算逻辑正常返回值为1 ;返回负值表示捕捉到异常或因数据不合要求导致处理中断,需要进行分支处理;返回0 或其他正数表示处理完成,但可能存在某些警告信息,例如用BL_expandEntity 查询指定条件的某条记录时,可能符合查询条件的记录有多行,则返回第一行记录,而返回值为记录行数。
运算逻辑参数项设置原则:原则一:一般将第一个参数设置为输出,即运算逻辑执行中对数据进行处理后通过第一个参数项返回,例如,查询多行记录的运算逻辑 BL_queryEntityAll ,第一个参数为查询结果输出的节点,第二个为查询条件输入的节点。
1.1.项目名称:1.2.构建包命名项目名称+构建包名(模块名)1.3.如: 系统各业务构建包说明财务处办公应用模块企管处办公应用模块总调办公应用模块工程技术办公应用模块人事处办公应用模块信息处办公应用模块物贸处办公应用模块办公室办公应用模块规划处办公应用模块公共办公应用模块质量处办公应用模块安全处办公应用模块思政处办公应用模块移动端应用模块BPS参与者规则维护模块通用公共功能,如各种通用的公共组件主模块,如系统主页面、系统设置、用户管理等功能对内、外服务接口功能以下部分构件包一般情况不需要做修改:我的任务模块功能包2.1.数据集一般根据业务名称或功能模块来命名数据集。
2.2.数据实体数据实体名称与数据库表名对应,如表HR_OUT_LEAVE_APPLY对应实体名为HrOutLeaveApply。
2.2.1.主键生成一般业务表单数据主键用”自动生成uuid”2.2.2.字段类型日期(不保存时间)类型用Date;日期时间(保存时间)类型用TimeStamp;其它常规数据类型与数据库类型对应即可。
3.1.JSP创建通过功能向导自动生成必要jsp文件;每个页面的头部必须加上注释说明和资源引入,并在title中描述标题。
3.1.1.一般需求jsp示例HrAnnualLeaveApplyForm 新增表单页面HrAnnualLeaveApplyEdit 修改编辑页面HrAnnualLeaveApplyFormAudit 表单审核页面HrAnnualLeaveApplyList 数据列表查询页面3.1.2.注释<%--- Author(s): 开发员拼音驼峰全名(如:LiLong)- Date: 2015-03-01日期- Description: 功能说明及一些重要流程说明描述--%>3.1.3.head标签<head><%@include file="/common/"%><%@include file="/coframe/tools/skins/" %><meta http-equiv="content-type" content="text/html; charset=UTF-8" /><script src="<%=contextPath %>/pub/form/" type="text/javascript" ></script><script type="text/javascript">(function(){='<%=contextPath %>';})();</script><title>页面标题</title></head>3.2.弹出窗口新增表单、编辑表单一般用弹出窗口形式, 窗口一般最小宽度为800px,高度根据表单内容决定;nui打开窗口时,页面数据传递,按收页面必须要clone后再使用,如:etValue;//如果是点击编辑类型页面if == "edit") {var json = ;var form = new ("#dataform1");//将普通form转为nui的form(json);(false);}}3.3.移动端xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3.4.代码片段示例4.1.逻辑构件命令规则实体名 + biz,全部小写,如hroutleaveapplybiz;通过功能向导自动生成必要逻辑构件。
4.2.逻辑构件示例一般表单审核业务需要逻辑构件示例说明4.2.1.addHrOutLeaveApply(HrOutLeaveApply) 添加表单逻辑流主要操作说明getPrimaryKey设置主键createProcessInstance创建流程实例s tartProcessInstAn dFinishFirstWorkItem 启动流程实例并完成第一工作项事务处理4.2.2.auditHrOutLeaveApply(HrOutLeaveApply, PubBpsAudit, Long, DataObject[])表单审批逻辑流审批逻辑流不会自动生成,需要手动创建(一般从其它功能中复制粘贴、修改而来)。
参数、变量参考示例主要操作说明queryWorkItemDetail 查询工作项明细,为后续操作提供数据赋值对审核记录数据赋值finishWorkItem完成工作项activityRollBack审核不通过退回申请人修改事务处理4.2.3.deleteHrOutLeaveApplys(HrOutLeaveApply[])删除数据逻辑流参数、变量参考示例4.2.4.getOffWorkResApplyByProcessinstid(Long)根据流程实例ID查询表单数据参数、变量参考示例4.2.5.updateHrOutLeaveApply(HrOutLeaveApply,String) 更新表单数据参数、变量参考示例主要操作说明赋值对修改人和修改时间赋值回退提交对回退后重新编辑提交业务的处理(提交到审核不通过节点)事务处理5.1.命名sql集命名规则根据功能对应数据实体命名,如实体HrOutLeaveApply 对应命名sql集为。
5.2.代码片段示例6.1.开发规则业务性(当前业务功能相关)的运算逻辑,根据业务数据实体名称分包和命名,要有详细注释说明6.2.代码片段示例7.1.流程定义规则根据业务数据实体名称命名,如实体HrOutLeaveApply对应bps流程名称为;各图元应该间距适中,不能相互重叠;活动项名称应简明;上线后,流程定义中的活动项名称不能随意变更(可能在业务处理中使用了定义的名称)。
7.2.流程相关数据设置POName 必须,对应业务实体全名MAPPAudiuPage移动端功能必须,移动端审核页面MAPPEditPage 移动端功能必须,移动重新编辑页面7.3.填写表单活动项7.4.活动项参与者规则逻辑分两种情况:一般情况根据业务要求,选择指定参与者或根据规则逻辑自动获取参与者两种方式。
7.4.1.指定参与者当明确指定某人或机构时,可以直接指定参与者。
7.4.2.规则逻辑参与者不能具体指定到人或机构,而要根据申请信息去自动计算获取参与者,就需要在包中自已开发对应业务的规则逻辑,这里选择即可。
一般规则逻辑开发是一些运算逻辑,中已提供了一些通用的规则逻辑,可以直接使用。
通用规则逻辑说明:获取各种领导的方法getEmpLevel_CZ()获取处室处长、分公司经理(2级单位正职领导);getEmpLevel_FCZ()获取处室副处长、分公司副经理(2级单位副职领导);getEmpLevel_CZandFCZ()获取处室正副处长、分公司正副经理(2级单位正副职领导);getEmpLevel_KZ()获取科长(3级单位正职领导);getEmpLevel_FKZ()获取副科长(3级单位副职领导);getEmpLevel_KZandFKZ()获取正副科长(3级单位领导);getEmpLevel_ZJL()获取总经理(总公司领导);getEmpLevel_FZJL()获取副总经理(总公司副职领导);getEmpLevel_ZJLandFZJL()获取正副总经理(总公司正副职领导);获取员工的直属上司getImmediateSupervisor()通过部门和职级获取员工的直属上司7.5.活动项触发事件流程定义中,每一个(或需要给工作项参考者发送手机消息推送的)活动项加上触发事件,触发时机为“工作项创建后”,事件动作是调用逻辑流“,三个参数取值分别为“thisWorkItem/workItemID”工作项ID“101”表示待办任务提醒“thisProcessInst/processInstID”流程实例ID当审核不通过回退给表单申请人时,发送手机消息给申请人的操作封装在了回退操作逻辑流中,所以流程定义时,“填写申请表单”活动项不需要设置触发事件。
系统规则手机程序相关8.1.表名表名中文名(前缀):简称_表名如:财务_资金申请表名英文名(前缀):表名前缀编码_表名。
说明:数据表英文名称全为大写,必须以有特征含义的单词或缩写组成,中间可以用“_”分割,例如:ACC_APPLY_INFO。
表名称不能用双引号包含。
表名前缀定义如下:8.2.字段名字段名称全为大写,必须用字母开头,采用有特征含义的单词或缩写,不能用双引号包含。
固定字段定义规则:字段后缀8.3.英文常用语8.4.其它数据字典变量定义规则变量名:表名前缀编码+状态或标记类字段+自定义编码如:ACC_SCD_XXXXXX_XXXXX;INF_SFLG_XXXXX_XXXX;以下是本系统定义规则,并不表示数据库数据中数据类型自身含义Char(32):定长字符串,主要用于UUID主键字段或外键字段VARCHAR(32):变长字符串,主要适用于值不包含全角字符、中文情况NVARCHAR2:变长字符串,主要适用于值包含全角字符、中文等情况。