Log Files de Sharepoint
diciembre 05, 2009
Cuando implementamos soluciones en SharePoint muchas veces no encontramos el detalle de un error en la aplicación; en esos casos, se puede ingresar a los log files de sharepoint a ver el detalle de la ejecuciòn del portal.
La ubicación por defecto es:
"C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\LOGS"
En el servidor web.
Espero que sea de ayuda
La ubicación por defecto es:
"C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\LOGS"
En el servidor web.
Espero que sea de ayuda
Carga de Archivo (Upload File) desde infopath forms services
diciembre 05, 2009
En una entrada anterior publiqué un método para cargar archivos desde cualquier aplicación web; en este caso publico la misma funcionalidad desde el control upload de infopath forms services.
Deben utilizar un botón adicional al cual le añaden el siguiente codigo .net:
public void btnCargarDocumento_Clicked(object sender, ClickedEventArgs e)
{
XPathNavigator DOM = this.MainDataSource.CreateNavigator();
XPathNavigator fileDocumento = DOM.SelectSingleNode("/my:misCampos/my:att_documento", NamespaceManager);
byte[] attachmentNodeBytes = Convert.FromBase64String(fileDocumento.Value.ToString());
int fnLength = attachmentNodeBytes[20] * 2;
byte[] fnBytes = new byte[fnLength];
for (int i = 0; i < fnBytes.Length; i++)
{
fnBytes[i] = attachmentNodeBytes[24 + i];
}
char[] charFileName = System.Text.UnicodeEncoding.Unicode.GetChars(fnBytes);
string fileName = new string(charFileName);
fileName = txtIdActividad.Value + "-" + fileName.Substring(0, fileName.Length - 1);
byte[] fileContents = new byte[attachmentNodeBytes.Length - (24 + fnLength)];
for (int i = 0; i < fileContents.Length; ++i)
{
fileContents[i] = attachmentNodeBytes[24 + fnLength + i];
}
string LibreriaDestino = "http://SERVIDOR:8001/sitio/sitiodocs/documentosA/";
string Destino = LibreriaDestino + fileName;
System.Net.WebClient objWebClient = new System.Net.WebClient();
objWebClient.Credentials = System.Net.CredentialCache.DefaultCredentials;
objWebClient.UploadData(Destino, "PUT", fileContents);
//limpiar el control upload
if (!fileDocumento.MoveToAttribute("nil",
fileDocumento.LookupNamespace("xsi")))
{
fileDocumento.SetValue("");
}
}
Espero que sea de ayuda
Deben utilizar un botón adicional al cual le añaden el siguiente codigo .net:
public void btnCargarDocumento_Clicked(object sender, ClickedEventArgs e)
{
XPathNavigator DOM = this.MainDataSource.CreateNavigator();
XPathNavigator fileDocumento = DOM.SelectSingleNode("/my:misCampos/my:att_documento", NamespaceManager);
byte[] attachmentNodeBytes = Convert.FromBase64String(fileDocumento.Value.ToString());
int fnLength = attachmentNodeBytes[20] * 2;
byte[] fnBytes = new byte[fnLength];
for (int i = 0; i < fnBytes.Length; i++)
{
fnBytes[i] = attachmentNodeBytes[24 + i];
}
char[] charFileName = System.Text.UnicodeEncoding.Unicode.GetChars(fnBytes);
string fileName = new string(charFileName);
fileName = txtIdActividad.Value + "-" + fileName.Substring(0, fileName.Length - 1);
byte[] fileContents = new byte[attachmentNodeBytes.Length - (24 + fnLength)];
for (int i = 0; i < fileContents.Length; ++i)
{
fileContents[i] = attachmentNodeBytes[24 + fnLength + i];
}
string LibreriaDestino = "http://SERVIDOR:8001/sitio/sitiodocs/documentosA/";
string Destino = LibreriaDestino + fileName;
System.Net.WebClient objWebClient = new System.Net.WebClient();
objWebClient.Credentials = System.Net.CredentialCache.DefaultCredentials;
objWebClient.UploadData(Destino, "PUT", fileContents);
//limpiar el control upload
if (!fileDocumento.MoveToAttribute("nil",
fileDocumento.LookupNamespace("xsi")))
{
fileDocumento.SetValue("");
}
}
Espero que sea de ayuda
Articulos SharePoint 2010
diciembre 02, 2009
Fabian Imaz ha elaborado una serie de artículos acerca de sharepoint 2010 que son muy interesantes:
- Como crear y configurar sitios en microsoft SharePoint 2010
- Nueva barra Ribbon en SharePoint 2010
- Cambio de BDC a BCS
- SharePoint Designer 2010
Es de mucha ayuda para comenzar a revisar SharePoint 2010
Además pueden descargar la versión Beta en el siguiente link:
Descarga de SharePoint 2010
- Como crear y configurar sitios en microsoft SharePoint 2010
- Nueva barra Ribbon en SharePoint 2010
- Cambio de BDC a BCS
- SharePoint Designer 2010
Es de mucha ayuda para comenzar a revisar SharePoint 2010
Además pueden descargar la versión Beta en el siguiente link:
Descarga de SharePoint 2010
Tiempo de upgrade SharePoint SP1 hacia SP2
diciembre 02, 2009
Un dato muy importante para realizar un upgrade de SharePoint es saber el tiempo de inactividad de la intranet mientras se realiza esta actualización.
Como parte de las buenas prácticas es recomendable hacer el upgrade de sharepoint services 3.0 hacia el sp2 y luego el upgrade de sharepoint server sp2. El tiempo de inactividad de la intranet depende de la cantidad de sitecollections que se han implementado en tu intranet; para intranets con 1 solo site collection debería estar demorando alrededor de 15 minutos; en cambio para una intranet con 25 site collections el tiempo estimado es de 1 hora.
Esto debido a que el upgrade se hace a cada una de las bases de datos de cada sitecollection, al hacer el upgrade se genera un log de la actualización que nos muestra como analiza el estado de upgrade en cada base de datos de cada site collection.
[SPHierarchyManager] [DEBUG] [12/2/2009 5:45:43 PM]: -------------------- End Growing Tree --------------------
[SPManager] [INFO] [12/2/2009 5:45:43 PM]: Resetting the status of PersistedUpgradableObject: SPContentDatabase Name=WSS_Content1 Parent=SPDatabaseServiceInstance to Online.
[SPManager] [INFO] [12/2/2009 5:45:43 PM]: Finished upgrading SPContentDatabase Name=WSS_Content2 Parent=SPDatabaseServiceInstance.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_Content3 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: False.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_Content4 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: False.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_Content5 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: False.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_Content6 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: False.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_Content7 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: False.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_Content8 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: False.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_Content9 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: False.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_ContenT10 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: False.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_ContenT11 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: False.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_ContenT12 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: False.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_ContenT13 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: False.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_ContenT14 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: False.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_ContenT15 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: True.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_ContenT16 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: True.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_ContenT17 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: True.
Espero que esta información les ayude al momento de realizar actualizaciones en sus servidores sharepoint 2007.
Como parte de las buenas prácticas es recomendable hacer el upgrade de sharepoint services 3.0 hacia el sp2 y luego el upgrade de sharepoint server sp2. El tiempo de inactividad de la intranet depende de la cantidad de sitecollections que se han implementado en tu intranet; para intranets con 1 solo site collection debería estar demorando alrededor de 15 minutos; en cambio para una intranet con 25 site collections el tiempo estimado es de 1 hora.
Esto debido a que el upgrade se hace a cada una de las bases de datos de cada sitecollection, al hacer el upgrade se genera un log de la actualización que nos muestra como analiza el estado de upgrade en cada base de datos de cada site collection.
[SPHierarchyManager] [DEBUG] [12/2/2009 5:45:43 PM]: -------------------- End Growing Tree --------------------
[SPManager] [INFO] [12/2/2009 5:45:43 PM]: Resetting the status of PersistedUpgradableObject: SPContentDatabase Name=WSS_Content1 Parent=SPDatabaseServiceInstance to Online.
[SPManager] [INFO] [12/2/2009 5:45:43 PM]: Finished upgrading SPContentDatabase Name=WSS_Content2 Parent=SPDatabaseServiceInstance.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_Content3 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: False.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_Content4 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: False.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_Content5 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: False.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_Content6 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: False.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_Content7 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: False.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_Content8 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: False.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_Content9 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: False.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_ContenT10 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: False.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_ContenT11 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: False.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_ContenT12 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: False.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_ContenT13 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: False.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_ContenT14 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: False.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_ContenT15 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: True.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_ContenT16 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: True.
[SPManager] [DEBUG] [12/2/2009 5:45:43 PM]: Using cached [SPContentDatabase Name=WSS_ContenT17 Parent=SPDatabaseServiceInstance] NeedsUpgrade value: True.
Espero que esta información les ayude al momento de realizar actualizaciones en sus servidores sharepoint 2007.
Tabla de versiones de SharePoint
diciembre 02, 2009
MOSS 2007 or WSS 3.0 SP2 + Cumulative update (June 09) 12.0.0. 6510
MOSS 2007 or WSS 3.0 SP2 + Cumulative update (April 09) 12.0.0. 6504
MOSS 2007 or WSS 3.0 SP2 12.0.0.6421
MOSS 2007 or WSS 3.0 Cumulative update (Feb 09) 12.0.0. 6341
MOSS 2007 or WSS 3.0 Cumulative update (Dec 08) 12.0.0. 6335
MOSS 2007 or WSS 3.0 Cumulative update (KB956056 - KB956057) 12.0.0.6327
MOSS 2007 or WSS 3.0 Infrastructure Update (KB951695 - KB951297) 12.0.0.6318
MOSS 2007 or WSS 3.0 post-SP1 hotfix (KB948945) 12.0.0.6303
MOSS 2007 or WSS 3.0 post-SP1 hotfix (KB941274) 12.0.0.6301
MOSS 2007 or WSS 3.0 post-SP1 hotfix (KB941422) 12.0.0.6300
MOSS 2007 or WSS 3.0 SP1 12.0.0.6219
MOSS 2007 or WSS 3.0 October public update 12.0.0.6039
MOSS 2007 or WSS 3.0 August 24, 2007 hotfix package 12.0.0.6036
MOSS 2007 or WSS 3.0 RTM 12.0.0.4518
MOSS 2007 or WSS 3.0 Beta 2 TR: 12.0.0.4407
MOSS 2007 or WSS 3.0 Beta 2: 12.0.0.4017
Office 12 (PDC image - pre-beta): 12.0.0.3111
MOSS 2007 or WSS 3.0 SP2 + Cumulative update (April 09) 12.0.0. 6504
MOSS 2007 or WSS 3.0 SP2 12.0.0.6421
MOSS 2007 or WSS 3.0 Cumulative update (Feb 09) 12.0.0. 6341
MOSS 2007 or WSS 3.0 Cumulative update (Dec 08) 12.0.0. 6335
MOSS 2007 or WSS 3.0 Cumulative update (KB956056 - KB956057) 12.0.0.6327
MOSS 2007 or WSS 3.0 Infrastructure Update (KB951695 - KB951297) 12.0.0.6318
MOSS 2007 or WSS 3.0 post-SP1 hotfix (KB948945) 12.0.0.6303
MOSS 2007 or WSS 3.0 post-SP1 hotfix (KB941274) 12.0.0.6301
MOSS 2007 or WSS 3.0 post-SP1 hotfix (KB941422) 12.0.0.6300
MOSS 2007 or WSS 3.0 SP1 12.0.0.6219
MOSS 2007 or WSS 3.0 October public update 12.0.0.6039
MOSS 2007 or WSS 3.0 August 24, 2007 hotfix package 12.0.0.6036
MOSS 2007 or WSS 3.0 RTM 12.0.0.4518
MOSS 2007 or WSS 3.0 Beta 2 TR: 12.0.0.4407
MOSS 2007 or WSS 3.0 Beta 2: 12.0.0.4017
Office 12 (PDC image - pre-beta): 12.0.0.3111
Eventos 7076, 6398, 6482 se muestran constantemente en el log del servidor SharePoint
diciembre 02, 2009
Detalles del Event Log:
Event Id: 7076
Event Source: Office SharePoint Server
The Message text will contain:
- "Microsoft.Office.Server.Search.Administration.
SearchAdminSharedWebServiceInstance"
- "Attempted to read or write protected memory. This is often an indication that other memory is corrupt."
- A reference to the Metabase in the call stack.
Event Id: 6398
Event Source: Windows SharePoint Services 3
The Message text will contain:
- "Microsoft.Office.Server.Administration.
ApplicationServerAdministrationServiceJob"
- "Attempted to read or write protected memory. This is often an indication that other memory is corrupt."
Event Id: 6482
Event Source: Office SharePoint Server
The Message text will contain:
- "Microsoft.Office.Server.Search.Administration.
SearchAdminSharedWebServiceInstance"
- "Attempted to read or write protected memory. This is often an indication that other memory is corrupt."
- A reference to the Metabase in the call stack.
La solución es aplicar el hotfix
946517
PlanetaPeru: buscador del Perú
Event Id: 7076
Event Source: Office SharePoint Server
The Message text will contain:
- "Microsoft.Office.Server.Search.Administration.
SearchAdminSharedWebServiceInstance"
- "Attempted to read or write protected memory. This is often an indication that other memory is corrupt."
- A reference to the Metabase in the call stack.
Event Id: 6398
Event Source: Windows SharePoint Services 3
The Message text will contain:
- "Microsoft.Office.Server.Administration.
ApplicationServerAdministrationServiceJob"
- "Attempted to read or write protected memory. This is often an indication that other memory is corrupt."
Event Id: 6482
Event Source: Office SharePoint Server
The Message text will contain:
- "Microsoft.Office.Server.Search.Administration.
SearchAdminSharedWebServiceInstance"
- "Attempted to read or write protected memory. This is often an indication that other memory is corrupt."
- A reference to the Metabase in the call stack.
La solución es aplicar el hotfix
946517
PlanetaPeru: buscador del Perú
Posters técnicos de 'Tipos de Contenido' para descargar
agosto 07, 2009
El equipo de OfficeZealot.com ha desarrollado un conjunto de posters técnicos que pueden ser de mucha ayuda para quienes profundizan un poco más en el tema de desarrollo.
1. uso de columnas y tipos de cotenido para organizar la información publicada en sharepoint Explica la relación entre listas y tipos de contenido; además muestra como puedes columnas de sitio en content types.
2. Ilustra la estructura conceptual de las características de información que puedes encapsular en un content type.
1. uso de columnas y tipos de cotenido para organizar la información publicada en sharepoint Explica la relación entre listas y tipos de contenido; además muestra como puedes columnas de sitio en content types.
2. Ilustra la estructura conceptual de las características de información que puedes encapsular en un content type.
Qué es un sitio de Sharepoint:
agosto 07, 2009
Según la definición de Microsoft (en los mensajes enviados automáticamente por el sistema cuando un usuario solicita acceso).
Un sitio de SharePoint es un sitio Web que ofrece un espacio central de colaboración y almacenamiento de documentos, información e ideas. Un sitio de SharePoint es una herramienta de colaboración, del mismo modo que un teléfono es una herramienta de comunicación o una reunión es una herramienta de toma de decisiones. Un sitio de SharePoint ayuda a grupos de personas (grupos de trabajo o grupos sociales) a compartir información y trabajar juntos. Por ejemplo, un sitio de SharePoint puede ayudarle a:
* Coordinar proyectos, calendarios y programas.
* Debatir ideas y revisar documentos o propuestas.
* Compartir información y mantenerse en contacto con otras personas.
Los sitios de SharePoint son dinámicos e interactivos. Los integrantes del sitio pueden colaborar con sus propias ideas y contenido, así como colaborar con o comentar ideas y contenido de otras personas.
A mi parecer una buena definición, concisa y práctica.
Un sitio de SharePoint es un sitio Web que ofrece un espacio central de colaboración y almacenamiento de documentos, información e ideas. Un sitio de SharePoint es una herramienta de colaboración, del mismo modo que un teléfono es una herramienta de comunicación o una reunión es una herramienta de toma de decisiones. Un sitio de SharePoint ayuda a grupos de personas (grupos de trabajo o grupos sociales) a compartir información y trabajar juntos. Por ejemplo, un sitio de SharePoint puede ayudarle a:
* Coordinar proyectos, calendarios y programas.
* Debatir ideas y revisar documentos o propuestas.
* Compartir información y mantenerse en contacto con otras personas.
Los sitios de SharePoint son dinámicos e interactivos. Los integrantes del sitio pueden colaborar con sus propias ideas y contenido, así como colaborar con o comentar ideas y contenido de otras personas.
A mi parecer una buena definición, concisa y práctica.
Curso Sharepoint Overview
julio 14, 2009
En los próximos días estaré dictando un curso en Lima - Perú en la Universidad Nacional de Ingeniería; los interesados en asistir al curso y aprender un poco más acerca de la herramienta favor de enviar comentario o un correo a lcarrillo@pucp.edu.pe - lionel.carrillo@infocoders.com
Se iniciará un curso similar el 15 de Agosto, tendrá una duración de 20 horas y será los días sábados 9am - 2 pm.
Los temas a tocar:
1. Instalación y Configuración (Inducción Sharepoint - Diseño de Arquitectura - Instalación - Configuración Inicial - Habilitar Servicios Compartidos)
2. Administración Central (Tareas comunes de administración - Crear Sites - Backups - sincronización con Active Directory - Integración con Catálogo de Datos Profesionales)
3. Administración de Contenidos (Bibliotecas - Listas - Flujos en Designer - Portales de Busquedas - Portales personales My Site)
4. Programación (Webparts - CAML - Infopath Forms Services y uso de Visual Studio Tools for Applications en Sharepoint)
Se iniciará un curso similar el 15 de Agosto, tendrá una duración de 20 horas y será los días sábados 9am - 2 pm.
Los temas a tocar:
1. Instalación y Configuración (Inducción Sharepoint - Diseño de Arquitectura - Instalación - Configuración Inicial - Habilitar Servicios Compartidos)
2. Administración Central (Tareas comunes de administración - Crear Sites - Backups - sincronización con Active Directory - Integración con Catálogo de Datos Profesionales)
3. Administración de Contenidos (Bibliotecas - Listas - Flujos en Designer - Portales de Busquedas - Portales personales My Site)
4. Programación (Webparts - CAML - Infopath Forms Services y uso de Visual Studio Tools for Applications en Sharepoint)
The form cannot be displayed because session state is not available
octubre 25, 2008
Faltó una configuración en el forms services? Que chevere es cuando las cosas no se habilitan por defecto.
El error que se muestra en el título de esta entrada se debe a una configuración adicional que se debe realizar en el web.config de sharepoint para habilitar los formularios infopath via web.
La solución:
1. Abrir el web.config y ubicar el siguiente texto:
add name="Session" type="System.Web.SessionState.SessionStateModule"
Como se puede observar, esta configuración esta comentada. Se debe descomentar esta sección.
2. Ubicar el texto:
pages enableSessionState="false"
y cambiar por
pages enableSessionState="true"
3. IISRESET (baaaasico)
y listo, los formularios web se mostrarán correctamente.
Firmas Digitales en Infopath Forms Services (dedicado a 3 desarrolladores)
agosto 01, 2008
Siempre creí que la aplicación de firmas digitales en un formulario de infopath era un tema sencillo por el cual no debería crear una entrada en mi blog dedicada a este tema; pero por ahi escuché el comentario "en infopath forms services no se puede usar firmas digitales" así que decidí desempolvar un proyecto en el cual usamos firmas digitales a inicios del año pasado y crear una entrada dedicada a este tema para orientar a aquellas personas que tienen dificultades en este tema y para recordar "como se hacía" por si algún día se me olvida.
Por defecto, los formularios infopath habilitados para mostrarse via web (Forms Services) no aceptan firmas digitales; pero se pueden definir secciones del formulario para aceptar la firma digital (en caso se requiera firmar todo el documento; pues se debería cargar todos los controles en una sola sección).
Primero, veamos un formulario de liquidación de gastos que contiene 3 secciones; es decir, va a ser firmado por 3 personas (no es un caso aplicado en la vida real; pero muy similar al que hicimos en dicho proyecto)

