首頁(yè)>>廠商>>CTI系統(tǒng)平臺(tái)廠商>>易谷網(wǎng)絡(luò)

呼叫中心中可定制報(bào)表系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(三)

上海易谷網(wǎng)絡(luò)科技有限公司 趙延超 2010/01/27

呼叫中心中可定制報(bào)表系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(一)
呼叫中心中可定制報(bào)表系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(二)

第四章 可定制報(bào)表系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)


  在系統(tǒng)分析和系統(tǒng)總體設(shè)計(jì)之后,就進(jìn)入了詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)階段。該階段主要完成報(bào)表系統(tǒng)核心技術(shù)的詳細(xì)設(shè)計(jì)和實(shí)現(xiàn),重點(diǎn)研究模板內(nèi)部統(tǒng)計(jì)項(xiàng)的劃分、以及以該統(tǒng)計(jì)項(xiàng)為基本單元構(gòu)建模板、數(shù)據(jù)ETL過(guò)程、數(shù)據(jù)庫(kù)中表的格式設(shè)計(jì)和單元編碼實(shí)現(xiàn)。

4.1 報(bào)表模板的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)

  4.1.1 模板功能的分析和設(shè)計(jì)

  在分析了市場(chǎng)對(duì)報(bào)表系統(tǒng)的功能需求和系統(tǒng)開(kāi)發(fā)問(wèn)題后,就需要設(shè)計(jì)一套方案來(lái)解決報(bào)表系統(tǒng)靈活性問(wèn)題。

  該系統(tǒng)設(shè)計(jì)了一套標(biāo)準(zhǔn)的報(bào)表統(tǒng)計(jì)模板來(lái)完成報(bào)表的靈活和通用特性問(wèn)題。一個(gè)模板是針對(duì)一個(gè)呼叫中心對(duì)象的相關(guān)信息配置。對(duì)于用戶給出的任何一個(gè)報(bào)表需求,只需要利用可視化的報(bào)表設(shè)計(jì)工具設(shè)計(jì)一個(gè)報(bào)表模板,再將其加載到ETL服務(wù)中。ETL服務(wù)便可以從ODS源數(shù)據(jù)庫(kù)中提取相關(guān)數(shù)據(jù)做處理,最終加載到報(bào)表數(shù)據(jù)庫(kù)中。然后將報(bào)表數(shù)據(jù)庫(kù)中的數(shù)據(jù)利用報(bào)表展現(xiàn)工具展現(xiàn)出來(lái)就可以生成報(bào)表。從而令報(bào)表的功能設(shè)計(jì)較為靈活,也更加方便。因此,在報(bào)表模板的設(shè)計(jì)時(shí)應(yīng)該有以下幾點(diǎn)考慮:

  1.已經(jīng)定制的報(bào)表模板可以很簡(jiǎn)單地被整合重用。相關(guān)內(nèi)容的報(bào)表需求只需要對(duì)此模板進(jìn)行少量的修改即可實(shí)現(xiàn),從而節(jié)省新建模板的時(shí)間。

  2.根據(jù)企業(yè)不同的需求,能夠滿足企業(yè)的實(shí)用性要求。所以模板設(shè)計(jì)要具備靈活且面向業(yè)務(wù)的歷史報(bào)表分析功能,使這個(gè)歷史報(bào)表系統(tǒng)可以追蹤所有和企業(yè)活動(dòng)有關(guān)的必要的數(shù)據(jù),并把它們記錄在數(shù)據(jù)庫(kù)中,為每一個(gè)客戶互動(dòng)事件建立一個(gè)歷史紀(jì)錄,并沿著互動(dòng)事件的路線,自始至終進(jìn)行追蹤,完整記錄每次互動(dòng)從開(kāi)始到完成的路徑。

  3.系統(tǒng)應(yīng)該提供給報(bào)表最終用戶可視化的報(bào)表分析工具,使其能夠自定義模板,且對(duì)于不同的報(bào)表需求,他們可以利用此工具根據(jù)其邏輯定義自行創(chuàng)建新的統(tǒng)計(jì)規(guī)則,以完成變化的、滿足客戶需求的數(shù)據(jù)收集。

  4.模板設(shè)計(jì)工具能夠完成報(bào)表模板設(shè)計(jì)、模板加載、數(shù)據(jù)過(guò)濾設(shè)計(jì)功能,并且利用該工具,能夠增加報(bào)表模板或修改報(bào)表模板。而且也支持用戶開(kāi)發(fā)與應(yīng)用,從而用戶可以根據(jù)系統(tǒng)事先定義的規(guī)則,自己對(duì)其進(jìn)行開(kāi)發(fā)和應(yīng)用。

  根據(jù)以上報(bào)表模板分析,模板的設(shè)計(jì)結(jié)構(gòu)框架如圖4.1所示。

