lunes, 5 de mayo de 2014

Business Intelligence para Visual Studio 2013

Como saven estamos estrenando visual studio. Y lo que faltaba es que pudueramos desarrollar cosas de BI en VS 2013. Aqui les dejo el link para que lo descargen.

http://www.microsoft.com/en-us/download/details.aspx?id=42313



jueves, 20 de febrero de 2014

Llamar Reporte SSRS desde SSIS

En ocasiones es necesario en una solución de BI, Generar los reportes dentro de un mismo flujo de #SSIS.
En este caso practico veremos como hacer para que desde un Flujo de #SSIS se puedan generar reportes en formato excel ó PDF. En la segunda parte de este post tambien veremos como distribuir estos reportes a #SharePoint 2013 o vía Email.

Para que este componente que vamos a desarrollar sea re utilizable  lo que tenemos que hacer es empaquetar la lógica en un DLL.

1) Creamos un proyecto de tipo Biblioteca de clases.


2) Agregamos la referencia "Microsoft.ReportViewer.WebForms"


3)Agregamos una clase con el nombre Get con el siguiente código.

using Microsoft.Reporting.WebForms;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
namespace Helper.SSRS
{
    public static class Get
    {
        private static void Generate(Dictionary<string,string> parameters,string pathOutPut,string typeFile)
        {
            try
            {
                string url = ConfigurationManager.AppSettings.Get("Url ReportServer");
                string path = ConfigurationManager.AppSettings.Get("Path Report");
                string extention=string.Empty;
                ReportViewer reportViewer = new ReportViewer();
                reportViewer.ServerReport.ReportServerUrl = new Uri(@url);
                reportViewer.ServerReport.ReportPath = path;
                if (parameters!=null || parameters.Count>0)
                {
                    reportViewer.ServerReport.SetParameters(GetParameters(parameters));
                }
                switch (typeFile.ToUpper())
           {
           case "PDF":
                        extention="pdf";
                        break;
                    case "EXCELOPENXML":
                        extention="xlsx";
                        break;
                    case "MHTML":
                        extention="mhtml";
                        break;
                    case "WORDOPENXML":
                        extention = "docx";
                        break;
                        default:
                            break;
           
                }
                string mimeType;
                string encoding;
                string extension;
                string[] streams;
                Warning[] warnings;
                
                byte[] pdfBytes=reportViewer.ServerReport.Render(typeFile.ToUpper(), string.Empty, out mimeType,out encoding, out extension, out streams, out warnings);
                // save the file
                using (FileStream fs = new FileStream(string.Format("{0}.{1}", pathOutPut, extention), FileMode.Create))
                {
                    fs.Write(pdfBytes, 0, pdfBytes.Length);
                    fs.Close();
                }
                
                
            }
            catch (Exception ex)
            {
                Logger.Write(TraceLevel.Error, "", ex);
            }
        }

        public static void Html(Dictionary<string, string> parameters, string pathOutPut)
        {
            Generate(parameters, pathOutPut, "MHTML");
        }
        public static void PDF(Dictionary<string, string> parameters, string pathOutPut)
        {
            Generate(parameters, pathOutPut, "PDF");
        }
        public static void Excel(Dictionary<string, string> parameters, string pathOutPut)
        {
            Generate(parameters, pathOutPut, "EXCELOPENXML");
        }
public static void Word(Dictionary<string, string> parameters, string pathOutPut)
        {
            Generate(parameters, pathOutPut, "WORDOPENXML");
        }
        private static List<ReportParameter> GetParameters(Dictionary<string,string> parameter)
        {
            List<ReportParameter> res=new List<ReportParameter>();
            foreach (var item in parameter)
            {
                res.Add(new ReportParameter(item.Key, item.Value));
            }
            return res;
        }
        
    }
}

Este código nos permite guardar un reporte en los formatos Excel, HTML, Word y PDF.
Como menciona vamos antes este condigo nos permite que configurar el servidor de reportes y el reporte.
También nos permite enviar parámetros si es que nuestros reportes tuvieran parámetros .Con esto podríamos utilizar esta funcionalidad en otros proyectos.
Registramos la ddl con el comando #gacutil.exe "esto se describe post anteriores".
 
