在公司里面,做统计与报表一般用的ups是什么么软件啊

特急, 我现在做一个统计收费员工作量的程序,我是以每个月为单位保存数据的,现在当统计跨月报表时,就要在不同的月表中查找数据...
[问题点数:100分,结帖人whhzkl]
特急, 我现在做一个统计收费员工作量的程序,我是以每个月为单位保存数据的,现在当统计跨月报表时,就要在不同的月表中查找数据...
[问题点数:100分,结帖人whhzkl]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
2005年 总版技术专家分年内排行榜第四
2006年11月 总版技术专家分月排行榜第一2006年3月 总版技术专家分月排行榜第一2006年2月 总版技术专家分月排行榜第一2006年1月 总版技术专家分月排行榜第一2005年12月 总版技术专家分月排行榜第一
本帖子已过去太久远了,不再提供回复功能。当前位置: >
> 进销存做日结问题请问:零售进销存行业的兄弟:做日结的作用是平衡库存,统计报表吗?前台销售不实时减库
进销存做日结问题请问:零售进销存行业的兄弟:做日结的作用是平衡库存,统计报表吗?前台销售不实时减库
kittyice0210 & at
进销存做 日结 问题请问:零售进销存行业的兄弟: &
做日结 的作用是 平衡库存,统计报表吗?
& & 前台销售 不实时减库存吗?做日结才减~? & 那么后台做批发销售或其他出入单 是实时减库存吗?不在日结范围内啊?日结的数据 是 针对 前台销售数据吗?& 谈谈你们有什么好的建议~!
一、做日结的时候会生成销售的日汇总,一般情况下还会生成各种方式下的汇总,比如,按类别、按品牌生成相应的报表,月结的时候再根据日汇总的数据生成日报表;二、是否减库存要看你的系统设计,一般的话是在日结的时候减库存,在销售的时候的实时库存为当前库存 - 未日结库存,另外,进销存明细报表也在这个时候汇总;三、后台的批发销售与出入单一般都是做成实时的,在审核时就减库存;四、日结一般是对零售数据进行处理的,日结前要检查交班情况,因为零售的特殊性(销售即时产生,客户量大),还有可能有断网之类的情况,需要保证数据都完整的时候在进行日结;五、在日结的时候可以计算毛利了;
kittypink & &
& & (0)(1)引用呵呵,前两天有要你看一个软件,你读一下他们的p_pos_daysum存储过程就知道了,主流进销存在这一块的处理方式都差不多~~
kittysu & &
& & (0)(0)引用探讨请问:零售进销存行业的兄弟:    做日结 的作用是 平衡库存,统计报表吗?  前台销售 不实时减库存吗?做日结才减~? 那么后台做批发销售或其他出入单 是实时减库存吗?不在日结范围内啊?日结的数据 是 针对 前台销售数据吗?谈谈你们有什么好的建议~!
kittyshan & &
& & (0)(0)引用探讨一、做日结的时候会生成销售的日汇总,一般情况下还会生成各种方式下的汇总,比如,按类别、按品牌生成相应的报表,月结的时候再根据日汇总的数据生成日报表; 二、是否减库存要看你的系统设计,一般的话是在日结的时候减库存,在销售的时候的实时库存为当前库存 - 未日结库存,另外,进销存明细报表也在这个时候汇总; 三、后台的批发销售与出入单一般都是做成实时的,在审核时就减库存; 四、日结一般是对零售数据进行处理的,日结前要检查交班情况,因为零售的特殊性(销售即时产生,客户量大),还有可能有断网之类的情况,需要保证数据都完整的时候在进行日结; 五、在日结的时候可以计算毛利了;kittyshan & &
& & (0)(0)引用
本问题标题:
本问题地址:
温馨提示:本问答中心的任何言论仅代表发言者个人的观点,与希赛网立场无关。请对您的言论负责,遵守中华人民共和国有关法律、法规。如果您的言论违反希赛网问答中心的规则,将会被删除。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&增值电信业务经营许可证湘B2-呼叫中心中可定制报表系统的设计与实现(三)_呼叫中心_CTI论坛
呼叫中心中可定制报表系统的设计与实现(三)
上海易谷网络科技有限公司 赵延超
第四章 可定制报表系统详细设计与实现
  在系统分析和系统总体设计之后,就进入了详细设计与实现阶段。该阶段主要完成报表系统核心技术的详细设计和实现,重点研究模板内部统计项的划分、以及以该统计项为基本单元构建模板、数据ETL过程、数据库中表的格式设计和单元编码实现。