Vamos a configurar cada sección para que soporte firmas digitales. Ingresamos a las propiedades de la seccion

Ficha "firmas digitales" -> Agregar datos

Seleccionamos la sección que se va a firmar -> Aceptamos

Hacemos lo mismo en las otras secciones:




Ahora veamos la firma digital en cliente servidor:

Seleccionamos una imagen para firmar el documento:

Ingresamos un comentario:

El documento ha sido firmado y los controles de la sección no se pueden modificar.


Todo esto es bonito en cliente servidor; ahora viene la parte "interesante" que es la parte web. Para esta prueba el formulario ya estaba configurado para compatibilidad web tal como indiqué en una entrada anterior. (algún dia pondre el link a esa entrada.. jeje)
Via web el formulario se ve como la siguiente figura:

Ingreso algunos datos en la primera sección:

Firmo el documento, el explorador web me muestra una ventana flotante para ingresar los datos de la firma:

El sistema toma una foto del estado actual del formulario al momento de la firma:

El formulario ha sido firmado y no permite la modificación de los campos en la sección firmada:

Realizamos una segunda firma, para la segunda sección donde se encuentra el detalle de los gastos:

Luego de firmar, no se puede ingresar nuevas filas en la tabla dinámica ni modificar los datos ingresados en esta sección:

Firmamos la última sección:

Finalmente el formulario ha sido firmado en sus 3 secciones:

En cualquier momento se puede ver los detalles de la firma con la captura del estado del formulario en el momento que fue firmado.


Como bien diría mi madre "todo se puede en la vida ", yo agregaría "y aún más en el mundo de la informática" pues sí se puede configurar forms services para soportar firmas digitales, solo se deben hacer algunas configuraciones adicionales y tomar en cuenta algunos detalles como el uso de secciones. Todo sea por dejar de usar programas cliente servidor para llenar formularios web, como se hacía antiguamente.
Por defecto, los formularios infopath habilitados para mostrarse via web (Forms Services) no aceptan firmas digitales; pero se pueden definir secciones del formulario para aceptar la firma digital (en caso se requiera firmar todo el documento; pues se debería cargar todos los controles en una sola sección).
Primero, veamos un formulario de liquidación de gastos que contiene 3 secciones; es decir, va a ser firmado por 3 personas (no es un caso aplicado en la vida real; pero muy similar al que hicimos en dicho proyecto)

Vamos a configurar cada sección para que soporte firmas digitales. Ingresamos a las propiedades de la seccion

Ficha "firmas digitales" -> Agregar datos

Seleccionamos la sección que se va a firmar -> Aceptamos