圖4.1 模板結(jié)構(gòu)框架圖

  由模板結(jié)構(gòu)框架圖得知,模板包括模板名稱,數(shù)據(jù)統(tǒng)計(jì)對(duì)象,收集數(shù)據(jù)的頻率和多個(gè)基本統(tǒng)計(jì)項(xiàng)。其中,每個(gè)統(tǒng)計(jì)項(xiàng)對(duì)應(yīng)著統(tǒng)計(jì)對(duì)象(如:坐席,路由點(diǎn)等)的一條統(tǒng)計(jì)內(nèi)容信息(如:1小時(shí)內(nèi)的呼叫總量等)。然后由這些統(tǒng)計(jì)項(xiàng)和統(tǒng)計(jì)參數(shù)組合成模板,從而構(gòu)成對(duì)呼叫中心對(duì)象的統(tǒng)計(jì)信息。

  模板的劃分用來(lái)簡(jiǎn)化了報(bào)表的復(fù)雜性。根據(jù)這些關(guān)鍵性模板,以公正的最重要的呼叫中心的統(tǒng)計(jì)資料過(guò)濾關(guān)鍵性數(shù)據(jù),然后以各種各樣的可視化顯示技術(shù)來(lái)展示報(bào)表數(shù)據(jù)。

  4.1.2 統(tǒng)計(jì)項(xiàng)細(xì)分

  該報(bào)表系統(tǒng)設(shè)計(jì)的模板,用來(lái)對(duì)呼叫中心中相關(guān)對(duì)象做相應(yīng)的數(shù)據(jù)統(tǒng)計(jì)。報(bào)表模板的設(shè)計(jì)目的是讓報(bào)表的功能設(shè)計(jì)更加靈活,維護(hù)也更加方便。但是若要使模板的功能能夠通用,就應(yīng)該對(duì)模板內(nèi)部單元做詳細(xì)而規(guī)則的劃分。從而系統(tǒng)需要將模板分為相互獨(dú)立的,確定范圍的,而又相互聯(lián)系的基本單元,通過(guò)有限的各基本單元的選擇配置組合來(lái)實(shí)現(xiàn)所有數(shù)據(jù)統(tǒng)計(jì)模板的構(gòu)建。這樣,通過(guò)該模板的加載去收集相應(yīng)的報(bào)表數(shù)據(jù),以達(dá)到報(bào)表統(tǒng)計(jì)靈活通用的目的。

  然而,在現(xiàn)代呼叫中心尤其是大型的呼叫中心中,數(shù)據(jù)量是巨大的,且形式也各種各樣。要想把報(bào)表模板劃分成規(guī)范而整體可以覆蓋全面的子單元,就需要對(duì)呼叫中心中報(bào)表統(tǒng)計(jì)數(shù)據(jù)的規(guī)律性進(jìn)行研究。不過(guò)呼叫中心中的報(bào)表數(shù)據(jù)劃分也不是孤立的,而是相互之間存在著一定的適用條件聯(lián)系。報(bào)表數(shù)據(jù)統(tǒng)計(jì)都應(yīng)該表現(xiàn)出研究對(duì)象的本質(zhì)屬性:服務(wù)的對(duì)象、基本內(nèi)容、實(shí)現(xiàn)的功能等。

  從呼叫中心報(bào)表數(shù)據(jù)的規(guī)則性而言,它的每一條記錄都包括監(jiān)控的對(duì)象,收集的數(shù)據(jù)內(nèi)容和收集的時(shí)間段三部分。監(jiān)控的對(duì)象表明它是一個(gè)坐席,坐席組,路由點(diǎn),隊(duì)列,分機(jī),隊(duì)列組,IVR對(duì)象等。收集的數(shù)據(jù)內(nèi)容表示統(tǒng)計(jì)的最長(zhǎng)通話時(shí)間,內(nèi)線呼叫總量,平均等待時(shí)間等。收集的時(shí)間段表示收集數(shù)據(jù)的頻率,如15分鐘表示每15分鐘收集一次數(shù)據(jù)。統(tǒng)計(jì)項(xiàng)劃分后,每一個(gè)統(tǒng)計(jì)項(xiàng)就對(duì)應(yīng)一個(gè)報(bào)表需求統(tǒng)計(jì)數(shù)據(jù)的配置。如要統(tǒng)計(jì)每天路由點(diǎn)上所有的呼入量和接通量,則需要對(duì)路由點(diǎn)這個(gè)對(duì)象做個(gè)模板,再在這個(gè)模板中創(chuàng)建兩個(gè)統(tǒng)計(jì)項(xiàng)。分別為統(tǒng)計(jì)該天呼入量和接通量的相關(guān)配置。

  基于以上研究對(duì)象的本質(zhì)屬性分析,下面完成模板統(tǒng)計(jì)項(xiàng)的細(xì)分。

  在研究一個(gè)模板進(jìn)行細(xì)分時(shí),首先必須確定其統(tǒng)計(jì)目標(biāo),統(tǒng)計(jì)時(shí)間段和統(tǒng)計(jì)內(nèi)容等。在模板加載后,用戶也可以對(duì)這些配置在進(jìn)行修改,同時(shí)還可以添加和刪除統(tǒng)計(jì)項(xiàng)。

  根據(jù)系統(tǒng)對(duì)統(tǒng)計(jì)項(xiàng)劃分的分析,模板的構(gòu)造單元?jiǎng)澐趾,其結(jié)構(gòu)如圖4.2所示。

