sábado, 30 de marzo de 2013

Instalando la actualización de Marzo 2013 para SharePoint 2013

Hace una par de semanas escribí sobre la disponibilidad de la primera actualización obligatoria de SharePoint 2013 esta actualización corrige muchos problemas de migración y de búsqueda, pero es base para futuras actualizaciones por lo que debe de actualizarse.  En este artículo describiremos el procedimiento para actualizarse, como sucedió todo y cuanto tiempo demoré en hacerlo.  Una vez descargados las dos actualizaciones una por Foundation y otra por la versión Server (ambas deben de actualizarse si se tiene cualquiera de las ediciones de la versión servidor). 

Primero vamos a ejecutar las dos actualizaciones empezando con la más pequeña de 671 Mb y luego la de 1.7 Gb que corresponde a la versión de servidor.

image

Al iniciar la actualización nos preguntará si estamos de acuerdo con los términos de la licencia, para continuar debemos de habilitar la cajita de selección y presionar el botón "Continue"

image 

Empezó a las 11:35 am  y Termino a las 12:30 aproximadamente una hora en una virtual de computadora laptop con disco de estado solido.

image 

Nos solicitará reiniciar la computadora presionemos el botón "Yes".  Luego que reinicie vamos por el segunda actualización la de servidor con 1.7 GB de tamaño del ejecutable.

image

Windows preguntará si esta seguro de ejecutar el programa, confírmelo positivamente presionando el botón "Yes".

image

Luego levantará la misma ventana de la actualización anterior preguntando si esta de acuerdo con los términos del licenciamiento, presione el botón "Continue".

image

Empezó a las 12:36 pm y terminó las 2:05 pm.

image

Luego de reiniciar el servidor deberá ejecutarse el asistente de Configuración de Productos de SharePoint para que sean actualizadas las bases de datos y configuraciones de acuerdo a los nuevos bits actualizados.

image

Como de costumbre advierte que los servicios de IIS, SharePoint Administration y Timer Job serán reiniciados en el proceso.  Presione el botón "Next" para continuar

image

Para continuar presione el botón "Next".

image

Iniciará el proceso que consta de 10 pasos, pacientes esperemos que todo los pasos se den exitosamente.

image

Si finalizó con éxito se lo mostrará en la pantalla, presione el botón "Finish" para salir del asistente e iniciar el Central Administration o CA.

image

image

Un servicio que típicamente falla es el de los perfiles de Usuario o User Profiles. Diríjase a la opción Services on Server y si el servicio "User Profile Synchronization" esta apagado, enciéndalo de nuevo ingresando la contraseña de la cuenta administradora de la granja de SharePoint.

image

Si no empezó, entonces reinicie el IIS con IISReset y luego intente de nuevo iniciando el servicio e ingresando la contraseña de la cuenta administradora de la granja de SharePoint, y con ello se deberá corregir el problema.

image

Con ello podrá acceder el servicio y sincronizarlo a discreción.

image 

Para probar si la búsqueda de personas, luego de sincronizados los perfiles y la fuente de contenidos del servicio de búsqueda. Podemos realizar una prueba de personas como se muestra en la imagen de abajo:

image

image

image

Si buscamos otro nombre como muestra la imagen de abajo.

image

SharePoint 2013 tiene la opción de Preview que no estaba disponible para la versión Enterprise sino solo la versión Fast Search.

image

Excelente, cierto!.   Bueno esto solo para probar que luego de la actualización los demás servicios estaban funcionando correctamente, y que corrija o no algunos problemas de SharePoint que nos interese es obligatoria la instalación para subsiguientes actualizaciones.

SharePoint154Fun!,

Juan Manuel Herrera Ocheita.

domingo, 24 de marzo de 2013

Mejores prácticas para migrar contenido en SharePoint 2007

Aunque SharePoint 2007 esta de salida, aún hay clientes que requieren servicios de esta versión o bien que se están preparando para la migración a SharePoint 2010.  Para este caso vamos a ver como migrar contenido de sub-sitios a nuevas colecciones de sitios para distribuir el contenido en diferentes base de datos de contenido.

Escenario:

Dos servidores de la granja de SharePoint con Windows Server 2003 Enterprise, SQL Server 2005 Enterprise, SharePoint Server 2007 Enterprise Edition Service Pack 3.0 Instalado, plataforma de 32b bits.

Una única base de datos de contenido que ha excedido los 100 GB de tamaño recomendado por base de datos.

Herramientas:

Para prepararnos para la migración de contenido vamos a utilizar las siguientes herramientas:

0) Microsoft Excel (Formato para agrupar los sitios de forma lógica y funcional en las nuevas colecciones de sitios)

image

1) Central Administration 3.0  (Crear las bases de datos de Contenido y colecciones de sitio)

En el servidor de SharePoint donde esta hospedado el Central Administration haga lo siguiente:

Central Administration > Application Management > SharePoint Web Application Management, click on ‘Add a content database’.

Seleccione la aplicación Web deseada donde esta ubicado el portal.

Escriba el nombre del servidor de SQL Server.