4.1 报表模板的详细设计与实现
  4.1.1 模板功能的分析和设计
  在分析了市场对报表系统的功能需求和系统开发问题后,就需要设计一套方案来解决报表系统灵活性问题。
  该系统设计了一套标准的报表统计模板来完成报表的灵活和通用特性问题。一个模板是针对一个呼叫中心对象的相关信息配置。对于用户给出的任何一个报表需求,只需要利用可视化的报表设计工具设计一个报表模板,再将其加载到ETL服务中。ETL服务便可以从ODS源数据库中提取相关数据做处理,最终加载到报表数据库中。然后将报表数据库中的数据利用报表展现工具展现出来就可以生成报表。从而令报表的功能设计较为灵活,也更加方便。因此,在报表模板的设计时应该有以下几点考虑:
  1.已经定制的报表模板可以很简单地被整合重用。相关内容的报表需求只需要对此模板进行少量的修改即可实现,从而节省新建模板的时间。
  2.根据企业不同的需求,能够满足企业的实用性要求。所以模板设计要具备灵活且面向业务的历史报表分析功能,使这个历史报表系统可以追踪所有和企业活动有关的必要的数据,并把它们记录在数据库中,为每一个客户互动事件建立一个历史纪录,并沿着互动事件的路线,自始至终进行追踪,完整记录每次互动从开始到完成的路径。
  3.系统应该提供给报表最终用户可视化的报表分析工具,使其能够自定义模板,且对于不同的报表需求,他们可以利用此工具根据其逻辑定义自行创建新的统计规则,以完成变化的、满足客户需求的数据收集。
  4.模板设计工具能够完成报表模板设计、模板加载、数据过滤设计功能,并且利用该工具,能够增加报表模板或修改报表模板。而且也支持用户开发与应用,从而用户可以根据系统事先定义的规则,自己对其进行开发和应用。
  根据以上报表模板分析,模板的设计结构框架如图4.1所示。
图4.1 模板结构框架图
  由模板结构框架图得知,模板包括模板名称,数据统计对象,收集数据的频率和多个基本统计项。其中,每个统计项对应着统计对象(如:坐席,路由点等)的一条统计内容信息(如:1小时内的呼叫总量等)。然后由这些统计项和统计参数组合成模板,从而构成对呼叫中心对象的统计信息。
  模板的划分用来简化了报表的复杂性。根据这些关键性模板,以公正的最重要的呼叫中心的统计资料过滤关键性数据,然后以各种各样的可视化显示技术来展示报表数据。
  4.1.2 统计项细分
  该报表系统设计的模板,用来对呼叫中心中相关对象做相应的数据统计。报表模板的设计目的是让报表的功能设计更加灵活,维护也更加方便。但是若要使模板的功能能够通用,就应该对模板内部单元做详细而规则的划分。从而系统需要将模板分为相互独立的,确定范围的,而又相互联系的基本单元,通过有限的各基本单元的选择配置组合来实现所有数据统计模板的构建。这样,通过该模板的加载去收集相应的报表数据,以达到报表统计灵活通用的目的。
  然而,在现代呼叫中心尤其是大型的呼叫中心中,数据量是巨大的,且形式也各种各样。要想把报表模板划分成规范而整体可以覆盖全面的子单元,就需要对呼叫中心中报表统计数据的规律性进行研究。不过呼叫中心中的报表数据划分也不是孤立的,而是相互之间存在着一定的适用条件联系。报表数据统计都应该表现出研究对象的本质属性:服务的对象、基本内容、实现的功能等。
  从呼叫中心报表数据的规则性而言,它的每一条记录都包括监控的对象,收集的数据内容和收集的时间段三部分。监控的对象表明它是一个坐席,坐席组,路由点,队列,分机,队列组,IVR对象等。收集的数据内容表示统计的最长通话时间,内线呼叫总量,平均等待时间等。收集的时间段表示收集数据的频率,如15分钟表示每15分钟收集一次数据。统计项划分后,每一个统计项就对应一个报表需求统计数据的配置。如要统计每天路由点上所有的呼入量和接通量,则需要对路由点这个对象做个模板,再在这个模板中创建两个统计项。分别为统计该天呼入量和接通量的相关配置。
  基于以上研究对象的本质属性分析,下面完成模板统计项的细分。
  在研究一个模板进行细分时,首先必须确定其统计目标,统计时间段和统计内容等。在模板加载后,用户也可以对这些配置在进行修改,同时还可以添加和删除统计项。
  根据系统对统计项划分的分析,模板的构造单元划分后,其结构如图4.2所示。
