一种生成邮件报告的方法和装置与流程

文档序号:12824826阅读:232来源:国知局
一种生成邮件报告的方法和装置与流程

本发明涉及计算机技术领域,具体涉及一种生成邮件报告的方法和装置。



背景技术:

现有的运维监控系统中大多数都设计了各种监控告警手段,邮件报告即是其中之一。邮件报告是以邮件正文形式存在的通常包括图、文及其排版格式的分析报告。它的存在方便了用户(如,运维人员)直接在邮件正文中查看显示的信息,而不需要再去下载以附件形式存在的分析报告,使得报告更加直观、简便、高效。

目前,制作一份邮件报告的大致流程为,人工从各种不同数据源获取基础数据,以表格或图形方式反映数据的含义,表格和图形的排版需要人工进行整合和美化,并将美化后的内容手动录入到邮件正文中,经人工审阅后发送出去。其缺点是显而易见的,即生成邮件报告正文内容的过程是一个极其耗费人力、时间的过程。并且,人工对图文排版美化通常有很大的主观性、随意性,不够规整,不能很好的统一邮件报告的格式和风格。同时,由于人工的主观性,录入时难免出现输入错误。



技术实现要素:

本发明提供了一种生成邮件报告的方法和装置,以解决现有的人工手动邮件报告制作方案导致的费时费力、格式不统一和数据准确性差的问题。

根据本发明的一个方面,提供了一种生成邮件报告的方法,该方法包括:

定制待生成邮件报告的可扩展标记语言xml报表文件,xml报表文件 中配置有待生成邮件报告所需的数据信息;

获取预先制作的邮件报告模板,邮件报告模板中定义了邮件报告正文里待替换的内容以及邮件报告的格式;

根据xml报表文件中的数据信息替换待替换的内容,生成与邮件报告模板的格式相统一的邮件报告。

可选地,根据xml报表文件中的数据信息替换待替换的内容包括:

解析xml报表文件,获取xml报表文件中配置的数据的内容以及数据的样式信息;

根据数据的内容以及样式信息,生成对应的超文本标记语言html替换代码;

将html替换代码插入到邮件报告模板的邮件报告正文里待替换的内容所在的位置,替换掉待替换的内容。

可选地,数据包括:图表数据和/或文本数据;

当数据包括图表数据和文本数据时,xml报表文件中配置如下数据信息:

文本数据的数据源、文本数据的样式信息;

图表数据的数据源、图表引用关系信息和图表数据的样式信息。

可选地,根据数据的内容以及样式信息,生成对应的超文本标记语言html替换代码包括:

判断xml报表文件中是否配置有文本数据,是则获取文本数据的内容,并根据文本数据的样式信息生成文本数据对应的html代码,否则,判断xml报表文件中是否配置有图表数据;

是则,调用截图工具根据图表数据的数据源以及图表引用关系信息截取得到图表数据,并根据图表样式信息,生成图表数据对应的html代码;

将文本数据对应的html代码与图表数据对应的html代码进行组合, 生成在待生成邮件报告中显示时图文混排效果对应的html替换代码。

可选地,xml报表文件中的文本数据的数据源、文本数据的样式信息、图表数据的数据源、图表引用关系信息和图表数据的样式信息被配置为固定的值或被配置为统一资源定位符url参数,以在运行时动态获取参数值。

可选地,该方法还包括:根据数据的业务特性制作邮件报告模板;

所述获取预先制作的邮件报告模板包括:

根据待生成邮件报告的业务特性选择对应的邮件报告模板。

根据本发明的另一个方面,提供了一种生成邮件报告的装置,该装置包括:

报表定制单元,用于定制待生成邮件报告的可扩展标记语言xml报表文件,xml报表文件中配置有待生成邮件报告所需的数据信息;

模板获取单元,用于获取预先制作的邮件报告模板,邮件报告模板中定义了邮件报告正文里待替换的内容以及邮件报告的格式;