Escriba el nombre de la base de datos de contenido (recomendado utilizar el prefijo wss_content_)

Seleccione el servidor de búsqueda (si solo es uno, le aparecerá un único nombre)

Los demás valores puede dejarse los predeterminados para finalizar presione el botón Ok o Aceptar.

Luego es necesario crear la colección de sitios, seleccione la plantilla del sitio igual al sitio que va a migrar.  Para crear la colección de sitios siga el siguiente procedimiento:

Haga clic en la opción Application Management

Haga clic en el enlace Create site collections.

Verifique que esta en la aplicación Web deseada (en la parte superior de la página puede verificarlo)

Escriba el título del sitio

Escrba la Descripción

Escriba la porción de la Url que representa la colección de sitios

Seleccione la plantilla de sitio equivalente a la que moverá

Escriba el usuario primario administrador de la colección de sitios

Escriba el usuario secundario administrador de la colección de sitios

Seleccione una quota o ninguna.

Presione el botón Ok.

 

2) SharePoint Designer  (Copiar Master Pages y Page Layouts a nuevas colecciones de sitios)

Con SharePoint Designer puede utilizar la opción Open Site para abrir el sitio primario de la colección de sitios de origen y luego otra instancia de SharePoint Designer para abrir el sitio primario de la colección de sitios destino y luego puede seleccionar la carpeta _catalogs, MasterPage y copiar las páginas maestras con Ctrl+C y luego pegarlas en la colección de sitios destino con Ctrl+V

3) SiteManager.aspx (mover sub-sitios dentro la misma colección de sitios)

SharePoint Server Standard o Enterprise edition tienen una utileria que se habilita cuando se activa la característica de infraestructura de publicación a nivel de colección de sitios y luego del sitio.  Para Accederla puedes seleccionar la opción: Site Actions, Content & Structure o bien escribir la dirección http://localhost/_layouts/sitemaanager.aspx

Esto permitirá copiar, eliminar o mover sitios dentro de cada colección de sitios, útil para reagrupar los sitios que se van a migrar de un lugar a otro.

4) stsadm.exe -o export | import (exportar e importar sub-sitios)

En 2010 tenemos mejores herramientas de migración de contenido, también existen de terceros gratuitas y compradas, pero si no se desea invertir en esto se pueden utilizar las opciones export e import de stsadm.exe

Antes de iniciar asegúrese que tenga espacio suficiente para crear los archivos de exportación y cambiar el directorio temporal del usuario al disco con mayor espacio, para que al momento de crear los archivos utilice el espacio que tiene disponible.

El formato de exportación es el siguiente:

stsadm -o export

   -url <URL name>

   -filename <export file name>

   [-overwrite]

   [-includeusersecurity]

   [-haltonwarning]

   [-haltonfatalerror]

   [-nologfile]

   [-versions] <1-4>

   [-cabsize] <integer value>

   [-nofilecompression]

   [-quiet]

Ejemplo: stsadm -o export -url http://localhost/sitio -filename f:\contenido\sitio.cmp -includeusersecurity -versions 4 -nofilecompression

Referencia: http://technet.microsoft.com/en-us/library/cc288940(v=office.12).aspx

Para la importación la sintaxis es la siguiente:

stsadm -o import

   -url <URL name>

   -filename <import file name>

   [-includeusersecurity]

   [-haltonwarning]

   [-haltonfatalerror]

   [-nologfile]

   [-updateversions] <1-3>

   [-nofilecompression]

   [-quiet]

Ejemplo:  stsadm -o import -url http://localhost/deptos/sitio -filename f:\contenido\sitio.cmp -includeusersecurity - updateversions 2 -nofilecompression

Referencias:

http://technet.microsoft.com/en-us/library/cc287920(v=office.12).aspx

Para cambiar la ubicación de la carpeta temporal del sistema, siga los pasos que se indican a continuación.
1. Haga clic derecho en PC y seleccione Propiedades. En la ventana resultante con la información básica acerca de su equipo
2. Haga clic en Configuración avanzada del sistema en el panel izquierdo dando lugar a un cuadro de diálogo, haga clic en la ficha Opciones avanzadas de
3. Haga clic en el botón Variables de entorno cerca de la parte inferior etiquetados.
4. Usted puede ver tanto TMP y TEMP que figuran en las variables de usuario sección etiquetados para (cuenta). Ese es el lugar común, cada cuenta de usuario diferente se le asigna su propia ubicación temporal.
5. En el cuadro Editar valor de variable puede especificar la ruta de acceso al directorio que los programas de Windows y muchos otros se utilizan para los archivos temporales.

 

Y eso eso todo por ahora, SharePoint4Fun!

 

Juan Manuel Herrera Ocheita

jueves, 21 de marzo de 2013

Actualización de problemas comunes encontrados en la implementación de Kerberos para SharePoint 2010

A continuación detallo el escenario de configuración y luego los tips para configurarlo y documentación de soporte que pueden ayudarte.

Escenario:

Windows Server 2008 R2 DataCenter Edition

SQL Server 2008 SP2 Standard Edition

