自动化防止混乱



IT技术的现代化发展使得遏制巨大的数据流成为可能。
该业务具有各种工具:CRM,ERP,BPM,会计系统,或者在极端情况下仅是Excel和Word。

公司也不同。 有些由许多独立的分支组成。 在这种情况下,企业在IT系统动物园中存在数据同步问题。 此外,分支机构在供应商或软件版本方面有所不同。 管理公司对报告要求的频繁更改会导致现场出现无法控制的“欢乐”。

这个故事是关于一个项目的,当时我碰巧遇到了需要系统化和自动化的混乱情况。 适度的预算和紧迫的期限限制了大多数工业解决方案的使用,但为创造力开辟了空间。

通用格式


客户负责从公司所有分支机构收集报告数据的任务。 要了解灾难的严重程度,有数十种系统,包括自制系统和庞然大物,例如SAP,当然还有1C-没有它。

在一份报告中,来自以下方面的数据可能会相交:簿记,维修人员,PR专家,紧急情况部,气象学家。

在项目开始之前,大量数据已通过电子邮件以Word / Excel附件的形式发送给母公司。 此外,该过程类似于手动日落:数据由经过特殊培训的人员处理,并输入到几个系统中。 工作的结果是数十份报告,在此基础上做出了管理决策。

传输文件的格式(即xlsx / docx)提示选择方法。 甚至分支机构中的“古老”系统也支持将数据上传到这些格式,或者在极端情况下,没有人取消复制粘贴。

我们的固执计划是这样的:

  1. 描述每个报告的结构及其传输规则;
  2. 我们降低了按照规定向分支机构通过电子邮件发送文档的系统的设置要求。 没有系统的地方-像以前一样手动发送;
  3. 我们正在开发一个程序,该程序:
    • 从收到的邮件中选择某些文档;
    • 从中提取数据;
    • 将提取的数据写入数据库,并“击败”违反法规的人。




实作


组织事项


事实证明,在收集和规范数据传输的结构和规范的阶段,根本没有描述报告的结构。 一切都存储在一些员工的脑海中,并通过口耳相传作为俄罗斯民间传说传播。 但是真正的问题是稍后开始的-设置数据交换时。

问题一


从参考文件的结构和数据质量上的差异。 在报告中,有时金额未收敛,列混淆或名称不正确。 该问题主要出现在手动驱动数据的分支中。

解决方案是执行三步验证:

  1. 使用Excel本身创建具有刚性结构的参考Excel文档。 在此类文档中,仅数据输入单元可用。 对其施加了其他检查:类型,金额收敛等。
  2. 从报表中提取数据时检查。 例如,在Word文档的段落中对当前日期和日期进行比较,或者对Excel文档中的数据进行算术检查(如果无法在文档本身中指定)。
  3. 收集后进行深入的数据分析。 例如,与上一时期相比,关键指标的重大偏差的检测。

第二个问题


有系统地违反数据传输时间表或进行不法破坏活动的企图:“总的来说,我们从未将数据发送给任何人,但是这里是您自己的……”,“是的,我按时发送了所有信息,这可能是一个糟糕的ping。”

解决方案是反馈。 如果计划发生违规,系统会自动通知分支机构的负责人。 后来,反馈子系统被固定在输入数据质量控制系统和最终报告系统上,因此分支机构将立即接收一组数据并与“邻居”进行比较。 为了弄清楚他为什么耙。

开发的子系统



  1. 具有数据的文档类型的配置器,您可以在其中快速描述:
    • 用于识别文件的标志;
    • 转让规定;
    • 数据提取算法;
    • 其他属性,例如验证和存储数据的代码路径。

  2. 邮件收件人,将附件移动到隔离的存储区(沙盒)并存储有关信件的相关信息;
  3. 附件解析器,用于定义文档类型并从中提取数据。



配置器


从历史上看,所有带有数据的文档都会发送到普通邮件中,在普通邮件中充满了其他重要信息,而不是信件。 我们需要标志来确定必要的文件。 电子邮件正文中的文档名称或文本对发送者来说都是不可靠且不便的。 因此,决定仅由文档的内容确定报告的成员资格。 此外,您必须明确确定文档包含的报告类型。

他们想出了一个集思广益的辣根,他知道有多少种迹象可以识别文档:单元格中的文本颜色,字体等。 但是最正确的迹象是在某个单元格“插槽”中存在子字符串或Excel单元格数组以及Word的段落或标题中存在子串的迹象。 为“插槽”添加了一个简单的形式逻辑:“相等”,“不相等”,“更多”,“更少”等。Excel示例:在A2-E4范围内,单元格文本应等于“设备负荷的每日摘要”。



您要在其中搜索数据开头和结尾的文档区域以类似的方式配置(大约找到结尾的条件:连续2空行)。



其他有用的设置包括已解析的发件人列表,文档类型(Excel / Word)和导出数据的路径。

在输出中,我们获得一个描述报告的JSON结构(模板)。

邮件收件人


邮件阅读器将所有附件中的所有文档放入沙箱中,保存信件的属性,并将文档放入要分析的任务队列中。

有2个安全问题:

  1. 如果数据发送到另一个分支怎么办?
  2. 如果数据是攻击者发送的怎么办?

通过协调发送分支的电子邮件地址和报表正文中指定的分支,可以解决第一个问题。

第二种是使用SPF

附件解析器


几乎所有用于解析Word和Excel的库都对受支持的版本进行了严格的限制,因此从一开始就需要转换文档。 Libre Office通过五点解决了这个问题。

转换后:

  1. 我们根据配置器(Word / Excel,发送方...)的基本特征过滤出一系列模板;
  2. 使用其余模板运行文档;
  3. 如果找到了模板,我们将提取数据并将其传输到存储库。

总结


我们做到了!
经过两个月的艰苦工作,总公司开始定期从所有分支机构接收报告数据。 此外,数据的质量和完整性与以前从未有过的不同,到年底,释放的人力资源弥补了该项目的成本。

对于我们自己来说,我们了解到集成并不总是很痛苦,并强调了成功的主要方面:

  1. 我们没有进入分支机构的内部系统;
  2. 正式确定并批准报告和法规的单一结构,以供传输;
  3. 创建输出格式模板,通常以Excel和Word文档的形式可用于所有系统;
  4. 选择了最常见的数据传递方法-电子邮件。

还有两个主要缺点:

  • 数据传输速度慢。
  • 数据包的大小不应超过常规电子邮件附件的大小。

Source: https://habr.com/ru/post/zh-CN421705/


All Articles