Codepoint

by Trentia Consulting

System.ServiceModel.ExceptionDetail al realizar un FullTextQuery en SharePoint

Si alguna vez os habéis encontrado que de repente al realizar consultas al motor de indexación de SharePoint, os devuelve un error System.ServiceModel.ExceptionDetailno desesperéis.

Es poco intuitivo SharePoint a la hora de informarnos de como corregir el error. Pues bien, lo único que hemos de hacer para solucionar el error es incluir en nuestra Query una cláusula Order by, ¿la mar de sencillo,no?

La publicación de un Workflow en Designer no se actualiza

Recientemente me encontré diseñando en SharePoint Designer 2010 un workflow para una biblioteca de formularios Infopath. Todo parecía funcionar bien hasta que hice un cambio en el workflow, lo publiqué y éste parecía no actualizarse, ya que no actuaba según lo previsto.

Se ve que Designer hace uso de una caché ubicada en la siguiente ruta:

C:\Documents and Settings\[username]\AppData\Local\Microsoft\WebsiteCache

Es debido a la utilización de dicha caché que el workflow no se actualiza correctamente. Para que todo vuelva a funcionar según lo previsto, basta con borrar lo que haya dentro de la carpeta WebsiteCache.

Cambiar la URL del sitio en un proyecto de SharePoint en Visual Studio 2010

Al realizar un cambio de servidor de desarrollo de una solución de SharePoint 2010 en Visual Studio 2010 nos encontramos con la sorpresa de no poder realizar desarrollo visual ni desplegar debido a que la URL del sitio de SharePoint ya no coincide con la del nuevo servidor.

Para realizar un cambio de esta URL tan solo necesitamos acceder a la ventana de propiedades del proyecto, debajo del explorador de la solución, y modificar la propiedad Site URL con la del nuevo sitio o servidor. Es el método más sencillo.

9

Diferencias de versiones entre SharePoint 2010 y SharePoint Designer 2010

Si habéis decidido instalar la actualización del CU (Cumulative Update) de SharePoint 2010 de Octubre de 2010 (leer el artículo de Stefan Goßner al respecto), habréis actualizado la versión de vuestra instalación a la 14.0.5128.5000. Si intentais entonces abrir vuestro sitio de SharePoint con SharePoint Designer 2010 os aparecerá un mensaje como éste:

“Server error: La versión de Microsoft SharePoint Foundation que se está ejecutando en el servidor es más reciente que la versión de SharePoint Designer que está usando. Necesita una versión posterior de SharePoint Designer.”

12

Para solucionar esta situación es necesario actualizar de la misma manera vuestra instalación de SharePoint Designer 2010 con otro CU de Microsoft, que podéis encontrar enhttp://support.microsoft.com/kb/2276347. Esto os igualará las versiones y os permitirá abrir el sitio de SharePoint con Designer.

Nuestra experiencia es que a Designer (o a SharePoint) le cuesta un poco darse cuenta del cambio de versión una vez actualizado Designer. No desistáis, finalmente, de alguna forma, acaba por funcionar.

Reenvío SMTP a través de BPOS/Exchange

BPOS, la nueva suite de productividad online de Microsoft, incluye entre sus productos Microsoft Exchange Online, la vesión online del servidor de mensajería. Los productos en la nube suponen para los desarrolladores tener que disponer de otras vías de acceso a los servicios de éstos.

Recientemente hemos tenido que conectar el correo saliente de Microsoft SharePoint con BPOS/Exchange y nos hemos encontrado con la problemática de que BPOS/Exchange solamente acepta SMTP autenticado y vía canal encriptado, característica inexistente en la confirguración de correo saliente de SharePoint.

image_2

La solución que hemos encontrado ha sido la de utilizar un servicio SMTP configurado localmente y dispuesto para el reenvío, esta vez sí autenticado y por canal seguro, contra los servicios SMTP de BPOS/Exchange. Para ello fue suficiente activar los servicios de SMTP de IIS en el servidor local de SharePoint.

El procedimiento es sencillo y rápido de aplicar. Podéis leer un artículo completo sobre este tema en http://jimjacob.com/2010/05/09/configure-smtp-relay-for-bposexchange-online/

CRM no muestra elementos inactivos

Partiendo de un CRM real, hicimos una copia para pruebas copiando directamente la carpeta del CRM real y que apuntaba también a la base de datos del CRM real.