SharePoint Server 2010 Enterprise Edition with Service Pack 1.0

Configuración de Servidores:

Servidor de Base de Datos  12 GB RAM, Discos 2 de 100 GB, Quad Core.

Servidor Front End: 8 GB RAM, Disco de 100 GB, Quad Core.

Cuentas de Dominio Administrativas para configuración de SharePoint:

Cuenta de Instalación de SharePoint: SPAdmin

Cuenta de administrador de la granja de SharePoint: SPFarm

Cuenta para Servicio de Secure Store y Cuenta para Acceso deshatenido: SPSS y SPUAA

Cuenta para Servicios de Busqueda y Contenido: SPSearch y SPContent

Cuenta para Servicio de Sincronización con el AD. SPSyncAD

Cuenta para el portal con NTLM: SPWebApp

Cuenta para servicios de aplicaciones: SPSvcApp

Cuentas de dominio para delegar tickets de Kerberos:

Cuenta para el portal que implementa Kerberos: SPPortalKB

Cuenta de base de datos: SPDB

Cuenta de Analysis Servies: SPAS

Cuenta para Claims to Windows Token Service: SPC2WTS

Cuenta para Excel, Visio, BDC y PerformancePoint: SPExcel, SPVisio, SPDBC, SPPP

Cuenta para el Servicio de Reporting Services: SPRS

Primero lo primero:

Debes de configurar el SharePoint manualmente y utilizar la opción Avanzada y Completa de instalación y no la versión Stand Alone.

Luego de configurar todos los servicios y crear las aplicaciones Web y percatarse que todo esta funcionando, reinicie el servidor y valide que todo lo configurado funciona correctamente.

Primer tip y error común:

Si configura las cuentas de super user y super reader percátese que le ha dado acceso de full control y full reader a nivel de aplicación Web a estas cuentas respectivamente.

Iniciando la configuración de Kerberos:

Les recomiendo empiecen con la Aplicación Web que implementará Kerberos, validando que los usuarios se autentican con Kerberos y no con NTLM, para ello puede revisar el visor de eventos en la sección de Seguridad, también puedes utilizar FIDDLER para monitorear cuando se autentique si utiliza un ticket de Kerberos. Para esta tarea hay una excelente guía a continuación el enlace: http://blog.blksthl.com/2012/09/26/the-final-kerberos-guide-for-sharepoint-technicians/.

Importante que cuando este haciendo el registro de los nombre principales con setspn registre el nombre corto y el FQDN.   Siempre valide estos nombres haciendo un ping al nombre corto y largo, no asuma valores sino compruébelos, incluyendo los nombres de las cuentas de usuario, con su respecto dominio.  Revise detenidamente los nombres de los servidores y dominios ya que estos no son validados si usted los escribe incorrectamente.

Importante que los servidores tengan habilitado: "On the Delegation tab, click ‘Trust this computer for delegation to any service (Kerberos only)".

Si ya esta autenticando reinicie el servidor de SharePoint y pruebe de nuevo para asegurarse.

Delegando las cuentas registradas por SetSPN

Es importante conocer como deben de delegarse las cuentas. Para ejecutar SetSPN necesitas una cuenta que sea Domain Admin o tenga permisos para registrar estos nombres en el AD.

La cuenta del Portal SPPortal por ejemplo se asocia así misma, hacia las cuentas de servicios de SQL y a la cuenta de Reporting Services.  No se delega a C2WTS, ni a los servicios de Excel, Visio, y PerformancePoint.

Las cuentas de los servicios Excel, Visio, PerformancePoint y C2Wts se delegan a las cuentas de los servicios de SQL.

Las cuentas de servicios de SQL no se delegan a ningún otro ya que funcionan como End-Points.

Para todas las cuentas registradas con SetSPN es recomendable habilitar la opción Advanced Futures del Active Directory Users & Computers para acceder la pestaña de Security de cada cuenta y asignar el permiso de Read al grupo Authenticated Users.

Los códigos de los servicios son los siguientes:

Servicio

Código de Servicio

HTTP o HTTPS

HTTP

SQL Server Database Engine

MSSQLSVC

SQL Server Analysis Service

MSOLAPSvc.3

Claims To Windows Token Service

SP/C2WTS

Excel Service

SP/ExcelServices

PerformancePoint Service

SP/PPS

Visio Service

SP/VisioServices

Reporting Services

HTTP

Business Data Connectivity Service

HTTP

 

La guía completa la puede encontrar como Configuring Kerberos Authentication for Microsoft SharePoint 2010 Products en: http://www.microsoft.com/en-us/download/details.aspx?id=23176 

SharePonit4Fun!,

Juan Manuel Herrera Ocheita

domingo, 17 de marzo de 2013

Desarrollando Apps para SharePoint 2013 con Javascript y programación asíncrona

Para desarrollar Apps para SharePoint 2013 se requiere conocimiento en Javascript, Jquery, HTML, DOM (Document Object Model), CSOM para Javascript y de programación asíncrona.  En este artículo le echaremos un vistazo a la programación asíncrona en Javascript para el modelo de objetos clientes de SharePoint o CSOM.