邮件报告生成单元,用于根据xml报表文件中的数据信息替换待替换的内容,生成与邮件报告模板的格式相统一的邮件报告。

可选地,邮件报告生成单元,具体用于解析xml报表文件,获取xml报表文件中配置的数据的内容以及数据的样式信息;根据数据的内容以及样式信息,生成对应的超文本标记语言html替换代码;将html替换代码插入到邮件报告模板的邮件报告正文里待替换的内容所在的位置,替换掉待替换的内容。

可选地,报表定制单元用于,配置图表数据和/或文本数据;

当数据包括图表数据和文本数据时,报表定制单元具体用于配置如下数据信息:文本数据的数据源、文本数据的样式信息;图表数据的数据源、图表引用关系信息和样式信息。

可选地,邮件报告生成单元,具体用于判断xml报表文件中是否配置 有文本数据,是则获取文本数据的内容,并根据文本数据的样式信息生成文本数据对应的html代码,否则,判断xml报表文件中是否配置有图表数据;

是则,调用截图工具根据图表数据的数据源以及图表引用关系信息截取得到图表数据,并根据图表样式信息,生成图表数据对应的html代码;

将文本数据对应的html代码与图表数据对应的html代码进行组合,生成在待生成邮件报告中显示时图文混排效果对应的html替换代码。

本发明的有益效果是:本发明实施例提供的是一种邮件报告自动生成的技术方案,通过运用模板机制,在保证邮件报告模板原有的样式和排版效果不变的前提下,根据用户配置的数据,动态生成邮件正文内容,将新生成的邮件内容替换掉邮件报告模板中待替换的内容,从而生成新的、与邮件报告模板格式一致且内容不同的邮件报告。这样可以将人工从以往费时费力重复机械繁杂的劳动中解脱出来,降低了人力成本、节约了时间、减少了重复劳动,提高了数据的准确性,统一了邮件报告的格式风格。

附图说明

图1是本发明一个实施例的一种生成邮件报告的方法的流程图;

图2是本发明另一个实施例的一种生成邮件报告的方法的流程示意图;

图3是本发明一个实施例的生成邮件报告的html代码的流程图;

图4是本发明一个实施例的一种生成邮件报告的装置的框图。

具体实施方式

本发明的核心思想是:针对现有技术中生成邮件报告的方案由人工手动劳动,导致人力、时间成本高,格式不统一、数据准确性差的问题,提供了一种新的邮件报告自动生成方案,通过运用模板机制,在保证模板原有的样式和排版效果下,动态生成邮件报告的图文信息替换模板中需要改变的内容, 并按指定时间发送邮件到指定邮箱。解决了邮件报告生成过程中人力、时间成本高、重复劳动、数据准确性不高、邮件报告格式不统一的问题。

图1是本发明一个实施例的一种生成邮件报告的方法的流程图,参见图1,该方法包括:

步骤s11,定制待生成邮件报告的可扩展标记语言xml报表文件,所述xml报表文件中配置有待生成邮件报告所需的数据信息;

步骤s12,获取预先制作的邮件报告模板,所述邮件报告模板中定义了邮件报告正文里待替换的内容以及邮件报告的格式;

步骤s13,根据所述xml报表文件中的数据信息替换所述待替换的内容,生成与所述邮件报告模板的格式相统一的邮件报告。

经过图1所示的方法,定制每个待生成邮件报告对应的xml文件,并获取一个邮件报告模板,邮件报告模板中定义了邮件正文部分哪些是可替换的内容以及邮件报告的格式,这样,再根据待生成邮件报告对应的xml文件中的数据,生成替换内容,利用替换内容替换邮件报告模板中的可替换内容,生成新的邮件报告。如此,新生成的邮件报告的格式与邮件报告模板的格式一致,也省去了人工定制报表xml文件、排版、美化等操作,节省了时间和人力成本,提高了用户使用体验。

