[Evento Online] MOSS y el Nuevo Mundo de Trabajo

image

Uppsss, hacía tiempo que no posteaba, la verdad casi se me olvidó (gracias Fran por estar al loro). Llevo unos meses de leyes leyes y más leyes. Pero siempre hay tiempo para un buen webcast de tecnología Microsoft y, en mi caso si es MOSS mejor que mejor. Así que el próximo Martes 16 de Septiembre estaré junto a los chicos de SecondNUG para charlar un rato sobre MOSS.

Los datos del evento son los siguientes:

Día: 16 de Septiembre de 2008
Hora: 19:30h – 21:30h (GMT+2)
Ponente: Miguel J. Rodríguez Griñolo (Ingeniero Técnico Informático y Fundador de OnobaNET)

Estamos llegando a un punto de saturación importante en lo que a la información se refiere. Esto, sumado a los nuevos métodos de trabajo en equipo con la colaboración por bandera está haciendo que las empresas tengan, entre otras cosas, que actualizar sus sistemas y mejorar sus flujos de trabajo para no quedarse fuera de un mercado cada día más competitivo. Ningún sector se libra, industrial, sanitario, educativo … en este evento te mostraremos cómo Microsoft Office Sharepoint Server 2007 (MOSS) permite una mejor organización, búsqueda y explotación de la información, mayor seguridad en los sistemas, optimización de los flujos de trabajo y muchas, muchas cosas más.

Se trata, por tanto, de dos horas llenas de demos en las que podremos ver las funcionalidades principales de MOSS en cuanto a la creación de portales, flujos de trabajo, formularios de servidor, servicios de Excel, catálogo de datos profesionales y búsqueda empresarial, por citar algunas, sin olvidar algunos temas como infraestructura, administración o posibilidades de programación. Un evento que te hará tener una visión bastante completa de la potencia que realmente tiene esta plataforma de Microsoft.
Podéis registraros en el siguiente enlace: http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032387758&culture=es-ES

El CrystalReportViewer, la carpeta aspnet_client, los módulos de combinación y mi dolor de cabeza!!

Ay ay ay, ¡¡que dolor de cabeza!!, si es que nos empeñamos en complicar las cosas. Vereis. Resulta que tengo una aplicación web que utiliza el control CrystalReportViewer para visualizar un report que he creado con el «Crystal Report para Visual Studio .NET 2005» (concretamente la versión Team para desarrolladores, aunque esto es lo de menos). Este control cuando se inserta en una página web muestra una barra de herramientas (configurable desde las propiedades) con lindos botones sobre fondo negro-grisáceo como por ejemplo, imprimir (ya en la versión 2005 sí aparece este botón y no es necesario pasar el report a pdf para imprimirlo), primera, anterior, siguiente y última página, exportar, en fin, lo típico. Ahhh!! que chulo (dije yo) y además me soluciona el problema que tenía con reporting services de caja de texto sin propiedad KeepTogether (que manda güevos esto!!!, lo podeis leer en otro post mío) con lo cual tengo un Informe de Alta (este es el report) muy muy historiado.


Inocente yo (y a la vez enterao por no leer sobre crystal), me da por hacer copy/paste para desplegar la aplicación al IIS y claro, me empieza a doler la cabeza. ¡¡DEL INFORME NADA DE NADA!!. Primero que veo, se necesitan unos módulos de combinación según la versión de Crystal Report usada que se bajan desde la web de la empresa bussinesobjects (creadora de Crystal Reports) que, añadidos a un proyecto de instalación web, permiten desplegar la instalación ejecutando el msi resultante de dicho proyecto de instalación. Vale!!  (me digo tras algunos problemas con la descarga) ya tengo el modulito de combinación para «Crystal Report para Visual Studio .NET 2005», monto mi proyecto de instalación, añado el módulo de combinación, los ficheros de la aplicación que quiero desplegar, genero el proyecto y lo instalo. Genial!!, ya veo el report, pero …. eyyy …. que pasa?, ¿por qué la barra de botones del CrystalReportViewr no muestra las imágenes de los botones y el fondo negro-grisáceo que veía en mi Visual Studio .NET 2005 se ha tornado blanco nieve?. Y lo peor, NO FUNCIONAN los botones de barra, no puedo imprimir!!!. Ahora sí que me duele la cabeza.


…. días de búsqueda de una posible solución al problema y con fuertes dolores de cabeza ….