De forma introductoria diremos que la página Default.aspx hace referencia a las bibliotecas de Jquery y a un archivo js para escribir el código javascript. a continuación el segmento de código:

 

<asp:Content ContentPlaceHolderId="PlaceHolderAdditionalPageHead" runat="server">
    <script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js"></script>
    <script type="text/javascript" src="/_layouts/15/sp.runtime.js"></script>
    <script type="text/javascript" src="/_layouts/15/sp.js"></script>
    <!-- Add your CSS styles to the following file -->
    <link rel="Stylesheet" type="text/css" href="../Content/App.css" />
    <!-- Add your JavaScript to the following file -->
    <script type="text/javascript" src="../Scripts/JqueryAddIns.js"></script>
    <script type="text/javascript" src="../Scripts/App.js"></script>
</asp:Content>

Con ello podemos escribir el código en el archivo App.js donde estará la lógica de la página.  Lo primero que debemos de hacer a través de jquery es invocar la carga la página el contexto de CSOM para que este disponible cuando lo invoquemos.

// script file sp.js is loaded and then executes sharePointReady()   
 $(document).ready(function () 
 {     
	 SP.SOD.executeFunc('sp.js', 'SP.ClientContext', sharePointReady);   
 }); 

El método de javascript sharePointReady() invocamos el contexto de CSOM.

function sharePointReady() {     
	context = new SP.ClientContext.get_current();     
	web = context.get_web();  
    });
}  

Ahora vamos a ver como afecta nuestro código con la programación asíncrona.  Por ejemplo el código de servidor utilizando el modelo de objetos de SharePoint para validar si existe una lista sería el siguiente:

Guid miSitioId = SPContext.Current.Site.Id;
Guid miWebId = SPContext.Current.Web.Id;
using(var miSitio = new SPSite(miSitioId))
{
     using(SPWeb miWeb = miSitio.OpenWeb(miWebId))
     {
      try
      {
         SPList miLista = miWeb.Lists[milista]; 
      } catch(Exception ex)
      {
          // Lista no existe haga algo mas
      }
   }
}

Y en Javascript para acceder por medio del CSOM y  de forma asíncrona de la siguiente forma:

function checkLibrary(listTitle) {
//	showMessage('Inside createList for '+listTitle);
	this.web = context.get_web();
	var listExist = web.get_lists().getByTitle(listTitle);
	context.load(listExist);
    context.executeQueryAsync(onSuccessGetLibrary, onFailGetLibrary);
}
// This function is executed if the above call success 
function onSuccessGetLibrary() {
              
}
 // This function is executed if the above call fails
 function onFailGetLibrary(sender, args) 
 {
 	// do something
 }

A través del método OnFailGetLibrary, podemos ejecutar algún código alterno, como por ejemplo crear una lista, para acceder alguna variable u objeto declarado globalmente lo hacemos a través de la sentencia this como esta en el segmento de código de la siguiente forma this.web = context.get_web() para obtener el objeto WebSite de SharePoint a través de CSOM.


En el siguiente segmento de código vamos a ver como nuevamente ejecutamos código asíncrono y por medio de los métodos en caso de éxito o falla podemos ejecutar alguna lógica dentro del código.


 

function getWebProperties() {
    // Get the number of lists in the current web.
    this.web = context.get_web();
	this.context.load(this.web, 'Title');
    this.context.executeQueryAsync(Function.createDelegate(this, this.onWebPropsSuccess), Function.createDelegate(this, this.onWebPropsFail));
}
function onWebPropsSuccess(sender, args) {
    showMessage('web: ' + this.web.get_title());
}
function onWebPropsFail(sender, args) {
    alert('failed to get a web . Error:' + args.get_message());
}

En este caso estamos indicándole a CSOM que deseamos obtener el título del sitio Web si es exitoso podremos obtenerlo sino, desplegar el mensaje de error.


Si desea conocer mayor información sobre los comando básicos de CSOM en javascript consulte la siguiente referencia: http://msdn.microsoft.com/en-us/library/jj163201(v=office.15).aspx


Ahora ni modo javascript4Fun!,


Juan Manuel Herrera Ocheita

martes, 12 de marzo de 2013

Actualización (12-03-2013) para SharePoint 2013 RTM

Microsoft ha lanzado una actualización que al parecer es obligatoria antes de actualizar otra actualización posterior.  Tiene importantes cambios que deberías actualizar.  Aunque la actualización esta etiquetada como "Update for Microsoft SharePoint Enterprise Server 2013" el KB se indica para SharePoint Foundation y menciona que este solo actualizará los componentes instalados "Además, este paquete de actualización acumulativa actualiza sólo aquellos componentes que están instalados en el sistema", por lo que opino aplica para todas las versiones de SharePoint 2013.

Enlace para descargar la actualización: http://www.microsoft.com/en-ca/download/details.aspx?id=36987

A continuación he preparado una tabla de los problemas que corrige la actualización agrupada por categoría, para que le ayude a ubicar algún tema de interés.

No

Descripción del problema