图4.2 模板结构图
  根据模板结构图,每一个模板包含一个对象类型(Object Type),一个唯一的模板名称(Template Name),一个时间收集频率(Time
Profile)和多个统计项(Statistics Units)。
  1.对象类型
  对象类型用来说明报表数据统计的对象类型,包括坐席(Agent), 坐席组(AgentGroup), 队列(Queue), 队列组(QueueGroup),
路由点(RoutePoint), 分机(Extension), 技能组(SkillGroup),自助语音呼叫(IVR)等等。
  2.数据收集频率
  数据收集频率表示收集数据的时间段,它定义了一个收集数据的时间间隔,默认为15分钟。用户可以自己添加或更改收集数据的时间段。
  3.统计项
  一个模板可以包括一个或者多个统计项,用来说明统计的内容。每个统计项参数需要再细分,使其进行组合后可以涵盖所有的常用功能。在统计项细分后,每个统计项参数主要包括以下四个方面:列名(Column
Name),统计内容(Stat Type),时间范围(Time Range),过滤项(Filter)。另外,统计项创建时,还可以给该统计参数增加一个描述以说明统计项的作用。
列名表示ETL服务根据该统计项收集的数据存放到数据库对应的表中的属性名。
时间范围是一次话务各操作持续的时间划定。如:要统计通话时间在10秒和30秒之间的话务量,就需要在时间范围选择时添加一个10-30秒的Time
Ranges选项。
过滤项表示根据报表需求添加的一些过滤项配置。例如要统计所有多媒体相关的呼叫,这就需要在统计项中添加一个MediaType=Multimedia的过滤项,来对呼叫中心传递的数据进行过滤。通过过滤项的配置,系统可以过滤外拨,内线呼叫等信息。
统计内容主要用来配置报表统计的细节内容。它由统计类别(Category),统计对象(Objects),话务操作(Actions),公式(Formula)四个属性组成。
  统计类别也叫数据类别,它用来表示报表数据统计的内容类别,它包括TotalTime,TotalAdjustTime,TotalNumber,TotalAdjustNumber,AverageTime,AverageNumber,MaxTime,
MaxNumber, MinTime,MinNumber等,表示报表统计数据的类别:总时间,总数量,平均时间,平均数量,最大时间,最大数量,最小时间,最少数量等。
  统计对象是针对前面选择的统计类型列出所有的相关的统计对象,通过选择统计对象来对具体的统计目标进行指定。例如,在数据对象选择时,可以选坐席号为的坐席以做相关数据统计。
  话务操作是决定最终统计数据的基础,从其选择可以解析出数据统计的开始计时或计数的初始化状态和结束状态。操作应该包括特定情况下的话务操作,详细内容如表4.1所示。
表4.1 话务操作功能表
  这些话务操作有的属于持续的一种状态,也有的是一个瞬时动作。在对其选择后,ETL服务就会对统计事件进行相应过滤,由此确定收集数据的起始,从而对报表统计数据进行相关的处理。
  公式的设计使系统支持一些常用公式,公式中也可以包括一些封装好的常用函数。它可以对话路中的随路数据或者用户在业务管理时添加的数据进行处理。比如GetValue(“CTI”),
它可以获得随路数据中“CTI”对应的数据。
  4.1.3 模板的构建与加载
  在模板统计项划分后,就需要根据划分的统计项进行组合,创建一个模板。创建一个模板就是构造一种方法,用来告诉ETL 服务一种收集信息的需求。而报表的需求就是将这些模板组合在一起,再根据这些模板对呼叫中心所传递的数据进行过滤、转换、清洗并加载到数据仓库中,最后用报表展现工具将之显示出来形成报表。
  模板的构建需要将各个统计项按一定的次序整合到一起,组成一个完整的统计某对象的数据记录。ETL服务就会根据这个记录的配置,来对其进行相关的数据统计。模板的构建流程如图4.3所示。