Al fin, la solución (lo dicho, nos gusta complicarnos). Resulta que cuando se instala CrystalReport se crea una carpeta en el wwwroot que contiene todo lo necesario para que el visor de CrystalReport pueda funcionar, es decir, los script, las páginas que usa, las imágenes de la barra, vamos toito to. Muy bien, si mi aplicación web residiera dentro del sitio web predeterminado (wwwroot) del IIS no hubiera tenido problemas ya que el control tira de esta carpeta, es decir, la gente de Crystal dan por hecho que voy a montar mi aplicación web ahí, pero resulta que, como la mayoría de los mortales que montan web, tengo mi propio sitio web y es ahí donde quiero desplegar mi aplicación web. Por tanto, y tras muchos dolagial, me da por copiar la carpeta aspnet_client en la raiz de mi sitio web y, ooohhhh!!!, todo como la seda, imágenes, fondo negro-grisáceo, los botones funcionan y ¡¡al fin!! tengo el informe de alta terminado. Ahhh!! una última cosilla, en las propiedades del CrystalReportViewer hay que especificar donde están las imágenes en la propiedad ImageToolBarURL que en este caso será aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer3/images/toolbar/ (ver para creer).


Finalmente me dejó de doler la cabeza ;-).

Los Guisantes de Carmeli

No no, este post no tiene nada de tecnología, versa sobre la comida que estoy haciendo en el momento de escribir el post y a la espera de que mi mujer y mi hija vuelvan de la tienda de comprar algunas cosillas que me faltan, verás, la receta es la siguiente:


Ingredientes: 2 cebollas, 3 dientes de ajos, 1 pimiento, 1 kg de guisantes, 2 tarrinas de taquitos de jamón, 1 cuchara de pimentón, 1 vaso de vino blanco.


Preparación: Hacer un refrito de las dos cebollas, los ajos y el pimiento cortadito todo en trocitos muy pequeño en la olla expres. Una vez que esté el refrito añadir los guisantes, los taquitos de jamón (no le eches sal ya que con los taquitos de jamón te saldrá en su punto), la cucharada de pimenton y el vaso de vino blanco, un poquito de agua, cerrar la olla dejándola unos 20 minutos. Finalmente añadir dos o tres huevos (según los comensales) y dejarlo hacer con el propio calor de los guisantes.


Y de esta manera tendremos unos guisantes con huevos y jamón para chuparse los dedos (o, al menos, para tener una comida en 30′ muy apañá jeje).


¿Y por qué de Carmeli?, pues porque es la que me dio la receta, mi madre, que se llama Carmen y que tiene una mano para la cocina espectacular. AhhH!! que no te lo crees??, vale pues si te pasas por Huelva pásate por Bar Casa Miguel en el Mercado del Carmen y ya me contarás ;-).

Mi gozo en un pozo (usando SSRS)

Claro, es que no se puede estar en todo, ¿o sí?. Seguro que a los chicos/as de Microsoft encargados de SQL Server Reporting Services no les dio por crear un informe de alta médico para probar el comportamiento del componente Textbox de reporting ;-).


Un informe de alta médico seguro que sabeis como es, una serie de «cajas» como antedecentes, pruebas, curso clínico, tratamiento, diagnósticos, los datos del paciente y del médico, etc. ¡¡ Pues bien, ahí está el tío!!!. Chulo chulísimo que me quedó mi informe de alta (trabajo en un hospital) con mis textobox parametrizados para que los datos de un registro armaran el informe. Muy bien, hasta ….. ¡hasta que el texto de una de las cajas de texto era más grande que lo que cabía en la hoja!. Bueno, no debía de pasar nada, pensé. Pero pasó. El textobox en cuestión pasó de hoja enterito, dejando un gran espacio en blanco en la hoja donde debería empezar.


Y tras mucho investigar llegué a esto:


1.- El comportamiento del textbox en SSRS, de momento, no se puede cambiar.


2.- Siempre guarda el texto como un único objeto


3.- Este problema se comentó al soporte de Microsoft y este lo cerró el 21 de Noviembre de 2006 (unos días antes de este post) comentando que este bug se solucionaría en un siguiente versión (Jajajaja, como le digo yo ahora a los médicos que esperen a una siguiente versión?, es broma, usaré otra herramienta y punto :-))


En fin, lo dicho, mi gozo en un pozo.

"Sql Server Destination" o/y "OleDB Destination" en SSIS

