2010-11-01 36 views
10

Tôi đang tìm cách để có được thông tin phiên bản ra khỏi báo cáo SSRS của tôi. Tôi có một số môi trường và muốn có thể so sánh phiên bản báo cáo nào được triển khai trên các môi trường này. Trong SSIS, điều này rất dễ dàng vì mỗi gói SSIS đều có phiên bản mới khi được sửa đổi và được an toàn. Có điều gì đó tương tự với báo cáo không?Báo cáo SSRS Phiên bản

Trả lời

9

Rất tiếc, hiện tại không có chức năng tích hợp nào tương tự như phiên bản lắp ráp dll cho tệp RDL.

Cách duy nhất để nhận một số loại thông tin phiên bản là truy vấn ngày sửa đổi cuối cùng của tệp RDL trên máy chủ qua C# hoặc VB.Net. Bạn có thể thực hiện việc này bằng cách sử dụng dịch vụ web ReportingServices.

Bạn cũng có thể triển khai chức năng tùy chỉnh cập nhật một số trường trong cơ sở dữ liệu của bạn đến ngày hiện tại mỗi khi tệp RDL được sửa đổi.

Sự cố với tất cả thông tin đã sửa đổi tệp: Bạn vẫn không biết phiên bản nào trên máy chủ nào, bạn chỉ biết khi nào nó được tải lên/sửa đổi.

Xem các trang sau đây để biết một số thông tin hơn - tiếc là không có giải pháp:

+1

Cảm ơn rất nhiều vì phản hồi của bạn, tôi lo rằng nó có thể giống như vậy. Đôi khi khó hiểu tại sao MSFT lại không quan trọng trong việc thiết kế sản phẩm của họ, nhưng đó là cuộc sống. :) – nojetlag

+2

đừng khiến tôi bắt đầu - SSRS không phải là đứa con tinh thần duy nhất không nhất quán với các thực hành tốt nhất ;-) –

4

Trong báo cáo của tôi, tôi có thể tạo một biến có tên phiên bản và làm cho nó một dữ liệu chuỗi gõ (và di chuyển nó lên đầu danh sách biến). Mỗi lần tôi thay đổi báo cáo, tôi cập nhật biến Phiên bản dựa trên Semantic Versioning.

Sau đó, tôi có thể truy vấn Máy chủ báo cáo của mình và xem trường Tham số của bảng ExecutionLog và tôi có thể xem phiên bản nào đã được chạy. Về mặt kỹ thuật, tôi chăm sóc tất cả điều này trong một công việc SSIS viết cho một bảng khác, nhưng đó là một chút nằm ngoài phạm vi ở đây.

+1

Trong báo cáo của chúng tôi, tôi cũng đã tạo biến Phiên bản nhưng chúng tôi đặt giá trị của nó là $ Revsion $. CVS hoặc SVN (và tôi nghĩ GIT) sẽ tự động cập nhật giá trị này mỗi lần sửa đổi mới được cam kết. Đây là một cách nhanh chóng và dễ dàng để xác định phiên bản của RDL mà không tự bảo trì nó. –

+1

@Xin lỗi, tôi biết cách sử dụng đạo cụ tự động SVN ..Nhưng làm thế nào bạn thực sự đọc và đặt nó trong một biến? – Nayak

0

Dường như vẫn không có giải pháp tốt. Nếu bạn tạo Thông số ẩn "Phiên bản" với giá trị mặc định, bạn có thể sử dụng Tác vụ xây dựng để sửa đổi giá trị của nó trong tệp .rdl, ví dụ: phần sửa đổi với số thay đổi kiểm soát nguồn. Đáng buồn là bạn có thể cần một dự án Studio trực quan khác để đặt tác vụ xây dựng này vì loại dự án báo cáo dường như không có khả năng.

Bạn cũng có thể tạo mã nội tuyến hoặc lắp ráp có thể thực hiện một số tra cứu.

giá rẻ thay thế tối ưu: Sử dụng ngày sửa đổi cuối cùng hình thành cơ sở dữ liệu báo cáo:

Select 
    Name, 
    Path, 
    CreationDate, 
    ModifiedDate, 
    ModUser.UserName AS ModUser, 
    CAST(catalog.parameter as xml).value(/Parameters[1]/Parameter[Name="Version"][1]/Values[1]/Value[1]','NVARCHAR(20)') as Version 
    FROM Reportserver.dbo.Catalog 
    INNER JOIN ReportServer.dbo.Users ModUser on Moduser.UserID = ModifiedByID 
    WHERE Type = 2 

và chuyển đổi ngày đối với một số sửa đổi ... giúp đỡ doesen't với các phiên bản trên các trường hợp máy chủ khác nhau mặc dù.

Các vấn đề liên quan