呼叫中心中可定制報表系統(tǒng)的設(shè)計與實現(xiàn)(三)
上海易谷網(wǎng)絡(luò)科技有限公司 趙延超 2010/01/27
呼叫中心中可定制報表系統(tǒng)的設(shè)計與實現(xiàn)(一)圖4.1 模板結(jié)構(gòu)框架圖
由模板結(jié)構(gòu)框架圖得知,模板包括模板名稱,數(shù)據(jù)統(tǒng)計對象,收集數(shù)據(jù)的頻率和多個基本統(tǒng)計項。其中,每個統(tǒng)計項對應(yīng)著統(tǒng)計對象(如:坐席,路由點等)的一條統(tǒng)計內(nèi)容信息(如:1小時內(nèi)的呼叫總量等)。然后由這些統(tǒng)計項和統(tǒng)計參數(shù)組合成模板,從而構(gòu)成對呼叫中心對象的統(tǒng)計信息。
模板的劃分用來簡化了報表的復(fù)雜性。根據(jù)這些關(guān)鍵性模板,以公正的最重要的呼叫中心的統(tǒng)計資料過濾關(guān)鍵性數(shù)據(jù),然后以各種各樣的可視化顯示技術(shù)來展示報表數(shù)據(jù)。
4.1.2 統(tǒng)計項細分
該報表系統(tǒng)設(shè)計的模板,用來對呼叫中心中相關(guān)對象做相應(yīng)的數(shù)據(jù)統(tǒng)計。報表模板的設(shè)計目的是讓報表的功能設(shè)計更加靈活,維護也更加方便。但是若要使模板的功能能夠通用,就應(yīng)該對模板內(nèi)部單元做詳細而規(guī)則的劃分。從而系統(tǒng)需要將模板分為相互獨立的,確定范圍的,而又相互聯(lián)系的基本單元,通過有限的各基本單元的選擇配置組合來實現(xiàn)所有數(shù)據(jù)統(tǒng)計模板的構(gòu)建。這樣,通過該模板的加載去收集相應(yīng)的報表數(shù)據(jù),以達到報表統(tǒng)計靈活通用的目的。
然而,在現(xiàn)代呼叫中心尤其是大型的呼叫中心中,數(shù)據(jù)量是巨大的,且形式也各種各樣。要想把報表模板劃分成規(guī)范而整體可以覆蓋全面的子單元,就需要對呼叫中心中報表統(tǒng)計數(shù)據(jù)的規(guī)律性進行研究。不過呼叫中心中的報表數(shù)據(jù)劃分也不是孤立的,而是相互之間存在著一定的適用條件聯(lián)系。報表數(shù)據(jù)統(tǒng)計都應(yīng)該表現(xiàn)出研究對象的本質(zhì)屬性:服務(wù)的對象、基本內(nèi)容、實現(xiàn)的功能等。
從呼叫中心報表數(shù)據(jù)的規(guī)則性而言,它的每一條記錄都包括監(jiān)控的對象,收集的數(shù)據(jù)內(nèi)容和收集的時間段三部分。監(jiān)控的對象表明它是一個坐席,坐席組,路由點,隊列,分機,隊列組,IVR對象等。收集的數(shù)據(jù)內(nèi)容表示統(tǒng)計的最長通話時間,內(nèi)線呼叫總量,平均等待時間等。收集的時間段表示收集數(shù)據(jù)的頻率,如15分鐘表示每15分鐘收集一次數(shù)據(jù)。統(tǒng)計項劃分后,每一個統(tǒng)計項就對應(yīng)一個報表需求統(tǒng)計數(shù)據(jù)的配置。如要統(tǒng)計每天路由點上所有的呼入量和接通量,則需要對路由點這個對象做個模板,再在這個模板中創(chuàng)建兩個統(tǒng)計項。分別為統(tǒng)計該天呼入量和接通量的相關(guān)配置。
基于以上研究對象的本質(zhì)屬性分析,下面完成模板統(tǒng)計項的細分。
在研究一個模板進行細分時,首先必須確定其統(tǒng)計目標,統(tǒng)計時間段和統(tǒng)計內(nèi)容等。在模板加載后,用戶也可以對這些配置在進行修改,同時還可以添加和刪除統(tǒng)計項。
根據(jù)系統(tǒng)對統(tǒng)計項劃分的分析,模板的構(gòu)造單元劃分后,其結(jié)構(gòu)如圖4.2所示。
圖4.2 模板結(jié)構(gòu)圖
根據(jù)模板結(jié)構(gòu)圖,每一個模板包含一個對象類型(Object Type),一個唯一的模板名稱(Template Name),一個時間收集頻率(Time
Profile)和多個統(tǒng)計項(Statistics Units)。
1.對象類型
對象類型用來說明報表數(shù)據(jù)統(tǒng)計的對象類型,包括坐席(Agent), 坐席組(AgentGroup), 隊列(Queue), 隊列組(QueueGroup),
路由點(RoutePoint), 分機(Extension), 技能組(SkillGroup),自助語音呼叫(IVR)等等。
2.數(shù)據(jù)收集頻率
數(shù)據(jù)收集頻率表示收集數(shù)據(jù)的時間段,它定義了一個收集數(shù)據(jù)的時間間隔,默認為15分鐘。用戶可以自己添加或更改收集數(shù)據(jù)的時間段。
3.統(tǒng)計項
一個模板可以包括一個或者多個統(tǒng)計項,用來說明統(tǒng)計的內(nèi)容。每個統(tǒng)計項參數(shù)需要再細分,使其進行組合后可以涵蓋所有的常用功能。在統(tǒng)計項細分后,每個統(tǒng)計項參數(shù)主要包括以下四個方面:列名(Column
Name),統(tǒng)計內(nèi)容(Stat Type),時間范圍(Time Range),過濾項(Filter)。另外,統(tǒng)計項創(chuàng)建時,還可以給該統(tǒng)計參數(shù)增加一個描述以說明統(tǒng)計項的作用。
表4.1 話務(wù)操作功能表
這些話務(wù)操作有的屬于持續(xù)的一種狀態(tài),也有的是一個瞬時動作。在對其選擇后,ETL服務(wù)就會對統(tǒng)計事件進行相應(yīng)過濾,由此確定收集數(shù)據(jù)的起始,從而對報表統(tǒng)計數(shù)據(jù)進行相關(guān)的處理。
圖4.3 模板構(gòu)建流程圖
在模板的創(chuàng)建過程中,首先必須給該模板指定一個名字,該名字不能重復(fù)。再者,需要選擇模板要統(tǒng)計的模板類型以及要對該模板收集數(shù)據(jù)的頻率,例如:10分鐘收集一次數(shù)據(jù)。
然后創(chuàng)建該模板需要進行數(shù)據(jù)統(tǒng)計的統(tǒng)計項,如最大等待時間,外撥呼叫量等。這就需要先給統(tǒng)計項一個名字和一個屬性列名稱,這個屬性列名稱是它過濾的數(shù)據(jù)在數(shù)據(jù)庫相應(yīng)表中的列屬性名。比如把統(tǒng)計項為Total_Time_Waiting的列屬性名稱指定為T_Waiting,則在數(shù)據(jù)庫的相應(yīng)表中屬性列為T_Waiting的數(shù)據(jù)就是根據(jù)該統(tǒng)計項所做的數(shù)據(jù)統(tǒng)計結(jié)果。
再者,需要為模板指定時間范圍,從而對統(tǒng)計的時間段做一個限制。然后可以選擇一個過濾項來過濾不符合要求的呼叫。同時還可以為該統(tǒng)計項添加一個描述,以說明這個統(tǒng)計項的用途。
在統(tǒng)計項時間范圍配置完成后, 就需要對統(tǒng)計內(nèi)容進行相關(guān)的配置。系統(tǒng)可以配置統(tǒng)計的對象、統(tǒng)計類別、話務(wù)操作,來完成具體的統(tǒng)計目標配置信息。另外還可以添加一些公式來對自定義的一些屬性來進行配置。比如,用戶若要過濾業(yè)務(wù)自定義的參數(shù)“GVP”為5的呼叫,這時候要用到Formula公式。在參數(shù)配置時需要在公式處添加一個配置GetValue(“GVP”)==’5’。在模板配置完成后,將模板加載,這樣在模板的加載狀態(tài)就會被標志為加載狀態(tài)。然后ETL服務(wù)運行時,相應(yīng)報表數(shù)據(jù)將會根據(jù)這些配置在規(guī)定的時間間隔內(nèi)被抽取。
針對模板的構(gòu)建,需要對每一個統(tǒng)計對象一般常用的統(tǒng)計信息進行封裝,創(chuàng)造出一個默認的模板。在報表系統(tǒng)使用的時候,系統(tǒng)會自動將默認的模板加載上去,再根據(jù)特定的報表需求,對默認模板中沒有的統(tǒng)計項進行添加。
需要指出的是,在創(chuàng)建模板時,若使用者對模板的名稱輸入有一定的規(guī)范性,系統(tǒng)將會自動生成一個或者多個較為符合邏輯的模板以供選擇。如模板名稱為Total_Hold_Time,則模板的各統(tǒng)計項選擇則會自動按照Total,
Hold, Time出現(xiàn)的次數(shù)來排序組成模板以供使用者選擇。若給出的選項都不符合要求,則可以對各統(tǒng)計項進行自定義。
另外,雖然對模板進行統(tǒng)計項的劃分可以使報表數(shù)據(jù)的統(tǒng)計更加靈活,更加通用,但是,當功能過于復(fù)雜時若實現(xiàn)上有了一定的障礙,從而需要添加新的統(tǒng)計類別,所以本系統(tǒng)需要不斷的改進和完善。
4.1.4 具體實現(xiàn)與相關(guān)類圖
在報表模板細分之后,該部分來完成相應(yīng)的編碼,主要實現(xiàn)報表模板的統(tǒng)計項以及由它而分的其他各基本單元的編碼設(shè)計。
該部分在分析邏輯定義,解析數(shù)據(jù)信息的基礎(chǔ)上,構(gòu)造報表的模板代碼,分析報表的布局,從而建立真正的報表。
該部分是將模板以及相關(guān)統(tǒng)計項劃分為各個單元后,將各單元封裝成單獨的代碼,并在分析邏輯定義基礎(chǔ)上解析數(shù)據(jù)信息,對模板代碼進行獨立加載。從本質(zhì)中看,單元編碼就是,根據(jù)報表模板各部分的ID標識號,將所有的參數(shù)信息填充入數(shù)據(jù)庫中。
此外,設(shè)計系統(tǒng)時還應(yīng)該封裝一些常用的函數(shù)為公式(Formula)調(diào)用,從而使其可以直接在可視化設(shè)計中對函數(shù)進行自動調(diào)用。
根據(jù)數(shù)據(jù)庫中設(shè)計的模板配置儲存,模板加載后,系統(tǒng)就會對數(shù)據(jù)庫中的所有配置信息進行遍歷,獲取每個信息的名稱和內(nèi)容等,組裝成報表請求信息進行發(fā)送,交給ETL服務(wù)進行處理。
在編碼之前,還需要對模板的各參數(shù)配置進行研究。根據(jù)模板的構(gòu)建流程圖,系統(tǒng)將模板參數(shù)的配置順序以及各參數(shù)在模板中的位置結(jié)構(gòu)進行規(guī)劃,如圖4.4所示。
圖4.4 模板參數(shù)配置結(jié)構(gòu)圖
根據(jù)模板參數(shù)的配置結(jié)構(gòu)圖來對報表模板的各基本單元進行編碼設(shè)計,其相關(guān)實現(xiàn)類圖 [32]如圖4.5所示。
圖4.5 報表模板細分類圖
從以上類圖結(jié)構(gòu)可得,報表模板設(shè)計中包括以下類:
圖4.6 模板配置存儲模型圖
在模板配置存儲模型圖中,分別建立了單獨的表對模板劃分的每一個基本對象進行儲存。表template存儲模板的配置信息,stat_unit表存儲了統(tǒng)計項的基本信息,stat_type表是一些有關(guān)模板具體內(nèi)容的配置。各表之間通過各自的ID標識號來進行關(guān)聯(lián)。不過一個模板可以包括多個統(tǒng)計單元,一個統(tǒng)計項可以包含多個過濾項,一個統(tǒng)計內(nèi)容可以包含多個公式,這樣他們之間的ID關(guān)聯(lián)就成為1對多的關(guān)系。在這種情況下,父項中的ID關(guān)聯(lián)多個子項ID,其間是用逗號分隔。
數(shù)據(jù)庫存儲模型中,像time_range_expression,filter_expression,formula_expression描述的內(nèi)容是由報表設(shè)計工具生成的一個判斷語句,用來做編碼時進行的過濾。如上一節(jié)的舉例,過濾自定義參數(shù)“GVP”為5的呼叫,需要在formula中添加的選項是GetValue(“GVP”)==’5’,則formula_expression的語句封裝為“if(GetValue(“GVP”)=
=’5’);”。其中的函數(shù)是程序中定義用來獲取隨路數(shù)據(jù)的。
另外,為了便于操作,對模板的儲存還可以以XML文件信息將其導(dǎo)出并儲存到計算機的磁盤中,作物理備份。在一個新的報表系統(tǒng)使用時候,可以將這些模板進行導(dǎo)入,然后模板的配置信息就會自動導(dǎo)入,不需要重新創(chuàng)建模板。其中導(dǎo)出和導(dǎo)入的XML文檔內(nèi)容具有規(guī)則的格式,如圖4.7所示。
圖4.7 模板物理存儲例圖
在模板導(dǎo)出的XML儲存圖中,ReportVersion屬性為報表系統(tǒng)的版本號。Template信息用來指定一個模板名字,給模板一個唯一的模板ID,再指定該模板是否激活,另外也為該模板添加了注釋。該例中是對所有坐席活動的數(shù)據(jù)進行統(tǒng)計。ObjectType為模板的統(tǒng)計類型,該模板中統(tǒng)計類型為坐席(Agent)。TimeProfile為設(shè)定收集的時間間隔,本例中為從每天的0點0分開始,每隔15分鐘收集一次。Statistic對應(yīng)了一個統(tǒng)計內(nèi)容配置,根據(jù)StatTypeID在下面將列出詳細內(nèi)容。本例中StatTypeID為19,下面的StatType中將會根據(jù)StatTypeID與之相對應(yīng),其中配置了Category,
Objects ,Actions, TimeRange, Filter以及該StatType的注釋。
在該報表系統(tǒng)設(shè)計時,報表模板的配置數(shù)據(jù)物理地存放在XML文檔中,就類似于一個小型的數(shù)據(jù)庫。XML文檔結(jié)構(gòu)性好,操作起來十分容易。而且在生成報表數(shù)據(jù)框架的時候,都有相應(yīng)的類型定義,因此對于不同的數(shù)據(jù)類型操作也很方便。
4.2.2 ODS源數(shù)據(jù)庫的設(shè)計與實現(xiàn)
在呼叫中心的相關(guān)對象和呼叫中心服務(wù)進行通訊后,呼叫中心的狀態(tài)服務(wù)器將會把數(shù)據(jù)信息按照一定的格式存儲到ODS源數(shù)據(jù)庫中。報表系統(tǒng)便從ODS源數(shù)據(jù)庫中獲取數(shù)據(jù)以供報表生成所用。
在呼叫中心服務(wù)器發(fā)送事件時,它都會對事件的對象指定的一個狀態(tài)。在任何時間,ODS源數(shù)據(jù)庫中,每個對象都被指定成一個唯一的狀態(tài)。這些狀態(tài)都來自話務(wù)對象的操作。
ODS源數(shù)據(jù)庫中數(shù)據(jù)儲存的數(shù)據(jù)庫模型如圖4.8所示。
圖4.8 ODS源數(shù)據(jù)庫模型圖
根據(jù)ODS源數(shù)據(jù)庫模型圖,ods_data表中存儲了事件發(fā)送的時間(time_key)、事件(event)、報表統(tǒng)計對象(object)、對象狀態(tài)(object_stat)、對象類型(object_type)以及一些隨路數(shù)據(jù)(attach_data)等信息。這些對象的詳細信息都是以各部分的ID來對內(nèi)容進行關(guān)聯(lián)。
另外,ODS源數(shù)據(jù)庫中事件存儲的相應(yīng)表的命名為ods_data加一個數(shù)字。當表中的數(shù)據(jù)不斷的增加,達到1000條記錄時,系統(tǒng)將會建立新表來儲存新的數(shù)據(jù),其表名按ods_data1,ods_data2……數(shù)字疊加的規(guī)則來指定。
4.2.3 報表數(shù)據(jù)庫的設(shè)計與實現(xiàn)
報表數(shù)據(jù)庫作為報表展現(xiàn)數(shù)據(jù)最直接的數(shù)據(jù)庫,對數(shù)據(jù)的存儲是存在一定的規(guī)則。因為系統(tǒng)對數(shù)據(jù)的相關(guān)處理是通過模板的操作來實現(xiàn)的,所以數(shù)據(jù)的存儲和模板的配置有關(guān)。數(shù)據(jù)庫中表的存儲結(jié)構(gòu)如圖4.9所示。
圖4.9 報表數(shù)據(jù)庫模型圖
表temp_name_time中存儲了根據(jù)模板進行處理的報表最終數(shù)據(jù),其中,temp_name_time不是具體的表名,它是一個泛指。它的命名是模板的名字加上統(tǒng)計的時間間隔。而stat_colume1也不是具體的表名,它是一個統(tǒng)計項列名的代稱。如果模板的名字為AGENT_TEMPLATE,該模板的統(tǒng)計項有THOLD、TTRANS-
FER、NINBOUND等。其過濾后的相關(guān)數(shù)據(jù)存儲的默認表有:AGENT_TEMPLA- TE_HOUR、AGENT_TEMPLATE_DAY、AGENT_TEMPLATE
_WEEK、AGENT- _TEMPLATE_MONTH、AGENT_TEMPLATE_YEARK。依次表示該模板按照小時,天,周,月,年來統(tǒng)計的數(shù)據(jù)。這些表中的stat_column屬性名被實際的列屬性名代替,分別為THOLD、TTRANSFER、NINBOUND等,表示統(tǒng)計目標的話務(wù)保持時間,轉(zhuǎn)接電話時間和內(nèi)線呼叫量。根據(jù)這個格式規(guī)則,各種報表展現(xiàn)工具都可以通過讀取數(shù)據(jù)庫,直接生成所需要統(tǒng)計的報表。
最終的報表是讀取該儲存模式的數(shù)據(jù)后進行數(shù)據(jù)填寫,顯示諸如“已收到的關(guān)于產(chǎn)品X的電話數(shù)量”或 “客服代表組 A 所創(chuàng)造的收入” “客戶答應(yīng)付款”
或 “每個呼出活動的銷售率”之類的信息,可以對資源的有效性進行分析。有了這種功能,管理人員就可以依據(jù)信息制定決策來改善與客戶的互動關(guān)系,并抓住交叉銷售和向上銷售的機會。
4.3 數(shù)據(jù)ETL過程詳細設(shè)計和實現(xiàn)
4.3.1 數(shù)據(jù)ETL流程設(shè)計
在報表設(shè)計工具創(chuàng)建模板后,這些模板的配置會被傳送至ETL服務(wù),然后ETL服務(wù)將這些模板的配置信息寫進配置數(shù)據(jù)庫中。
ETL 服務(wù)是報表設(shè)計工具的服務(wù)器,它主要進行數(shù)據(jù)的抽取、轉(zhuǎn)換和加載。當報表設(shè)計工具對模板以及其他一些相關(guān)配置進行修改時,如:Filters,
Time Range等,報表設(shè)計工具會將模板修改的信息傳遞給ETL服務(wù),再對配置數(shù)據(jù)庫進行相應(yīng)的修改。當報表設(shè)計工具加載一個報表模板后,它也會通知ETL服務(wù),ETL服務(wù)將會在配置數(shù)據(jù)庫中對該模板添加模板加載標志。相反,卸載一個模板時,將會刪除模板加載標志。
本系統(tǒng)的數(shù)據(jù)ETL詳細步驟如圖4.10所示。
圖4.10 系統(tǒng)數(shù)據(jù)ETL流程圖
根據(jù)流程圖,ETL服務(wù)先讀取配置數(shù)據(jù)庫中的基本對象配置,按照各模板的配置依次從ODS源中抽取數(shù)據(jù)。抽取模板配置對象相關(guān)的數(shù)據(jù)后,包括時間段,對象狀態(tài)等信息,將其存儲到臨時數(shù)據(jù)庫中。
在ETL服務(wù)將抽取數(shù)據(jù)存儲到臨時數(shù)據(jù)庫后,再根據(jù)一定的轉(zhuǎn)換規(guī)則,對抽取的數(shù)據(jù)進行轉(zhuǎn)換。數(shù)據(jù)轉(zhuǎn)換完成后再對其進行一些必要的處理,清除那些不正確的,不完整的數(shù)據(jù),再對數(shù)據(jù)的格式等進行加工,最后加載到報表數(shù)據(jù)庫中。
當數(shù)據(jù)加載到報表數(shù)據(jù)庫完畢后,在一定時間內(nèi)再將臨時數(shù)據(jù)庫中相關(guān)用表刪除掉,減少數(shù)據(jù)占用率。
4.3.2 數(shù)據(jù)ETL過程實現(xiàn)
在數(shù)據(jù)ETL流程中需要對ODS源數(shù)據(jù)庫按照一定的規(guī)則進行抽取,另外,在抽取的數(shù)據(jù)進行轉(zhuǎn)換時,也需要有轉(zhuǎn)換規(guī)則。
ODS源數(shù)據(jù)庫中的每一條記錄都對應(yīng)著一個呼叫中心中的對象的一個事件。記錄中包含事件發(fā)送的時間、報表統(tǒng)計對象名稱、對象類型,事件名稱,對象狀態(tài)等內(nèi)容。
首先,系統(tǒng)根據(jù)收集數(shù)據(jù)的頻率,每隔固定的時間,按照每個模板中的配置信息,依次讀取統(tǒng)計對象對應(yīng)的信息。然后,將這些抽取的信息與模板ID關(guān)聯(lián),再按照固定的格式存放到臨時數(shù)據(jù)庫中。臨時數(shù)據(jù)庫中的表屬性格式為:模板ID――事件時間――對象ID――對象當前狀態(tài)――上一次事件時間,如圖4.11所示。
圖4.11 臨時數(shù)據(jù)庫模型圖
在數(shù)據(jù)抽取到臨時數(shù)據(jù)庫后,需要對臨時數(shù)據(jù)庫中的數(shù)據(jù)進行處理,最終轉(zhuǎn)換為報表需求的數(shù)據(jù)。
若報表需要統(tǒng)計的類型是一般的話務(wù)總時間或者總數(shù)量,則將該收集時間段內(nèi)符合需求的話務(wù)量求和即可,即(4-1)
4.5 本章小結(jié)
本章是可定制報表系統(tǒng)的詳細設(shè)計和具體實現(xiàn)部分,主要研究了報表模板的邏輯定義設(shè)計、統(tǒng)計項以及其它各基本單元的詳細劃分、模板的創(chuàng)建設(shè)計和數(shù)據(jù)ETL技術(shù)實現(xiàn),并詳細闡述了報表系統(tǒng)實現(xiàn)的相關(guān)類圖、數(shù)據(jù)ETL實現(xiàn)方法以及數(shù)據(jù)存儲方式。
本文未經(jīng)許可謝絕轉(zhuǎn)載!
呼叫中心中可定制報表系統(tǒng)的設(shè)計與實現(xiàn)(四)
作者獨家供稿 CTI論壇編輯
呼叫中心中可定制報表系統(tǒng)的設(shè)計與實現(xiàn)(二) 2010-01-13 |
呼叫中心中可定制報表系統(tǒng)的設(shè)計與實現(xiàn)(一) 2010-01-11 |
基于VoiceXML可視化IVR系統(tǒng)設(shè)計和實現(xiàn)(四) 2010-01-07 |
基于VoiceXML技術(shù)可視化IVR設(shè)計和實現(xiàn)(三) 2009-12-29 |
基于VoiceXML技術(shù)可視化IVR設(shè)計和實現(xiàn)(二) 2009-12-29 |