zoukankan      html  css  js  c++  java
  • 报表选型除了看开发难易,还要看运维省不省心

    俗话说,报表运维是个坑,有时候被客户坑,有时候被同事坑,有时候被自己坑,坑来坑去还得自己填坑。

    比如说,企业大了,业务种类就多了,这时候就不能依靠手工统计报表,企业就会采购或者开发报表系统,然而在选型时却发现某些系统看似开发简单,实际上无论是前期系统的稳定保障、还是后期的系统优化,根本一塌糊涂,给我们报表运维人挖了一个大坑;

    而一旦系统上线,系统出现的所有问题就会让我们报表运维人来背锅,也就成了名副其实的“背锅侠”:ERP系统里的报表有问题了,运维的锅!报表系统里的模板有问题了,运维的锅!查看报表时没权限了,统统是运维的锅!

    其实背锅还不是最惨的,最惨的是如果报表出问题了,我们就要先进行业务分析、跟用户沟通、然后进行数据测试和修改,整个流程费时费力,把我们的大部分时间都占据了,根本无暇处理更深层次的需求,从而影响我们的运维效率和水平;同时,还会造成其他人对我们运维团队的不信任和怀疑,降低对我们工作的满意度,最后我们的工作就变成了费力不讨好。

    尤其是对于大公司而言,业务多、流程复杂、报表冗杂,对于报表系统的要求是非常高的;而对我们报表运维人来说,一个好的报表系统不只是要开发简单、功能强大、灵活快捷,更重要的标准是后期运维难度。

    简单举个例子,之前我们公司上线ERP系统之后,经过一段时间的调试,简单的报表开发是能够满足了,但是慢慢地我们就发现了问题:

    • 根本没有用户权限管理,所有报表数据就是一锅菜,想要实现用户的分级管理根本不可能;
    • 没办法管理业务流程,公司的业务部门一旦多了,业务流程和关系就会变得复杂,系统又没有办法优化,只能给我们带来很大的无效工作量;
    • 升级步骤及其繁琐,根本不知道怎么升级系统,也基本上不能实现二开;

    这些问题也许在报表开发人员的眼里并不算什么,但是对于我们报表运维人来说,报表系统的运维难度越大,出现的bug和问题就会越多,运维的无效工作也会徒增几倍,之后就不得不重新进行报表选型。

    那么在进行选型时,什么样的报表系统运维起来才让人省心、不被人甩锅呢?

    下面,就拿我们现在用的FineReport报表系统为例,从运维的角度出发,列举一下我们在选型报表系统的时候需要考虑的点:

    1、用户权限管理

    对于系统管理者来说,报表运维的一大难点就是用户的权限问题,也就是谁能看、谁不能看的问题:

    一个报表模板做好了,就要控制谁能看这个模板,也就是用户,有了用户就会有登录的概念,有了登录就要有权限的概念,有了权限就要进行管理,让报表模板成为一个可以被权限控制的数据。

    然而现实情况是很多系统都是将数据大杂烩般放到系统里,甚至出现公司老板与部门员工都能查看公司财务报表的情况,毫无安全性可言!

    所以我们在选型报表工具时,一定要测试一下是否有权限管理功能,比如能否根据部门职位分配权限、根据角色分配权限、根据用户分配权限,是否可以实现分级权限分配、报表编辑权限、权限复用等等,以保证数据的安全性。

    其中我要提一下分级权限管理,就拿FineReport举个例子,所谓分级权限,就是指总管理员(公司领导、系统管理员等)在系统里开启分级授权,将一些权限进行下放,让部门管理员(业务部门经理等)拥有分配权限的功能,然后部门管理员再将相应的权限分配给下属(一般是普通的部门员工),实现层级的权限管理。

    2、数据运转流程的难易

    什么叫做数据运转流程呢?简单点说,对于企业来说,部分重要数据未经审批就提交入库是有一定风险的,且二次校检比较复杂,所以此时就需要我们运维人出场了!

    我们报表运维的工作之一就是对底层工作人员的填报数据进行处理和验证审批,然后将审批后的数据进行入库和提交,这种简单的工作流就是数据运转,也就是我们经常说的“数据上报”。

    其应用原理图如下:

    看不懂没关系,我直接拿我工作中的一个例子来说明一下:

    我们公司在全国各个地区均设有办事处,所有办事处按照地区分为华东、华北、华南和华中,每个月各地区销售人员需要上报其每个月的月销售额,经过销售总监的审批,到达领导处,领导查看所有销售数据。

    这个工作流比较,于是我们依靠FineReport系统将其上报流程分为了几个节点用户,在系统中设置好统一的报表模板,然后在报表系统添加上报流程和任务,将分好的各个节点进行分配,最后由不同的用户从第一个节点开始往下操作流转,就可以实现多级上报了

    这个功能的实现,我们运维人就可以对底层人员的录入数据进行核算、审批,只有经过审批后的数据才能提交入库,能够大大增加报表系统的安全性和稳定性。

    3、定时报表

    我们在运维报表系统的时候,经常会遇到一个问题:很多业务人员的报表是需要定期产生、定时发布的,比如流水线上的日报、周报,而大多数情况下他们不得不定期地做同样的报表,这时候他们就会追问“咱们的报表系统为什么不能实现定时发布”?

    所以在选型报表的时候,要注意关注报表系统能不能设置定时任务,也就是能否用服务器定时自动地按照指定好的参数执行报表,而不需要等待漫长的计算时间。

    我所了解我们公司的报表系统,其主要的实现过程很简单:用户将定时发布的报表上传——用户设置定时任务,选择发布时间——服务器在指定时间会自动生成文件——系统将生成结果以邮件、短信等方式通知运维人——运维者进行报表汇总和整理,交给业务人员进行分析

    整个过程中我们报表运维人几乎不必天天等着,用户可以将做好的报表定时发布出去,从不厌其烦的重复发布操作中解脱,方便快捷地设置日报、月报、季报、年报等任务,不需要额外的工作。

    而我们运维人只需要等着别人提交报表就可以了,报表系统可以帮我们自动完成数据汇总和整理,我们唯一要做的就是打开手机,随时随地在移动端查看你需要的报表数据。

    4、报表运维功能的强大与否

    对我们运维人来说,报表系统就像自己的孩子一样,看到他健康成长(运维正常),心里充满满足和自豪;相反的,如果他经常生病(bug频出),我们可以说是寝食难安。

    所以我们要实时把握报表系统的运维信息,来保证系统健康强壮稳定的运行,但这个条件经常在报表选型时被我们忽略,导致我们只能摸着石头过河,天天提心吊胆,生怕报表系统出bug。

    这就体现了一个报表系统的运维功能是否强大,这一点我还是比较佩服我们现在使用的FR系统的,当前系统内哪些模板有问题,哪些模板有出问题的风险,系统的硬件和软件配置是否能支撑当前实际场景,是否存在宕机的风险等等,这些至关重要的信息我们在第一时间就能够准确掌握,保证系统的稳定运行。

    除此之外,比如对内存和CPU的使用率进行实时监控和预警,一旦内存达到瓶颈就会立即报警,同时还可以进行会话的存活、清除等,保障服务器的稳定运行。

    再比如,可以对报表系统进行智能检测,对服务器配制、报表管理、全局属性进行检测,如果出现预览模板报错,或者工程所在磁盘剩余空间不足等问题,系统会立即查出问题并提供建议方案。

    再比如,对系统运行的各项请款进行监控分析,包括访问统计、用户行为、模板热度、性能监控、管理日志、出错日志等等。

    5、插件管理等附加功能

    我们都知道在报表系统中经常会用到插件,比如预览报表、导出格式、插入地图等等,这些都不可避免要使用web插件来实现。这还只是最简单的应用,作为一个合格的报表系统插件,还需要在交互性等报表高级功能方面表现良好。

    比如交互式内容、支持自定义函数组织数据集、参数报表、远程设计报表、报表批量打印、报表调度功能、数据透视功能、多层次汇总报表等等,很多报表系统在这一方面做的很差,不是不能支持,就是交互性很差,无法满足我们的需求。

    不得不说,Finereport在这一方面做得非常好,管理员不仅可以在插件界面进行安装、删除、更新、禁用、启用插件,同时还在支持报表展出和WEB高级插件功能,可以说十分方便。

    总结

    报表系统的选型是一件麻烦事,它需要结合业务部门、IT部门、运维部门等多方面的综合考量,还需要考虑企业自身的管理基础,但往往最容易被忽视的就是运维,对我们的系统运维工作产生极大的困难。所以在报表选型时,我们不能只看技术开发和业务功能,更重要地是要关注报表系统的运维难度,还是那句话:一款好的报表工具,要像FineReport一样不仅开发简单、功能强大、灵活快捷之外,还能替我们做到最智能的系统运维。

  • 相关阅读:
    17 applyMiddleware MainMiddleWare, redux-thunk , createStore
    16 redux简介
    15 react-redux provider组件
    14 React Refs
    13 React 表单与事件
    12 React AJAX
    Vue3 getCurrentInstance与ts结合使用的问题
    Vue3 更改setup中定义的值不渲染到视图上【Vue2.x向Vue3.x的迁移(踩坑)日记】
    Vue3 中组件传值emit【Vue2.x向Vue3.x的迁移日记】
    vue js 模糊匹配搜索查询
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13325728.html
Copyright © 2011-2022 走看看