文档章节

使用O2OA二次开发搭建企业办公平台(十七)信息开发篇:信息发布的审批功能

O2OA企业信息化平台
 O2OA企业信息化平台
发布于 2018/12/04 10:47
字数 1871
阅读 755
收藏 0

本博客为O2OA系列教程、O2OA使用手册,教程目录和各章节天梯将在连载完后更新。

使用O2OA二次开发搭建企业办公平台(一)平台部署篇:平台下载和部署

使用O2OA二次开发搭建企业办公平台(二)平台部署篇:端口冲突和服务器端口配置

使用O2OA二次开发搭建企业办公平台(三)平台部署篇:使用外部数据库

使用O2OA二次开发搭建企业办公平台(四)平台部署篇:用户密码设置

使用O2OA二次开发搭建企业办公平台(五)平台部署篇:连接O2云使用APP

使用O2OA二次开发搭建企业办公平台(六)平台部署篇:定制自己的APP

使用O2OA二次开发搭建企业办公平台(七)平台部署篇:服务器备份和数据导入导出

使用O2OA二次开发搭建企业办公平台(八)组织管理篇:创建组织和个人信息

使用O2OA二次开发搭建企业办公平台(九)组织管理篇:组织职务的创建和使用

使用O2OA二次开发搭建企业办公平台(十)组织管理篇:组织管理者设定

使用O2OA二次开发搭建企业办公平台(十一)组织管理篇:关于系统角色管理

使用O2OA二次开发搭建企业办公平台(十二)流程开发篇:报销审批流程需求和应用创建

使用O2OA二次开发搭建企业办公平台(十三)流程开发篇:报销审批流程表单开发

使用O2OA二次开发搭建企业办公平台(十四)流程开发篇:使用数据字典进行报销类型配置

使用O2OA二次开发搭建企业办公平台(十五)流程开发篇:创建报销审批流程

使用O2OA二次开发搭建企业办公平台(十六)信息开发篇:信息栏目和分类的创建及权限的设置

使用O2OA二次开发搭建企业办公平台(十七)信息开发篇:信息发布的审批功能

使用O2OA二次开发搭建企业办公平台(十八)流程打印表单设置

 

 

本章题纲:

1、谁可以进行设计和开发?

2、信息系统设计入口

3、创建信息发布流程和表单

4、给分类配置信息发布流程

本章节以创建通知公告为例,介绍一个使用流程的内容发布的设计过程。主要讲述发布流程的配置。具体内容发布设计请参考《使用O2OA二次开发搭建企业办公平台(十六)信息开发篇:信息栏目和分类的创建及权限的设置》。

 

一、谁可以进行设计开发?

       除了xadmin, 拥有如下角色的用户均能进行流程应用的管理和开发:     

人员或者角色

人员或者角色名称

平台

说明

xadmin

系统管理员

所有

所有权限

Manager

系统管理员

所有

所有权限

ProcessPlatformManager

流程平台系统管理员

流程平台

可以在流程应用管理平台中对流程应用进行创建,对流程、表单、视图以及权限进行各类管理操作

       具体角色管理方法,请见《使用O2OA二次开发搭建企业办公平台(十一)组织管理篇:关于系统角色管理

 

二、流程管理设计入口

       在系统菜单-设计中心-流程管理平台中定制您的系统。点击系统菜单,找到“设计中心”,点击后打开设计中心。

       

 

       在流程管理平台中,可以为信息应用的创建相应的流程。

 

三、创建信息发布流程和表单

1、创建信息发布流程应用

根据需要在流程应用管理中创建信息发布流程应用:

点击脚本配置,先创建一个用于调用发布信息服务的脚本,以备在流程相关环节中使用:

publishToCMS脚本代码如下:

this.define("getPublishData", function(){ 

    var clone = function (obj) {
        if (null === obj || "object" != typeof obj) return obj;        
        if ( typeof obj.length==='number'){ //数组
            //print( "array" );
            var copy = [];
            for (var i = 0, len = obj.length; i < len; ++i) {
                copy[i] = clone(obj[i]);
            }
            return copy;
        }else{
            var copy = {};
            for (var attr in obj) { 
                copy[attr] = clone(obj[attr]);
            }
            return copy;
        }
    };

    var removeHTMLTag = function(str) {
        str = str.replace(/<\/?[^>]*>/g,''); //去除HTML tag
        str = str.replace(/[ | ]*\n/g,'\n'); //去除行尾空白
        //str = str.replace(/\n[\s| | ]*\r/g,'\n'); //去除多余空行
        str=str.replace(/&nbsp;/ig,'');//去掉&nbsp;
        str=str.replace(/\s/g,''); //将空格去掉
        return str;
    };  
    
    var document = clone( this.data.cmsDocument ); 
    var data = clone( this.data );    
    var work = this.workContext.getWork();
  
    data.formProcess = true;    
    delete document.attachmentList;
    document.subject = data.subject;
    document.title = data.subject;    
    document.wf_workId = work.id;
    document.wf_jobId = work.job;    
    document.pictureList = [];

    if( data.imageclipper ){
        document.pictureList.push( data.imageclipper );
    }

    document.summary = "";
    if( data.htmleditor ){
        var text = removeHTMLTag( data.htmleditor );
        document.summary = text.substr(0,85);
    }

    var attachmentList = this.workContext.getAttachmentList();
    var attachmentIds = [];
    for( var i=0, len=attachmentList.length; i<len; ++i ){
        attachmentIds.push( attachmentList[i].id );
    }
    document.wf_attachmentIds = attachmentIds;   
    
    var cnArray = ["公司","部门","人员","群组"];
    var keyArray = ["companyValue","departmentValue","personValue","groupValue"];
    var result = [];

    if( typeof data.publishFor  == "object" && data.publishFor!==null){
        for( var key in data.publishFor ){
            var it = data.publishFor[key];
            for( var i=0; i<it.length; i++ ){
                result.push({
                    permission : "阅读",
                    permissionObjectType : cnArray[ keyArray.indexOf(key) ],
                    permissionObjectName : it[i].name
                });
            }
        }
    }
    
    var owners = [];
    if( result.length > 0 ){
        var taskCompletedList = this.workContext.getTaskCompletedList();
        for(var i=0, len=taskCompletedList.length; i<len; ++i){
            var taskCompleted = taskCompletedList[i];
            if(taskCompleted.person){
                owners.push( taskCompleted.person );
            }
        }
        if( owners.length > 0 ){
            for(var i=0, len=owners.length; i<len; ++i){
                result.push({
                    permission : "阅读",
                    permissionObjectType : "人员",
                    permissionObjectName : owners[i]
                });
            }
        }
    }

    document.permissionList = result;    
    data.processOwnerList = owners;
    document.docData = data;
    
    return document;
}.bind(this));

脚本创建好后,界面如下图所示:

 

2、创建信息发布流程

流程需求:拟稿 -> 审核  -> 自动完成发布。

示例流程图如下:

在流程设置界面,使用两个人工活动环节和服务调用环节来完成流程的设计,流程设计方法请参考教程流程开发篇相关文档,本篇不做过多的赘述。

此处注意,因为需要由流程完成信息内容的发布工作,所在在流程最后需要使用一个服务调用节点,该节点作用是把流程数据转为信息内容使用相关的服务进行发布,最后完成流程数据到通知公告信息的发布功能。

服务调用环节需要如图配置相应的参数:

基本------------------------------------------------

名称:服务调用(或者其他名称,此处可随意填写)

 

调用------------------------------------------------

服务协议:jaxrs

系统内请求:是

服务应用:内容管理

REST地址:document/cipher/publish/content

调用方法:PUT

ContentType:application/json

参数脚本:不需要

消息体脚本:引用publishToCMS

调用脚本内容:

var data = this.getPublishData();
this.body.set(data);

 

3、信息发布流程表单设计