Nos dimos cuenta que en dicho servidor de pruebas los elementos en estado inactivo no los mostraba en las búsquedas. Ejemplo:

CRM real:

2

CRM pruebas:

3

Para solucionarlo tiene que cambiarse el registro de windows para que te muestre los registros que no estén en vigor de Objetos personalizables…

El servidor de Microsoft Dynamics CRM

  1. En el registro, busque la subclave siguiente: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM
  2. Haga clic con el botón secundario del mouse en MSCRM , seleccione nuevo , haga clic en Valor DWORD y, a continuación, escriba IgnoreCustomEntityFilter en el campo nombre.
  3. Haga doble clic en IgnoreCustomEntityFilter . A continuación, escriba 1 en el campo de datos de valor.
  4. Haga clic en Inicio , haga clic en Ejecutar , escriba iisreset y, a continuación, haga clic en Aceptar .

Windows Phone 7

El pasado 11 de Octubre fue la presentación oficial del nuevo Windows Phone 7, el nuevo sistema operativo móvil de Microsoft.

Windows Phone 7 se convirtió en uno de los lanzamientos más esperados, y muchos fabricantes como Samsung, HTC o LG ya lo están usando como complemento en alguno de sus modelos, y Nokia acaba de anunciar una alianza para incorportarlo en sus modelos de gama alta.

NOkia-Windows-Phone-

Microsoft pretende hacer un punto y aparte en el diseño de su sistema operativo para móvil, ya que las últimas versiones de Windows mobile no eran todo lo eficientes que se esperaban, y sus competidores iban cogiendo ventaja en cuanto a diseño y prestaciones. De hecho, Windows Phone 7 no está basado en Windows Mobile 6.5, sino en la interfaz de Zune.

Ha pasado ya un tiempo pruedencial desde su lanzamiento, y ya hemos podido probarlo e incluso empezar a verlo entre manos de algunos usuarios.  Hay muchas novedades, es un sistema operativo móvil diferente al anterior, pero también a otros que ya había en el mercado, y de ello nos damos cuenta con sólo ver la pantalla de inicio, que ahora se encuentra dividida en paneles dinámicos, dando un cambio estético muy interesante.

Además tenemos nuevos conceptos, como los “Windows Phone Hubs”, que son vistas sobre temas específicos que reflejan las actividades que el usuario más demanda en el móvil: Gente (redes sociales, etc…), Imágenes (para compartir fotos y vídeos), Juegos (Xbox live en tu teléfono), y Música + Vídeo (lo mejor de Zune, con servicios online de música, e inluso radio). Y otra gran novedad es que incorpora un “Mercado de aplicaciones”, algo como la AppStore de Apple, o el Market de android, un sitio donde centralizar las aplicaciones para la plataforma, para buscarlas, comprarlas y descargarlas.

safe_image

Nosotros hace un par de semanas ya mirábamos –y lo publicábamos en nuestra página de Facebook- las particularidades del desarrollo de aplicaciones para Windows Phone gracias al material facilitado por Microsoft faculty para la programación de este sistema operativo móvil en C#, y que podéis bajar gratutitamente.

En este manual se tratan, entre otros, una introducción a esta nueva plataforma, cómo vender tus programas vía Marketplace, un poco de Silverlight, tanto de programación como de diseño, uso de Data Services o XNA para crear juegos para tu dispositivo.

Software As A Service (SaaS)

¿Qué es Saas?

Según Wikipedia es un modelo de distribución de software en donde la compañía de tecnologías de información y comunicación (IT) provee el servicio de mantenimiento, operación diaria, y soporte del software usado por el cliente. Regularmente el software puede ser consultado en cualquier computador, esté presente en la empresa o no. Se deduce que la información, el procesamiento, los insumos y los resultados de la lógica de negocio del software está hospedado en la compañía de IT.

¿Qué implicaciones tiene?

  • Desaparece el concepto de licencia, se pasa a hablar de pago por uso. De manera que los clientes se "suscriben" al servicio aportado para poder utilizar las aplicaciones ofrecidas en modalidad SaaS.
  • El software no se distribuye in-house, sino a través de la red.
  • La aplicación está hosteada, de manera que da servicio a muchos clientes.
  • El hecho de que la aplicación esté hosteada implica que no se abre de una infraestructura privada, sino de una infraestructura pública que permite que muchas empresas puedan suscribirse al servicio.
  • Es un modelo descentralizado de uso de aplicacione software.
  • Permite una escalabilidad sin límites.
  • ...