圖4.2 模板結(jié)構(gòu)圖

  根據(jù)模板結(jié)構(gòu)圖,每一個(gè)模板包含一個(gè)對(duì)象類型(Object Type),一個(gè)唯一的模板名稱(Template Name),一個(gè)時(shí)間收集頻率(Time Profile)和多個(gè)統(tǒng)計(jì)項(xiàng)(Statistics Units)。

  1.對(duì)象類型

  對(duì)象類型用來(lái)說(shuō)明報(bào)表數(shù)據(jù)統(tǒng)計(jì)的對(duì)象類型,包括坐席(Agent), 坐席組(AgentGroup), 隊(duì)列(Queue), 隊(duì)列組(QueueGroup), 路由點(diǎn)(RoutePoint), 分機(jī)(Extension), 技能組(SkillGroup),自助語(yǔ)音呼叫(IVR)等等。

  2.數(shù)據(jù)收集頻率

  數(shù)據(jù)收集頻率表示收集數(shù)據(jù)的時(shí)間段,它定義了一個(gè)收集數(shù)據(jù)的時(shí)間間隔,默認(rèn)為15分鐘。用戶可以自己添加或更改收集數(shù)據(jù)的時(shí)間段。

  3.統(tǒng)計(jì)項(xiàng)

  一個(gè)模板可以包括一個(gè)或者多個(gè)統(tǒng)計(jì)項(xiàng),用來(lái)說(shuō)明統(tǒng)計(jì)的內(nèi)容。每個(gè)統(tǒng)計(jì)項(xiàng)參數(shù)需要再細(xì)分,使其進(jìn)行組合后可以涵蓋所有的常用功能。在統(tǒng)計(jì)項(xiàng)細(xì)分后,每個(gè)統(tǒng)計(jì)項(xiàng)參數(shù)主要包括以下四個(gè)方面:列名(Column Name),統(tǒng)計(jì)內(nèi)容(Stat Type),時(shí)間范圍(Time Range),過(guò)濾項(xiàng)(Filter)。另外,統(tǒng)計(jì)項(xiàng)創(chuàng)建時(shí),還可以給該統(tǒng)計(jì)參數(shù)增加一個(gè)描述以說(shuō)明統(tǒng)計(jì)項(xiàng)的作用。

  1. 列名表示ETL服務(wù)根據(jù)該統(tǒng)計(jì)項(xiàng)收集的數(shù)據(jù)存放到數(shù)據(jù)庫(kù)對(duì)應(yīng)的表中的屬性名。

  2. 時(shí)間范圍是一次話務(wù)各操作持續(xù)的時(shí)間劃定。如:要統(tǒng)計(jì)通話時(shí)間在10秒和30秒之間的話務(wù)量,就需要在時(shí)間范圍選擇時(shí)添加一個(gè)10-30秒的Time Ranges選項(xiàng)。


  3. 過(guò)濾項(xiàng)表示根據(jù)報(bào)表需求添加的一些過(guò)濾項(xiàng)配置。例如要統(tǒng)計(jì)所有多媒體相關(guān)的呼叫,這就需要在統(tǒng)計(jì)項(xiàng)中添加一個(gè)MediaType=Multimedia的過(guò)濾項(xiàng),來(lái)對(duì)呼叫中心傳遞的數(shù)據(jù)進(jìn)行過(guò)濾。通過(guò)過(guò)濾項(xiàng)的配置,系統(tǒng)可以過(guò)濾外撥,內(nèi)線呼叫等信息。


  4. 統(tǒng)計(jì)內(nèi)容主要用來(lái)配置報(bào)表統(tǒng)計(jì)的細(xì)節(jié)內(nèi)容。它由統(tǒng)計(jì)類別(Category),統(tǒng)計(jì)對(duì)象(Objects),話務(wù)操作(Actions),公式(Formula)四個(gè)屬性組成。

  統(tǒng)計(jì)類別也叫數(shù)據(jù)類別,它用來(lái)表示報(bào)表數(shù)據(jù)統(tǒng)計(jì)的內(nèi)容類別,它包括TotalTime,TotalAdjustTime,TotalNumber,TotalAdjustNumber,AverageTime,AverageNumber,MaxTime, MaxNumber, MinTime,MinNumber等,表示報(bào)表統(tǒng)計(jì)數(shù)據(jù)的類別:總時(shí)間,總數(shù)量,平均時(shí)間,平均數(shù)量,最大時(shí)間,最大數(shù)量,最小時(shí)間,最少數(shù)量等。

  統(tǒng)計(jì)對(duì)象是針對(duì)前面選擇的統(tǒng)計(jì)類型列出所有的相關(guān)的統(tǒng)計(jì)對(duì)象,通過(guò)選擇統(tǒng)計(jì)對(duì)象來(lái)對(duì)具體的統(tǒng)計(jì)目標(biāo)進(jìn)行指定。例如,在數(shù)據(jù)對(duì)象選擇時(shí),可以選坐席號(hào)為3001和3005的坐席以做相關(guān)數(shù)據(jù)統(tǒng)計(jì)。

  話務(wù)操作是決定最終統(tǒng)計(jì)數(shù)據(jù)的基礎(chǔ),從其選擇可以解析出數(shù)據(jù)統(tǒng)計(jì)的開(kāi)始計(jì)時(shí)或計(jì)數(shù)的初始化狀態(tài)和結(jié)束狀態(tài)。操作應(yīng)該包括特定情況下的話務(wù)操作,詳細(xì)內(nèi)容如表4.1所示。

表4.1 話務(wù)操作功能表

  這些話務(wù)操作有的屬于持續(xù)的一種狀態(tài),也有的是一個(gè)瞬時(shí)動(dòng)作。在對(duì)其選擇后,ETL服務(wù)就會(huì)對(duì)統(tǒng)計(jì)事件進(jìn)行相應(yīng)過(guò)濾,由此確定收集數(shù)據(jù)的起始,從而對(duì)報(bào)表統(tǒng)計(jì)數(shù)據(jù)進(jìn)行相關(guān)的處理。 


  公式的設(shè)計(jì)使系統(tǒng)支持一些常用公式,公式中也可以包括一些封裝好的常用函數(shù)。它可以對(duì)話路中的隨路數(shù)據(jù)或者用戶在業(yè)務(wù)管理時(shí)添加的數(shù)據(jù)進(jìn)行處理。比如GetValue(“CTI”), 它可以獲得隨路數(shù)據(jù)中“CTI”對(duì)應(yīng)的數(shù)據(jù)。

  4.1.3 模板的構(gòu)建與加載

  在模板統(tǒng)計(jì)項(xiàng)劃分后,就需要根據(jù)劃分的統(tǒng)計(jì)項(xiàng)進(jìn)行組合,創(chuàng)建一個(gè)模板。創(chuàng)建一個(gè)模板就是構(gòu)造一種方法,用來(lái)告訴ETL 服務(wù)一種收集信息的需求。而報(bào)表的需求就是將這些模板組合在一起,再根據(jù)這些模板對(duì)呼叫中心所傳遞的數(shù)據(jù)進(jìn)行過(guò)濾、轉(zhuǎn)換、清洗并加載到數(shù)據(jù)倉(cāng)庫(kù)中,最后用報(bào)表展現(xiàn)工具將之顯示出來(lái)形成報(bào)表。

  模板的構(gòu)建需要將各個(gè)統(tǒng)計(jì)項(xiàng)按一定的次序整合到一起,組成一個(gè)完整的統(tǒng)計(jì)某對(duì)象的數(shù)據(jù)記錄。ETL服務(wù)就會(huì)根據(jù)這個(gè)記錄的配置,來(lái)對(duì)其進(jìn)行相關(guān)的數(shù)據(jù)統(tǒng)計(jì)。模板的構(gòu)建流程如圖4.3所示。