Categoría

1 When you try to resize an app part on a SharePoint Server 2010 webpage, you receive a JavaScript error message. This issue occurs after you set the value of the Chrome Type property for the app part to None. Apps
2 If a web application is extended to a different zone, the SharePoint hosted apps do not work correctly in that zone. If a farm has multiple host header web apps that have different authentication schemes, the apps do not work for all web apps. Apps
3 If you use the Chinese lunar calendar in Microsoft Outlook 2013 or in an earlier version of Outlook, the Gregorian date is displayed as an incorrect lunar date. For example, the Gregorian date June 8, 2013, is displayed as lunar date 4/30 instead of 5/1. Calendario
4 The output cache feature does not work on a page on a SharePoint Server 2013 site. This issue occurs when the page contains a Content By Search (CBS) web part. Característica de Cache
6 When you apply multiple filters to two columns of a custom list, only the filter that is applied on the second column applies to list items in the custom list. Lista Personalizada
7 Assume that in a list on a SharePoint Server 2013 site, you reference an item from another list.When you try to view the item in the list, you receive the following error message: Lista Personalizada
8 Assume that you create a custom SharePoint list that contains a multivalued Person or Group field.The field does not contain any values. When you try to insert a new row into the list in Datasheet view, Internet Explorer crashes. Lista Personalizada
9 Assume that you upgrade Microsoft SharePoint Server 2010 to SharePoint Server 2013. In this situation, when you create a discussion post in a community, the feed notification is not displayed on your My Site page. Migración de 2010 a 2013
10 Assume that you attach a SharePoint Server 2010 content database to a SharePoint Server 2013-based server. In this situation, when you upgrade the site collection on the SharePoint Server 2013-based server, picture libraries are not updated. Migración de 2010 a 2013
11 After you run a Build-To-Build in-place upgrade, accounts other than the application pool account lose the SPDataAccess and SPReadOnly roles. Migración de 2010 a 2013
12 You cannot edit a Silverlight web part on a SharePoint 2010 mode site collection in SharePoint Server 2013. Migración de 2010 a 2013
13 When you create a meeting on a group calendar on a SharePoint 2010 mode site, the Attendees field is not filled by a default value. Migración de 2010 a 2013
14 Assume that a SharePoint Server 2010 site contains a navigation link that points to an invalid URL.After you upgrade SharePoint Server 2010 to SharePoint Server 2013, you cannot access the site. Migración de 2010 a 2013
15 Consider the following scenario:
You create a site collection in Microsoft Office SharePoint Server (MOSS) 2007.
You create a workflow that has the Collect Data from a User task.
You upgrade MOSS 2007 to MOSS 2010 or MOSS 2013.
You receive a notification email message when the task is assigned to you.
You open the email message by using Microsoft Outlook and then click Open this task to open the URL of the workflow task.
In this scenario, Windows Internet Explorer starts. However, you receive the following error message:
The webpage cannot be found.
Migración de 2010 a 2013
16 Consider the following scenario:
You add managed metadata columns that are multivalued to the content farm and to the service farm in SharePoint Server 2010.
You upgrade from SharePoint Server 2010 to SharePoint Server 2013.
You search for a value in SharePoint Server 2013.
In this scenario, some search results are not displayed in SharePoint Server 2013 as they would be in SharePoint Server 2010.
Migración de 2010 a 2013
17 When user A creates a post that refers to user B in a different SharePoint farm, user B does not receive a notification email message. Notificaciones
18 Assume that you create a site that contains folder and save the site as a template. When you try to use the template to create a new site, you receive the following error message:
Unexpected Error happened
Plantilla de Sitios
19 When no workflow is published to a Microsoft Project Server 2013 server, you cannot change the enterprise project type for a project through Project Web App. Project Server 2013
20 When you perform a search on a SharePoint Server 2013-based server, you experience performance problems on the server. Servicio de Búsqueda
21 Assume that you use the Cross-Site Publishing feature to create a site on a SharePoint Server 2013-based server. When you perform a search on the site, the number of search results is greater than the expected number. Servicio de Búsqueda
22 Assume that you access a SharePoint site that is not in your trusted sites list. When you try to search an item on the site, you receive the following error message:
The display template had an error. You can correct it by fixing the template or by changing the display template used in either the Web Part properties or Result Types.
Servicio de Búsqueda
23 When you try to perform a search crawl on a list that contains many columns in SharePoint Server 2013, you receive the following error message:
The filename or extension is too long
Servicio de Búsqueda
24 When you perform a search in a SharePoint Server 2013 search center in backward compatibility mode, the out of box (OOB) site refiner returns incorrect results. Servicio de Búsqueda
25 Assume that you remove a user profile picture from Active Directory Domain Services (AD DS).Then, you perform a user profile synchronization from AD DS to SharePoint Server 2013. In this situation, the user profile picture is not removed from SharePoint Server 2013. Servicio de Perfiles de Usuario
26 Consider the following scenario:
You create a community site in SharePoint Server 2013.
You use the least-privileges configuration to set up the SharePoint farm.
You create a new discussion post on the community site.
You view the My Newsfeed section on the My Site page.
In this scenario, the feed notification for the discussion post is not displayed in the My Newsfeed section
Servicio de Perfiles de Usuario
27 When you configure Access Services to use Windows Azure SQL Database (formerly SQL Azure), database connections may time out too early. Servicio Microsoft Access
28 When you run a complex query or import a large amount of data in Microsoft Access 2013, you receive the following error message:
System Resources Exceeded
Note This bug need registry information.
Servicio Microsoft Access
29 Assume that you filter data in an Access form on a non-English version of SharePoint Server 2013 server. In this situation, the Full-Text Search in SQL Server does not work correctly. Specifically, the filtering operations are slow or return incomplete results. Servicio Microsoft Access
30

