lunes, 22 de diciembre de 2008

SQL Server 2005: crear tabla con datos

Hola de nuevo,

Hoy me tiro a la piscina y escribo una entrada sin estar muy seguro de lo que escribo :-P

Yo recuerdo que en Sql Server 2000 se podía crear un script que me generaba la base de datos con las tablas y los datos. En Sql Server 2005 no he encontrado esa opción por ningún lado y si alguien me sabe decir como se hace de una forma rápida se lo estaré eternamente agradecido.

El caso es que como me he empeñado en hacer eso he perdido parte de mi tiempo buscando y preguntando al señor Google y al final lo he conseguido siguiendo estos pasos (gracias a este post http://blog.sqlauthority.com/2007/11/16/sql-server-2005-generate-script-with-data-from-database-database-publishing-wizard/)

Para conseguir un script que me permita crear una base de datos con sus tablas y - lo más importante - sus datos es necesario descargarse de la web de MS la app "Microsoft SQL Server Database Publishing Wizard 1.1"

http://www.microsoft.com/downloads/details.aspx?FamilyId=56E5B1C5-BF17-42E0-A410-371A838E570A&displaylang=en

Esta pequeña duplicación es un asistente igual que los de Sql Server que me permite seleccionar una base de datos, sus tablas y la forma de exportar: Sólo Esquema, sólo datos o esquema y datos

Y como Gon es tu amigo... problema resuelto!

Salu2

lunes, 24 de noviembre de 2008

internal error 2738

Hoy una solución rapidita,

Si al instalar en Win Vista el System Center Capacity Planner (SharePoint Capacity Planning Tool v1.0) os sale el siguiente error: "internal error 2738" la solución es muy sencilla: Inicio, Ejecutar (Buscar) y escribir "regsvr32 vbscript.dll". Igual os sale una nueva ventana con otro error, pero nos da lo mismo ya que si volveis a ejecutar el .msi se inicia correctaemnte y a otra cosa mariposa :-P

Salu2

viernes, 7 de noviembre de 2008

Huelga Informática

Hola,

Me veo en la obligación moral de añadir este enlace para defender lo que creo por derecho nos pertenece. Nuestra titulación.

No voy a abrir en este blog un debate pero si que creo que es necesario pararnos a pernsar un poco en lo que significa la NO adaptación de nuestro título.

http://www.huelgainformatica.es/

Salu2

miércoles, 29 de octubre de 2008

II Conferencia Microsoft Business Intelligence

Hola a todos,
Hoy una noticia que espero sea de vuestro agrado. Por segundo año Microsoft organiza la BI Conference en la que un servidor va a participar tanto en Barcelona como en Madrid contando un caso de éxito.
Podeis ver la agenda en el siguiente enlace:

lunes, 13 de octubre de 2008

Laboratorios Virtuales Microsoft

Hola,

Hoy voy a ser breve,

http://www.microsoft.com/events/vlabs/default.mspx

Una URL interesantísima con todos los posibles laboratoritos virtuales que se pueden hacer relacionados con tecnologías microsoft.

¡Impresncindibles!

Salu2

martes, 7 de octubre de 2008

PPS + Reporting Services en Producción

Hola,

Hoy os dejo algunos ejemplos de webs reales con Cuadros de Mando, KPI's, indicadores y un sin fin de elementos relacionados con BI y MS.

http://richardlees.com.au/
http://richardlees.com.au/sites/Demonstrations/Documents/Web%20Dashboard%20-%20close%20to%20real%20time%20analytics%20of%20this%20internet%20site/Internet%20Activity%20Today.aspx

Banco de Finlandia

http://www.bof.fi/Stats/default.aspx?r=/tilastot/markkina-_ja_hallinnolliset_korot/euribor_korot_short_en&SeriesName=D.EURIBOR12
http://www.bof.fi/Stats/default.aspx?r=/tilastot/valuuttakurssit/usd_jpy_kk_chrt_en

http://www.bof.fi/en/tilastot/index.htm

O incluso la propia MS ya que "utiliza su tecnología internamente para mejorar la forma de trabajar de sus empleados y además como un gran testador “in-house”. A ello se le ha llamado Microsoft IT Showcase".

Os dejo este site con mucha información:
http://technet.microsoft.com/en-us/library/bb736234.aspx

Curioso

Salu2

miércoles, 24 de septiembre de 2008

Han nacido tres nuevos blogs amigos

Hola,

Simplemente anunciar la creación de dos nuevos blogs por parte de unos buenos compañeros:

- InfoWorld
- BE CRM
- De todo un poco

¡Les deseo lo mejor y muchas, muchas visitas!

(Editado el 02/10/2008 para añadir el tercer blog)

Jobs en Oracle, .NET y errores con el idioma

Hola,

Siguiendo con el post anterior me pasó algo muy curioso, tenía unos Procedimientos Almacenados (SP) con unos parámetros de fecha, y a pesar de que iban como una cadena texto fijo, a la hora de llegar a ejecutarse en Oracle me fallaban.

Ejemplo: paquete.nombreSP('M', '01/01/2003', '31/12/'TO_CHAR(sysdate,'RRRR'),NULL);

Si el programa se ejecutaba en un SO en español funcionaba sin problemas, el fallo se producía cuando se ejecutaba en un SO en ingles que entonces se producía la siguiente excepción en Oracle:

ORA-12012: error on auto execute of job 2513

ORA-01843: not a valid month

ORA-06512: at line 1

Para solucionarlo es necesario añadir un poco de código respecto al que se vió en el post anterior que lo que va a hacer es cambiar la cultura del thread que llama a Oracle y lo vamos a forzar a que siempre sea en español (de España) y de esta manera Oracle 'se lo traga' sin problemas.

En el constructor ponemos esto:

Thread.CurrentThread.CurrentCulture = new CultureInfo("es-ES");

Y cuando ponemos el código que 'ataque' a la base de datos añadimos:

cmdSet.Connection = conn;

cmdSet.CommandType = System.Data.CommandType.Text;

cmdSet.CommandText = "ALTER SESSION SET NLS_DATE_FORMAT='DD/MM/RR'";

Finalmente, antes de ejecutar la 'query' que llama al 'job' de Oracle será necesario poner la siguiente línea:

cmdSet.ExecuteNonQuery();

En resumen, lo que estamos haciendo es ejecutar una sentencia SQL en Oracle antes de lanzar nuestro 'job' para que la sesión asociada a nuestra conexión la cambie a Español con el formato de fecha día/mes/año.

Si os pasa luego no digáis que no os avise ;-)