圖4.3 模板構(gòu)建流程圖

  在模板的創(chuàng)建過(guò)程中,首先必須給該模板指定一個(gè)名字,該名字不能重復(fù)。再者,需要選擇模板要統(tǒng)計(jì)的模板類型以及要對(duì)該模板收集數(shù)據(jù)的頻率,例如:10分鐘收集一次數(shù)據(jù)。

  然后創(chuàng)建該模板需要進(jìn)行數(shù)據(jù)統(tǒng)計(jì)的統(tǒng)計(jì)項(xiàng),如最大等待時(shí)間,外撥呼叫量等。這就需要先給統(tǒng)計(jì)項(xiàng)一個(gè)名字和一個(gè)屬性列名稱,這個(gè)屬性列名稱是它過(guò)濾的數(shù)據(jù)在數(shù)據(jù)庫(kù)相應(yīng)表中的列屬性名。比如把統(tǒng)計(jì)項(xiàng)為T(mén)otal_Time_Waiting的列屬性名稱指定為T(mén)_Waiting,則在數(shù)據(jù)庫(kù)的相應(yīng)表中屬性列為T(mén)_Waiting的數(shù)據(jù)就是根據(jù)該統(tǒng)計(jì)項(xiàng)所做的數(shù)據(jù)統(tǒng)計(jì)結(jié)果。

  再者,需要為模板指定時(shí)間范圍,從而對(duì)統(tǒng)計(jì)的時(shí)間段做一個(gè)限制。然后可以選擇一個(gè)過(guò)濾項(xiàng)來(lái)過(guò)濾不符合要求的呼叫。同時(shí)還可以為該統(tǒng)計(jì)項(xiàng)添加一個(gè)描述,以說(shuō)明這個(gè)統(tǒng)計(jì)項(xiàng)的用途。

  在統(tǒng)計(jì)項(xiàng)時(shí)間范圍配置完成后, 就需要對(duì)統(tǒng)計(jì)內(nèi)容進(jìn)行相關(guān)的配置。系統(tǒng)可以配置統(tǒng)計(jì)的對(duì)象、統(tǒng)計(jì)類別、話務(wù)操作,來(lái)完成具體的統(tǒng)計(jì)目標(biāo)配置信息。另外還可以添加一些公式來(lái)對(duì)自定義的一些屬性來(lái)進(jìn)行配置。比如,用戶若要過(guò)濾業(yè)務(wù)自定義的參數(shù)“GVP”為5的呼叫,這時(shí)候要用到Formula公式。在參數(shù)配置時(shí)需要在公式處添加一個(gè)配置GetValue(“GVP”)==’5’。在模板配置完成后,將模板加載,這樣在模板的加載狀態(tài)就會(huì)被標(biāo)志為加載狀態(tài)。然后ETL服務(wù)運(yùn)行時(shí),相應(yīng)報(bào)表數(shù)據(jù)將會(huì)根據(jù)這些配置在規(guī)定的時(shí)間間隔內(nèi)被抽取。

  針對(duì)模板的構(gòu)建,需要對(duì)每一個(gè)統(tǒng)計(jì)對(duì)象一般常用的統(tǒng)計(jì)信息進(jìn)行封裝,創(chuàng)造出一個(gè)默認(rèn)的模板。在報(bào)表系統(tǒng)使用的時(shí)候,系統(tǒng)會(huì)自動(dòng)將默認(rèn)的模板加載上去,再根據(jù)特定的報(bào)表需求,對(duì)默認(rèn)模板中沒(méi)有的統(tǒng)計(jì)項(xiàng)進(jìn)行添加。

  需要指出的是,在創(chuàng)建模板時(shí),若使用者對(duì)模板的名稱輸入有一定的規(guī)范性,系統(tǒng)將會(huì)自動(dòng)生成一個(gè)或者多個(gè)較為符合邏輯的模板以供選擇。如模板名稱為T(mén)otal_Hold_Time,則模板的各統(tǒng)計(jì)項(xiàng)選擇則會(huì)自動(dòng)按照Total, Hold, Time出現(xiàn)的次數(shù)來(lái)排序組成模板以供使用者選擇。若給出的選項(xiàng)都不符合要求,則可以對(duì)各統(tǒng)計(jì)項(xiàng)進(jìn)行自定義。

  另外,雖然對(duì)模板進(jìn)行統(tǒng)計(jì)項(xiàng)的劃分可以使報(bào)表數(shù)據(jù)的統(tǒng)計(jì)更加靈活,更加通用,但是,當(dāng)功能過(guò)于復(fù)雜時(shí)若實(shí)現(xiàn)上有了一定的障礙,從而需要添加新的統(tǒng)計(jì)類別,所以本系統(tǒng)需要不斷的改進(jìn)和完善。

  4.1.4 具體實(shí)現(xiàn)與相關(guān)類圖

  在報(bào)表模板細(xì)分之后,該部分來(lái)完成相應(yīng)的編碼,主要實(shí)現(xiàn)報(bào)表模板的統(tǒng)計(jì)項(xiàng)以及由它而分的其他各基本單元的編碼設(shè)計(jì)。

  該部分在分析邏輯定義,解析數(shù)據(jù)信息的基礎(chǔ)上,構(gòu)造報(bào)表的模板代碼,分析報(bào)表的布局,從而建立真正的報(bào)表。

  該部分是將模板以及相關(guān)統(tǒng)計(jì)項(xiàng)劃分為各個(gè)單元后,將各單元封裝成單獨(dú)的代碼,并在分析邏輯定義基礎(chǔ)上解析數(shù)據(jù)信息,對(duì)模板代碼進(jìn)行獨(dú)立加載。從本質(zhì)中看,單元編碼就是,根據(jù)報(bào)表模板各部分的ID標(biāo)識(shí)號(hào),將所有的參數(shù)信息填充入數(shù)據(jù)庫(kù)中。

  此外,設(shè)計(jì)系統(tǒng)時(shí)還應(yīng)該封裝一些常用的函數(shù)為公式(Formula)調(diào)用,從而使其可以直接在可視化設(shè)計(jì)中對(duì)函數(shù)進(jìn)行自動(dòng)調(diào)用。

  根據(jù)數(shù)據(jù)庫(kù)中設(shè)計(jì)的模板配置儲(chǔ)存,模板加載后,系統(tǒng)就會(huì)對(duì)數(shù)據(jù)庫(kù)中的所有配置信息進(jìn)行遍歷,獲取每個(gè)信息的名稱和內(nèi)容等,組裝成報(bào)表請(qǐng)求信息進(jìn)行發(fā)送,交給ETL服務(wù)進(jìn)行處理。

  在編碼之前,還需要對(duì)模板的各參數(shù)配置進(jìn)行研究。根據(jù)模板的構(gòu)建流程圖,系統(tǒng)將模板參數(shù)的配置順序以及各參數(shù)在模板中的位置結(jié)構(gòu)進(jìn)行規(guī)劃,如圖4.4所示。

