生产系统实用化整改辅助工具的开发及应用
2016-05-30马宇
马宇
摘 要:生产系统实用化考核涉及多项指标,传统整改方式难以取得较好成效。为解决问题,该文结合相关技术,从数据抓取、数据处理、数据发布3方面创新性地提供了一套系统实用化整改解决方案,准确定位用户需求,成功开发并应用生产系统实用化整改辅助工具,切实解决用户迫切的业务需求。
关键词:生产系统 实用化 数据抓取 数据处理 数据发布
中图分类号:TM72 文献标识码:A 文章编号:1674-098X(2016)06(b)-0003-03
1 前言
在电力行业中,生产业务繁杂,涉及业务部门较多。借助信息技术手段,生产系统加强对生产部门相关岗位及基层生产班组的规范管理,实现信息共享。
由于生产系统上每张工作票、操作票的起止时间不一、种类较多,可能导致相关人员因遗漏而未能及时将其归档。而且,由于相关数据格式各异,员工无法根据工作票、操作票距离到期日期的剩余天数进行排序以作优先处理。一方面,这会影响相关工作的规范化开展;另一方面,也会拉低生产系统上的工作票、操作票归档及时率之类的考核指标。
基于此,该文从数据抓取、数据处理、数据发布3方面阐述创新性的系统实用化整改解决方案。
1.1 数据抓取
设置特定的时间点,由计算机在生产系统上抓取所需数据,比如工作票、操作票数据等,节省获取数据的时间和工作。
1.2 数据处理
根据用户需求,计算机将定时处理抓取得到的数据,存储于后台数据库,做好数据备份,特别地,允许用户在无需修改程序代码的情况下,自行添加待处理数据文件的种类,并说明其中所包含的字段、属性、位置等信息。
1.3 数据发布
通过脚本文件,将后台数据库的数据汇总统计,实时展现在网页上供用户浏览,指导其及时做好归档工作。
2 相关技术
该文采用3方面技术原理,具体如下。
2.1 POST请求
POST是向服务器传送数据,把请求数据放置在HTTP请求包的包体中。不同于GET请求,执行POST操作时,浏览器不会缓存数据,对URL限制、表单数据限制均无要求。
2.2 JSON
JSON(JavaScript Object Notiation)是一种轻量级的数据交换格式,易于阅读、编写、机器解析和生成。它是基于JavaScript的一个子集,采用独立于语言的文本格式,并兼顾类似C语言家族的习惯。其建构于两种结构,分别是“名称/值”对集合与值的有序列表。现代计算机语言的支持使得一种数据格式在同样基于上述结构的编程语言之间交换成为可能[1]。
2.3 C#与.NET
作为一种基于现代面向对象设计方法的语言,C#的体系结构和方法论反映了.NET基础方法论,其特定语言功能依赖于.NET基类。.NET基类内容丰富,直观且易用,可以完成此前需要经Windows API实现的大部分工作,极大地提升开发人员的效率[2]。
ASP.NET是目前主流网络开发技术之一,具有高效的运行性能、简易且灵活、可管理性强、生产效率高,使网络程序开发倾向于智能化,运行更为流畅[3]。
该文两个技术关键点如下。
(1)准确定位用户的需求。
项目旨在提高归档及时率,希望提供给用户足够的统计分析信息以供参考,这会是脚本设计的着力点,如何准确地捕获用户的需求亟待考虑。
(2)待处理数据格式各异。
把权力更多地交给用户决定,这就要求程序本身需要考虑的东西足够周全,如何把握好格式各异的数据间的共性,这是一个需要思考的问题。
在技术创新方面,该文真正实现自动化处理过程,目前尚未有能够准确有效协助或替代人工处理相关数据的工具,开发适用于生产部门实际需求的整改工具,在提升工作效率、精简时间成本等方面是一次有益的尝试。
3 工具的开发及应用
对于生产系统实用化指标之一的操作票归档及时率,业务人员需要检查“操作票生成时间+5个工作日”在该月的操作票是否在该月结束前完成归档。以2016年5月为例,需要检查开票日期在2016年4月25日至2016年5月25日的操作票是否已及时归档,这在生产系统上可以查询得到。在点击查询的同时,可使用Opera浏览器的“开发者工具”查看POST请求,如图1所示。其中Request Headers包含所需的Cookie,将其保存在本地。接下来的工作将全部交由计算机实现。
该文使用JAVA语言开发POST请求发送工具,如图2所示。通过Java.net.URL来获取资源,指定POST请求中用到的Request URL。之后打开和URL之间的连接,返回一个URLConnection对象,表示到URL所引用远程对象的连接。考虑到每次POST请求属性稳定,于是在程序中对其设置,包括Request Headers包含的accept、connection、user-agent,并读取此前保存在本地的文本设置cookie。调用上述URLConnection对象的getOutputStream方法,通过java.io.PrintWriter来获取其对应的输出流。这里需要调用PrintWriter对象的print方法发送请求参数,程序根据当前系统时间自行设置开票日期起止时间、每页显示条目数及当前页数,通过定义java.io.BufferedReader输入流来读取URL的响应,以此获得所有满足考核规则的数据。以图2为例,程序获得110条记录,并将其自行导入Oracle数据库。经开发调试后,程序将以可运行的JAR文件格式导出,为定时执行做准备。
在用户没有进行任何操作的情况下,cookie将会在30 min后自行失效。为了保证cookie持续有效,使用Windows系统任务计划程序功能执行JAR文件,模拟用户操作,每隔一段时间发送POST请求。为此新建任务,此前将JAR文件保存在D盘,在任务中编辑操作,设置程序或脚本为“java”,设置添加参数为“-jar D:\sc.jar”;编辑触发器,设置“制定计划时”开始任务,设置开始时间为当天的0点,每隔1 d发生1次,重复任务间隔5 min,持续时间1 d。如图3所示,如此即可保证每天每隔5 min模拟1次用户操作。
在Oracle数据库持续得到更新的同时,业务人员可以通过数据展示平台查看所需内容,包括在规定时间内尚未归档的操作票。网站首页提供所有实用化指标的图表,显示当前各指标在各部门的分布情况,包括柱状图和饼图,这可通过DevExpress控件群下的一个Web图表控件WebChartControl实现。在网站开发过程中,提供图表控件服务类ChartServices.cs以控制生成图表,包括绘制图形、设置图表标题、为X轴添加标题、为Y轴添加标题等方法;提供数据服务类DataServices.cs以提供多维数据,特别是在绘制柱状图时可以在一张图显示各部门多维指标现状,让用户可以在尽可能少的图表上获得尽可能多的信息,从Oracle数据库读取以Datatable数据集合的形式返回。
在操作票归档及时率模块,允许业务人员根据自身需要设定条件筛选并展示、汇总分析数据,通过Web控件AspxGridView实现,如图4所示。用户在“操作开始时间”设定2016年5月23日,没有任何数据显示,对业务人员而言这意味着当天开始的操作票都已经归档。需要说明的是,“及时归档剩余工作日”、“部门”、“参考部门”、“日期”等字段在生产系统中是不存在的,经计算得到,方便业务人员有针对性地筛选。其中,“及时归档剩余工作日”表示距离归档时限剩余时间,负数需引起业务人员注意;“部门”和“参考部门”为用户业务上需要而提供的信息,方便将问题数据及时分派到指定部门;“日期”为记录导入Oracle数据库的时间。另外,数据展示平台允许用户导出当前AspxGridView上显示的所有记录,选择在单个页面或者分页显示数据,给用户更多选择空间。
除了操作票归档及时率,数据展示平台还提供工作票办结率、管理计划及时完成率、维护检修计划完成率、缺陷验收及时率、任务观察记录办结率、缺陷录入及时率等指标问题数据展示页面,切实解决用户迫切的业务需求。
4 结语
生产系统实用化指标可以直观反映生产相关工作开展是否到位,成效能否达到预期目标。对生产线业务人员而言,实用化指标即是工作质量的标尺。如何将数据以更为丰富的形式展示给用户、方便用户高效开展实用化整改工作,应是信息人员需要考虑并为之付诸实践的重要任务。当前信息技术发展突飞猛进,应对实际问题的方法可能不计其数。无论如何,以用户为中心、切实解决用户痛点应是当下互联网思维应有之义。
参考文献
[1] 闫晓婷,宋佳.AJAX中数据传输的新技术——JSON[J].福建电脑,2007(10):62.
[2] (美)内格尔(Nagel C),著.C#高级编程[M].李铭,译.清华大学出版社,2014.
[3] 张跃廷,顾彦玲.ASP.NET从入门到精通[M].清华大学出版社,2012.