Podéis encontrar ésta y más información en la siguiente página: http://geeks.ms/blogs/ciin/archive/2007/10/05/software-as-a-service-sas-191-qu-233-es.aspx

Asistencia a las jornadas de mejora de gestión empresarial de TIC.cat

ticcat_2Ayer por la tarde tuvo lugar en el auditorio del edificio MediaTIC en Barcelona una jornada dirigida a las empresas sobre gestión empresarial para PIMES del sector TIC.

Entre otras cosas, se habló del modelo de negocio que tienen que seguir en líneas generales este tipo de empresas, abordando un poco cada una de las secciones en particular (márqueting, financiera, etc.).

Encontramos muy útiles eventos de este tipo, ya que en los tiempos que corren, un poco de asesoramiento experto nunca va mal. Desde Trentia Consulting, transmitimos nuestra enhorabuena al plan TIC.cat por las iniciativas que lleva a cabo.

Desplegables en cascada en Infopath 2010

Aunque con Infopath 2007 ya se podían realizar listas desplegables en cascada aplicando filtros en el campo correspondiente, teníamos la limitación de que no se podía utilizar para los formularios web (como desde una intranet Sharepoint).

Sin embargo, en la nueva versión de Infopath, esto ya está resuelto, ya que se ha trabajado bastante la integración entre Sharepoint 2010 e Infopath 2010.

Para ver cómo podemos hacer un desplegable en cascada, os dejo unos sencillos pasos, con unas capturas de pantalla:

En nuestro entorno, tenemos un típico caso con una lista Paises, y una Provincias, en la que cada una de las provincias pertenece a un país. Así que al control desplegable "Pais", le asignamos el Origen de datos que devuelve los países de la lista, de forma convencional.

 1

Y al campo Provincias, seguimos el mismo procedimiento.

 2

Sólo debemos tener en cuenta que al elegir los campos, en el asistente para la conexión de datos, tendremos que seleccionar también el campo Pais de la lista de Provincias:

 3

Ahora, aplicamos un filtro. Haciendo click en el icono "Seleccionar XPath" de "Entradas":

 4

En esta ventana, añadimos un filtro de datos:

 5

Y seleccionamos mostrar los datos que cumplan las siguientes condiciones:

El Pais de la provincia, debe ser igual al país seleccionado en el anterior desplegable (del origen de datos principal)

 6

En la segunda parte de la igualdad seleccionamos un campo:

 7

Aceptamos la creación del filtro:

 8

Dándole una vuelta de tuerca más al tema de los desplegables en cascada, es posible que los necesitemos insertar en una Tabla extensible.

 9

En este caso, nostros tenemos unos "tipos de actividad", de los que dependen "subtipos de actividad" como entidades débiles en base de datos.

 10

En este caso, el desplegable no se puede hacer en cascada simplemente con filtros, así que después de enlazar cada control con su fuente de datos, igual que en el apartado anterior, la carga de los datos en el control de la entidad débil (subtipo) hemos decidido hacerla con código.

Para ello, usamos el evento "Changed" del desplegable de la entidad fuerte (en nuestro caso el tipo de actividad):

 11

Dentro del código: public void ExperienciaTipusActivitat_Changed (object sender, XmlEventArgs e) tendremos en cuenta de que si queremos que sea compatible con web, no podemos identificar el control que genera el evento (XmlEventArgs e) por su dirección con la propiedad Match.

public void ExperienciaTipusActivitat_Changed(object sender, XmlEventArgs e) { 
	XPathNavigator form = MainDataSource.CreateNavigator(); 
	XPathNavigator selectedSubtipusActivitat = e.Site.SelectSingleNode("../my:ExperienciaSuptipusActivitat", NamespaceManager); 
	if (selectedSubtipusActivitat != null){ 
		string subtipo = selectedSubtipusActivitat.Value; 
		string tipo = e.Site.Value; 
		XPathNavigator navProv = DataSources["ObtenirTipusActivitatsSubtipus"].CreateNavigator(); 
		if (navProv.Select("//d:SharePointListItem_RW[d:TipusActivitat='" + tipo + "' and d:ID='" + subtipo + "']", NamespaceManager).Count == 0)
		{selectedSubtipusActivitat.SetValue(""); }
	} 
}