圖4.4 模板參數(shù)配置結(jié)構(gòu)圖

  根據(jù)模板參數(shù)的配置結(jié)構(gòu)圖來(lái)對(duì)報(bào)表模板的各基本單元進(jìn)行編碼設(shè)計(jì),其相關(guān)實(shí)現(xiàn)類圖 [32]如圖4.5所示。

圖4.5 報(bào)表模板細(xì)分類圖

  從以上類圖結(jié)構(gòu)可得,報(bào)表模板設(shè)計(jì)中包括以下類:

  1. CReportTemplate:該類的作用是構(gòu)造報(bào)表模板。

  2. CObjectType:統(tǒng)計(jì)對(duì)象類型。

  3. CUnit:統(tǒng)計(jì)項(xiàng)類,用來(lái)設(shè)計(jì)統(tǒng)計(jì)項(xiàng)的各參數(shù)。

  4. CTimeProfile:此類是一個(gè)時(shí)間段,用來(lái)指定收集數(shù)據(jù)的頻率。

  5. CStatType:統(tǒng)計(jì)內(nèi)容設(shè)計(jì)類。

  6. CTimeRange:時(shí)間范圍設(shè)置類。

  7. CFilter:過(guò)濾信息類。
  8. CObject:統(tǒng)計(jì)對(duì)象類。

  9. CCategory:數(shù)據(jù)統(tǒng)計(jì)類別。

  10. CFormula:公式編輯。

  11. CAction:話務(wù)操作編輯。

4.2 數(shù)據(jù)庫(kù)模塊詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)

  報(bào)表系統(tǒng)中對(duì)數(shù)據(jù)庫(kù)表的管理是其很重要的部分。本節(jié)主要介紹數(shù)據(jù)庫(kù)配置相關(guān)的一些設(shè)計(jì)與實(shí)現(xiàn)。

  4.2.1 配置數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)

  配置數(shù)據(jù)庫(kù)的作用是儲(chǔ)存呼叫中心各對(duì)象的相關(guān)配置,包括一些基本對(duì)象和模板相關(guān)信息的配置。它對(duì)基本對(duì)象的配置包括一些對(duì)象ID,對(duì)象名,成員等。如坐席組A中含有哪些坐席等信息。其中,配置數(shù)據(jù)庫(kù)中對(duì)模板配置的儲(chǔ)存模型如圖4.6所示。

圖4.6 模板配置存儲(chǔ)模型圖

  在模板配置存儲(chǔ)模型圖中,分別建立了單獨(dú)的表對(duì)模板劃分的每一個(gè)基本對(duì)象進(jìn)行儲(chǔ)存。表template存儲(chǔ)模板的配置信息,stat_unit表存儲(chǔ)了統(tǒng)計(jì)項(xiàng)的基本信息,stat_type表是一些有關(guān)模板具體內(nèi)容的配置。各表之間通過(guò)各自的ID標(biāo)識(shí)號(hào)來(lái)進(jìn)行關(guān)聯(lián)。不過(guò)一個(gè)模板可以包括多個(gè)統(tǒng)計(jì)單元,一個(gè)統(tǒng)計(jì)項(xiàng)可以包含多個(gè)過(guò)濾項(xiàng),一個(gè)統(tǒng)計(jì)內(nèi)容可以包含多個(gè)公式,這樣他們之間的ID關(guān)聯(lián)就成為1對(duì)多的關(guān)系。在這種情況下,父項(xiàng)中的ID關(guān)聯(lián)多個(gè)子項(xiàng)ID,其間是用逗號(hào)分隔。

  數(shù)據(jù)庫(kù)存儲(chǔ)模型中,像time_range_expression,filter_expression,formula_expression描述的內(nèi)容是由報(bào)表設(shè)計(jì)工具生成的一個(gè)判斷語(yǔ)句,用來(lái)做編碼時(shí)進(jìn)行的過(guò)濾。如上一節(jié)的舉例,過(guò)濾自定義參數(shù)“GVP”為5的呼叫,需要在formula中添加的選項(xiàng)是GetValue(“GVP”)==’5’,則formula_expression的語(yǔ)句封裝為“if(GetValue(“GVP”)= =’5’);”。其中的函數(shù)是程序中定義用來(lái)獲取隨路數(shù)據(jù)的。

  另外,為了便于操作,對(duì)模板的儲(chǔ)存還可以以XML文件信息將其導(dǎo)出并儲(chǔ)存到計(jì)算機(jī)的磁盤(pán)中,作物理備份。在一個(gè)新的報(bào)表系統(tǒng)使用時(shí)候,可以將這些模板進(jìn)行導(dǎo)入,然后模板的配置信息就會(huì)自動(dòng)導(dǎo)入,不需要重新創(chuàng)建模板。其中導(dǎo)出和導(dǎo)入的XML文檔內(nèi)容具有規(guī)則的格式,如圖4.7所示。