Si estás haciendo un paquete de integración con SSIS y tienes un destino SQL Server 2005 lo más lógico (a mí fue lo que me pareció) es usar el componente SQL Server Destination ya que, bueno, pensaba que mejor sería usar el suyo que uno más genérico. Y eso hice, usé SQL Server Destination. Y al ejecutar el workflow todo fue bien. Pero hay una frase que no saldrá de la ley de Murphy por mucho que nos empeñemos y esta frase es: "Si en prueba te funciona, en producción te fallará" y me falló, claro que me falló. Cambié la cadena de conexión del SQL Server 2005 de prueba que tengo en la misma máquina donde ejecuté el paquete SSIS a un SQL Server 2005 en otra máquina que es donde están los datos en producción para que la integración terminara metiendo los datos en la bd correspondiente y ahí empezó el problema.

Tras investigar, probar, buscar y preguntar llegué a una solución: usar OleDB como destino de los datos. Bueno, está bien, es una solución. Si tienes un SQL Server 2005 en una máquina que no es la que ejecuta el paquete SSIS usa un OleDB Destination y te funcionará, claro, con ese componente podrás usar gran variedad de bd como destino de la integración y funcionará.

Pero lo suyo sería usar SQL Server Destination no?. ¿Por qué no trabaja este componente cuando se trata de un SQL Server 2005 en otra máquina?. Si encuentro la solución a la pregunta la postearé aquí y si alguien la tiene y la quiere dejar agradecido estaré ;-).

El Médico de Cabecera (y por qué SSIS no hace milagros)

Tengo que contarlo, de verdad, es una necesidad. Pues ando liado con una integración de unos datos que vienen de una BD Access a un sistema con BD SQL Server 2005 que estamos desarrollando en el Hospital. Esta integración la he hecho con SSIS y la verdad, estaba realmente contento por el resultado … hasta hoy. Si leiste mi post anterior (que "peasso" paquete tengo, niña!) sabrás de que hablo. Bueno, de todas formas lo resumo.

Imagínate una BD Access para realizar Informes de Alta de pacientes en un hospital. Tiene un formulario con una serie de cajas de texto para almacenar la información de un informe de alta como son: anamnesis, antecedentes, exploraciones, diagnósticos, tratamiento, etc. Y una caja de texto con nombre "Nota Médico de Cabecera".

Cuando estabamos viendo cómo mapeábamos los campos pensamos que este último campo no sería necesario integrarlo ya que nuestro sistema con BD SQL Server no registra nada sobre el médico de cabecera que puede tener un paciente y consideramos que no era necesario.

Hasta aquí bien. Hacemos la integración y todos los registros (bueno excepto alguno que no podía cumplir las modificaciones) pasaron de la BD Access a SQL Server 2005. Yeahhh!!! toda la información anterior estará en el nuevo sistema. Vale, venga, vamos a hablar con la secretaria que hace los informes de alta del servicio cuya BD Access habíamos migrado, y ….

– Secretaria: EHHHH!!!, este informe de alta sale en blanco y en la BD Access está relleno.

– Miguel: ¿Cómo? ¿qué?, ¡¡IMPOSIBLE!!. (lo he hecho con SSIS, es imposible lo que me dice esta chica)

– Secretaria: Que sí, que sí!!!, ya verás …

y abre su BD Access, busca al paciente, y me enseña el informe de alta.

¡¡NO ME LO PODÍA CREER!!

Daba igual que en la BD Access hubiera una caja de texto para cada apartado del informe de alta, daba igual que las cajas estuvieran en orden para que el informe se rellenara de manera adecuada, todo daba igual …

¡¡Todo el informe estaba en la caja de texto "Nota Médico de Cabecera"!! – INCREIBLE!!!

Claro, ni SSIS, ni ISSS, ni SISI, ni SSSI, ni la madre que lo p… 🙂

Conclusión:

A pesar de que cada día contamos con nuevas herramientas, a pesar de que informáticamente hablando casi todo es posible, a pesar de todos los pesares, como el médico de cabecera quiera, te dolerá la cabeza.

Ahí queda eso!!!.

¡¡Qué "peassso" paquete tengo, niña!!