Salu2

martes, 23 de septiembre de 2008

Jobs, Oracle y .NET

Hola,

A modo introductorio de un post posterior a este voy a contaros como lanzar un job en Oracle desde un código .NET gracias al SP que se nos proporciona DBMS_JOB.submit

En su forma más básica sería algo parecido a esto:

Oracle.DataAccess.Client.OracleConnection conn = new Oracle.DataAccess.Client.OracleConnection(connString);

Oracle.DataAccess.Client.OracleCommand cmd = new Oracle.DataAccess.Client.OracleCommand();

Oracle.DataAccess.Client.OracleParameter paramID = new Oracle.DataAccess.Client.OracleParameter();

Oracle.DataAccess.Client.OracleParameter paramOpID = new Oracle.DataAccess.Client.OracleParameter();

Oracle.DataAccess.Client.OracleParameter paramOpWhat = new Oracle.DataAccess.Client.OracleParameter();

cmd.Connection = conn;

cmd.CommandType = System.Data.CommandType.StoredProcedure;

cmd.CommandText = "DBMS_JOB.submit";

paramOpID.ParameterName = "id";

paramOpID.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Decimal;

paramOpID.Direction = System.Data.ParameterDirection.Output;

cmd.Parameters.Add(paramOpID);

paramOpWhat.ParameterName = "What";

paramOpWhat.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Varchar2;

paramOpWhat.Direction = System.Data.ParameterDirection.Input;

paramOpWhat.Value = @jobName;

cmd.Parameters.Add(paramOpWhat);

conn.Open();

cmd.ExecuteNonQuery();

return paramOpID.Value.ToString();

Este SP tiene muchos otros parámetros que recomiendo que veáis en la siguiente web: http://www.psoug.org/reference/dbms_job.html

Salu2

viernes, 29 de agosto de 2008

El accidente de Spanair y los medios de comunicación

Texto íntegro tal cual ha escrito mi amigo Himar en Facebook. La verdad es que ha escrito lo que yo pienso de una forma tan exacta que no me queda más remedio que apropiarme de sus palabras. Resalto en azul sus opiniones.
El texto que publico dentro del apartado "ARTÍCULO" no es mío, aunque lo secundo totalmente, con la pequeña excepción de que el modelo MD-90 sí existe.

Añadiré, además, algunos comentarios propios al respecto, al final.




ARTÍCULO
======================================

Es demencial que nos sigan bombardeando con sensacionalismo e información errónea. Disparates tales cómo:

* el aeropuerto de Los Rodeos se cerró definitivamente tras el trágico accidente de PAN AM y KLM (TFN continúa operativo, es destino de IB, JK, UX y vuelos interinsulares)
* se mantiene la incógnita de por qué el avión de Spanair salió de la T2 y se estrelló en las pistas de la T4 (las pistas de Barajas no pertenecen a una terminal en concreto, son utilizadas por todos los aviones independientemente de la terminal donde se efectúa el embarque/desembarque)
* el MD-90...(modelo inexistente)
* sms y llamadas de los pasajeros momentos antes del despegue. Qué hacían los pasajeros con los móviles encendidos? Son conscientes de las interferencias que podían estar causando? Podríamos especular también sobre dichas interferencias como causas del accidente?
* los cadáveres acaban de llegar a la base aérea militar de Gando a bordo de un Hércules de Spanair.(Hércules es avión militar, no de aviación comercial)
* el avión no había pasado una revisión desde el mes de enero (y los demás controles diarios y de escala estipulados?)
* reportaje de una periodista en un simulador. Mientras están recreando un despegue con fallo de motor interrumpe las explicaciones del instructor para hablar del miedo que siente ella cuando hay turbulencias

Si hablan de aviación con tanto desconocimiento, cómo podremos confiar en la información que ofrecen sobre economía, medicina, etc.?

Hasta el momento no he visto que hagan informes comparativos con la siniestralidad en carretera. La media española es de 5,6 muertos diarios, lo que hace una cifra mensual de 160 personas, desgraciadamente mayor que las 153 víctimas de Spanair, cifras que afortunadamente no se repetían desde hace 25 años en España

Menos mal que después de un accidente por carretera no van a los hospitales a rescatar testimonios tales cómo:

* Peugeot se niega a dar datos inmediatamente después del accidente de por qué el fallo del ABS provocó la muerte de mis dos hijas
* El punto negro del km. X de la A1 me ha quitado a mi nieto de 4 meses
* salí despedida del coche, impacté contra el quitamiedos y caí por un terraplén. Intenté levantarme y vi que tenía el fémur fracturado....
* se hizo un torniquete y volvió a buscar a los niños que estaban tirados en la carretera
* bombero que declara que sacó de un coche ardiendo a un bebé mientras su madre moría calcinada
* me salvé de morir porque me quedé dormida y no me fui con mi hermana, mi cuñado y mis sobrinos que ahora están todos muertos
* Cuál fue la última revisión de su coche? Había hecho el cambio de aceite hace un año y pasado la ITV hace dos

Me gustaría que alguien relacionado con los medios de comunicación les hiciera reflexionar sobre la transgresión ética cometida tanto ahora como en los atentados del 11M.

En lugar de rellenar horas de televisión y páginas de periódicos con tanto morbo, sería buen momento para que recomendaran a los pasajeros que respeten las instrucciones por su propia seguridad, presten más atención a las demostraciones de emergencia y puedan localizar una salida en caso de accidente.

Reflexionen sobre cómo el equipaje de mano voluminoso, excesivo, no debidamente asegurado o colocado en salidas de emergencia actuaría como una barrera en caso de una evacuación.

Informen a los padres que se niegan a colocarle el cinturón de seguridad a sus niños para no despertarles, que en caso de frenada brusca, salida de pista o turbulencia severa los pequeños podrían salir disparados como un proyectil por la cabina.
(..)