圖4.7 模板物理存儲(chǔ)例圖

  在模板導(dǎo)出的XML儲(chǔ)存圖中,ReportVersion屬性為報(bào)表系統(tǒng)的版本號(hào)。Template信息用來(lái)指定一個(gè)模板名字,給模板一個(gè)唯一的模板ID,再指定該模板是否激活,另外也為該模板添加了注釋。該例中是對(duì)所有坐席活動(dòng)的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)。ObjectType為模板的統(tǒng)計(jì)類型,該模板中統(tǒng)計(jì)類型為坐席(Agent)。TimeProfile為設(shè)定收集的時(shí)間間隔,本例中為從每天的0點(diǎn)0分開(kāi)始,每隔15分鐘收集一次。Statistic對(duì)應(yīng)了一個(gè)統(tǒng)計(jì)內(nèi)容配置,根據(jù)StatTypeID在下面將列出詳細(xì)內(nèi)容。本例中StatTypeID為19,下面的StatType中將會(huì)根據(jù)StatTypeID與之相對(duì)應(yīng),其中配置了Category, Objects ,Actions, TimeRange, Filter以及該StatType的注釋。

  在該報(bào)表系統(tǒng)設(shè)計(jì)時(shí),報(bào)表模板的配置數(shù)據(jù)物理地存放在XML文檔中,就類似于一個(gè)小型的數(shù)據(jù)庫(kù)。XML文檔結(jié)構(gòu)性好,操作起來(lái)十分容易。而且在生成報(bào)表數(shù)據(jù)框架的時(shí)候,都有相應(yīng)的類型定義,因此對(duì)于不同的數(shù)據(jù)類型操作也很方便。

  4.2.2 ODS源數(shù)據(jù)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)

  在呼叫中心的相關(guān)對(duì)象和呼叫中心服務(wù)進(jìn)行通訊后,呼叫中心的狀態(tài)服務(wù)器將會(huì)把數(shù)據(jù)信息按照一定的格式存儲(chǔ)到ODS源數(shù)據(jù)庫(kù)中。報(bào)表系統(tǒng)便從ODS源數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)以供報(bào)表生成所用。

  在呼叫中心服務(wù)器發(fā)送事件時(shí),它都會(huì)對(duì)事件的對(duì)象指定的一個(gè)狀態(tài)。在任何時(shí)間,ODS源數(shù)據(jù)庫(kù)中,每個(gè)對(duì)象都被指定成一個(gè)唯一的狀態(tài)。這些狀態(tài)都來(lái)自話務(wù)對(duì)象的操作。

  ODS源數(shù)據(jù)庫(kù)中數(shù)據(jù)儲(chǔ)存的數(shù)據(jù)庫(kù)模型如圖4.8所示。

圖4.8 ODS源數(shù)據(jù)庫(kù)模型圖

  根據(jù)ODS源數(shù)據(jù)庫(kù)模型圖,ods_data表中存儲(chǔ)了事件發(fā)送的時(shí)間(time_key)、事件(event)、報(bào)表統(tǒng)計(jì)對(duì)象(object)、對(duì)象狀態(tài)(object_stat)、對(duì)象類型(object_type)以及一些隨路數(shù)據(jù)(attach_data)等信息。這些對(duì)象的詳細(xì)信息都是以各部分的ID來(lái)對(duì)內(nèi)容進(jìn)行關(guān)聯(lián)。

  另外,ODS源數(shù)據(jù)庫(kù)中事件存儲(chǔ)的相應(yīng)表的命名為ods_data加一個(gè)數(shù)字。當(dāng)表中的數(shù)據(jù)不斷的增加,達(dá)到1000條記錄時(shí),系統(tǒng)將會(huì)建立新表來(lái)儲(chǔ)存新的數(shù)據(jù),其表名按ods_data1,ods_data2……數(shù)字疊加的規(guī)則來(lái)指定。

  4.2.3 報(bào)表數(shù)據(jù)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)

  報(bào)表數(shù)據(jù)庫(kù)作為報(bào)表展現(xiàn)數(shù)據(jù)最直接的數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)的存儲(chǔ)是存在一定的規(guī)則。因?yàn)橄到y(tǒng)對(duì)數(shù)據(jù)的相關(guān)處理是通過(guò)模板的操作來(lái)實(shí)現(xiàn)的,所以數(shù)據(jù)的存儲(chǔ)和模板的配置有關(guān)。數(shù)據(jù)庫(kù)中表的存儲(chǔ)結(jié)構(gòu)如圖4.9所示。

圖4.9 報(bào)表數(shù)據(jù)庫(kù)模型圖

  表temp_name_time中存儲(chǔ)了根據(jù)模板進(jìn)行處理的報(bào)表最終數(shù)據(jù),其中,temp_name_time不是具體的表名,它是一個(gè)泛指。它的命名是模板的名字加上統(tǒng)計(jì)的時(shí)間間隔。而stat_colume1也不是具體的表名,它是一個(gè)統(tǒng)計(jì)項(xiàng)列名的代稱。如果模板的名字為AGENT_TEMPLATE,該模板的統(tǒng)計(jì)項(xiàng)有THOLD、TTRANS- FER、NINBOUND等。其過(guò)濾后的相關(guān)數(shù)據(jù)存儲(chǔ)的默認(rèn)表有:AGENT_TEMPLA- TE_HOUR、AGENT_TEMPLATE_DAY、AGENT_TEMPLATE _WEEK、AGENT- _TEMPLATE_MONTH、AGENT_TEMPLATE_YEARK。依次表示該模板按照小時(shí),天,周,月,年來(lái)統(tǒng)計(jì)的數(shù)據(jù)。這些表中的stat_column屬性名被實(shí)際的列屬性名代替,分別為T(mén)HOLD、TTRANSFER、NINBOUND等,表示統(tǒng)計(jì)目標(biāo)的話務(wù)保持時(shí)間,轉(zhuǎn)接電話時(shí)間和內(nèi)線呼叫量。根據(jù)這個(gè)格式規(guī)則,各種報(bào)表展現(xiàn)工具都可以通過(guò)讀取數(shù)據(jù)庫(kù),直接生成所需要統(tǒng)計(jì)的報(bào)表。

  最終的報(bào)表是讀取該儲(chǔ)存模式的數(shù)據(jù)后進(jìn)行數(shù)據(jù)填寫(xiě),顯示諸如“已收到的關(guān)于產(chǎn)品X的電話數(shù)量”或 “客服代表組 A 所創(chuàng)造的收入” “客戶答應(yīng)付款” 或 “每個(gè)呼出活動(dòng)的銷(xiāo)售率”之類的信息,可以對(duì)資源的有效性進(jìn)行分析。有了這種功能,管理人員就可以依據(jù)信息制定決策來(lái)改善與客戶的互動(dòng)關(guān)系,并抓住交叉銷(xiāo)售和向上銷(xiāo)售的機(jī)會(huì)。

