Saludos, Con la compañía de nuestro MVP amigo Eduardo Castro @edocastro realizamos una introducción a MDX y DAX, permitiéndo a los desarrolladores tener más elementos para definir su trabajo por una u otra tecnología
FREDDY ANGARITA |
Mes: octubre 2013
[WebCast] Creación de KPIs y ScoreCards en Performance Point para SharePoint
[Step by Step] Reporting Services en Azure
Una vez se adquiere la cuenta de Azure, bien sea de prueba o paga se puede crear un servidor de Base de datos
Creando El Servidor
Éste paso es opcional para usar reporting services, pero para éste artículo usaremos la base de datos Sql de Azure
Para crear el servidor debemos configurar un usuario Administrador con el que luego nos conectaremos a la instancia de SqlServer, es importante seleccionar la región correcta (la mas cercana) para disminuir latencia en el servicio
Una vez está todo confiurado Azure realiza el proceso de creación de servidor, presentado en la siguiente imagen:
Una vez finalizada la creación se ve una pantalla como la presentada a continuación:
Para poder acceder a la base de datos remotamente se debe permitir el acceso, para cual se necesita crear una regla en el Proxy Azure, para crearla fácilmente se hace click en Manage
Azure advierte que no tiene permisos y que debe crear una regla para permitir el acceso y ofercerlo automáticamente:
Dado que seleccionamos la opción de administración ofrecer ir a éste sitio, pero tan solo queremos crear la regla, por lo que seleccionamos NO
Para el ejemplo que trabajaremos, usamos la base de de datos de ejemplo encontrada en http://msftdbprodsamples.codeplex.com/releases/view/37304
La instrucción Usada para subir la base de datos es: CreateAdventureWorksForSQLAzure <NombreServidorDB>.database.windows.net SqlDemo@<NombreServidorDB> Pa$$w0rd
SERVIDOR DE REPORTING SERVICES
Crearemos el servicio de reporting services
Al hacer click en Crear se presenta la siguiente pantalla:
Luego de diligenciar el formulario inicia el proceso de creación del servidor
Al finalizar, se puede revisar el servidor al hacer hacer click en la columna WebService URL
El Servicio solicita credenciales:
Se presenta la página básica del servicio:
CONECTÁNDOSE DESDE SSMS
Éste paso es opcional
Ésta es la forma en la que se visualiza la base de datos Azure desde SSMS
REPORT BUILDER
Para crear un reporte podemos utilizasr Visual Studio o report Builder, en éste caso usaremos Report builder
Nos conectaremos al Servidor
Ingresamos las credenciales de Reporting
Y posteriormente crearemos el DataSource que usaremos para el reporte
Conectándose a Base de Datos Remota (importante escribir el nombre de la base de datos a mano)
Conexión Exitosa
Visualizamos la cadena de conexión
Luego, procedemos a crear el dataset con el que vamos a desarrollar el reporte
Click en Query Designer (solicita credenciales)
Definimos el query a usar
El Query usado es:
SELECT SOH.SalesOrderNumber, S.Name AS Store, SOH.OrderDate, C.FirstName AS
SalesFirstName, C.LastName AS SalesLastName, E.JobTitle AS SalesTitle,
SOH.PurchaseOrderNumber, SM.Name AS ShipMethod, BA.AddressLine1
AS BillAddress1, BA.AddressLine2 AS BillAddress2, BA.City AS BillCity,
BA.PostalCode AS BillPostalCode, BSP.Name AS BillStateProvince,
BCR.Name AS BillCountryRegion, SA.AddressLine1 AS ShipAddress1,
SA.AddressLine2 AS ShipAddress2, SA.City AS ShipCity,
SA.PostalCode AS ShipPostalCode, SSP.Name AS ShipStateProvince, SCR.Name AS
ShipCountryRegion,
PPP.PhoneNumber AS CustPhone, CC.FirstName AS CustFirstName,
CC.LastName AS CustLastName
FROM Person.Address AS SA INNER JOIN
Person.StateProvince AS SSP ON SA.StateProvinceID =
SSP.StateProvinceID INNER JOIN
Person.CountryRegion AS SCR ON SSP.CountryRegionCode =
SCR.CountryRegionCode RIGHT OUTER JOIN
Sales.SalesOrderHeader AS SOH LEFT OUTER JOIN
Sales.Customer AS SC ON SOH.CustomerID = SC.CustomerID LEFT OUTER
JOIN
Person.Person AS CC ON SC.PersonID = CC.BusinessEntityID INNER
JOIN
Person.PersonPhone AS PPP ON CC.BusinessEntityID =
PPP.BusinessEntityID LEFT OUTER JOIN
Person.Address AS BA INNER JOIN
Person.StateProvince AS BSP ON BA.StateProvinceID =
BSP.StateProvinceID INNER JOIN
Person.CountryRegion AS BCR ON BSP.CountryRegionCode =
BCR.CountryRegionCode ON SOH.BillToAddressID = BA.AddressID ON
SA.AddressID = SOH.ShipToAddressID LEFT OUTER JOIN
Person.Person AS C RIGHT OUTER JOIN
HumanResources.Employee AS E ON C.BusinessEntityID =
E.BusinessEntityID ON SOH.SalesPersonID = E.BusinessEntityID LEFT OUTER JOIN
Purchasing.ShipMethod AS SM ON SOH.ShipMethodID = SM.ShipMethodID
LEFT OUTER JOIN
Sales.Store AS S ON SOH.SalesPersonID = S.BusinessEntityID
Establecemos un nombre al Dataset
Creamos el reporte:
Una vez diseñado:
Ejecutamos el reporte localmente
Posteriormente guardamos el reporte en el servidor
Reporte Publicado en Reporting Services Azure
Visualización de reporte
Observamos el campo que dice cambio de credenciales en caso de tener varios usuario y varios contextos de seguridad
Reporting Services en Azure permite la conexión desde varios orígenes de datos, es importante tener en cuenta la latencia
También se recomienda que el desarrollo de los reportes (en la medida de lo posible se haga con orígenes de datos remotos)
Los comentarios son bienvenidos, espero sea de ayuda,