SPBasePermission enumeration values are truncated from 64 bits to 32 bits for SharePoint sandboxed solutions.

Soluciones Sandboxed
5 You cannot start an Agave application when you open a document in Excel Web Apps. Web Apps
31 Consider the following scenario:
You open a Microsoft Word 2013 document that contains a footnote reference inside a table.
You click Text Direction and then click Vertical in the Page Setup section on the PAGE LAYOUT tab.
You scroll down to the end of the document.
In this scenario, some pages after the table may not be displayed.

Web Apps

32 Consider the following scenario:
You open a Word document in Word 2013.
The Word document contains some shapes or pictures.
You right-click one of the shapes or pictures in the Word document.
You click Edit Points for the shape. Or, you point to Wrap Text and then click Edit Wrap Points for the picture.
In this scenario, other shapes and pictures may disappear from the Word document.

Web Apps

33 Consider the following scenario:
You create a workflow in Microsoft SharePoint Designer 2013.
You publish the workflow, and you set the workflow to start automatically in SharePoint Server 2013.
You view the workflow status page (Wrkstat.aspx).
In this scenario, the exception messages are not completely displayed on the Wrkstat.aspx page.
Workflow
34 When you start a workflow in SharePoint Server 2013 on folders or on large lists, you receive the following error message:
Something went wrong. To try again, reload the page and then start the workflow.
Workflow

Fuente tomada del KB: http://support.microsoft.com/kb/2768000

Share154Fun!,

Juan Manuel Herrera Ocheita

domingo, 10 de marzo de 2013

Comportamiento de los permisos en SharePoint

A veces en ocasiones puede ser confuso el comportamiento de los permisos en SharePoint, especialmente cuando no se tiene claro los alcances de los mismos y su nivel de autorización.  Por lo que para empezar vamos a exponer un caso que puede aclarar muchas dudas.

Antes de empezar describiendo los casos es importante explicar los fundamentos de los permisos en SharePoint. Los permisos en SharePoint se heredan de forma predeterminada.  Todo objeto (biblioteca, lista, pagina) creado dentro de un sitio, incluyendo un sub-sitio hereda los permisos asignados del sitio primario.  Es decir si un usuario es asignado al sitio como lectura sobre cada objeto dentro del sitio a menos que se rompa la herencia.

image

Caso A

Supongamos que un usuario tiene permisos de Control Total sobre un sub-sitio, dentro de ese sub-sitio existe una biblioteca de documentos y decide romper la herencia de los permisos del sitio padre, y decide eliminar todos los usuarios que heredaron permisos del sitio padre, incluyéndolo a el, automáticamente SharePoint lo dirigirá a la página de acceso denegado.  Porque razón bueno automáticamente el usuario eliminó a todos incluyéndolo y bloqueo por completo el acceso a la biblioteca.  Para resolver este problema es necesario solicitar a un administrador de la colección de sitios que restablezca los permisos de la biblioteca restaurando la herencia del sitio padre.

image

