[AX]AX2012 商业智能分析
分析AX的數據時常作的一件事情就是把AX的表數據導出到Excel后使用數據透視表分析,復雜點的數據可能還需要在兩個數據表間先做Lookup整理數據,實際上這就是SQL server analysis服務實現的功能,它負責從數據源中獲取數據,從不同維度對數據做匯總,其中最重要的概念就是Cube、Measure和Dimension。Measure是我們關注的數據,比如銷售額,Dimension定義了觀察數據的角度,比如銷售月份、客戶分組等,而Cube則是Measure和Dimension的集合。AX使用已經安裝運行的SQL分析服務,所以AX的安裝工具里面只有配置安裝服務的選項,通過它指定分析服務器,配置信息可以在System administration>Setup>Bussiness intelligence>Anaysis service>Analysis server找到。
我們可以使用SQL server自帶的分析服務工具(隨SQL安裝的Visual studio工具)創建Analysis service工程,添加Cube、Measure、Dimension、KPI等,編譯部署到分析服務器。手工創建cube分析AX的數據是件很繁瑣的事情,因為AX表之間錯綜復雜的關系(打開AOT/Visual studio projects/Analysis service projects/Dynamics Ax看看Data source view中那密密麻麻的關系連接線!),定義眾多Dimension耗時耗力,但是這一切都因為AX的“SQL server analysis service project wizard”(在Tools>Bussiness intelligence BI下)而變得簡單。SQL server analysis service project wizard主要完成以下功能:
部署已有分析服務工程到分析服務器:這個操作AOT/Visual studio projects/Analysis service projects下分析服務工程導出后編譯部署到分析服務器。
配置分析服務工程:在我們更改了License及configuration key之后我們需要做這個工作,把Configuration中沒用的表/視圖相關Measure、Dimension從工程中剔除掉,AX在安裝時自帶一個“Dynamics AX”分析服務工程,需要根據實際的AX系統配置重新配置。要注意的是如果刪除了工程中的某個KPI,重新部署時該KPI不會自動從服務器上刪除,需要手工刪除,簡單的操作是干脆刪掉整個分析數據庫后重新部署。
更新分析服務工程:可以選擇分析服務工程包含哪些cube,選擇要包含的財務維度,選擇日期維度,最后重新部署到分析服務器。日期維度按年度、半年、季度、月份、周來組織,在ystem administration>Setup>Bussiness intelligence>Anaysis service>Date dimensions維護,可以按照自己的方式來創建一個新的日期維度。
創建新的分析服務工程:創建新的分析服務工程保存到AOT,可以自定義包含的cube、財務維度和日期維度。新的工程中cube是不包含任何KPI的,要手工在BI Develop studio tools中添加。
除了使用SQL server analysis service project wizard更新部署分析服務工程,我們可以直接右鍵點擊AOT/Visual studio projects/Analysis service projects下的工程,菜單中選擇Edit來編輯,AX將工程從AOT導出到臨時目錄并在BI develop studio打開,修改后直接在Visual studio中編輯并部署。要把編輯后的服務工程導回到AOT,點擊AOT/Visual studio projects/Analysis service projects節點右鍵菜單Import。
分析服務工程部署到分析服務器后,還需要處理以生成結果數據,可以在SQL management studio中點擊分析數據庫右鍵菜單中選擇Process來手工處理,也可以使用SQL Agent或者SQL集成服務來自動化調度處理。
權限上分析服務數據庫也使用Role角色來管理權限,但這個Role和AX的Role不是同步的,默認分析服務工程中包含了Sales manager、Financial controller等眾多角色,你需要手工添加域用戶到相應的角色。新建的分析服務工程中你可以在BI Visual studio中定義好Role再部署到分析服務器,在SQL management sutdio中定義的Role不會保存回分析服務工程。
使用分析服務的數據有很多方式:
BI Visual studio:可以直接在打開的分析服務工程中預覽數據,當然需要cube已經部署到服務器并處理。機器上需要安裝有SQL Server Shared Management Objects,否則會收到XXX沒有注冊的錯誤。
SQL management studio:點擊一個cube右鍵菜單中選擇Browse查看,也需要安裝有SQL Server Shared Management Objects。
Excel:在Data工具欄上選擇From other source>From analysis service,對話框中選擇分析服務器、cube等,最后使用數據透視表分析cube數據。
AX ssrs報表:在SSRS報表中使用分析服務數據庫創建一個數據源,以此數據源創建報表。AX部署報表服務時會創建一個名為DynamicsAXOLAP的數據源,連接到默認的分析服務數據庫"Dynamics AX",你需要根據自己的環境更新其連接字符串。普通SQL server report service報表當然也可以使用分析服務數據,比如使用Report server的Report builder工具創建報表并選擇分析服務作為數據源。
EP:在EP頁面上添加Bussiness overview web part,web part屬性中選擇從分析服務器要顯示的KPI。如果EP服務器和分析服務器不在同一臺服務器上,在Web part中添加KPI時你可能會遇到錯誤“An unexpected error occurred while processing the Business overview Web part. Contact your system administrator.”,解決辦法是安裝補丁“Knowledgebase 2744197”,同時確認Bussiness proxy的賬號被添加為分析服務實例的管理員。
知道了使用SQL server analysis service project wizard生成分析服務工程,它又是怎么知道該如何生成cube的了?答案自然也在AOT中:
Perspective:AOT/Data dictionary/Perspectives下的每一個Perspective節點就是cube,我們可以在這里創建自己的Perspective生成新的Cube,Perspective的Label指定了Cube的名稱,Usage屬性為OLAP才會出現在SQL server analysis service project wizard的cube選擇列表中。每個Perspective有Table和View兩個節點,可以將表和視圖分別拖入到這兩個節點下作為分析的數據源。如果任何一個表的createdDateTime設為了No,cube可能會處理失敗,你需要使用SQL server analysis service project wizard工具更新下分析服務工程,或者直接在BI Develop tools中從數據源中刪除產生錯誤的表列。另外AX2012 R2不支持繼承子表,如果要使用繼承子表的字段,最好創建視圖后在Perspective中使用。表/視圖的Fields屬性默認為Dynamic,所有的字段被列出,可以手工設置該屬性為No后手工添加數據字段。
定義Measure:設定表/視圖字段的屬性AnalysisUsage為Measure定義度量,度量的聚合方法在AnalysisDefaultTotal屬性指定,比如Sum、Count、Min、Max等。這兩個屬性設置為Auto時都根據其EDT上設置決定,枚舉類型是不能選擇為度量的。對數值為金額的字段我們還需要指定其ExchangeRateDateField為相應的日期字段以此來確定匯率換算時選用的日期。表中的所有度量值放到同一個Measure group,Measure group的名稱取自具體表/視圖的Label,或者在屬性AnalysisMeasureGroupLabel自定義。
定義維度:維度是根據表/視圖屬性AnalysisDimensionType生成,它和表的IsLookup屬性配合使用:
IsLookup=Yes:Auto表示表同時包含事實數據和維度數據,BI wizar分別為其創建Measure和維度,父表的attribute(后面說明)被創建為子維度;MasterInner表示該使用full join連接該表和它的子表,join后的結果記錄被創建為維度,父表的atrribute則被創建為子維度;MasterLeftOuter 使用左外連接關聯該表和其子表,得到的維度數據因此可能會包含空值,父表的attribute也同樣被創建為子維度;Transactions表示該表只用來生成Measure,只有表中的枚舉字段被創建為子維度。
IsLookup=No:Auto和Transactions銅IsLookup=Yes,MasterInner和MasterLeftOuter和Auto相同沒有意義。
具體哪些字段要作為維度Attribute是把字段的AnalysisUsage屬性設置為Attribute,如果設置為Both則字段值既作為度量也作為維度Attribute,同樣如果這個屬性為Auto則是根據EDT上的設定來確定,枚舉類型則只能作為維度Attribute使用。維度的名稱也是來自于表/視圖的Label屬性,或者通過AnalysisDimensionLabel自定義。
組織等級維度:如果我們需要定義公司組織架構等級的維度,只需要把Dictionary > Views > BISampleOrgHierarchyView添加到Perspective,它是一個預定義好的組織架構維度視圖。
日期維度:前面已經提及,在ystem administration>Setup>Bussiness intelligence>Anaysis service>Date dimensions維護,只需要在BI Wizard選擇要使用的日期維度就可以了。
財務維度:這也是在BI Wizard選取,不需要在Perspective中設定。
我們可以根據自己需求創建新的Perspective/Cube,選擇相應的度量值和維度Attribute,剩下的工作就交給SQL server analysis service project wizard,不需要去處理表數據之間的關聯關系,極大的簡化了分析Cube的創建。
總結
以上是生活随笔為你收集整理的[AX]AX2012 商业智能分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 融资的基本概念 企业融资的五个原因
- 下一篇: linux redis安装报错,Linu