在本发明的一个实施例中,步骤s13中的根据xml报表文件中的数据信息替换待替换的内容包括:解析xml报表文件,获取xml报表文件中配置的数据的内容以及数据的样式信息;根据数据的内容以及样式信息,生成对应的超文本标记语言html替换代码;将html替换代码插入到邮件报告模板的邮件报告正文里待替换的内容所在的位置,替换待替换的内容。

超文本标记语言(hypertextmark-uplanguage,html)是构成网页文档的主要语言。html文本是由html命令组成的描述性文本,html命令可以说明文字、图形、动画、声音、表格、链接等。

图2是本发明另一个实施例的一种生成邮件报告的方法的流程示意图, 参见图2,本实施例中邮件报告生成方法的流程包括:步骤s21至步骤s24。

流程开始,执行步骤s21,定制xml报表文件;

xml(extensiblemarkuplanguage)是一种用于标记电子文件使其具有结构性的标记语言,它与关系数据库的不同之处在于,关系数据库提供了更强有力的数据存储和分析能力,而xml文件仅仅是存储数据。这里的xml报表是邮件报告中显示的数据以及图文效果配置信息的载体。直接读取xml配置文件要比读取数据库更快,保证了生成邮件报告的速度。

xml报表中通常配置有文本数据和图表数据,本发明其他实施例中也可以根据实际需要只配置文本数据或只配置图标数据,对此不作限制。本实施例中,xml报表中配置有文本数据和图表数据的数据源以及获取这些数据的sql语句,例如,xml报表中对应的代码如下:

其中,datasource="rpt_report"表示本实施例的邮件报告数据来源于名称为rpt_report的文件,当然,如果数据来源不是数据库,而是现有的文件,如excel文件,则可以配置为相应的数据来源文件。也就是说这里的数据源不限于数据库,可以是多种数据来源。实际应用时,根据需要配置即可。在定制xml报表文件时,有些内容可能不想让解析引擎解析执行,而是当作原始内容处理,遇到这种情况可以把这些内容放在cdata区里(如,[cdata[20150101]]),对于cdata区域内的内容,xml解析程序不会处理,而是直接原封不动的输出。

xml报表中还配置有文本数据的描述性信息(这些描述性信息即为样式信息,确定了文本数据在待生成邮件报告中显示的样式),待生成邮件报告正是根据这里设置的描述性信息,生成对应的显示效果。例如,样式信息包括文本数据的位置,即,在待生成的邮件报告中文本是显示在图表的上方还是 显示在图表的下方、文字的字体、大小、颜色、是否粗体、是否斜体、是否加中划线、是否加删除线等样式。例如,xml报表中对应的代码示意如下:

其中,xml报表文件配置待生成邮件报告中显示文字fontsize="15"、fonttype="宋体",即文字字号为15号,字体为宋体。

另外,xml报表中还配置有图表数据的图形引用关系,本实施例以图形数据为例进行示意,当xml报表中还配置了图形数据时,生成的邮件报告就会显示相应的图形。具体的,xml中可以配置截图的url地址和生成截图元素的唯一标识id、渲染时间、图形的大小等。例如,xml报表中对应的代码示意如下:

其中,xml报表中配置了图形数据的样式信息(图形的大小),如,截图在邮件正文的高度height="200"(像素值)。还配置了截图元素的id和截图等待渲染的时间,如sid="fusionchartstab"。这是由于数据源中可能有多个图形数据,而当前待生成的邮件报告可能只需用到其中一幅图形,即把这幅 图形的id配置到xml报表文件中,后续运行时调用selenium工具,打开浏览器截取得到该图形。这里的selenium是一个捕捉屏幕截图以获得图片的工具,selenium提供了两个方法对浏览器截图分别为:capturescreenshot截取浏览器内可见部分,而captureentirepagescreenshot截取浏览器内所有内容。