Hacemos lo mismo en las otras secciones:




Ahora veamos la firma digital en cliente servidor:

Seleccionamos una imagen para firmar el documento:

Ingresamos un comentario:

El documento ha sido firmado y los controles de la sección no se pueden modificar.


Todo esto es bonito en cliente servidor; ahora viene la parte "interesante" que es la parte web. Para esta prueba el formulario ya estaba configurado para compatibilidad web tal como indiqué en una entrada anterior. (algún dia pondre el link a esa entrada.. jeje)
Via web el formulario se ve como la siguiente figura:

Ingreso algunos datos en la primera sección:

Firmo el documento, el explorador web me muestra una ventana flotante para ingresar los datos de la firma:

El sistema toma una foto del estado actual del formulario al momento de la firma:

El formulario ha sido firmado y no permite la modificación de los campos en la sección firmada:

Realizamos una segunda firma, para la segunda sección donde se encuentra el detalle de los gastos:

Luego de firmar, no se puede ingresar nuevas filas en la tabla dinámica ni modificar los datos ingresados en esta sección:

Firmamos la última sección:

Finalmente el formulario ha sido firmado en sus 3 secciones:

En cualquier momento se puede ver los detalles de la firma con la captura del estado del formulario en el momento que fue firmado.


Como bien diría mi madre "todo se puede en la vida ", yo agregaría "y aún más en el mundo de la informática" pues sí se puede configurar forms services para soportar firmas digitales, solo se deben hacer algunas configuraciones adicionales y tomar en cuenta algunos detalles como el uso de secciones. Todo sea por dejar de usar programas cliente servidor para llenar formularios web, como se hacía antiguamente.
Sharepoint Enterprise vs Standard
julio 31, 2008
Antes de realizar la compra de una licencia sharepoint es importante tomar en cuenta el uso que se dará a la herramienta en la organización, las principales diferencias entre ambas versiones las encontrarán en la siguiente dirección:
Archivo de comparación en Sitio Microsoft
Archivo de comparación en pucp files[255clicks]
(El excel ha sido creado por microsoft y lo he descargado a mi servidor el 31 de julio del 2008, si existen actualizaciones las pueden descargar del sitio de microsoft; pero aca tengo una copia por si retiran este archivo del servidor)
Archivo de comparación en Sitio Microsoft
Archivo de comparación en pucp files[255clicks]
(El excel ha sido creado por microsoft y lo he descargado a mi servidor el 31 de julio del 2008, si existen actualizaciones las pueden descargar del sitio de microsoft; pero aca tengo una copia por si retiran este archivo del servidor)
Sharepoint Workflows y Servicios Web
julio 23, 2008
En un anterior post he publicado los pasos necesarios para crear un flujo de trabajo usando sharepoint, infopath 2007, Forms Server y el framework 3.5. Es común encontrar que durante la ejecución del flujos de trabajo se requiera extraer información de diferentes sistemas como Bases de Datos Oracle, Informix, portales Websphere o alguna otra solución.
La primera solución que propondría para integrar estos flujos de trabajo con otros sistemas es la interacción con servicios web que pueden ser consumidos desde los formularios infopath; a continuación especificaré algunos de los pasos para implementar este tipo de soluciones.
La solución consiste en crear conexiones de datos en el formulario infopath y luego asociar los controles del formulario a los campos que solicita el servicio web (envío de data) y los campos que nos devuelve el servicio web (recepción de data).
A modo de ejemplo veamos el siguiente servicio web que nos envía un mensaje de texto.
.
Luego de invocar al servicio web nos devuelve el siguiente mensaje.