4) tenemos que firmar el ensamblado.


Con esto tenemos la parte del el helper que nos ayudara a generar el Reporte.

Los siguiente que nos queda es consumir este componente desde el Flujos SSIS.
Tenemos que hacer los siguiente

1) En el flujo de integración #SSIS agregamos una Script Task

2) Damos click botón derecho en La caja de Scrip Task [Edit] despues en la ventana emergente damos click [Edit...]


Se abrirá un visual estudio donde podemos llamar a nuestro componente Helper.SSRS.

3) Agregamos la referencia del componente Helper.SSRS


4) Agregamos Archivo de configuración


5) Agregamos las siguientes entradas en el archivo de configuración.


6) Finalmente agregamos el siguiente condigo para hacer la llamada al componente.



Compilamos y cerramos con esto ya podemos generar el reporte en formato excel y guardarlo.
En este caso como mi reporte tiene un parámetro que se llama ID_PLAN se agrega en el diccionario de parámetros.
El helper esta diseñado para agregar n parámetros. o bien ninguno.
El segundo parámetro de el método es la ruta con el nombre que queremos que se guarde el reporte.

En la segunda parte de el post agregaramemos la funcionalidad de distribución.
Saludos

Aldo Flores Reyes
@alduar

"La nube no es el futuro es el presente" Aldo Flores Reyes



lunes, 8 de julio de 2013

Debug Trigger desde Visual Studio 2012

Aveces es necesario poder hacer degug en un Trigger cuando la lógica de inserción, eliminación o actualización es compleja en la base de datos. Pues bien veremos como hacer esto fácil mente en Visual Studio 2012.

Primero tenemos que activar en la base de datos que podemos hacer debug.


Después en la herramienta en el menú SQL


En el editor de la consulta, creamos una sentencia (Insert,Update,Delete) según sea el caso. en la tabla donde esta nuestro TRIGGER. agregamos un breakpoint.


Ejecutamos como debug.

Cundo se active el breakpoint pulsamos F11.
Esto hará que entre a nuestro Tigger y podamos ver lo que esta pasando cuando se dispara.

Con estos sencillos pasos podemos depurar nuestros complicados Triggers.

Saludos
Aldo Flores Reyes.
@alduar










miércoles, 19 de junio de 2013

Conectar Xcode 5.0 a Team Foundation Service






Hoy en dia la necesidad  de los proyecto es global, y esto combina barias teológicas.
Como por ejemplo esta caso que necesitamos un proyecto con varios IDS de desarrollo Visual Studio 2012 y el Nuevo Xcode 5.
En este post veremos como conectar Xcode a Team foundation Services.

Lo primero es crear un nuevo proyecto de Tipo Git.


Elegimos la plantilla de proceso Scrum 3.0 y control de versiones "GIT"
Esperamos que TFS cree el proyecto.

Segundo Configuramos cuenta para que pueda conectar Xcode a TFS.
Como regularmente nos conectamos a TFS con nuestra cuenta outlock.com, esta cuenta tiene como id un email por eje "myemail@live.com". Esto no es soportado por Xcode.
Lo que tenemos que hacer es poder contarnos con un simple id "que no tenga @" y un password.

Pues bien para realizar esta configuración nos dirigimos al portal del nuestro proyecto "El cual acabamos de crear". en el punto anterior.

damos click sobre el usuario  usuario/mi perfil


En la pestaña de Credenciales


Con esta configuraciones realizadas podemos conectar Xcode a TFS.

Lo siguiente es saber la url del proyecto que acabamos de crear para eso en la pagina principal del proyecto damos click en la pestaña.


Seleccionamos la Url que aparase en la siguiente imagen.

Con esto tenemos todo lo necesario para configurar Xcode.

Lo primer es abrir el Xcode 


Lo siguiente es seleciona conectar a un repositorio


Después nos aparase una venta emergente en donde tenemos que introducir la dirección que copiamos anteriormente. también tenemos que insertar el usuario y el password.


Seleccionamos el proyecto y la ruta.





Con esto tenemos configurado Xcode conectado a Team Foundation Services.

Saludos
Aldo Flores
@alduar










jueves, 25 de abril de 2013