图4.3 模板构建流程图
  在模板的创建过程中,首先必须给该模板指定一个名字,该名字不能重复。再者,需要选择模板要统计的模板类型以及要对该模板收集数据的频率,例如:10分钟收集一次数据。
  然后创建该模板需要进行数据统计的统计项,如最大等待时间,外拨呼叫量等。这就需要先给统计项一个名字和一个属性列名称,这个属性列名称是它过滤的数据在数据库相应表中的列属性名。比如把统计项为Total_Time_Waiting的列属性名称指定为T_Waiting,则在数据库的相应表中属性列为T_Waiting的数据就是根据该统计项所做的数据统计结果。
  再者,需要为模板指定时间范围,从而对统计的时间段做一个限制。然后可以选择一个过滤项来过滤不符合要求的呼叫。同时还可以为该统计项添加一个描述,以说明这个统计项的用途。
  在统计项时间范围配置完成后, 就需要对统计内容进行相关的配置。系统可以配置统计的对象、统计类别、话务操作,来完成具体的统计目标配置信息。另外还可以添加一些公式来对自定义的一些属性来进行配置。比如,用户若要过滤业务自定义的参数“GVP”为5的呼叫,这时候要用到Formula公式。在参数配置时需要在公式处添加一个配置GetValue(“GVP”)==’5’。在模板配置完成后,将模板加载,这样在模板的加载状态就会被标志为加载状态。然后ETL服务运行时,相应报表数据将会根据这些配置在规定的时间间隔内被抽取。
  针对模板的构建,需要对每一个统计对象一般常用的统计信息进行封装,创造出一个默认的模板。在报表系统使用的时候,系统会自动将默认的模板加载上去,再根据特定的报表需求,对默认模板中没有的统计项进行添加。
  需要指出的是,在创建模板时,若使用者对模板的名称输入有一定的规范性,系统将会自动生成一个或者多个较为符合逻辑的模板以供选择。如模板名称为Total_Hold_Time,则模板的各统计项选择则会自动按照Total,
Hold, Time出现的次数来排序组成模板以供使用者选择。若给出的选项都不符合要求,则可以对各统计项进行自定义。
  另外,虽然对模板进行统计项的划分可以使报表数据的统计更加灵活,更加通用,但是,当功能过于复杂时若实现上有了一定的障碍,从而需要添加新的统计类别,所以本系统需要不断的改进和完善。
  4.1.4 具体实现与相关类图
  在报表模板细分之后,该部分来完成相应的编码,主要实现报表模板的统计项以及由它而分的其他各基本单元的编码设计。
  该部分在分析逻辑定义,解析数据信息的基础上,构造报表的模板代码,分析报表的布局,从而建立真正的报表。
  该部分是将模板以及相关统计项划分为各个单元后,将各单元封装成单独的代码,并在分析逻辑定义基础上解析数据信息,对模板代码进行独立加载。从本质中看,单元编码就是,根据报表模板各部分的ID标识号,将所有的参数信息填充入数据库中。
  此外,设计系统时还应该封装一些常用的函数为公式(Formula)调用,从而使其可以直接在可视化设计中对函数进行自动调用。
  根据数据库中设计的模板配置储存,模板加载后,系统就会对数据库中的所有配置信息进行遍历,获取每个信息的名称和内容等,组装成报表请求信息进行发送,交给ETL服务进行处理。
  在编码之前,还需要对模板的各参数配置进行研究。根据模板的构建流程图,系统将模板参数的配置顺序以及各参数在模板中的位置结构进行规划,如图4.4所示。
图4.4 模板参数配置结构图
  根据模板参数的配置结构图来对报表模板的各基本单元进行编码设计,其相关实现类图 [32]如图4.5所示。
图4.5 报表模板细分类图
  从以上类图结构可得,报表模板设计中包括以下类:
CReportTemplate:该类的作用是构造报表模板。
nTemplateID:模板的标识号。
m_timeProfile:创建模板时选择的数据收集频率。
m_pUnit:一个统计项类的指针对象,关联着模板中所有的统计项。
m_objectType:模板统计对象的类型配置。
CReportTemplate:模板类的构造函数。
AddUnit:在该模板中添加一个新的统计项。
DeleteUnit:删除一个统计项,指将一个统计项从该模板中除去。
ModifyTimeProfile:修改数据收集时间间隔的选择。
CObjectType:统计对象类型。
CUnit:统计项类,用来设计统计项的各参数。
m_statType:一个CStatType的对象,用来设计统计的内容。
m_pFilter:统计项中包含的一些过滤项,完成其中的数据进行筛选。
m_pTimeRange:话务操作相关的时间段过滤,可以有多个。
CUnit:该统计项类的构造函数。
AddFilter:为该统计项添加一个过滤项。
AddTimeRange:添加一个时间范围过滤项。
ModifyStatType:修改统计内容的选择。
RemoveFilter:除去一个过滤项的选择。
RemoveTimeRange:除去一个时间范围项选择。
CTimeProfile:此类是一个时间段,用来指定收集数据的频率。
m_tStartTime:收集数据的起始时间。
m_tInterval:收集数据的时间间隔。
ModifyParameters:更改收集数据时间的属性。
CStatType:统计内容设计类。
m_pObject:统计对象的选择,用来选择该统计项的统计目标。
m_category:数据统计类别的选择。
m_action:指呼叫中心相关对象的一个操作或者一个状态的选择。
m_formula:统计内容中相关的一些公式计算。
CStatType:该统计内容类的构造函数。
ModifyObject:更改统计对象目标选择。
ModifyCategory:更改统计类别选择。
ModifyAction:更改话务操作配置。
ModifyFormula:对公式进行编辑。
CTimeRange:时间范围设置类。
m_tStartTime:起始时间。
m_tEndTime:结束时间。
ModifyParameters:更改其成员参数。
CFilter:过滤信息类。
PairExist:已经存在的某项记录对应的参数值信息过滤。
UserDefined:用户自定义,它可过滤用户自定义的相关随路数据。
ModifyParameters:修改过滤信息配置。
CObject:统计对象类。
m_objectID:统计对象ID。
m_objectName:统计对象名称。
CCategory:数据统计类别。
CFormula:公式编辑。
CAction:话务操作编辑。
4.2 数据库模块详细设计与实现
  报表系统中对数据库表的管理是其很重要的部分。本节主要介绍数据库配置相关的一些设计与实现。
  4.2.1 配置数据库设计与实现
  配置数据库的作用是储存呼叫中心各对象的相关配置,包括一些基本对象和模板相关信息的配置。它对基本对象的配置包括一些对象ID,对象名,成员等。如坐席组A中含有哪些坐席等信息。其中,配置数据库中对模板配置的储存模型如图4.6所示。
图4.6 模板配置存储模型图
  在模板配置存储模型图中,分别建立了单独的表对模板划分的每一个基本对象进行储存。表template存储模板的配置信息,stat_unit表存储了统计项的基本信息,stat_type表是一些有关模板具体内容的配置。各表之间通过各自的ID标识号来进行关联。不过一个模板可以包括多个统计单元,一个统计项可以包含多个过滤项,一个统计内容可以包含多个公式,这样他们之间的ID关联就成为1对多的关系。在这种情况下,父项中的ID关联多个子项ID,其间是用逗号分隔。
  数据库存储模型中,像time_range_expression,filter_expression,formula_expression描述的内容是由报表设计工具生成的一个判断语句,用来做编码时进行的过滤。如上一节的举例,过滤自定义参数“GVP”为5的呼叫,需要在formula中添加的选项是GetValue(“GVP”)==’5’,则formula_expression的语句封装为“if(GetValue(“GVP”)=
=’5’);”。其中的函数是程序中定义用来获取随路数据的。
  另外,为了便于操作,对模板的储存还可以以XML文件信息将其导出并储存到计算机的磁盘中,作物理备份。在一个新的报表系统使用时候,可以将这些模板进行导入,然后模板的配置信息就会自动导入,不需要重新创建模板。其中导出和导入的XML文档内容具有规则的格式,如图4.7所示。
图4.7 模板物理存储例图
  在模板导出的XML储存图中,ReportVersion属性为报表系统的版本号。Template信息用来指定一个模板名字,给模板一个唯一的模板ID,再指定该模板是否激活,另外也为该模板添加了注释。该例中是对所有坐席活动的数据进行统计。ObjectType为模板的统计类型,该模板中统计类型为坐席(Agent)。TimeProfile为设定收集的时间间隔,本例中为从每天的0点0分开始,每隔15分钟收集一次。Statistic对应了一个统计内容配置,根据StatTypeID在下面将列出详细内容。本例中StatTypeID为19,下面的StatType中将会根据StatTypeID与之相对应,其中配置了Category,