==========================================


Lo cierto es que poco se puede esperar, no sólo de los medios, sino de las preferencias de los españoles en lo que al consumo de prensa se refiere (el periódico deportivo MARCA es el de
mayor tirada nacional en prensa no gratuita, con una ventaja considerable sobre EL PAÍS, su más inmediato perseguidor).

ELMUNDO.ES publicaba a las 16:00 horas del día del accidente información como: "En el momento del accidente, todos los pasajeros se encontraban a bordo del avión". Gracias a Dios que no había ninguno en la cabecera de pista vendiendo pañuelos. El mismo periódico, el segundo en tirada nacional (prensa no deportiva), publicaba un día después, como titular destacado de su home, "Javier cumplió mi sueño", en alusión a uno de los pilotos, quien enseñó a volar a la persona entrevistada. Otros artículos tenían como titular, "Rescate primero a mi hija", "Mi sobrino cumplía hoy 23 años", o el sensacional (de sensacionalista, no de espléndido) video de un hombre diciéndole a su mujer: "Susana, que eso es un avión", mientras grababa la columna de humo.

http://photos.l3.facebook.com/photos-l3-snc1/v319/158/103/664943096/a664943096_899979_3730.jpg

Artículo del ELPAIS bajo el título "¿Dónde están mis padres?"


ELPAIS.ES, por su parte, no se quedaba tampoco atrás: "¿Dónde están mis padres?", "¿Cuándo termina la película?", o "Mi hermana está dormidita", en alusión en este último caso a las declaraciones de un niño de 6 años al ver a su hermana, muerta. Todos estos artículos fueron de los más leídos esos días, por otra parte.

El fin último (no por orden de importancia, sino por el verdadero objetivo que lo promueve) de un medio de comunicación es INFORMAR. Pues bien, me gustaría saber qué información nos estaban dando artículos como los citados anteriormente. Porque donde ellos ven información yo sólo veo MORBO.

Asqueroso resultó también ver en la tele cómo programas de contrastado rigor informativo, tales como "Está pasando" (Telecinco) o "El Método Gonzo" (Antena 3 TV), nos demostraban su profundo conocimiento en la materia con sus extraordinarias opiniones, rebosantes de criterio ya no sólo profesional, sino también ético.

Eso sí, en ningún momento, ni un sólo medio de comunicación fue capaz de INFORMAR acerca de que, hasta las 19:30 horas (casi 5 horas después del horrible suceso), el teléfono de atención e información para familiares NO ESTUVO OPERATIVO. Es decir, que ni los familiares ni amigos de los pasajeros a bordo pudieron saber siquiera si sus seres queridos iban o no a bordo del avión siniestrado. Durante 5 horas de sandeces periodísticas amarillas, típicas (según nuestra propia atribución) de la prensa británica o alemana, sin caer en la cuenta de que la nuestra tiene el mismo tono.

Como, por fortuna, algo de información veraz y rigurosa se puede obtener de la prensa en España, cito para finalizar el siguiente extracto de un (buen, esta vez sí) artículo publicado por ELPAIS en el día de ayer bajo el título de "
La potencia, la avería y el piloto curtido". Todo un ejemplo de información veraz, rigurosa, fehaciente, fundamentada, documentada y carente de la lacra llamada morbo:

El transporte aéreo tiene el índice más bajo de mortalidad de cualquier medio. Más de 40 millones de pasajeros transitan por Barajas cada año. El último siniestro del aeropuerto madrileño ocurrió hace 25 años. Las aeronaves están sometidas a un exigente programa de mantenimiento. Antes de despegar, el piloto o un técnico realizan una inspección visual. Cada 24 horas (o un máximo de 48) se revisan los niveles y el equipo de emergencia, y cada 100 horas de vuelo o siete días, los inspectores llevan a cabo un reconocimiento de hasta tres horas. Además, en el aparcamiento se realizan revisiones mensuales, semestrales, y anuales, y cada 4.000 horas, los aviones hacen la gran parada, donde se desmontan todas sus partes. El año pasado se registraron 100 accidentes de aviones comerciales en el mundo. Sólo 20 tuvieron víctimas mortales, con 741 muertos. En el mismo periodo fallecieron en las carreteras españolas 2.742 personas.

Gracias amigo

miércoles, 20 de agosto de 2008

SSIS y ORACLE en plataformas de 64-bit

Hola a todos,

Hoy amiguitos os voy a contar una bonita historia sobre SSIS (SQL Server Integration Services) y Oracle en una plataforma de 64-bit a la hora de ejecutar unos jobs con el SQLAgent.

Resulta que haces un desarrollo en un entorno x86, crees que todo está perfecto y ¿sabes lo que pasa cuando lo llevas a producción en un entorno x64?... Exacto, que no funciona, que se producen errores y si no estás prevenido o encuentras la solución tu proyecto se puede ir rápidamente al traste.

Esto ocurre por lo siguiente:

En un entorno de 32-bits se instala BIDS(Business Intelligence Development Studio) de 32-bits, el cliente Oracle de 32-bits y DTEXEC (SQLAgent) de 32-bits. No hay problema.

Sin embargo, en entornos de 64-bits BIDS se instala de 32-bits (no hay versión de 64), Oracle de 64 y ya tenemos el primer problema. Primera solución: Instalar el cliente Oracle de 32 bit en la máquina de producción.

Pero esto provoca que cuando DTEXEC (de 64-bit) quiere ejecutar el ETL que llama al cliente Oracle (ahora de 32-bit) vuelve a fallas. HORROR!!!

La solución es no ejecutar con el SQLAgent SSIS directamente y utilizar CMDExec de 32-bits

Vaya lio, ¿no?

Venga, que con la información condensada es más fácil

- Instalar el cliente Oracle 10.2.0.1 versión de 32-bit

- Instalar el parche Oracle #4547817 (que actualiza a 10.2.0.2)

- Instalar el parche #5383042 (arregla el bug #3807408)

- Desarrollar con los paquetes con SSIS

- Ejectuar el ETL con CMDExec que usa la versión de 32-bit de DTEXEC (C:\Program Files(x86)\Microsoft SQL Server\90\DTS\binn). Próximamente en un post contaré como hacer esto y alguna cosa mas

