創(chuàng)建一個可靠、集成的報表解決方案
對于大多數(shù)組織而言,報表是一項重要功能,而能夠可靠報告 Microsoft System Center Configuration Manager (SCCM) 的各項功能也同樣重要。在 Systems Management Server 和 SCCM 的多個版本中,報表功能并未出現(xiàn)大的變化。而在 SCCM R2 版本中,報表經(jīng)歷了一次重大的改變,即能夠與 SQL Server Reporting Services (SSRS) 進行交互并可使用 SSRS。這項改變使報表能夠使用 SSRS 提供的很多可靠功能。與任何新技術一樣,SSRS 也需要經(jīng)歷一個學習的過程,但其所具有的好處還是值得一學的。本文將介紹 SCCM 與 SSRS 之間的集成,并通過逐步講解一個非常簡單的示例來介紹如何在 SSRS 中生成報表,以及如何發(fā)布報表以便在 SCCM 中使用。
SCCM 和 SSRS 最好一起使用
在 R2 之前,SCCM 報表引擎的變化很小。標準報表功能可以滿足大多數(shù)功能的需要,但同時也存在一些限制,尤其是當報表需求要求采用可靠而靈活的方法以圖形方式顯示數(shù)據(jù)時更是如此。SSRS 使您可以根據(jù)自己的特定需要以近乎隨心所欲的方式創(chuàng)建報表。
SCCM 與 SSRS 的集成需要安裝 SCCM R2,并需要在目標 SQL 服務器上安裝 SQL 的 SSRS 組件。此外,還需要在 SSRS 服務器上安裝 Reporting Services 點站點系統(tǒng)角色。本文并未詳細介紹如何安裝和配置 SSRS 以便與 SCCM 進行交互,但此過程并不復雜。
安裝 R2 并配置 SSRS 集成后,我們可以選擇要使用的報表引擎。圖 1 顯示了安裝 R2 后的報表節(jié)點。
圖 1 安裝 R2 后的 System Center Configuration Manager 報表節(jié)點
“Reports”(報表)節(jié)點將使用傳統(tǒng)的 SCCM 報表引擎訪問報表。“Reporting Services”節(jié)點是 SSRS 部署的報表的訪問點。展開“Reporting Services”節(jié)點(如圖 1 所示)將顯示配置為 Reporting Services 點的服務器以及包含部署到 SSRS 的所有報表的文件夾。如果在安裝 R2 并完成 SSRS 配置后選擇“All Reports”(所有報表)節(jié)點,將不顯示任何報表。要向 SSRS 中添加報表,可以將標準 SCCM 報表轉(zhuǎn)換為 SSRS 格式或編寫您自己的報表。
轉(zhuǎn)換標準報表以用于 SSRS 很簡單,只需右鍵單擊承載 Reporting Service 點角色的服務器名稱(位于圖 1 所示的“Reporting Services”節(jié)點的正下方),然后選擇“Copy Reports to Reporting Services”(將報表復制到 Reporting Services),如圖 2 所示。
圖 2 簡單轉(zhuǎn)換標準報表以用于 SSRS 只需右鍵單擊。
隨即將啟動一個向?qū)?,該向?qū)⒁龑D(zhuǎn)換所有或選定的標準 SCCM 報表以便用于 SSRS。該向?qū)⑹占嚓P信息以生成 SSRS 數(shù)據(jù)源、確定 SSRS 安全性的處理方式(Windows Integrated 是通用選項),以及將哪些報表轉(zhuǎn)換和部署到 SSRS。完成向?qū)Ш螅瑢⑥D(zhuǎn)換和部署報表。完成后,“All Reports”(所有報表)視圖將包含與您在標準 SCCM 報表中通??吹降膬?nèi)容相似的數(shù)據(jù)。圖 3 顯示了轉(zhuǎn)換后可能看到的內(nèi)容示例。
圖 3 轉(zhuǎn)換選定用于 SQL Server Reporting Services 的 System Center Configuration Manger 報表后顯示數(shù)據(jù)的“All Reports”窗口。
報表的命名格式與標準 SCCM 報表相同。要顯示報表,只需右鍵單擊此報表,然后選擇“Run”(運行)。在右鍵單擊菜單中,除了“Run”(運行)以外,您還會注意到一個用于創(chuàng)建新訂閱的選項。此選項將引出另一個受歡迎的 SSRS 功能,即能夠創(chuàng)建報表訂閱。SSRS 訂閱類似于報紙訂閱。報紙“訂閱者”希望根據(jù)他們選定的時間表收到報紙。SCCM/SSRS 訂閱同樣如此。 選擇“新建訂閱”選項會啟動一個向?qū)砼渲么斯δ?。圖 4 中顯示了初始向?qū)聊弧J褂糜嗛喛梢宰詣訄?zhí)行報表以及自動傳遞最終報表。通過訂閱可以將報表傳遞至文件共享,并可以各種格式(包括 XML、Excel、PDF、TIFF 和網(wǎng)頁格式)呈現(xiàn)。
圖 4 System Center Configuration Manager 創(chuàng)建訂閱向?qū)?/p>
至此,我們主要介紹了如何通過 SCCM 控制臺本身與 SSRS 交互。使用 SCCM 控制臺對于許多與 SSRS 的交互(如執(zhí)行報表和創(chuàng)建訂閱)很有用。但在某些情況下,直接訪問報表引擎更有幫助,尤其是對于測試或故障排除更是如此。SSRS 界面本身已在多個論壇進行了詳細介紹,因此不在本文介紹范圍之內(nèi)。如果要直接訪問 SSRS 界面,請登錄至承載 SSRS 的服務器,打開 Web 瀏覽器,然后導航至 。您也可以遠程訪問此界面,方法是用服務器名稱(NetBIOS 或 FQDN )替換列出的 URL 中的 localhost。
#p#
編寫用于 SCCM 的 SSRS 報表
至此,我們介紹了如何使用標準 SCCM 報表與 SSRS 交互。使用 SSRS 可以編寫自定義報表,此操作也并不復雜。有幾種方法可以編寫自定義報表。首先是根據(jù)標準 SQL 查詢創(chuàng)建報表,這與標準 SCCM 報表中的方法非常相似。此外,還可以使用模型生成報表??梢酝ㄟ^ SCCM 控制臺訪問用于創(chuàng)建標準 SQL 或基于模型的報表的選項??梢詮膱D 2 中所示的右鍵單擊菜單中選擇“Create Report”(創(chuàng)建報表)訪問這些模型。選擇“Create Report”(創(chuàng)建報表)將顯示圖 5 中顯示的向?qū)А?/p>
圖 5 System Center Configuration Manager 創(chuàng)建報表向?qū)?/p>
該向?qū)в糜趧?chuàng)建標準 SQL 報表甚至基于模型的報表,但與可以使用 Visual Studio 進行的編寫相比,選項比較有限。有關使用基于模型的報表的詳細信息,請參見“使用報表生成器建 CM2007 報表”白皮書。此外,還提供了其他有助于創(chuàng)建模型的資源。另一種可選方法是直接在 Visual Studio 中編寫自定義報表,Visual Studio 提供了一個豐富而靈活的環(huán)境來生成報表。除了以上方法以外,還有第四種可選方法,本文將對其重點介紹:使用 Report Builder 2.0。針對 SQL Server 2008 設計的 Report Builder 2.0 是一個用于設計報表的可靠環(huán)境,此環(huán)境甚至還可以用于設計可用于 SCCM 的報表模型。Report Builder 2.0 可從 microsoft.com/downloads/details.aspx?FamilyID=9f783224-9871-4eea-b1d5-f3140a253db6&displaylang=en 下載。如果編寫用于 SQL Server 2005 的報表,則最可靠的可選方法是使用 Visual Studio。如果編寫用于 SQL Server 2008 的報表,可以使用 Report Builder 2.0 或 Visual Studio。
無論使用哪種編寫方法,報表作者都需要充分了解 SCCM 數(shù)據(jù)庫才能取得成功。SCCM 數(shù)據(jù)庫討論已經(jīng)超出了本文的討論范圍。
本文余下部分將逐步演示如何使用 Report Builder 2.0 創(chuàng)建基本報表、如何將最終報表部署至 SSRS 以及如何通過 SCCM 執(zhí)行此報表。
要開始操作,請啟動 Report Builder 2.0,隨即將顯示類似圖 6 所示的簡介屏幕。
圖 6 Report Builder 2.0 簡介屏幕
此環(huán)境隨即準備開始設計報表,并且由于它基于向?qū)?,因此簡化了設計過程。在報表的設計區(qū)域中,單擊標題區(qū)域,然后將默認文本替換為此報表的標題。此示例報表的標題將為“Basic ConfigMgr Report”。與任何測試一樣,可以從右鍵單擊菜單中訪問全部格式設置選項。輸入標題后即可開始設計報表。此設計器中有兩個選項:創(chuàng)建基于表或矩陣的報表,或創(chuàng)建基于圖表的報表。選擇創(chuàng)建基于圖表的報表。隨即將打開“新圖表”向?qū)?,如圖 7 所示。
圖 7 Report Builder 2.0 新圖表向?qū)?/p>
第一個要求是創(chuàng)建數(shù)據(jù)源。數(shù)據(jù)源將報表配置為鏈接至相應的 SQL 服務器,以及此 SQL 服務器上承載報表所用數(shù)據(jù)的相應數(shù)據(jù)庫。單擊“新建”[1105user1] ,隨即將顯示數(shù)據(jù)源屏幕。在此屏幕上,輸入數(shù)據(jù)源標題,選擇連接至 Microsoft SQL Server,然后手動或使用生成連接字符串的選項輸入連接字符串。隨即將顯示類似于圖 8 所示的已完成“數(shù)據(jù)源屬性”窗口。
圖 8 Report Builder 2.0 中已完成的“數(shù)據(jù)源屬性”窗口
“憑據(jù)”窗口用于配置報表所期望的憑據(jù)提供方式。選項包括使用當前 Windows 用戶的憑據(jù);使用特定用戶名、密碼和憑據(jù)提示;或不使用憑據(jù)。僅當將報表保存至報表服務器時,才會存儲這些選項。
完成配置后,選擇“確定”返回此向?qū)?。返回向?qū)Ш?,單?ldquo;下一步”,隨即將顯示一個窗口,從中輸入要用于創(chuàng)建報表的查詢。此處提供了幾個有關如何使用查詢設計器的選項,即在左側(cè)數(shù)據(jù)庫視圖中選擇所需的特定表、選擇導入現(xiàn)有查詢或選擇以文本形式進行編輯并手動輸入查詢。使用設計器以圖形方式生成查詢很有用,但對于此示例報表,將使用以下查詢:
select
(select count(*) from v_r_system vrs
inner join v_agentdiscoveries vad
on vrs.resourceid=vad.resourceid
where vad.agentname = 'Heartbeat Discovery' and
(datediff(day, vad.agenttime, getdate())< 7))
as 'Number of agents with Heartbeat less than 7 days',
(select count(*) from v_r_system vrs
inner join v_agentdiscoveries vad
on vrs.resourceid=vad.resourceid
where vad.agentname = 'Heartbeat Discovery' and
(datediff(day, vad.agenttime, getdate()) >7))
as 'Number of agents with Heartbeat greater than 7 days'
注意,當使用文本編輯器時,您可以選擇查詢基于文本還是基于存儲過程。對于此示例,查詢將基于文本。使用存儲過程的好處很多,包括查詢優(yōu)化。使用存儲過程已經(jīng)超出了本文的討論范圍。無論選擇哪種方法來生成查詢,都必須充分了解 SCCM 數(shù)據(jù)庫。此外,在針對 SCCM 數(shù)據(jù)庫生成查詢時,請確保使用視圖而非表。完成編輯后,屏幕將類似于圖 9 所示。
圖 9 Report Builder 2.0 中基于文本的查詢
選擇“下一步”繼續(xù)在向?qū)е袌?zhí)行操作,然后選擇用于此報表的圖表類型。選項包括柱形圖、線形圖、餅形圖、條形圖和面積圖。對于此示例,將使用條形圖。選擇此圖,然后單擊“下一步”。
下一個屏幕用于在要顯示的圖表上排列數(shù)據(jù)字段。有兩個可用字段可以置于類別、值或序列部分中。對于此簡單示例,請將這兩個數(shù)據(jù)字段置于值部分中,然后單擊“下一步”。
您將看到此向?qū)г试S選擇報表樣式。選擇“海洋”并結(jié)束此向?qū)?。完成后,結(jié)果將類似于圖 10 所示。
圖 10 Report Builder 2.0 中已完成的報表
從這里,可以修改圖表元素本身。只需單擊圖表標題或圖表圖例即可進行任何所需的更改,包括調(diào)整圖表大小、更改報表標題、更改圖表樣式等。進行所需的更改后,選擇設計器左上角中的“運行”測試并執(zhí)行此報表。進行幾處修改后,此示例報表將如圖 11 所示。
圖 11 在 Report Builder 2.0 中生成的示例報表的最終呈現(xiàn)
完成報表后,即可將其部署至 SSRS。Report Builder 2.0 中提供了兩個選項:將報表保存至 RDL 文件,或?qū)⑵渲苯硬渴鹬?SSRS。對于此示例,將使用 Report Builder 2.0 直接進行部署。直接從 Report Builder 2.0 部署至 SSRS 需要在報表生成器中配置 SSRS 網(wǎng)頁的位置。報表生成器窗口左下角中的快速瀏覽將指示 SSRS 實例對 Report Builder 是否是已知的。如果未知,請單擊報表生成器窗口左上角中的“報表生成器”按鈕,然后選擇“選項”。圖 12 中顯示的屏幕將允許指定 SSRS 實例。
圖 12“報表生成器選項”窗口將允許您指定 SQL Server Reporting Services 實例。
關聯(lián)后,保存示例報表只需選擇“報表生成器”按鈕,然后選擇保存即可。如果 SSRS 關聯(lián)正確,保存窗口將顯示位于 SSRS 上相應位置的文件夾。選擇要將此報表保存至的文件夾,然后選擇“確定”。保存報表以便在 SCCM 控制臺中顯示時,請確保將其置于 SCCM 根文件夾或其中的子文件夾內(nèi)。此示例報表將保存在 SampleSCCMReportProject 文件夾中,如圖 13 所示。
圖 13 將報表保存至 System Center Configuration Manager 根文件夾中的子文件夾.
此報表隨即部署至 SSRS。要驗證部署,請打開 SSRS 網(wǎng)頁 ,然后驗證是否在 ConfigMgr_<sitecode> 下創(chuàng)建了測試文件夾。所有片段已組合在一起,且報表已準備好在 SSRS 中執(zhí)行。此處的傾向可能是打開 SCCM 控制臺以執(zhí)行此報表。完成到目前為止的工作后,報表將顯示在 SCCM 控制臺中,但如果執(zhí)行此報表,則控制臺將崩潰。SCCM 控制臺僅支持基于 SQL Server 2005 的報表架構(gòu),但可以直接在 SSRS 控制臺中訪問此報表以及所有所需的選項,包括訂閱、安全性等。在 SSRS 控制臺中執(zhí)行此示例報表將顯示一個類似于圖 14 中所示的屏幕。
圖 14 SSRS 控制臺.
總結(jié)
本文詳細介紹了 SCCM 與 SSRS 之間的集成,以及將簡單報表部署至 SSRS 所需的步驟。此示例報表不需要用戶輸入,并依賴于一個簡單的 SQL 查詢。報表可能并且通常更為復雜,包括使用變量提示用戶輸入信息以及適用存儲過程等。此外,還有許多設計選項可幫助更加完善地顯示數(shù)據(jù)。
盡管實際編寫的大多數(shù)報表都要比這個簡單示例所演示的報表復雜得多,但了解文本中的示例是成功進行 SCCM/SSRS 集成的基礎。
原文:http://technet.microsoft.com/zh-cn/magazine/ee914611.aspx
來源:微軟TechNet中文站