Autetificacion Federada Azure ACS Visual Studio 2012

Si ya estamos utilizando el nuevo Visual Studio 2012 y estamos desarrollando para SharePoint 2013 ó Azure. Es muy probable que en nuestro requerimientos necesitemos autenticar  utilizando "Windows Indentity Provider".

En Visual Studio 2010 esto era conocido como STS Site.



Para poder utilizar este proyecto en Visual Studio 2012 Tenemos que instalar dos cosas.
1.-Windows Identity Foundation SDK 4.0
2. Tenemos que instalar un componente en Visual Studio.

 

Reiniciamos Visual Studio 2012

Con esto tenemos la habilitada la nueva opción de "Indetity and Access"


 
Con esto tenemos configura nuestro Visual Studio 2012 para poder Autenticar nuestra aplicación con Facebook Tiwtter o con ADFS.

 
En el síguete post veremos como autentificar nuestra aplicación con Facebook.
Saludos
Aldo Flores
@alduar
Desarrollo sustentable desarrolla en Azure.

 

martes, 5 de marzo de 2013

Microsoft.SharePoint.Upgrade.SPUpgradeException Office 2013 Infopath

En esta entrada veremos lo que tenemos que hacer para poder agregar un servidor en la granja de SharePoint 2010. Con la particularidad de tener preintalado nuestro nuevo Office 2013.

 La expecion que nos lansa el asitente de configuracion es el siguiente.

Failed to connect to the configuration database.
An exception of type Microsoft.SharePoint.Upgrade.SPUpgradeException was thrown. Additional exception information: Failed to call GetTypes on assembly Microsoft.Office.InfoPath.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c. Could not load file or assembly 'Microsoft.Office.InfoPath, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' or one of its dependencies. El sistema no puede encontrar el archivo especificado. Could not load file or assembly 'Microsoft.Office.InfoPath, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' or one of its dependencies. El sistema no puede encontrar el archivo especificado. Could not load file or assembly 'Microsoft.Office.InfoPath, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' or one of its dependencies. El sistema no puede encontrar el archivo especificado. Could not load file or assembly 'Microsoft.Office.InfoPath, Version=15.0.0.0, Culture=neutral,
 
La causa de este problema es porque la dll de infopath esta en la vercion 15.0 es desir del Office 2013.
Solucion:
Tenemos que modificar la instalacion de Office 2013, tenemos que desintalar el complemnto de InfoPath
 
Ejecutamos nuevamente el asistente de configuracion de SharePoint 2010, con esto quedara agregado en la granja sin ningun problema.
 
Salu2
Aldo Flores
@alduar
Desarrollla sustentable usa la nube. "AZURE"

 
 

 
 

martes, 12 de febrero de 2013

SurFace Windows 8 Pro

Ya esta disponible la nueva table de Windows Srrface 8 Pro.
Posiblemente la Table mas ponente del mercado
Aquí dejo las especificaciones y los precios.




Los precios rondan en los $899 USD

Obtener. Apps.

Ejecutar los programas que hemos estado utilizando con Windows 7. Ejecutar la Oficina suite completa 1 y su línea de aplicaciones empresariales.
Y elegir entre miles de aplicaciones disponibles en la tienda de Windows. De The Economist a Wall Street Journal a Dropbox, obtendrá sorprendentes aplicaciones construidas específicamente para Windows 8. Vuelve a menudo para nuevas aplicaciones.

Crystal. Clear.

Una impresionante experiencia de entretenimiento le espera con una pantalla ancha de 16:9, pantalla ClearType full HD con resolución de 1080p. Las películas y los bisiestos fotos de la pantalla en colores vivos y un contraste nítido. La pantalla de la superficie es increíblemente sensible al tacto, lápiz y el teclado.Cambiar fácilmente entre los modos de entrada en un movimiento fluido. 


Digital. Ink.

Sea creativo con el dibujo y la toma de notas en aplicaciones tales como OneNote 1 . Marque su PowerPoint 1 presentaciones, archivos PDF y documentos al igual que lo haría en un papel. Un digitalizador pluma y bolígrafo viene con el dispositivo, por lo que es fácil de añadir un toque personal.


Saludos
Aldo Flores
@alduar