統計
統計,是非常有用的一個效率工具,只是目前在中小微企業中,連基礎的數據採集都沒做到,所以在使用方面如何能更有效的讓用戶來使用,筆者也無太多經驗。因此這個功能,只能簡單講述目前已經做到了什麼樣,如果有開發者有這方面的需要,可聯絡筆者協作支持。
和簡易流程、業務規則一樣,統計也依然是用文本定義的,如demo中所演示的:
@myModule.statistics('訂單統計'.decode('utf-8'),'1M',False)
def statisticsSO():
'''
訂單數 classify 總數 when salesOrder:field.State == '交付中' ;
訂單數 classify 按銷售統計數 when salesOrder:field.State == '交付中' 則 cache.ClassifyName = people:field.Name ;
訂單數 classify 按客戶統計數 when salesOrder:field.State == '交付中' 則 cache.ClassifyName = salesOrder:field.Custom ;
銷售額 classify 總數 when salesOrder:field.State == '交付中' 則 cache.StatValue = salesOrder:field.Amount ;
銷售額 classify 按銷售統計 when salesOrder:field.State == '交付中' 則 cache.ClassifyName = people:field.Name , cache.StatValue = salesOrder:field.Amount ;
銷售額 classify 按客戶統計 when salesOrder:field.State == '交付中' 則 cache.ClassifyName = salesOrder:field.Custom , cache.StatValue = salesOrder:field.Amount;
'''
pass
這裏定義的是對訂單分別按訂單數和銷售額進行統計,而這兩項統計還分別統計了總數、按銷售統計數、按客戶統計數這三個類別。
統計也是支持條件檢測的,也就是說,我們可以對篩選出來的、符合要求的數據對象進行分別統計。
一條統計規則型如:
統計名 classify 分佈名 when (對象類:)數據類型名.數據名 比較符號 表達式 則 賦值語句
其中的英文是關鍵字,如果統計時需要用到多個數據對象,則用這些對象的類名加以區分,而這裏的類名是支持繼承的,如上述的演示中,使用的是salesOrder,但大家如果看過data文件中的定義,就知道extOrder類是繼承自salesOrder的,所以這條規則也同樣適用於extOrder類型的訂單。
數據類型名包括:
-
cache:本規則表內作爲臨時緩存使用
-
input:應用本規則表的capa的輸入項
-
ctx:應用本規則表時的上下文
-
extand:某數據對象的現場數據集【請參考之前簡易流程中的說明】
-
field:某數據對象的字段【對應於數據表中的同名列】
-
method:該數據對象的java函數
-
attr:該數據對象關聯的jxTMS內置的屬性表
-
tag:該數據對象所標記的某種標記
-
Info:該數據對象的Info中的某個子對象
值比較符,就是等於【==】、不等【!=】、大於【>】、大於等於【>=】、小於【<】、小於等於【<=】、相似【like】,其中,相似意爲左值是以右值開頭的字符串。
表達式包括值的加減乘除等,因過於複雜,具體的語法以後會在線上編程手冊中詳細說明。賦值語句則是對數據對象等數據集合進行操作,同樣因過於複雜,具體的語法也一同在線上編程手冊中進行詳細的說明。
此外,演示中,還使用到了兩個預定義的輔助功能:
-
cache.ClassifyName:如果該值不爲空【本演示中爲銷售名或訂單中的客戶名】,則讀取【訂單數.按銷售統計數.ClassifyName的值】的統計項,然後爲其Number加一,沒有則創建該統計項;同樣,讀取【銷售額.按銷售統計.ClassifyName的值】的統計項,然後爲其FloatNumber增加cache.StatValue的值,沒有則創建該統計項
-
cache.StatValue:jxTMS默認統計的是發生次數,所以對於成交額這種數值型的統計,就需要通過cache.StatValue中轉一下
由於在用@myModule.statistics進行修飾時聲明瞭一個1M的時間段定義,所以這六條統計語句,其實是各自進行了兩次統計,一次是總的統計,一次是分時段的統計,即【銷售額.按銷售統計】既將這個訂單的成交金額統計到該銷售的銷售總額,還統計到該銷售當月的銷售額【'1M’是指令按月進行統計】。
大家可以用總經理賬號【tms->導入文檔模板->已經上傳過的目前demo中的用戶文件應將其替代掉importUser.xls,這個文件中的user5,登錄名爲user58429】登錄後點擊快捷功能樹中的【銷售訂單->銷售額統計圖表】和【銷售訂單->銷售額統計列表】來查看統計得到的數據。目前暫沒想清楚基於時間的統計圖表該如何展示:(
就統計列表來看,筆者認爲統計功能本身已經沒啥問題了,統計的簡便性、靈活性、能統計到的數據都很讓人滿意,問題在於,對統計到的數據該如何使用,筆者還缺少經驗,所以對統計到的數據如何做進一步的加工沒有概念,就更無法開發相應的展示工具了。
目前,jxTMS已經打包爲雲服務器鏡像,開發者開箱即用:
jxTMS-騰訊雲市場