Objects ,Actions, TimeRange, Filter以及该StatType的注释。
  在该报表系统设计时,报表模板的配置数据物理地存放在XML文档中,就类似于一个小型的数据库。XML文档结构性好,操作起来十分容易。而且在生成报表数据框架的时候,都有相应的类型定义,因此对于不同的数据类型操作也很方便。
  4.2.2 ODS源数据库的设计与实现
  在呼叫中心的相关对象和呼叫中心服务进行通讯后,呼叫中心的状态服务器将会把数据信息按照一定的格式存储到ODS源数据库中。报表系统便从ODS源数据库中获取数据以供报表生成所用。
  在呼叫中心服务器发送事件时,它都会对事件的对象指定的一个状态。在任何时间,ODS源数据库中,每个对象都被指定成一个唯一的状态。这些状态都来自话务对象的操作。
  ODS源数据库中数据储存的数据库模型如图4.8所示。
图4.8 ODS源数据库模型图
  根据ODS源数据库模型图,ods_data表中存储了事件发送的时间(time_key)、事件(event)、报表统计对象(object)、对象状态(object_stat)、对象类型(object_type)以及一些随路数据(attach_data)等信息。这些对象的详细信息都是以各部分的ID来对内容进行关联。
  另外,ODS源数据库中事件存储的相应表的命名为ods_data加一个数字。当表中的数据不断的增加,达到1000条记录时,系统将会建立新表来储存新的数据,其表名按ods_data1,ods_data2……数字叠加的规则来指定。
  4.2.3 报表数据库的设计与实现
  报表数据库作为报表展现数据最直接的数据库,对数据的存储是存在一定的规则。因为系统对数据的相关处理是通过模板的操作来实现的,所以数据的存储和模板的配置有关。数据库中表的存储结构如图4.9所示。
图4.9 报表数据库模型图
  表temp_name_time中存储了根据模板进行处理的报表最终数据,其中,temp_name_time不是具体的表名,它是一个泛指。它的命名是模板的名字加上统计的时间间隔。而stat_colume1也不是具体的表名,它是一个统计项列名的代称。如果模板的名字为AGENT_TEMPLATE,该模板的统计项有THOLD、TTRANS-
FER、NINBOUND等。其过滤后的相关数据存储的默认表有:AGENT_TEMPLA- TE_HOUR、AGENT_TEMPLATE_DAY、AGENT_TEMPLATE
_WEEK、AGENT- _TEMPLATE_MONTH、AGENT_TEMPLATE_YEARK。依次表示该模板按照小时,天,周,月,年来统计的数据。这些表中的stat_column属性名被实际的列属性名代替,分别为THOLD、TTRANSFER、NINBOUND等,表示统计目标的话务保持时间,转接电话时间和内线呼叫量。根据这个格式规则,各种报表展现工具都可以通过读取数据库,直接生成所需要统计的报表。
  最终的报表是读取该储存模式的数据后进行数据填写,显示诸如“已收到的关于产品X的电话数量”或 “客服代表组 A 所创造的收入” “客户答应付款”
或 “每个呼出活动的销售率”之类的信息,可以对资源的有效性进行分析。有了这种功能,管理人员就可以依据信息制定决策来改善与客户的互动关系,并抓住交叉销售和向上销售的机会。
4.3 数据ETL过程详细设计和实现
  4.3.1 数据ETL流程设计
  在报表设计工具创建模板后,这些模板的配置会被传送至ETL服务,然后ETL服务将这些模板的配置信息写进配置数据库中。
  ETL 服务是报表设计工具的服务器,它主要进行数据的抽取、转换和加载。当报表设计工具对模板以及其他一些相关配置进行修改时,如:Filters,
Time Range等,报表设计工具会将模板修改的信息传递给ETL服务,再对配置数据库进行相应的修改。当报表设计工具加载一个报表模板后,它也会通知ETL服务,ETL服务将会在配置数据库中对该模板添加模板加载标志。相反,卸载一个模板时,将会删除模板加载标志。
  本系统的数据ETL详细步骤如图4.10所示。
