reporting services - studio - Mostrar el último tiempo de proceso de Cube en Informe
parametros reporting services (2)
No estoy seguro de que pueda agregar esto al generador de informes, pero intente con un informe MDX estándar y use los DMV de SSAS (Vistas de administración dinámica):
http://dwbi1.wordpress.com/2010/01/01/ssas-dmv-dynamic-management-view/
Ejecute esto en una ventana de consulta MDX contra un cubo (lo sé, se parece a TSQL):
SELECT * FROM $system.mdschema_cubes
¿Debería darte lo que necesitas?
¿Hay alguna forma de mostrar la última vez que se procesó un cubo o una dimensión en un informe (estoy usando el generador de informes)?
Intenté esto iniciando la creación de una tabla llamada LastProcessTime con los campos "Tipo" y "DateTimeProcessed", y pude Insertar en esta tabla, pero no sé cómo iniciaría el Insertar. Tal vez hay un enfoque completamente diferente. Gracias.
Me sabe un poco tarde, pero puede usar procedimientos almacenados personalizados en SSAS para exponer esta información a través de miembros normales.
with
member [Measures].[LastProcessed] as ASSP.GetCubeLastProcessedDate()
select
[Measures].[LastProcessed] on 0
from [Your Cube]
Estos están disponibles en CodePex: Analysis Services Stored Procedure Project ,
/*============================================================================
File: CubeInfo.cs
Summary: Implements a function which returns the date when the current cube
was last processed.
Date: July 12, 2006
----------------------------------------------------------------------------
This file is part of the Analysis Services Stored Procedure Project.
http://www.codeplex.com/Wiki/View.aspx?ProjectName=ASStoredProcedures
THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.
===========================
=================================================*/
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.AnalysisServices.AdomdServer;
using Microsoft.AnalysisServices; //reference to AMO
namespace ASStoredProcs
{
public class CubeInfo
{
//the assembly must be registered with unrestricted permissions for this function to succeed
[SafeToPrepare(true)]
public static DateTime GetCubeLastProcessedDate()
{
string sServerName = Context.CurrentServerID;
string sDatabaseName = Context.CurrentDatabaseName;
string sCubeName = AMOHelpers.GetCurrentCubeName();
DateTime dtTemp = DateTime.MinValue;
Exception exDelegate = null;
System.Threading.Thread td = new System.Threading.Thread(delegate()
{
try
{
Microsoft.AnalysisServices.Server oServer = new Microsoft.AnalysisServices.Server();
oServer.Connect("Data Source=" + sServerName);
Database db = oServer.Databases.GetByName(sDatabaseName);
Cube cube = db.Cubes.FindByName(sCubeName);
dtTemp = cube.LastProcessed;
}
catch (Exception ex)
{
exDelegate = ex;
}
}
);
td.Start(); //run the delegate code
while (!td.Join(1000)) //wait for up to a second for the delegate to finish
{
Context.CheckCancelled(); //if the delegate isn''t done, check whether the parent query has been cancelled. If the parent query has been cancelled (or the ForceCommitTimeout expires) then this will immediately exit
}
if (exDelegate != null) throw exDelegate;
return dtTemp;
//return Context.CurrentCube.LastProcessed; //this doesn''t work because of a bug: https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=124606
}
.
.
.