Jajaja, si es que aún me rio cuando recuerdo la situación. La frase del post se la dije a mi compi, y de pronto. Y es que me salió sin más, de alegría, de ver que funcionaba ;-). Bueno bueno, que esto es un blog de informática y no la web del marqueze. Y es que ahora estoy liado con una importación de datos de una base de datos Access (sí sí, de un informático, sí hombre!!, de esos que ponen todos los campos memo, los nombra con espacios en blanco y no pone claves a las tablas) a una bd de SQL Server 2005 de un proyecto que tenemos en el Hospital donde trabajo. Y como no tenía más remedio que meterme en esa importación pues me dije: "Tío, una buena oportunidad para hacer cosillas con Integration Services", y el resultado fue esa frase del post. Es mi primer paquete de Integration Services, y creo que no será el último, así que igual escribo alguna cosa de mis peripecias con estos servicios. No trabajé con DTS ni con ningún sistema de transformación de datos previamente así que no puedo hacer una valoración de SSIS con respecto a otros sistemas, lo que sí puedo decir es: ¡¡Qué "peassso" paquete tengo, niña!! :-).

Y dejo aquí una cosilla por si alguien empieza con esta herramienta y que me ha pasado y ha sido, quizás, el mayor problemilla que he tenido, de momento. Cuando ejecutaba me daba un error en el Data Flow y el destino SQL Server se ponía en rojito. Viendo en la ventana "Log Events" (de mucha utilidad) observé un error que se producía efectivamente en el destino. Descubrí finalmente que se debía a la propiedad timeout de este componente que, por defecto, viene establecida a 30, es decir, a los 30 segundos desde el inicio de la ejecución este componente genera un timeout si no tiene datos. Y no los podía tener puesto que mis tareas de modificaciones tardaban más de 30 seg. Por tanto, para evitar este error (que finaliza la ejecución) se puede aumentar este tiempo o simplemente ponerlo a 0 para que no salte.

Por cierto, que bueno es Fito!! (lo escuchaba en el momento de escribir el post)

Sitio de portal huérfano SharePoint

Bueno, pues resulta que un día me da por abrir (esto deberíamos hacerlo más amenudo) el visor de sucesos de un servidor web del Hospital donde tengo instalado SharePoint y me encuentro, en la parte de aplicación, la siguiente advertencia generado por Microsoft SharepointPS Search Service:

**************************************************************************

 No se puede tener acceso al origen de contenido XXXXXXXX.

Contexto: aplicación XXXXXXXX, catálogo Portal_Content

Detalles:

No se pudo resolver la dirección URL. Puede que el host no esté disponible o que la configuración del proxy en el servidor de índice no sea correcta. Para cambiar la configuración del proxy, desde la Administración central de SharePoint Portal Server, haga clic en Configurar búsqueda e indización. En la lista de servidores de índice, elija el nombre de servidor y edite la configuración de proxy en la página Configuración del servidor. (0x80041221)

******************************************************************************************

Contexto: aplicación XXXXXXXX, catálogo Portal_Content

Detalles:

No se pudo resolver la dirección URL. Puede que el host no esté disponible o que la configuración del proxy en el servidor de índice no sea correcta. Para cambiar la configuración del proxy, desde la Administración central de SharePoint Portal Server, haga clic en Configurar búsqueda e indización. En la lista de servidores de índice, elija el nombre de servidor y edite la configuración de proxy en la página Configuración del servidor. (0x80041221)

******************************************************************************************

Bueno, al principio no le presté mucha atención (cosa que hacemos cuando aparece el icono de información o advertencia en los sucesos) pero luego observé que esta advertencia se repetía cada 20 o 30 segundos ¡¡¡imaginaros el visor todo lleno de iconitos amarillos de advertencia!!!. Total que decidí investigar un poco. Lo primero que descubrí es que efectivamente XXXXXXXXX se trataba de un sitio de portal que había creado hacía unos meses cuando estaba probando esto de SP, claro como eran pruebas pues fallaron, quité, pusé, "despuse", en fin, guarreé que es lo que nos gusta. Al final dejé mi SP tranquilito con un solo sitio de portal (eso pensaba yo) y tós contentos en el Hospital. Pero como a mi jefe le gusta eso de mirar los visores de sucesos pues decidí abrirlo como ya comenté antes y ví lo ya comentado.

* Primera cosa que hice:

-> Desde la Administrador Central de SharePoint -> Sharepoint Portal Server -> Mostrar y adminitrar sitios de portal, observé que aparecía el XXXXXXXXXX de marra así que pulsé eliminar en las opciones de esta sitio y …. FALLO. Tras mirar el log (esto está en la sección de logs de Sharepoint) observé que no pude eliminarlo porque, según decía el log, el sitio de portal no estaba extendido. Claro que no lo estaba. Muy listo yo recordé que había creado el servidor virtual XXXXXXXXX desde IIS, le había puesto un puerto XX, lo había extendido en SP y, como no me gustaba (recuerdo que estaba guarreando jeje) pues lo borré a saco desde IIS, tomáaa!!!. Es más, con el paso de los días necesité crear otro servidor virtual para otra aplicación y le puse el puerto XX (jajajaja, resulta que en lugar de tener XXXXXXXX:XX tenía YYYYYYYY:XX), entonces…. ¿cómo lo extendía para poder después eliminarlo?. Ufff, tratándose de un Hospital y con YYYYYYY:XX en producción cualquierilla se ponía a jugá (también recuerdo que soy andalú ;-))

* Segunda cosa que hice:

-> Me fuí a la inagotable fuente de información de Internet y busqué, rebusqué, y requetebusqué. O soy muy malo buscando en la web (que lo soy) o a nadie le ha pasado esto (me extraña que nidie jugara con SP al principio). Nada, no ví nada.

* Tercera cosa que hice:

-> Pensar!!!.  Esto suele ser, casi siempre, lo que mejor resultado da. Y pensé, "bueno, si SP resulta que todo lo hace con BD en SQL Server y tengo un lindo Management Studio Express, podría ver en la BD de configuración de SP como están los registros de sus tablas e intentar solucionar este problema directamente (y pasando de las advertencias que suelen dar de no tocar la BD a pelo) ahí. Y eso hice. Tras ver como estaban las relaciones pasé a eliminar los registros del sitio de portal huérfano en este orden:

1.- Tabla: PortalSites -> Eliminé el registro del sitio de portal XXXXXXXXX (antes miré su UrlID)

2.- Tabla: PortalZoneUrls -> Eliminé el registro del sitio de portal XXXXXXXXXX viendo su UrlID en el registro

 3.- Tabla: PortalUrl -> Eliminé el registro del sitio de portal XXXXXXXXXXX

 

* Cuarta cosa que hice

Comprobé que ya no me aparecía el sitio de portal XXXXXXXXX en la Administración Central de SP y me fui rápidamente al visor de suceso. Eyyy!!! resultó que el servicio de búsqueda me había generado los siguientes sucesos (esta vez de información):

*****************************************************************************************

Se ha detenido el índice a petición del usuario.

Contexto: aplicación XXXXXXXXX, catálogo Portal_Content

Si desea obtener más información, visite http://www.microsoft.com/servers/redirect/contentredirect2.asp

*****************************************************************************************

Seguido de:

*****************************************************************************************

El servicio de búsqueda quitó el índice.

Contexto: aplicación XXXXXXXXXXXXX, catálogo Portal_Content

Si desea obtener más información, visite http://www.microsoft.com/servers/redirect/contentredirect2.asp

*********************************************************************************************************************

Y no he sabido más de esas advertencias, de momento :-).

Lo primero es lo primero

Hola hola, 1, 2, probando probando …. ¿se me escucha?. Bien.

Soy Miguel J. Rodríguez Griñolo, tengo (cuando escribí este primer post) 30 tacos (buena edad, como todas), soy choquero (vamos, de Huelva capital, para quién no lo sepa), técnico informático desde hace unos años (ahí ando con la superior a ver si puede ser :-)), trabajo en el Hospital Juan Ramón Jiménez de Huelva (la verdad es que llevo tiempo vinculado a la sanidad onubense, vamos, de huelva provincia, para quién no lo sepa), uno de los fundadores del grupo de usuario OnobaNET (junto con Fran, Paco, Leticia y David Carmona, dejo foto de los cinco en la sección de fotos) hace ya más de un año, socio del recreativo de huelva, no fumador …. y lo mejor … padre de Alba, mi niñita (dejo foto también). 

Un saludo para todos los que lean este post, para los conocidos personalmente, para los conocidos pero no personalmente, para los altos, para los bajos, para … todos. 😉

Que esté escribiendo aquí este primer post se lo debo a uno de mis compis de fatiga NETero, Fran, que también anda por aquí escribiendo cosas. Bueno, pues dejaré en este blog todo lo que pueda y crea que pueda ser de utilidad y que, por un motivo u otro, me fuera de utilidad en un momento dado (también preguntaré, soy muy preguntón :-)) e intentaré participar en los foros siempre que me sea posible (para responder o preguntar), pero …. Lo primero es lo primero.

Lo dicho, un saludo desde Huelva.