Una vez que hemos probado que el servicio web funciona correctamente, debemos asociar el servicio web a nuestro formulario infopath. Ingresar al menú Herramientas - Conexiones de Datos.

Seleccionar la opción Agregar.

Seleccionar la opción Recibir Datos.

Seleccionar la opción Servicios Web.

Especificar el WSDL

Indicar la función que se ejecutará.

Luego se deben asociar los campos de las conexiones de datos con los campos del formulario para interactuar con el servicio web. Para interactuar con Servicios Web que envian data o hacen ambas tareas (enviar y recibir data) se procede con los mismos pasos con la diferencia que al especificar el tipo de funcionalidad se debe seleccionar la opción Recibir Data.
Para interactuar con diferentes bases de datos o soluciones, se deben implementar servicios web que interactuen con estos sistemas y luego los servicios web se deben asociar a los formularios de infopath para su llamado durante la ejecución de un workflow; los servicios web pueden ser desarrollados en diferentes tipos de plataformas y no se presentarán problemas para su integración con los workflows ya que la comunicación se realiza via XML y no via un lenguaje determinado. Espero que este ejemplo sea de utilidad para su uso durante el desarrollo de flujos de trabajo muy complicados y en casos donde se debe mostrar información de diferentes sistemas en un formulario infopath que luego se convierte en una aplicación web.
La primera solución que propondría para integrar estos flujos de trabajo con otros sistemas es la interacción con servicios web que pueden ser consumidos desde los formularios infopath; a continuación especificaré algunos de los pasos para implementar este tipo de soluciones.
La solución consiste en crear conexiones de datos en el formulario infopath y luego asociar los controles del formulario a los campos que solicita el servicio web (envío de data) y los campos que nos devuelve el servicio web (recepción de data).
A modo de ejemplo veamos el siguiente servicio web que nos envía un mensaje de texto.
.Luego de invocar al servicio web nos devuelve el siguiente mensaje.