需要强调的是,在xml报表文件中可以将上述参数,例如文本数据的数据源、文本数据的样式信息、图表数据的数据源、图表引用关系信息和图表数据的样式信息等配置为固定的值或被配置为统一资源定位符url参数,以在运行时动态获取参数值。即,这些参数即可以配置为固定的值也可以接受url参数,根据参数来动态获取。优选地,将这些参数设置为url参数,这样配置的xml报表文件可以复用,无需每次生成邮件报告都定制新的xml文件,只需根据xml文件中设置的url参数,动态获取参数值,以进一步节省生成邮件报告的时间,提高用户使用体验。

步骤s22,获取邮件报告模板;

邮件报告模板,是为了多次重复使用而预先制作完成的,具有一次制作可多次使用的优点。在实际制作邮件报告模板过程中,可以根据报告数据的业务特性制作对应的邮件报告模板,不同的业务特性,邮件报告模板不同,而同一业务的邮件报告都使用同一模板,保证了业务风格的统一。在邮件报告模板中还定义了邮件报告模板中需要被替换的内容,以待后续使用时将这部分内容替换掉从而生成新的邮件报告。此外,邮件报告模板中还定义邮件报告正文中文字和图形的样式(字体、大小、颜色、段落等)和风格,以保证利用该模板生成的邮件报告格式一致。

在本实施例中,预先制作符合freemarker标准的邮件报告模板,文件格式为*.ftl,邮件报告模板中定义了邮件报告正文里需要被替换的内容和邮件的整体样式及风格。参见下述的代码示意

优选地,待替换的部分以${参数名}形式存在于邮件报告模板中。即上述代码中的${mailreporthtml}。后续在利用邮件报告模板生成新的邮件报告时,只需将调整好的图文混排效果对应的html代码片段插入到这个位置,替换这里的内容,程序运行时读取插入的html代码可自动生成新的邮件报告。此外,上述代码中还示意了定义邮件报告模板的风格,如style="…"、样式信息,如cellpadding="0",width="100%"。

freemarker是一个用java语言编写的基于模板的、用来生成输出文本的通用工具,本实施例中用freemarker制作邮件报告模板文件。

步骤s23,生成邮件报告内容;

图3是本发明一个实施例的生成邮件报告内容的流程图,参见图3,本实施例中,程序启动后会读取xml报表文件和读取邮件模板文件生成邮件报告内容。读取xml报表文件是为了根据用户配置的数据源、描述性文字及样式和图形引用关系获取基础数据并生成图文混排的html代码,然后读取邮件报告模板,并将所述html代码插入到邮件报告模板的指定位置,从而动态生成邮件报告的内容。具体的,生成邮件报告内容的流程包括下列步骤s31至步骤s39。

流程开始,执行步骤s31,解析xml报表文件,获取xml报表文件中配置的数据的内容以及数据的样式信息;

步骤s32,判断xml报表文件中是否配置有文本数据,是则执行步骤 s33,否则,执行步骤s34;

这里的判断xml报表文件中是否配置有文本数据,是通过查看xml报表文件中是否设置有<action>标签,如果有<action>标签则根据标签中的内容判断是文本数据还是图形数据。也就是说xml报表中有无文本或图形数据的判断标志是<action>标签。

步骤s33,获取文本数据的内容,并根据配置的文本数据的样式信息生成文本数据对应的html代码,这里的html代码是文本数据对应的html代码;

步骤s34,判断xml报表文件中是否配置有图表数据;是则,执行步骤s35,否则,执行步骤s38;

步骤s35,调用selenium截图;

步骤s36,在步骤s35得到的截图的基础上,结合xml报表文件中的配置的图形数据的样式信息,生成对应的html代码,这里的html代码是图形数据对应的html代码;

步骤s37,在得到文本数据对应的html代码和图形数据对应的html代码后,对这两部分html代码进行组合拼接,生成图文混排效果的html替换代码。