Para terminar avisaros que los dos parches son de pago. Si, como lo lees, Oracle te hace pagar por arreglar un fallo en su aplicación, jajajaja. Y luego dicén de MS….

En fin, que a ver si con esto se solucionan vuestros problemas. Os dejo un link que me sirvió para ver la luz y poder hacer todo esto. Suerte!

http://portal.sqltrainer.com/2007/11/sql-server-integration-services-oracle.html

Salu2

lunes, 18 de agosto de 2008

"Hello, you either have JavaScript turned off or an old version of Macromedia's Flash Player. Get the latest flash player."

Hola a todos,

Desde hace unos días cuando intentaba abrir un vídeo del Youtube con mi Windows Vista me salia este mensaje: Hello, you either have JavaScript turned off or an old version of Macromedia's Flash Player. Get the latest flash player." y no podía visualizar ningún vídeo. Tras indagar un poco por Internet he visto la siguiente solución:

- Desinstalar completamente Flash Player.
http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_14157 (Información)
http://download.macromedia.com/pub/flashplayer/current/uninstall_flash_player.exe (Aplicación)

-Reiniciar

- Ir al sitio de Adobe e instalar Flash Player de nuevo
http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash (Desmarcar "Barra Google gratuita" para que no la instale)

- Finalmente instalar Flash Player ActiveX Manual Installer
http://www.adobe.com/support/flashplayer/ts/documents/tn_19166/Install_Flash_Player_9_ActiveX.zip

- Reiniciamos y ya debería funcionar

No obstante si aun así tuvierais problemas hay una página en el propio Youtube con instrucciones que nos pueden ayudar
http://help.youtube.com/support/youtube/bin/answer.py?answer=57669&src=top5&lev

Espero que os sirva de ayuda

Salu2

lunes, 28 de julio de 2008

Nuevo Blog

Hola a todos,

Hoy quiero presentaros un nuevo blog de un compañero mio que promete darnos bastante información, sobre todo útil, de CRM.

http://www.ms-dynamics-crm.blogspot.com/

Le deseo lo mejor

Salu2

martes, 1 de julio de 2008

10 best practices SSIS