Ahora veamos otro caso un administrador de la colección de sitios, realiza el mismo procedimiento de arriba pero luego de eliminar a todos los usuarios no sucede nada y puede agregar nuevos usuarios a la biblioteca.  Porque la diferencia, bueno los administradores de la colección de sitios, tienen control sobre todos los sitios dentro de la colección, y no importa si ellos no tiene acceso a un sitio, aunque les muestre un mensaje de acceso denegado, ellos puede acceder la página de permisos del sitio (http://url del sitio/_layouts/user.aspx) y asignarse permisos para poder navegar sobre el.

image

Caso B

Este es muy común y poco comprendido, y sucede cuando una página muestra elementos de otros sub-sitios o bibliotecas que tiene la herencia de permisos rotos y por ello a pesar que se dio permisos sobre el sitio da un error de acceso denegado, ya que contiene objetos de SharePoint que no heredan los permisos, y esto no es un error solamente es más complicado la forma en que se diseño el sitio y como se asignaron y distribuyeron el contenido dentro del sitio.  Entonces qué debe de hacerse? Bueno revisar cada elemento Web dentro de la página y validar que objetos se hacen referencia revisando los permisos que se tiene asignados en ese contenido.  Luego definir un grupo que represente el contenido desplegado en la página, asignado este grupo a cada objeto que tiene rota la herencia asignándole los permisos al grupo, esto de seguro resolverá el problema.

Dónde se asigna  un administrador de colección de sitios?

Nota: Solo otro administrador de sitio puede asignar este permiso.

Haga clic en Acciones del Sitio, luego en Configuración del Sitio, Si es SP 2007 Administradores de Sitios, si es 2010 haga clic en Permisos Avanzados y luego haga clic en Administradores de sitio.  Si no aparece la opción es porque no esta en el sitio primario de la colección de sitios, por lo que debe de buscar la opción Ir al sitio primario.

image

image

Este comportamiento es aplicable desde SharePoint 2007 hasta 2013, aunque las opciones cambian un poco su ubicación el comportamiento es el mismo.

SharePoint4Fun!,

Juan Manuel Herrera Ocheita

domingo, 3 de marzo de 2013

Glosario del nuevo modelo de programación Apps para SharePoint 2013

El nuevo modelo de programación "Apps" trae consigo un nuevo vocabulario que puede ser al principio un poco confuso, por lo he preparado un pequeño listado de los que me parece son los más importantes de recordar:

Término Descripción Referencia
App for SharePoint

Son independientes piezas de funcionalidad que amplían las capacidades de un sitio web de SharePoint. Corren a nivel o alcance Web y corren en un ambiente asilado para afectar lo menos posible el mantenimiento y actualización de la plataforma de SharePoint

http://msdn.microsoft.com/en-us/library/fp179930.aspx
App Manifest

Este es un archivo requerido que se nombra AppManifest.xml. Le dice a SharePoint 2013 sobre algunas propiedades importantes de la aplicación, como su título y los permisos que necesita para funcionar

http://msdn.microsoft.com/en-us/library/fp179918.aspx
App Host

El sitio web al que se ha instalado la aplicación. Si una App no contiene componentes SharePoint no tendrá una App Web.

http://msdn.microsoft.com/en-us/library/fp179925

App Package Aplicaciones para SharePoint se distribuyen como un paquete de aplicación. Según el lugar donde se aloja la aplicación, el paquete puede contener diferentes componentes. Para aplicaciones de proveedores de hospedaje, donde usted o su departamento de TI ha recibido a la aplicación en un servidor dedicado o de terceros servicio de alojamiento, el paquete podría contener el manifiesto de aplicación. Los paquetes Autohosted de aplicaciones pueden incluir elementos que se despliegan en la nube de Windows Azure. Aplicaciones SharePoint alojados pueden contener algunos componentes relacionados con SharePoint, además de el manifiesto de la aplicación http://msdn.microsoft.com/en-us/library/fp179918.aspx
App Part

Un tipo de elemento Web que está representado por la clase ClientWebPart. Este tipo de elemento web es básicamente un contenedor para un IFrame que sería la sede de una página de la aplicación

http://msdn.microsoft.com/en-us/library/ae96572b-8f06-4fd3-854f-fc312f7f2d88

App Web

Sitio web especial para que se implementa la aplicación. Aunque la app web tiene su propio dominio aislado, es en la misma colección de sitios web como el de host web (Una excepción a esta regla es cuando la aplicación se instala con alcance inquilino. En ese escenario, la aplicación web se encuentra en la colección de sitios de la aplicación de catálogo corporativo.)

http://msdn.microsoft.com/en-us/library/fp179925

OAuth

Es un protocolo abierto para la autorización. OAuth permite autorización segura desde el escritorio y aplicaciones web de una manera simple y estándar. OAuth permite a los usuarios aprobar una solicitud para actuar en su nombre sin compartir su nombre de usuario y contraseña

http://msdn.microsoft.com/en-us/library/ae96572b-8f06-4fd3-854f-fc312f7f2d88

SharePoint 2013 Glossary

http://msdn.microsoft.com/en-us/library/gg191706.aspx

App4Fun!,

Juan Manuel Herrera Ocheita

Recuperando manualmente las estadísticas de uso de la colección de sitios en SharePoint 2007

SharePoint 2007 trajo con sigo un nuevo amigo Shared Service Provider o SSP el cual no continuó en la siguiente versión SharePoint 2010, y una razón muy importante fue porque este servicio compartía muchas funcionalidades; entre ellas Perfiles de Usuario, Búsqueda, Audiencias, Catalogo de Datos del Negocio o BDC, estadísticas de uso de sitios y de la búsqueda, esto lo hacia poco escalable y muy dependiente entre sus funcionalidades si uno fallaba podía afectar a los demás o al recuperar uno afectaba al resto.  Y eso es lo que me sucedió la búsqueda no respondía, así que tuve que crear un nuevo proveedor de servicios compartidos, migrar las aplicaciones a este nuevo SSP y configurar de nuevo Perfiles, Búsqueda y el resto de funcionalidades, pero perdí las estadísticas de uso del sitio del SSP anterior, entonces me pregunté que tan difícil podría ser actualizar esta información manualmente vía T-SQL a nivel de base de datos porque al final era tablas con información, y no pensaba que podría estar corrompiendo el SharePoint ya que es información estadística y además en el pasado revisando las bases de datos de SharePoint especialmente las de contenido no tienen integridad referencial o triggers que me preocuparán ya que generalmente son tablas con llaves primarias auto numéricos o de números de identificación única y una buena cantidad de procedimientos almacenados.  Y sabes amigo lector, estaba en lo cierto, la suerte estaba de mi lado, solo me tenía que preocupar de actualizar las tablas en un orden lógico relacional y percatarme de no intentar insertar la llave cuando es un auto numérico.

Antes de empezar por favor lea detenidamente el siguiente descargo de responsabilidad:

Este método no es soportado ni recomendado por Microsoft, es una solución alterna para resolver el problema de recuperar las estadísticas de uso del sitio de un proveedor de servicios compartidos corrompido.

Primero  lo primero, la base de datos donde se almacena las estadísticas de uso de los sitios de SharePoint esta  en la base de datos del SSP que su nombre sugerido es SharedServices1_DB.

Las tablas y el orden de actualización que vamos obtener la información y actualizarla en la nueva base de datos son las siguientes:

ANLDay

ANLHistoricalSiteUsage

ANLHistoricalWebUsage

ANLResource

ANLUser

ANLHit

ANLShadowResource

ANLWeb

El procedimiento a seguir entonces es insertar la información de estas tablas en el nueva base de datos SSP de la siguiente forma:

 

--Se registra casi todas las columnas de la tabla menos la llave primaria que es auto numerica
insert into [Base Datos SSP Nuevo].dbo.ANLDay 
(DayId,ResourceId,ResourceId,UserId,ReferrerResourceId)
select 
DayId,ResourceId,ResourceId,UserId,ReferrerResourceId
from [Base Datos SSP Anterior].dbo.ANLDay
--Se registra casi todas las columnas de la tabla menos la llave primaria que es auto numerica
insert into [Base Datos SSP Nuevo].dbo.ANLHistoricalSiteUsage 
(DayId,ResourceId,ResourceId,UserId,ReferrerResourceId)
select 
DayId,ResourceId,ResourceId,UserId,ReferrerResourceId
from [Base Datos SSP Anterior].dbo.ANLHistoricalSiteUsage
--Se registra casi todas las columnas de la tabla menos la llave primaria que es auto numerica
insert into [Base Datos SSP Nuevo].dbo.ANLHistoricalWebUsage
(DayId,ResourceId,ResourceId,UserId,ReferrerResourceId)
select 
DayId,ResourceId,ResourceId,UserId,ReferrerResourceId
from [Base Datos SSP Anterior].dbo.ANLHistoricalWebUsage
--Se registra casi todas las columnas de la tabla menos la llave primaria que es auto numerica
insert into [Base Datos SSP Nuevo].dbo.ANLResource 
(WebAppGuid,SiteGuid,WebGuid,DocName,FullUrl,HostDns)
select 
WebAppGuid,SiteGuid,WebGuid,DocName,FullUrl,HostDns
from [Base Datos SSP Anterior].dbo.ANLResource 
--Se registra casi todas las columnas de la tabla menos la llave primaria que es auto numerica
insert into [Base Datos SSP Nuevo].dbo.ANLUser (UserName)
select 
UserName 
from [Base Datos SSP Anterior].dbo.ANLUser 
--Se registra casi todas las columnas de la tabla menos la llave primaria que es auto numerica
insert into [Base Datos SSP Nuevo].dbo.ANLHit 
(DayId,ResourceId,UserId,ReferrerResourceId)
select 
DayId,ResourceId,UserId,ReferrerResourceId
from [Base Datos SSP Anterior].dbo.ANLHit 
-- todas las columnas son actualizadas ya que no tiene una lleve auto numerica
insert into [Base Datos SSP Nuevo].dbo.ANLShadowResource 
select *
from [Base Datos SSP Anterior].dbo.ANLShadowResource 
-- todas las columnas son actualizadas ya que no tiene una lleve auto numerica
insert into [Base Datos SSP Nuevo].dbo.ANLWeb 
select 
*
from [Base Datos SSP Anterior].dbo.ANLWeb 

Luego se podrá revisar la información desde la interfaz Web de SharePoint a través de la opción Acciones del Sitio, Configuración del Sitio, Informe de Uso de la colección de sitios o bien del sitio.


En este artículo vimos que es posible actualizar manualmente las estadísticas de uso de los sitios de SharePoint 2007 actualizando la base de datos SharedServices1_DB o equivalente, también es importante que no es una solución soportada y recomendada por Microsoft así que esta por su propia cuenta y riesgo. Que según lo realizado no afecto  en nada el funcionamiento de SharePoint y como indique al principio las tablas de SharePoint no tiene integridad referencial por lo que es muy sencilla su actualización manual.  Por favor amigo lector no lo estoy motivando para actualizar el contenido de SharePoint que esto sería demasiado riesgoso sino para las estadísticas de SharePoint 2007 es una solución alternativa para una recuperación necesaria para la información que es útil para los usuarios acerca del uso de sus sitios.


SharePoint4Fun!,


Juan Manuel Herrera Ocheita