这里的html替换代码中,是程序自动化生成图文混排邮件内容的一种方式,为了能够自动将图文排版好,并插入到邮件正文位置,作为邮件主体内容。可以理解,待生成邮件报告中的每一段文字都可以生成一段文字的html代码,每一个图形也可以生成一段图形的html代码,如果一个待生成邮件报告中包含了多个图形和多段文字,则该邮件报告图文混排效果的html替换代码就等于多个文字html代码和多个图形html代码的拼接。

步骤s38,读取邮件报告模板;

读取预先制作的邮件报告模板,将步骤s37中生成的html替换代码,插入到邮件报告模板的邮件报告正文里待替换的内容所在的位置,组织替换 掉那些待替换的内容,从而动态生成邮件报告内容。流程结束。

步骤s24,组织收件人地址并发送邮件;

通过邮件订阅(订阅,是一种发送邮件的触发方式)的方式,在生成邮件内容后,按指定的时间,发送到配置的指定邮箱。这里,邮件报告的收件人、发送时间也可以在前述xml报表文件配置或者在邮件报告生成界面上选择发送的时间。

流程结束。至此,实现了从邮件报告内容生成到发送的一体化、自动化。

在本发明的一个实施例,还提供了一种生成邮件报告的装置,图4是本发明一个实施例的一种生成邮件报告的装置的框图,参见图4,该生成邮件报告的装置40包括:

报表定制单元401,用于定制待生成邮件报告的可扩展标记语言xml报表文件,xml报表文件中配置有待生成邮件报告所需的数据信息;

模板获取单元402,用于获取预先制作的邮件报告模板,邮件报告模板中定义了邮件报告正文里待替换的内容以及邮件报告的格式;

邮件报告生成单元403,用于根据xml报表文件中的数据信息替换待替换的内容,生成与邮件报告模板的格式相统一的邮件报告。

在本发明的一个实施例中,邮件报告生成单元403,具体用于解析xml报表文件,获取xml报表文件中配置的数据的内容以及数据的样式信息;根据数据的内容以及样式信息,生成对应的超文本标记语言html替换代码;将html替换代码插入到邮件报告模板的邮件报告正文里待替换的内容所在的位置,替换掉待替换的内容。

在本发明的一个实施例中,报表定制单元401用于,配置图表数据和/或文本数据;

当数据包括图表数据和文本数据时,报表定制单元具体用于配置如下数据信息:文本数据的数据源、文本数据的样式信息;图表数据的数据源、图表引用关系信息和样式信息。

在本发明的一个实施例中,邮件报告生成单元403,具体用于判断xml报表文件中是否配置有文本数据,是则获取文本数据的内容,并根据文本数据的样式信息生成文本数据对应的html代码,否则,判断xml报表文件中是否配置有图表数据;是则,调用截图工具根据图表数据的数据源以及图表引用关系信息截取得到图表数据,并根据图表样式信息,生成图表数据对应的html代码;将文本数据对应的html代码与图表数据对应的html代码进行组合,生成在待生成邮件报告中显示时图文混排效果对应的html替换代码。

需要说明的是,本实施例中的这种生成邮件报告的装置的工作过程是和前述生成邮件报告的方法的步骤相对应的,因此,本实施例的生成邮件报告的装置的具体工作过程可以参见前述生成邮件报告的方法部分的相关说明,在此不再赘述。

综上所述,本发明实施例的这种生成邮件报告的方法和装置,运用邮件报告模板机制,有效保证了邮件报告内容格式和排版效果,统一了风格,避免了人工调整带来的数据不准确、风格不一致的问题;并且,使用本发明实施例提供的生成邮件报告的方法和装置能够实现邮件报告生成过程中,从基础数据获取到邮件内容生成再到邮件发送的一体化、自动化。节省了资源,降低了成本,提高了用户使用体验。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1