4.3 數(shù)據(jù)ETL過(guò)程詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)

  4.3.1 數(shù)據(jù)ETL流程設(shè)計(jì)

  在報(bào)表設(shè)計(jì)工具創(chuàng)建模板后,這些模板的配置會(huì)被傳送至ETL服務(wù),然后ETL服務(wù)將這些模板的配置信息寫(xiě)進(jìn)配置數(shù)據(jù)庫(kù)中。

  ETL 服務(wù)是報(bào)表設(shè)計(jì)工具的服務(wù)器,它主要進(jìn)行數(shù)據(jù)的抽取、轉(zhuǎn)換和加載。當(dāng)報(bào)表設(shè)計(jì)工具對(duì)模板以及其他一些相關(guān)配置進(jìn)行修改時(shí),如:Filters, Time Range等,報(bào)表設(shè)計(jì)工具會(huì)將模板修改的信息傳遞給ETL服務(wù),再對(duì)配置數(shù)據(jù)庫(kù)進(jìn)行相應(yīng)的修改。當(dāng)報(bào)表設(shè)計(jì)工具加載一個(gè)報(bào)表模板后,它也會(huì)通知ETL服務(wù),ETL服務(wù)將會(huì)在配置數(shù)據(jù)庫(kù)中對(duì)該模板添加模板加載標(biāo)志。相反,卸載一個(gè)模板時(shí),將會(huì)刪除模板加載標(biāo)志。

  本系統(tǒng)的數(shù)據(jù)ETL詳細(xì)步驟如圖4.10所示。

圖4.10 系統(tǒng)數(shù)據(jù)ETL流程圖

  根據(jù)流程圖,ETL服務(wù)先讀取配置數(shù)據(jù)庫(kù)中的基本對(duì)象配置,按照各模板的配置依次從ODS源中抽取數(shù)據(jù)。抽取模板配置對(duì)象相關(guān)的數(shù)據(jù)后,包括時(shí)間段,對(duì)象狀態(tài)等信息,將其存儲(chǔ)到臨時(shí)數(shù)據(jù)庫(kù)中。

  在ETL服務(wù)將抽取數(shù)據(jù)存儲(chǔ)到臨時(shí)數(shù)據(jù)庫(kù)后,再根據(jù)一定的轉(zhuǎn)換規(guī)則,對(duì)抽取的數(shù)據(jù)進(jìn)行轉(zhuǎn)換。數(shù)據(jù)轉(zhuǎn)換完成后再對(duì)其進(jìn)行一些必要的處理,清除那些不正確的,不完整的數(shù)據(jù),再對(duì)數(shù)據(jù)的格式等進(jìn)行加工,最后加載到報(bào)表數(shù)據(jù)庫(kù)中。

  當(dāng)數(shù)據(jù)加載到報(bào)表數(shù)據(jù)庫(kù)完畢后,在一定時(shí)間內(nèi)再將臨時(shí)數(shù)據(jù)庫(kù)中相關(guān)用表刪除掉,減少數(shù)據(jù)占用率。

  4.3.2 數(shù)據(jù)ETL過(guò)程實(shí)現(xiàn)

  在數(shù)據(jù)ETL流程中需要對(duì)ODS源數(shù)據(jù)庫(kù)按照一定的規(guī)則進(jìn)行抽取,另外,在抽取的數(shù)據(jù)進(jìn)行轉(zhuǎn)換時(shí),也需要有轉(zhuǎn)換規(guī)則。

  ODS源數(shù)據(jù)庫(kù)中的每一條記錄都對(duì)應(yīng)著一個(gè)呼叫中心中的對(duì)象的一個(gè)事件。記錄中包含事件發(fā)送的時(shí)間、報(bào)表統(tǒng)計(jì)對(duì)象名稱、對(duì)象類型,事件名稱,對(duì)象狀態(tài)等內(nèi)容。

  首先,系統(tǒng)根據(jù)收集數(shù)據(jù)的頻率,每隔固定的時(shí)間,按照每個(gè)模板中的配置信息,依次讀取統(tǒng)計(jì)對(duì)象對(duì)應(yīng)的信息。然后,將這些抽取的信息與模板ID關(guān)聯(lián),再按照固定的格式存放到臨時(shí)數(shù)據(jù)庫(kù)中。臨時(shí)數(shù)據(jù)庫(kù)中的表屬性格式為:模板ID――事件時(shí)間――對(duì)象ID――對(duì)象當(dāng)前狀態(tài)――上一次事件時(shí)間,如圖4.11所示。