En el post anterior he comentado algo sobre las 10 mejores prácticas de Integration Services. Via http://geeks.ms/blogs/elbruno/archive/2007/05/23/10-best-practices-para-sql-server-integration-services.aspx (el bruno) os indico cuales son:

  1. La Reutilización es una de las capacidades más aprovechadas dentro de SSIS. En otras palabras, podemos hablar de paquetes standards que pueden ser reutilizados en diferentes entornos de desarrollos ETL. Dentro de SSIS, esto puede lograrse utilizando templates. Los SSIS templates packages, son paquetes reutiilzables que pueden ser utilizados en cualquier proyecto una cantidad ilimitada de veces. Para más información consultar http://support.microsoft.com/kb/908018
  2. Es recomendavle evitar la utilización de puntos (.) en los nombres de los paquetes. La utilización de puntos se cruza con la nomenclatura de nombres que utiliza SQL Server y por lo tanto debe ser evitada. Un buen approach consiste en la utilización de guión bajo (_) en lugar de punto (.). Además es conveniente asegurarse que los nombres de los paquetes no excedan los 100 caracteres de largo. Durante el despliegue de los packages, los caracteres que excedan el largo de 100, serán quitados del nombre. Esto puede ocasionar que el SSIS package tenga errores durante el período de ejecucion, especialmente cuando se utiliza "Execute Package Tasks" dentro de otro paquete.
  3. El flujo de datos de en un paquete es una tarea intensiva para la memoria, en cada uno de los pasos y a nivel componente debemos revisar cuidadosamente que no estamos pasando columnas innecesarias en el flujo de datos. Esto ayuda en evitar tiempos adicionales del tiempo total de ejecución del paquete y adicionalmente mejora el funcionamiento total de la ejecución del paquete.
  4. Mientras se configura a cualquier conexion OLEDB como fuente, se debe evitar usar "Table or View" como el modo de acceso de los datos, éste es similar al "SELECT * FROM <TABLE_NAME>", y como la mayor parte de nosotros sabe, "SELECT *" es nuestro enemigo, esta sentencia toma en cuenta todas las columnas incluyendo las que incluso no se requieren. Intentar siempre utilizar el modo "SQL Command" como modo de acceso de los datos e incluir solamente los nombres de las columnas requeridas en la declaración "SELECT". De esta manera se evita pasar columnas innecesarias en flujo de datos.
  5. En los Data Flow Tasks, utilizar muy cuidadosamente el Flat File Connection Manager, crear un Flat File Connection Manager con la configuración por defecto utilizará el tipo de datos [DT_STR] por defecto para todos los valores de la columna. Ésta no es siempre la opción correcta porque porque puede existir algun tipo de dato numérico, número entero o columnas boleanas en la fuente, pasándolo como string en el flujo hacia abajo se utilizaría memoria innecesaria y puede causar cierto errores en las fases posteriores de la ejecución del paquete.
  6. El ordenar datos es una operación que consume mucho tiempo; en SSIS puedes ordenar los datos que vienen desde un componente superior utilizando un 'Sort transforming', no obstante esto es una tarea que consume mucha memoria y el resultado degrada el funcionamiento total de la ejecución del paquete. Como mejor práctica, en los lugares en donde sabemos que los datos están viniendo de las tablas de la base de datos SQL Server, es mejor realizar la operación de ordenar los mismos en motor de la base de datos utilizando una sentencia TSQL dentro del Query apropiado. Esto es mucho mejor porque el ordenamiento de datos en la base de datos es una tarea mucho mas refinada y depurada en SQL Server.
  7. Durante el desarrollo de los paquetes de SSIS, la mayor parte del tiempo uno tiene que compartir su paquete con otros miembros del equipo o uno tiene que desplegar el mismo paquete a cualquier otro desarrollador, UAT o entorno de producción. Una cosa que un desarrollador tiene que cerciorarse es utilizar el nivel correcto de la protección del paquete. Si alguien va con el nivel de la protección del paquete del defecto 'EncryptSenstiveWithUserKey' entonces el mismo paquete no pudo ejecutarse según lo esperado en otros ambientes porque el paquete fue cifrado con la llave personal del usuario. Para hacer la ejecución del paquete común a través de diferentes entornos, uno tiene que primero entender el comportamiento de la característica del nivel de la protección del paquete, es aconsejable leer http://msdn2.microsoft.com/en-us/library/microsoft.sqlserver.dts.runtime.dtsprotectionlevel.aspx. Generalmente, para evitar los errores mas comunes durante el despliegue de paquetes a partir de un sistema a otro sistema, fijar la protección del paquete a 'DontSaveSenstive'.
  8. Una buena práctica es utilizar Secuence Containers en paquetes de SSIS para agrupar diversos componentes en el 'Control Flow Level'. Esto ofrece_
    1. Proporciona un scope para las variables de un grupo de tareas relacionadas y de los contenedores que puede ser utilizado.
    2. Proporciona la facilidad para manejar las propiedades de múltiples tareas fijando la propiedad en el 'Secuence Container Level'
    3. Proporciona facilidad para definir el nivel de aislamiento de la transacción del sistema en el Container Level.
      Para más información sobre los envases de la secuencia, ver por favor http://msdn2.microsoft.com/en-us/library/ms139855.aspx.
  • Si estás diseñando una solución de ETL para una pequeña, media o grande parte del negocio de una empresa, siempre es bueno tener una característica que permita reiniciar los paquetes fallados a partir del punto de la falla. SSIS tienen una característica de fábrica llamada 'Checkpoint' para soportar el reinicio de paquetes fallidos desde el punto de la excepción. Sin embargo, es necesario configurar la característica del Checkpoint en el nivel del paquete. Para más información, ver http://msdn2.microsoft.com/en-us/library/ms140226.aspx.
  • Excecute SQL Task es nuestro mejor amigo en SSIS; podemos utilizar esto para ejecutar una declaración simple o múltiple de sentencias SQL a la vez. La belleza de este componente es que puede retornar resultados en diferentes formatos, por ejemplo: single row, full row set y XML. Puedes crear diversos tipo de conexiones usando este componente como OLEDB, ODBC, ADO, ADO.NET y SQL Mobile. Personalmente prefiero utilizar este componente la mayor parte del tiempo con mis sentencias FOR EACH para definir las iteraciones y verificar si ejecuto la tarea SQL. Para más información, ver http://msdn2.microsoft.com/en-us/library/ms141003.aspx y http://www.sqlis.com/58.aspx.
    1. Espero os sean de utilidad

      Salu2

      SSIS y Query Oracle con parametros

      O lo que es lo mismo "SSIS Query Oracle with parameters" :-)

      Escribo este post porque despues de pegarme mucho (muchiisimo) con SSIS (Integration Services) y Oracle para poder hacer una consulta en un OLEDBSource Task (Origen OLDB) con parámetros he conseguido encontrar la solución.

      Lo primero es crear una variable que contenga la consulta y tantas variables como parámetros. En propiedades indicar lo siguiente:
      - Evaluate as Expression en propiedades a True
      - Expression Property: "select xxx from xxx where job = '" + @[User::NbVariable] + "'"

      Por su parte el Origen OLDB lo configuraremos para que el access mode sea a SQL Command de Variable e indicaremos la variable definida anteriormente.

      Si pinchamos en vista previa veremos que nos devuelve los datos.

      el post que me ha ayudado.... http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=1530650&SiteID=17

      Curiosamente ademas es una de las 10 best practices

      Proximamente comentaré algo sobre ejecutar un paquete de SSIS en una maquina de x64 atacando a un oracle x64 sin el driver de Oracle OLEDB de x32

      Salu2

      lunes, 16 de junio de 2008

      Nueva aplicacion web en Sharepoint y PPS (Error, horror)

      Hola,

      Pues el post de hoy está relacionado con Sharepoint y Performance Point Server (PPS)

      Erase una vez, un joven desarrollador adentrándose en el maravilloso mundo de BI con PPS cuando un buen día se le ocurrió hacer un cuadro de mandos y deployarlo en un maravilloso sitie de WSS/MOSS que se había creado a tal efecto.
      Pero cuando menos se lo esperaba apareció un terrible error que decía asi: "The control type 'Microsoft.PerformancePoint.Scorecards.WebParts.ScriptManagerLoader' is not allowed on this page. The type is not registered as safe."

      No le quedo más remedio que ir al web.config de dicha aplicación web y añadir bajo la sección <safecontrols> la siguiente línea:

      <SafeControl Assembly="Microsoft.PerformancePoint.Scorecards.WebParts, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="Microsoft.PerformancePoint.Scorecards.WebParts" TypeName="*" Safe="True" />

      Así que cuando creía que habia ganado la batalla y se dispuso a ver su precioso cuadro de mandos le sorprendieron los siguientes mensajes de error por cada webpart de pps:

      "Web part Error unexpected error has occured"

      Que horror... ¿y que podía hacer él?


      Tras muchos intentos fallidos y cuando todo parecía perdido, Internet-Google apareció en su rescate y el siguiente blog le solucionó la vida:

      http://blogs.msdn.com/performancepoint/archive/2007/11/12/how-do-i-deploy-the-monitoring-web-part-on-a-separate-sharepoint-web-application-on-the-same-sharepoint-web-server.aspx

      En resumidas cuentas la solución consistía en hacer lo siguiente:

      - Hacer deploy de PSCWebParts.cab en nuestro web application; bien por consola o desde el propio MOSS
      - Añadir a nuestra app la siguiente master page:C:\Program Files\Microsoft Office PerformancePoint Server\3.0\Monitoring\Assemblies\PerformancePointDefault.master
      - Abrir un web.config de un sitio que funcione correctamente (AdventureWorks) y copiar todas las líneas que no aparecen en el web.config de nuestro site.

      Con esto nuestro joven desarrollador pudo dormir tranquilo y comer perdices soñando con su fabuloso cuadro de mando.

      Salu2

      sábado, 14 de junio de 2008

      Mi PPS no me muestra bases de datos

      Hola,

      Hoy toca solucionar un problema que me he encontrado cuando he querido crear un Datasource a mi base de datos de Analysis Services y Performance Point Server no me la mostraba en el desplegable...

      Solución:

      Dentro de Roles, en el DataWarehouse, crear un nuevo perfil con full control y como Membership asginarle Everyone (Todos).

      Con esto deberia ser suficiente para que desde PPS podamos engancharnos sin problemas.

      Salu2

      martes, 10 de junio de 2008

      Dimensión de tiempo con granularidad de horas.....

      Hola a todos,

      Hoy esto va de un poquito de BI. Resulta que para una prueba necesitaba tener una tabla de dimensión de tiempo con granularidad de horas y por lo que he visto SSAS permite crear esta dimensión pero se queda en el día. Buscando en la web (no mucho la verdad) he encontrado este enlace que proporciona un script para crear y cargar la tabla:

      http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3353754&SiteID=1

      Y el script es el siguiente:

      /***************************************
      Script: Creates and Populates an Hour Dimension Table

      Note: This script does hours and minutes. If seconds are needed,
      then modify the datepart on the last line that increments the date.
      Obviously the table will be bigger when you include seconds.

      Author: Ibrahim Hafidh
      Date: 10/11/2005
      ****************************************/

      if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[dimHour]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
      drop table [dbo].[dimHour]
      GO

      CREATE TABLE dimHour
      (
      HourID INT IDENTITY (1, 1) NOT NULL PRIMARY KEY
      , TheDate DATETIME NOT NULL
      , TheTime Datetime NOT NULL
      , MilitaryHour INT NOT NULL
      , StandardHour INT NOT NULL
      , TheMinute INT NOT NULL
      , TheSecond INT NOT NULL
      , Standard varchar(2) NOT NULL
      )


      DECLARE @startdate DATETIME
      DECLARE @enddate DATETIME
      DECLARE @date DATETIME

      SET @startdate = '1/1/2005 12:00:00 AM'
      SET @enddate = '1/1/2005 23:59:59 PM'
      SET @date = @startdate

      WHILE @date <= @enddate
      BEGIN
      INSERT INTO dimHour (TheDate, TheTime, MilitaryHour, StandardHour, TheMinute, TheSecond, Standard)
      VALUES (
      @date --TheDate
      , convert(nvarchar(11), @date, 114) --Time format
      , DATEPART(hh, @date) --Military Hour
      , CONVERT(varchar(2),
      CASE
      WHEN DATEPART([hour], @Date) > 12 THEN CONVERT(varchar(2), (DATEPART([hour], @Date) - 12))
      WHEN DATEPART([hour], @Date) = 0 THEN '12'
      ELSE CONVERT(varchar(2), DATEPART([hour], @Date))
      END) -- Standard Hour
      , DATEPART(mi, @date) --Minute
      , DATEPART(ss, @date) --Second
      , CASE WHEN DATEPART(hh, @date) between 0 and 11 THEN 'AM' ELSE 'PM' END
      )


      SET @date = DATEADD(mi, 1, @date) -- ** Modify the datepart to ss if seconds are needed

      END



      Por otra parte dejo también este enlace muy útil de conversiones de fechas en SQL Server 2005

      http://www.dreamincode.net/forums/showtopic42872.htm

      Y esto es todo por hoy....


      A2

      viernes, 6 de junio de 2008

      Clonar máquinas con Virtual PC

      Hola a todos,

      En primer lugar quiero pedir disculpas por lo poco que me prodigo por estos lares pero las razones son fundamentadas, primero y principal es que mi reciente paternidad hace que el tiempo que pueda dedicar sea más bien escaso, en segundo lugar, mi Proyecto Fin de Carrera me esta quitando el resto de poco tiempo que tengo (por fin este domingo me lo quito de encima).

      Bueno, vayamos al grano, la razón que ha hecho que escriba este post es el siguiente, resulta que he generado dos máquinas virtuales para un entorno de desarrollo para un par de personas que obviamente se han copiado y ejecutan desde sus propios PC's. Cual ha sido mi sorpresa cuando nos daba errores de "time out" con la base de datos y hacia cosas bastante raras. Tras un poco de investigación me di cuenta que el servidor DHCP del cliente nos estaba dando la misma IP y tras marear un poco al de sistemas he descubierto que era un error muy habitual pero que me ha quitado casi todo un día descubrirlo.

      Cuando se copian máquinas virtuales de Virtual PC se conserva la misma MAC en todas las máquinas clonadas y por tanto cualquier servidor DHCP se piensa que es la misma máquina y asignara la misma IP con todos los problemas que eso conlleva.

      Solución:

      - Copiar únicamente el disco duro virtual y crear una asignación nueva
      - Editar el archivo .vmc con el bloc de notas y buscar la clave <ethernet_card_address>, borrar la MAC que tenga y dejarlo de la siguiente manera <ethernet_card_address type="bytes>ethernet_card_address>. De esta forma la próxima vez que arranquemos la máquina virtual nos asignará una nueva MAC diferente a la del resto de las máquinas clonadas.

      No se porqué pero pero cosas así hacen que cada día vea que entre Virtual PC y VMWare no hay color :-)

      Salu2

      lunes, 7 de abril de 2008

      Diferencias entre workflows de Sharepoint Designer y Visual Studio

      Gracias a un compañero de Raona, Carlos E., puedo publicar este gráfico que nos indica las diferencias entre diseñar un WF con SharePoint Designer y Visual Studio. Muy útil cuando quieres saber rápidamente con que herramienta empezar a trabajar y no tener que tirarlo todo y volver al principio ;-)

      Category

      SharePoint Designer

      Visual Studio

      Supported WF Hosts

      WSS/MOSS

      WSS/MOSS/Others

      Development Model

      Wizard based

      Graphical Designer

      Types of Workflows Supported

      Sequential

      Sequential and State

      Workflow Type

      Markup only; markup file, rules and supporting files are uncompiled

      Markup with code behind compiled into an assembly

      Code Behind

      No

      Yes

      Activities

      Built-in and use custom

      Built-in, use and develop custom

      Forms Technology

      Autogenerated, customizable ASP.NET Forms

      Design forms in any technology including ASP.NET or InfoPath

      Association

      Associated automatically with a single list at design time. No other associations possible.

      Can be associated with multiple content types, lists, and document libraries

      Initiation

      Initiation forms are supported

      Initiation forms are supported

      Modification

      Cannot modify workflow using modification forms

      Can modify workflows

      Tasks

      Supports custom task forms

      Supports custom task forms

      Deployment

      Automatically deployed to associated list, live changes

      Must build package and deploy workflow using SharePoint feature technology

      Debugging

      No Debugging

      Visual Studio Debugging

      A2

      viernes, 14 de marzo de 2008

      Fantastic 40

      Hola,

      Hoy revisando la web he encontrado un enlace muy util con la descripción en castellano de las Plantillas Fantásticas (Fantastic 40) que se pueden descargar gratis de la web de MS para tener una funcionalidad extra.

      http://www.microsoft.com/latam/technet/windowsserver/sharepoint/wssapps/templates/descriptions.mspx

      Muy util para hacer propuestas

      A2

      lunes, 10 de marzo de 2008

      Problemas al sincronizar Windows Mobile y Vista

      Hola a todos,

      Hoy sorprendentemente conecto mi movil (HTC Windows Mobile) y no se porqué el centro de sincronización no me conectaba el movil con el PC y Vista (como si no existiera). Tras mucho darle vueltas he conseguido solucionarlo de la siguiente forma, desinstalando el centro de sincronización y volviéndolo a instalar. Pero como nunca se solucionan las cosas a la primera, ahora si concectaba pero no sincronizaba con el Outlook. Al final he tenido que ir al Firewall de Vista y abrir los siguientes puertos:

      Inbound TCP:

      • 990
      • 999
      • 5678
      • 5721
      • 26675

      Outbound UDP:

      • 5679


      Oye, mano de santo :-)

      domingo, 24 de febrero de 2008

      Visual Studio 2005 sin plantillas

      Hola,

      Este fin de semana y sin conexión a internet voy a crear un nuevo proyecto web en Visual Studio 2005 y cual no será mi sorpresa cuando la pantalla para elegir el tipo de proyecto estaba más blanca que las camisas de un anuncio cualquiera de detergente. El caso es que me rompi la cabeza un buen rato y me di por vencido recurriendo a una maquina virtual para tales menesteres. Acabo de llegar a casa y en menos de 3 minutos he encontrado la solución a mis problemas:

      - Copiar el contenido de C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates en la ruta My Documents\Visual Studio 2005\Templates\ProjectTemplates.

      - Copiar el contenido de C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ItemTemplates en la ruta My Documents\Visual Studio 2005\Templates\ItemTemplates.

      Con esto y sin tener que reinstalar Visual Studio se debería solucionar.

      Vía http://thinkingtogether.net/blogs/sample_weblog/archive/2007/04/09/perdida-de-templates-en-vs-2005.aspx

      Como podíamos vivir hace unos pocos años sin internet y sin Google?

      TODO: Probar http://www.live.com/ a ver si es tan bueno como prometen

      viernes, 22 de febrero de 2008

      WSS 3.0 y WebPública

      Hola,

      Durante un tiempo he tenido la duda de si era posible tener una Web Publica con WSS 3.0 y cuanto me costaría (en MOSS2007 el precio ronda los 50.000€)

      Esta semana, en el curso de BPIO se estuvo discutiendo esta posibilidad y por parte de MS no hay ningún inconveniente. El único requisito es tener una licencia Internet Conector (unos 3.000€) y con eso sería suficiente. Al ser un producto incluido en W2K3 Server, la propia licencia del servidor hace que sea legal y posible montar la Web Pública.

      A2


      BPIO

      Hola,

      Hace algunos días que no posteo nada y la razón fundamental es que esta semana he estado en un evento de cuatro días en MS y el poco tiempo que me ha quedado ha sido para preparar las cosas muy urgentes que tenía pendientes con los clientes.

      El evento al que he ido se llama "BPIO Univerity Readiness Workshop" (dicho así suena a "y ezo que e lo que eh" y eso mismo pensé yo cuando mi jefe me dijo que era el curso fundamental para nosotros).

      BPIO (Bepio ó Bipiaiou) significa Business Productivity Infrastructure Optimization, tampoco es muy aclaratorio pero voy a tratar de explicar su significado.
      Tradicionalmente, la estrategia de MS se ha centrado en el producto (Windows, Office, SqlServer....) pero de un tiempo a esta parte ha descubierto que si quiere ser más competitiva aun debe de cambiar esa visión a una estrategia de plataforma.
      Esto es lógico; para llegar a un mercado con competidores que tienen herramientas mejores muy completas debe ofrecer un valor añadido más grande, y eso solo lo puede conseguir vendiendo un conjunto de productos que forman una solución.

      Performance Point Server (PPS para los amigos) no es el mejor producto del mercado (le falta bastante de DataMining para poder ser competitivo por si solo) pero si su "sencillez" se junta con Excel y SharePoint, por ejemplo, nos ofrece un conjunto de utilidades difícilmente alcanzables por la competencia; no sé si me explico.

      Con esto tenemos pues que BPIO es la estrategia que MS quiere transmitir a los Partners para ofrecer una plataforma tecnológica de negocio unificada y extensible en cuanto a Comunicaciones Unificadas, Business Intelligence (BI), Búsqueda, Gestión de Contenido Empresarial y Colaboración.
      Como veis, no habla de productos, sino de tecnologías (aunque claro, según nos dicen esto, todos pensamos en SharePoint, SQLServer, PPS, Enterprise Search, incluso CRM.....)

      No me quiero enrollar más por hoy, en próximos días os iré dando más información a recursos y enlaces más que interesantes que me han pasado estos días (más de 30Gb de información de presentaciones, maquinas virtuales, scripts, enlaces, videos.....)

      Y dejo una pregunta en el aire sin contestar ¿Porque MS tiene tanta información (demasiada incluso) que es imposible de encontrar cuando la necesitas?

      A2

      miércoles, 13 de febrero de 2008

      Búsquedas en WSS 3.0

      Para la propuesta de un proyecto nos ha surgido una duda.... ¿Que diferencias hay entre el Search de MOSS2007 y de WSS 3.0?. MS nos lo deja muy claro (o eso parece)

      "Windows SharePoint Services 3.0 uses the same SharePoint search technology used by Enterprise Search in Microsoft Office SharePoint Server 2007 rather than relying on Microsoft SQL Server full-text searching, as previous versions of Microsoft Windows SharePoint Services did.

      Search in Windows SharePoint Services addresses a single site collection, and is automatically scoped to current context and limited to site and subsites, list or library, or folder. If you are looking at a subsite, you cannot search over the entire site collection, but you can search over all subsites of the current site.

      Only SharePoint content in the site collection can be crawled. You cannot configure Search to crawl databases, mail servers, application servers, or Web sites and file shares outside of the site collection. In a deployment with more than one site collection, each site collection provides Search only for content on that site collection, and there is no aggregation of search results across site collections.

      The Windows SharePoint Services 3.0 Search service is also used to enable searching of the Help system that is built into Microsoft Office SharePoint Server 2007."

      http://msdn2.microsoft.com/en-us/library/aa979515.aspx

      The Architecture Journal

      Vía compañero de Raona me llega este enlace a una revista que publica MS bastante interesante y que desconocía.....

      http://msdn2.microsoft.com/en-us/arcjournal/default.aspx

      A2

      martes, 12 de febrero de 2008

      Quien mata de lejos....

      "...quien mata de lejos lo ignora todo sobre el acto de matar. Quien mata de lejos ninguna lección extrae de la vida ni de la muerte: ni arriesga, ni se mancha las manos de sangre, ni escucha la respiración del adversario, ni lee el espanto, el valor o la diferencia en sus ojos. Quien mata de lejos no prueba su brazo ni su corazón ni su conciencia, ni crea fantasmas que luego acudirán de noche, puntuales a la cita, durante el resto de su vida. Quien mata de lejos es un bellaco que encomienda a otros la tarea sucia y terrible que le es propia. Quien mata de lejos es peor que los otros hombres, porque ignora la cólera, y el odio, y la venganza, y la pasión terrible de la carne y de la sangre en contacto con el a cero; pero también ignora la piedad y el remordimiento. Por eso, quien mata de lejos no sabe lo que pierde."

      Estadísticas en blogspot

      Hola de nuevo,

      Ayer me surgió una duda. Como mi blog ha sido incluido en la lista que aparece en la Home de Raona me preguntaba como sería posible consultar las estadísticas de acceso y el número de visitas que tiene mi blog. Salvo que este muy escondido creo que no hay ninguna utilidad incluida en el blog que lo permita y me propuse dar una solución a esto. Después de pensar un poco y darle un par de vueltas se me encendió la bombilla.

      Hay un par de herramienta de Google (que raro, no?) dedicada para los webmasters, que proporciona lo que necesito. Una es http://www.google.com/webmasters/ que proporciona información de "Estadísticas, diagnósticos y administración de los procesos de rastreo e indexación que realiza Google de su sitio web, incluidas funciones como el envío de Sitemaps y la generación de informes." y la otra es http://www.google.com/analytics/ para "obtener aún más información sobre la procedencia de los usuarios que visitan su sitio y la forma como interactúan con el mismo". En ambos hay que dar de alta la dirección del sitio y añadir un "meta" para la primera (que proporciona el mismo sitio de Google) y un pequeño script en la segunda. Para hacer esto e incluir ese código es necesario editar la plantilla que proporciona blogspot en la pestaña de Plantilla (al lado de Configuración) - Edición HTML.

      Una vez hecho esto, guardamos, le damos a verificar en Webmaster Tools y ..... Listo!

      Ha verificado correctamente http://blogzalos.blogspot.com/.

      Desde el site de Webmasters de Google ya puedo consultar las estadísticas de mi sitio y comprobar lo poco conocido que es ¡A ver si lo solucionamos! :-P

      A2

      jueves, 7 de febrero de 2008

      Microsoft se posiciona lider en BI

      Hola de nuevo,

      Hoy traigo información calentita y de primera mano:

      Gartner, consultora tecnológica, ha posicionado en su informe anual a MS como líder en soluciones de BI

      MS-Gartner.jpg

      Según los datos que ofrecen:
      - "Los precios fijados por Microsoft, la integración con Office (incluido PPS) y los productos de SQL Server son especialmente atractivos para las organizaciones que se han estandarizado en la infraestructura de la información de Microsoft".
      - "Los productos de BI de Microsoft proporcionar a las desarrolladores infraestructuras, herramientas de desarrollo, flujos de trabajo (Workflows) y capacidades de colaboración que están por encima de las de muchos de sus competidores".
      - "Microsoft se está beneficiando de su desarrollo indirecto en las ventas y servicios de su SQL Server, Office y SharePoint Portal instalado de base. Como resultado de ello, Microsoft estima que tiene ahora alrededor de 2000 OEM / ISV 'partners' para sus productos de BI".
      - "Finalmente, y de acuerdo con Gartner, Microsoft ofrece el mejor software de BI en cuanto a calidad de todos los 'megavendors', con más de la mitad de ellos que no reportan incidencias con el software. Con este dato se puede ver como Microsoft se está centrando en su plataforma de BI, la fuerza de su línea de productos de gestión de equipo y el hecho de que gran parte de su tecnología de BI se ha desarrollado internamente en lugar de adquirirla de otras empresas".

      (Texto traducido del original)

      miércoles, 6 de febrero de 2008

      SharePoint Capacity Planning Tool

      Muy a tener en cuenta....

      "Planning a Microsoft Windows SharePoint Services 3.0 (WSS) installation or a Microsoft Office SharePoint Server 2007 (MOSS) installation for a large enterprise can be a very complex undertaking. Determining the most cost-effective topology, hardware, and bandwidth requirements is not a trivial task and involves selecting from a variety of configuration options. In choosing the option that best fits your organization's needs, you need to answer the following questions:

      • What is the minimum hardware you need to deploy?
      • Where and how should you deploy the hardware?
      • How can you optimize your deployment to meet your organization's requirements for availability and performance?
      • How will growing capacity needs affect the topology? "

      http://technet.microsoft.com/en-us/library/bb961988.aspx