信息发布流程表单实际可以直接COPY信息发布编辑表单内容后,稍作修改即可。

示例表单如下:

 

四、给分类配置信息发布流程

点击“分类配置”下的通知公告,给通知公告配置上信息发布流程,如下图:

 

经过以上步骤,我们完成了一个带流程的内容发布模块的创建,我们可以到“信息平台”模块中测试它。

 

 

© 著作权归作者所有

O2OA企业信息化平台

O2OA企业信息化平台

粉丝 85
博文 43
码字总数 58508
作品 1
杭州
私信 提问
使用O2OA二次开发搭建企业办公平台(三)平台部署篇:使用外部数据库

本博客为O2OA系列教程,教程目录和各章节天梯将在连载完后更新。 使用O2OA二次开发搭建企业办公平台(一)平台部署篇:平台下载和部署 使用O2OA二次开发搭建企业办公平台(二)平台部署篇:端...

O2OA
2018/10/23
2
0
使用O2OA二次开发搭建企业办公平台(一)平台部署篇:平台下载和部署

本博客为O2OA系列教程,教程目录和各章节天梯将在连载完后更新。 使用O2OA二次开发搭建企业办公平台(一)平台部署篇:平台下载和部署 使用O2OA二次开发搭建企业办公平台(二)平台部署篇:端...

O2OA
2018/10/23
2
0
O2OA:开源免费智慧办公平台新版本即将发布!七大看点不可错过!

近日,基于AI大数据的智慧办公平台O2OA新版本即将发布,小智机器人、AI智能决策中心、企业数据中心、加强版流程引擎、第三方认证登录,扫码登录、人脸识别登录,全文检索、钉钉、企业微信等亮...

O2OA
2018/11/01
14
0
O2OA 开发版 V4.2039 发布,优化手写输入新增审计日志

O2OA是基于J2EE架构,集成移动办公、智能办公,支持私有化部署,自适应负载能力的,能够很大程度上节约企业软件开发成本的基于AGPL协议开放源代码的企业信息化系统需求定制开发解决方案,对外...

O2OA企业信息化平台
07/19
1K
0
O2OA 稳定版 V4.2235 发布,功能性能等多方面优化升级

O2OA是基于J2EE架构,集成移动办公、智能办公,支持私有化部署,自适应负载能力的,能够很大程度上节约企业软件开发成本的基于AGPL协议开放源代码的企业信息化系统需求定制开发解决方案,对外...

O2OA企业信息化平台
08/29
1K
11

没有更多内容

加载失败,请刷新页面

加载更多

springboot2.0 maven打包分离lib,resources

springboot将工程打包成jar包后,会出现获取classpath下的文件出现测试环境正常而生产环境文件找不到的问题,这是因为 1、在调试过程中,文件是真实存在于磁盘的某个目录。此时通过获取文件路...

陈俊凯
今天
6
0
BootStrap

一、BootStrap 简洁、直观、强悍的前端开发框架,让web开发更加迅速、简单 中文镜像网站:http://www.bootcss.com 用于开发响应式布局、移动设备优先的WEB项目 1、使用boot 创建文件夹,在文...

wytao1995
今天
10
0
小知识:讲述Linux命令别名与资源文件的区别

别名 别名是命令的快捷方式。为那些需要经常执行,但需要很长时间输入的长命令创建快捷方式很有用。语法是: alias ppp='ping www.baidu.com' 它们并不总是用来缩短长命令。重要的是,你将它...

老孟的Linux私房菜
今天
8
0
《JAVA核心知识》学习笔记(6. Spring 原理)-5

它是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是 Spring 仍然可以和其他的框架无缝整合。 6.1.1. Spring 特点 6.1.1.1. 轻量级 6.1.1.2. 控制反转 6.1.1....

Shingfi
今天
8
0
Excel导入数据库数据+Excel导入网页数据【实时追踪】

1.Excel导入数据库数据:数据选项卡------>导入数据 2.Excel导入网页数据【实时追踪】:

东方墨天
今天
11
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部