Una vez que hemos probado que el servicio web funciona correctamente, debemos asociar el servicio web a nuestro formulario infopath. Ingresar al menú Herramientas - Conexiones de Datos.

Seleccionar la opción Agregar.

Seleccionar la opción Recibir Datos.

Seleccionar la opción Servicios Web.

Especificar el WSDL

Indicar la función que se ejecutará.

Luego se deben asociar los campos de las conexiones de datos con los campos del formulario para interactuar con el servicio web. Para interactuar con Servicios Web que envian data o hacen ambas tareas (enviar y recibir data) se procede con los mismos pasos con la diferencia que al especificar el tipo de funcionalidad se debe seleccionar la opción Recibir Data.
Para interactuar con diferentes bases de datos o soluciones, se deben implementar servicios web que interactuen con estos sistemas y luego los servicios web se deben asociar a los formularios de infopath para su llamado durante la ejecución de un workflow; los servicios web pueden ser desarrollados en diferentes tipos de plataformas y no se presentarán problemas para su integración con los workflows ya que la comunicación se realiza via XML y no via un lenguaje determinado. Espero que este ejemplo sea de utilidad para su uso durante el desarrollo de flujos de trabajo muy complicados y en casos donde se debe mostrar información de diferentes sistemas en un formulario infopath que luego se convierte en una aplicación web.
Reporting Services y Sharepoint
junio 27, 2008
Estuve viendo el tema de reporting services y me dio la curiosidad de revisar su integración con sharepoint, encontré algunos webparts que se pueden configurar para mostrar los reportes.
el primer webpart (Report Explorer) permite mostrar el listado de todos los reportes del servidor y el segundo (Report Viewer) permite mostrar el contenido del reporte (data y graficos).
En primer lugar se debe cargar el webpart "Report Explorer"
Luego se debe configurar el "Report Explorer": En la propiedad "Report Manager URL" se debe indicar la dirección del sitio donde se cargan los reportes (http://(servidor)/Reports) y en la propiedad "Start Path" se debe indicar la carpeta donde iniciará por defecto la exploración de los reportes publicados.
Ejemplo de Report Explorer

Luego se debe cargar el webpart "Report Viewer" y conectar al webpart "Report Explorer". Entrar al menú Conecctions-> Show report in -> Report Viewer.
y listo. Los reportes del servidor de reporting services se muestran en el sitio sharepoint. Muy Simple :D
Ejemplo de Report Viewer

el primer webpart (Report Explorer) permite mostrar el listado de todos los reportes del servidor y el segundo (Report Viewer) permite mostrar el contenido del reporte (data y graficos).
En primer lugar se debe cargar el webpart "Report Explorer"
Luego se debe configurar el "Report Explorer": En la propiedad "Report Manager URL" se debe indicar la dirección del sitio donde se cargan los reportes (http://(servidor)/Reports) y en la propiedad "Start Path" se debe indicar la carpeta donde iniciará por defecto la exploración de los reportes publicados.
Ejemplo de Report Explorer

Luego se debe cargar el webpart "Report Viewer" y conectar al webpart "Report Explorer". Entrar al menú Conecctions-> Show report in -> Report Viewer.
y listo. Los reportes del servidor de reporting services se muestran en el sitio sharepoint. Muy Simple :D
Ejemplo de Report Viewer

Servicio de publicaciones - problemita de permisos
julio 23, 2007
La herramienta permite a los usuarios del portal (administradores de contenido) publicar noticias de la organizacion ya sea a nivel general (para todos los usuarios) o en sitios privados, sin necesidad de crear un sitio independiente para esta tarea.
Uno de los problemas màs grandes que encontrè, espero este dato sea de ayuda, fue que cuando había creado mi portal de publicaciones dentro de mi portal sharepoint, sin activar la creacion de sitios sin intervencion del administrador, fue que al crear la pagina me mostraba un error de permisos y muestra un link "solicitar permiso"... el problema es que cuando el admistrador va a otorgar el permiso al usuario se encuentra en la librería "páginas" y aunque le otorgue los permisos el usuario nunca podrà crear una noticia.. excepto los usuarios admnistradores del sitio.
Solucion: el problema se presenta porque (supongo) el usuario no tiene acceso a las paginas maestras del servicio de publicaciones; para resolver este problema se debe acceder a la librería de páginas maestras que se encuentra en "pagina principal-acciones del sitio - configuracion del sitio - paginas maestras" (no recuerdo los nombres exactos pero al final es una libreria de paginas... el lugar donde puedes editar la master page con el sharepoint designer)... en esta librería se debe conceder acceso de lectura a los usuarios que se requiere tengan la posibilidad de crear páginas.
Problemita que se soluciona con 8 clic's.. pero el principal problema es: "donde hago esos clics?".. bueno esta es la respuesta para todos aquellos que se han encontrado con este problema. Espero los ayude xq a en lo personal, me dió mucha colera.
Suerte :D
Uno de los problemas màs grandes que encontrè, espero este dato sea de ayuda, fue que cuando había creado mi portal de publicaciones dentro de mi portal sharepoint, sin activar la creacion de sitios sin intervencion del administrador, fue que al crear la pagina me mostraba un error de permisos y muestra un link "solicitar permiso"... el problema es que cuando el admistrador va a otorgar el permiso al usuario se encuentra en la librería "páginas" y aunque le otorgue los permisos el usuario nunca podrà crear una noticia.. excepto los usuarios admnistradores del sitio.
Solucion: el problema se presenta porque (supongo) el usuario no tiene acceso a las paginas maestras del servicio de publicaciones; para resolver este problema se debe acceder a la librería de páginas maestras que se encuentra en "pagina principal-acciones del sitio - configuracion del sitio - paginas maestras" (no recuerdo los nombres exactos pero al final es una libreria de paginas... el lugar donde puedes editar la master page con el sharepoint designer)... en esta librería se debe conceder acceso de lectura a los usuarios que se requiere tengan la posibilidad de crear páginas.
Problemita que se soluciona con 8 clic's.. pero el principal problema es: "donde hago esos clics?".. bueno esta es la respuesta para todos aquellos que se han encontrado con este problema. Espero los ayude xq a en lo personal, me dió mucha colera.
Suerte :D