图4.10 系统数据ETL流程图
  根据流程图,ETL服务先读取配置数据库中的基本对象配置,按照各模板的配置依次从ODS源中抽取数据。抽取模板配置对象相关的数据后,包括时间段,对象状态等信息,将其存储到临时数据库中。
  在ETL服务将抽取数据存储到临时数据库后,再根据一定的转换规则,对抽取的数据进行转换。数据转换完成后再对其进行一些必要的处理,清除那些不正确的,不完整的数据,再对数据的格式等进行加工,最后加载到报表数据库中。
  当数据加载到报表数据库完毕后,在一定时间内再将临时数据库中相关用表删除掉,减少数据占用率。
  4.3.2 数据ETL过程实现
  在数据ETL流程中需要对ODS源数据库按照一定的规则进行抽取,另外,在抽取的数据进行转换时,也需要有转换规则。
  ODS源数据库中的每一条记录都对应着一个呼叫中心中的对象的一个事件。记录中包含事件发送的时间、报表统计对象名称、对象类型,事件名称,对象状态等内容。
  首先,系统根据收集数据的频率,每隔固定的时间,按照每个模板中的配置信息,依次读取统计对象对应的信息。然后,将这些抽取的信息与模板ID关联,再按照固定的格式存放到临时数据库中。临时数据库中的表属性格式为:模板IDDD事件时间DD对象IDDD对象当前状态DD上一次事件时间,如图4.11所示。
图4.11 临时数据库模型图
  在数据抽取到临时数据库后,需要对临时数据库中的数据进行处理,最终转换为报表需求的数据。
  若报表需要统计的类型是一般的话务总时间或者总数量,则将该收集时间段内符合需求的话务量求和即可,即(4-1)
  其中TotalTime和TotalAdjustTime都是对话务总时间进行统计,但是两者还有一定的不同。比如,要统计00:45-01:00之间的坐席签入时间。若在该坐席在00:34签入,01:00时还处于签入的状态。TotalTime的统计以该坐席的签出事件为终结符,当终结事件触发时,它会找到该状态的开始时间,利用其时间差作为结果。它统计的时间可能会大于时间段的时间长度。但是由于在该时间段内没有签出事件,所以TotalTime在该段时间统计的坐席签入时间为0。而利用TotalAdjustTime统计时,先在统计时间段的开始进行对象状态的读取,若此时状态满足条件,则它会以该时间为开始时间,以该状态的事件结束为终结,若这段时间内无状态结束事件,则会以收集时间段的结束时间为终结标志,所以TotalAdjustTime统计的该段坐席的签入时间为15分钟。TotalNumber与TotalAdjustNumber的区别是,在统计数量时,TotalAdjustNumber会对收集时间开始进行一次时间判断,若满足条件,在数量上就会加1。TotalNumber以每个相应事件的触发开始计数。
  另外,该部分还可以进行一个最大时间、最小时间、最大数量、最小数量、平均时间以及平均数量的统计。这需要先把收集时间段内所有符合条件的记录抽取出来,再将其进行求最大、最小或平均的操作。即(4-2)
  在ETL 服务进行以上方式处理数据后,再经过一些数据清洗和加工最终转换成以小时、天、周、月和年统计的规则数据,并加载到报表数据库中,以供报表生成所用。同时在报表数据库中各表还依数据对象ID对应关系,随时间不断更新。
4.4 可定制算法实现
  4.4.1 消息处理算法实现
  根据报表数据处理流程,系统需要灵活处理数据库中存储的话务消息,以满足使用者的具体需求。但有时系统还需要对某些逻辑数据进行特殊的处理,以使其符合用户需求。如要收集固定时间段内的呼叫总时间,可能会出现该时间段内没有该呼叫的开始事件,或者无该呼叫的结束事件等的情况,所以系统就需要对话路的操作事件进行一定的算法处理。
  下面文本框根据此例简要描述了消息处理算法的基本原理。
  4.4.2 模板自动创建算法的实现
  在用户创建模板的时候,首先系统会以一定的算法对规则的模板名称进行处理,从而实现模板的自动创建。同时根据使用者对统计项使用的频率,将其以一定的优先级排序,进行结构重新组织,从而方便使用。
下面文本框简要描述了模板自动创建算法的基本实现原理。
4.5 本章小结
  本章是可定制报表系统的详细设计和具体实现部分,主要研究了报表模板的逻辑定义设计、统计项以及其它各基本单元的详细划分、模板的创建设计和数据ETL技术实现,并详细阐述了报表系统实现的相关类图、数据ETL实现方法以及数据存储方式。
本文未经许可谢绝转载!
作者独家供稿 CTI论坛编辑
[an error occurred while processing this directive]
电话:010-79677 传真:010- 呼叫中心建设及运营管理咨询服务:010-
京ICP证030771号
All rights reserved}

我要回帖

更多关于 ups是什么 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信