圖4.11 臨時(shí)數(shù)據(jù)庫(kù)模型圖

  在數(shù)據(jù)抽取到臨時(shí)數(shù)據(jù)庫(kù)后,需要對(duì)臨時(shí)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行處理,最終轉(zhuǎn)換為報(bào)表需求的數(shù)據(jù)。

  若報(bào)表需要統(tǒng)計(jì)的類型是一般的話務(wù)總時(shí)間或者總數(shù)量,則將該收集時(shí)間段內(nèi)符合需求的話務(wù)量求和即可,即(4-1)

  其中TotalTime和TotalAdjustTime都是對(duì)話務(wù)總時(shí)間進(jìn)行統(tǒng)計(jì),但是兩者還有一定的不同。比如,要統(tǒng)計(jì)00:45-01:00之間的坐席簽入時(shí)間。若在該坐席在00:34簽入,01:00時(shí)還處于簽入的狀態(tài)。TotalTime的統(tǒng)計(jì)以該坐席的簽出事件為終結(jié)符,當(dāng)終結(jié)事件觸發(fā)時(shí),它會(huì)找到該狀態(tài)的開(kāi)始時(shí)間,利用其時(shí)間差作為結(jié)果。它統(tǒng)計(jì)的時(shí)間可能會(huì)大于時(shí)間段的時(shí)間長(zhǎng)度。但是由于在該時(shí)間段內(nèi)沒(méi)有簽出事件,所以TotalTime在該段時(shí)間統(tǒng)計(jì)的坐席簽入時(shí)間為0。而利用TotalAdjustTime統(tǒng)計(jì)時(shí),先在統(tǒng)計(jì)時(shí)間段的開(kāi)始進(jìn)行對(duì)象狀態(tài)的讀取,若此時(shí)狀態(tài)滿足條件,則它會(huì)以該時(shí)間為開(kāi)始時(shí)間,以該狀態(tài)的事件結(jié)束為終結(jié),若這段時(shí)間內(nèi)無(wú)狀態(tài)結(jié)束事件,則會(huì)以收集時(shí)間段的結(jié)束時(shí)間為終結(jié)標(biāo)志,所以TotalAdjustTime統(tǒng)計(jì)的該段坐席的簽入時(shí)間為15分鐘。TotalNumber與TotalAdjustNumber的區(qū)別是,在統(tǒng)計(jì)數(shù)量時(shí),TotalAdjustNumber會(huì)對(duì)收集時(shí)間開(kāi)始進(jìn)行一次時(shí)間判斷,若滿足條件,在數(shù)量上就會(huì)加1。TotalNumber以每個(gè)相應(yīng)事件的觸發(fā)開(kāi)始計(jì)數(shù)。

  另外,該部分還可以進(jìn)行一個(gè)最大時(shí)間、最小時(shí)間、最大數(shù)量、最小數(shù)量、平均時(shí)間以及平均數(shù)量的統(tǒng)計(jì)。這需要先把收集時(shí)間段內(nèi)所有符合條件的記錄抽取出來(lái),再將其進(jìn)行求最大、最小或平均的操作。即(4-2)
  
  在ETL 服務(wù)進(jìn)行以上方式處理數(shù)據(jù)后,再經(jīng)過(guò)一些數(shù)據(jù)清洗和加工最終轉(zhuǎn)換成以小時(shí)、天、周、月和年統(tǒng)計(jì)的規(guī)則數(shù)據(jù),并加載到報(bào)表數(shù)據(jù)庫(kù)中,以供報(bào)表生成所用。同時(shí)在報(bào)表數(shù)據(jù)庫(kù)中各表還依數(shù)據(jù)對(duì)象ID對(duì)應(yīng)關(guān)系,隨時(shí)間不斷更新。

4.4 可定制算法實(shí)現(xiàn)

  4.4.1 消息處理算法實(shí)現(xiàn)

  根據(jù)報(bào)表數(shù)據(jù)處理流程,系統(tǒng)需要靈活處理數(shù)據(jù)庫(kù)中存儲(chǔ)的話務(wù)消息,以滿足使用者的具體需求。但有時(shí)系統(tǒng)還需要對(duì)某些邏輯數(shù)據(jù)進(jìn)行特殊的處理,以使其符合用戶需求。如要收集固定時(shí)間段內(nèi)的呼叫總時(shí)間,可能會(huì)出現(xiàn)該時(shí)間段內(nèi)沒(méi)有該呼叫的開(kāi)始事件,或者無(wú)該呼叫的結(jié)束事件等的情況,所以系統(tǒng)就需要對(duì)話路的操作事件進(jìn)行一定的算法處理。

  下面文本框根據(jù)此例簡(jiǎn)要描述了消息處理算法的基本原理。

  4.4.2 模板自動(dòng)創(chuàng)建算法的實(shí)現(xiàn)

  在用戶創(chuàng)建模板的時(shí)候,首先系統(tǒng)會(huì)以一定的算法對(duì)規(guī)則的模板名稱進(jìn)行處理,從而實(shí)現(xiàn)模板的自動(dòng)創(chuàng)建。同時(shí)根據(jù)使用者對(duì)統(tǒng)計(jì)項(xiàng)使用的頻率,將其以一定的優(yōu)先級(jí)排序,進(jìn)行結(jié)構(gòu)重新組織,從而方便使用。
下面文本框簡(jiǎn)要描述了模板自動(dòng)創(chuàng)建算法的基本實(shí)現(xiàn)原理。


4.5 本章小結(jié)

  本章是可定制報(bào)表系統(tǒng)的詳細(xì)設(shè)計(jì)和具體實(shí)現(xiàn)部分,主要研究了報(bào)表模板的邏輯定義設(shè)計(jì)、統(tǒng)計(jì)項(xiàng)以及其它各基本單元的詳細(xì)劃分、模板的創(chuàng)建設(shè)計(jì)和數(shù)據(jù)ETL技術(shù)實(shí)現(xiàn),并詳細(xì)闡述了報(bào)表系統(tǒng)實(shí)現(xiàn)的相關(guān)類圖、數(shù)據(jù)ETL實(shí)現(xiàn)方法以及數(shù)據(jù)存儲(chǔ)方式。

本文未經(jīng)許可謝絕轉(zhuǎn)載!

呼叫中心中可定制報(bào)表系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(四)

作者獨(dú)家供稿 CTI論壇編輯



相關(guān)閱讀:
呼叫中心中可定制報(bào)表系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(二) 2010-01-13
呼叫中心中可定制報(bào)表系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(一) 2010-01-11
基于VoiceXML可視化IVR系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)(四) 2010-01-07
基于VoiceXML技術(shù)可視化IVR設(shè)計(jì)和實(shí)現(xiàn)(三) 2009-12-29
基于VoiceXML技術(shù)可視化IVR設(shè)計(jì)和實(shí)現(xiàn)(二) 2009-12-29