jueves, 28 de junio de 2012

Tips/Info #40 Sharepoint

1-Abrir archivos .msg (mensajes de outlook) en Sharepoint 2010

Primero: setear permissive el browser file handling

  • Ir al Central Administration > Application Management > Manage Web Applications
  • Seleccionar la fila de la web application donde lo deseas configurar
  • Click en General Settings en la ribbon
  • Ir hasta la opción “Browser File Handling” y ponerlo como "Permissive”
  • Click OK

    Segundo: la siguiente configuración se debe hacer en cada frontend

  • Ir al Internet Information Manager
  • Ir al web application deseado
  • Abrir la sección “MIME Types”, click add.
    Ingrese .msg para el campo “file name extension” y “application/vnd.ms-outlook”

    Tercero: abrir una consola de sharepoint powershell y escribir lo siguiente.

    $webApp = Get-SPWebApplication http://web_application_url
    If ($webApp.AllowedInlineDownloadedMimeTypes -notcontains "application/vnd.ms-outlook")
    {
      $webApp.AllowedInlineDownloadedMimeTypes.Add("application/vnd.ms-outlook")
      $webApp.Update()
      Write-Host "application/vnd.ms-outlook agregado a AllowedInlineDownloadedMimeTypes"
    }


    2-Acceso denegado al tratar de subir un archivo swf (Error: Access Denied)

    Este KB (http://support.microsoft.com/kb/2483447) indica que los usuarios con permisos de contribute no tienen permitido subir la siguiente lista de archivos con extensión:

  • ASPX
  • MASTER
  • XAP
  • SWF
  • JAR
  • ASMX
  • ASCX
  • XSN
  • XSF
  • En Sharepoint 2010, SWF no está listada en la sección  "Blocked File Types" de un web application pero ha sido agregada a la lista de archivos webs considerados como sensibles. Estos archivos son listados en la propiedad WebFileExtensions de la WebApplication.

    $WebApp = Get-SPWebApplication http://url_siteCollection/
    $Extensions = $WebApp.WebFileExtensions
    $Ext = $Extensions.Remove("swf")
    $WebApp.Update()

    3-Página SearchAdministration.aspx lanza el error 404 (not found)

    Si puedes acceder a otras páginas(Ej: contents sources –>/_admin/search/listcontentsources.aspx) Esto se debe a que hay web parts que no están disponibles, abrir una consola de PowerShell y escribir los siguiente.

    Enable-SPFeature SearchAdminWebParts -url http://URL_CA:port
    #Si la feature ya estaba habilitada, deberás deshabilitarla y activarla de nuevo
    Disable-SPFeature SearchAdminWebParts -url http://URL_CA:port
    Enable-SPFeature SearchAdminWebParts -url http://URL_CA:port

    4-Cambiar página de inicio de un site mediante powershell

    Remove-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue
    Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue

    $sitioWeb = $null
    try
    {
        $SiteUrl = "http://url_site"
        $sitioWeb = Get-SPSite -identity $SiteUrl
        $oFolder = $sitioWeb.RootFolder;
        $oFolder.WelcomePage = "SitesPages/inicio.aspx";
        $oFolder.Update();
    }
    catch
    {
        write-host $_.exception
    }
    finally
    {
    if($urlSite -ne $null){$urlSite.Dispose()}
    }

    5-Timer job se ejecuta más de una vez

    Esta conducta de que se ejecute dos veces los jobs es debido a la opción SPJobLockType en el constructor.
    Si usas este constructor:
    public TimerJob(SPWebApplication webApp): base("TimerJob", webApp, null, SPJobLockType.ContentDatabase)
    {
        this.Title = "TimerJob";
    }

    Este timer job se ejecutará más de una vez si el web application para el cual el timer job es asociado tiene más de una content database asociada.
    Podrás verificar las content databases asociadas a un web application en el siguiente url http://centraladminurl/_admin/CNTDBADM.aspx.

    Cambia el valor del enumerador SPJobLockType de ContentDatabase a Job en el constructor:
    public TimerJob(SPWebApplication webApp): base("TimerJob", webApp, null, SPJobLockType.Job)
    {
        this.Title = "TimerJob";
    }

    Ahora el Timer job se ejecutará sólo una vez a traves de las múltiples content databases asociadas.

    miércoles, 27 de junio de 2012

    Links útiles #40 Sharepoint 2010

    1-Crear custom content type vía Visual Studio 2010

    http://www.c-sharpcorner.com/UploadFile/54db21/content-types-in-sharepoint-2010-via-om/

    2-Crear lista mediante Visual Studio 2010

    http://www.c-sharpcorner.com/UploadFile/54db21/list-creation-in-sharepoint-2010-programmatically-using-vs-2/

    3-Aplicar themes mediante una solución

    http://www.c-sharpcorner.com/UploadFile/54db21/themes-in-sharepoint-2010-programmatically-using-vs-2010/

    http://www.sharepointusecases.com/index.php/2010/09/automatically-apply-theme-to-a-sharepoint-foundation-2010-subsite/

    4-Web Services y Business Connectivity Services

    http://www.c-sharpcorner.com/UploadFile/Roji.Joy/connecting-to-a-web-service-using-business-connectivity-serv/

    5-Deployar assemblies a global assembly

    http://www.fewlines4biju.com/2012/06/deploy-assembly-to-globalassemblycache.html

    6-Leer items de una lista con ECMA

    http://sprider.org/2011/06/12/using-the-ecmascriptjavascript-client-object-model-to-read-lists-in-sharepoint-2010/

    7-Ocultar la opción de upload múliplte para una document library particular

    http://preachingsharepoint.blogspot.co.nz/2012/06/hide-multiple-upload-option-for.html

    http://villpates.wordpress.com/2012/05/24/hide-multiple-upload-link-in-sharepoint-2010/

    8-Subir un archivo mediante client object

    http://ahujadhiraj.wordpress.com/2012/06/19/upload-a-image-in-the-document-library-and-update-its-metadata-using-client-object-model/

    9-SPSecurityTrimmedControl: control que permite segmentar el contenido dependiendo de los permisos.

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

    Algunos miembros útiles:

    PermissionsString: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spbasepermissions.aspx

    PermissionContext :http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.spsecuritytrimmedcontrol.permissioncontext.aspx

    PermissionMode: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.spsecuritytrimmedcontrol.permissionmode.aspx

    AuthenticationRestrictions: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.spsecuritytrimmedcontrol.authenticationrestrictions.aspx

    10-Obtener el último ID de un item creado

    http://sharepointkunskap.wordpress.com/2012/06/20/three-ways-to-get-the-id-of-last-created-splistitem/

    Tips/Info #39 Sharepoint

    1-Error al tratar de acceder a la base de datos de search

    Exception: System.Runtime.InteropServices.COMException (0xC0041236): Could not access the Search administration database. A generic error occurred while trying to access the database to obtain the schema version info.  

    Ir a Start Menu -> SQL Server 2008 R2 -> Configuration Tools -> SQL Server Configuration Manager

    verificar que la opción “Shared Memory” esté habilitada

    SQLServerClient

    Recuerde ejecutar SharePoint 2010 Products Configuration Wizard

    También borre el siguiente registro:

    “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\14.0\WSS\Services\Microsoft.SharePoint.Search.Administration.SPSearchService”

    2-Cargar funciones de javascript en el evento onload en Sharepoint

    Sharepoint tiene el arreglo “_spBodyOnLoadFunctionNames”. Cuando el body es cargadp, el handler del evento onload ejecuta cada función que esté contenida en este arreglo. Ej:

    <script language=”javascript”>
    _spBodyOnLoadFunctionNames.push(“NombreFuncion”);
    function NombreFuncion()
    {
    // Custom Javascript
    }
    </script>

    3-Al restaurar una base de datos, Sharepoint nos dice que debemos hacer un upgrade

    Get-SPContentDatabase |    ? { $_.NeedsUpgrade -eq $true } |    Upgrade-SPContentDatabase -Confirm:$false -Verbose:$true |    ft Name, Id, CanUpgrade, NeedsUpgrade
    4-Ejecutar todos los jobs del Health Analyser

    $jobs = Get-SPTimerJob | Where-Object {$_.Title -like "Health Analysis Job*"}
    foreach ($job in $jobs)
    {
      $job.RunNow()
    }


    5-Error “The application attempted to perform an operation not allowed by the policy.  To grant this application the required permission please contact your system administrator or change the application’s trust level in the configuration file.”


    Anda al web.config del web application donde activas la feature C:\inetpub\wwwroot\wss\VirtualDirectories\[Web application directory]. Busca la siguiente línea:


    <trust level="WSS_Minimal" originUrl="" />.


    y reemaplaza WSS_Minimal con Full o WSS_Medium.

    Links útiles #39 Sharepoint 2010

    1-Leer datos de un excel mediante Excel Services y C#

    http://sharepointontop.blogspot.ca/2012/05/how-to-programmatically-read-data-from.html

    2-Iniciar un workflow mediante programación

    http://mmasoodblog.wordpress.com/2012/06/18/programatically-start-a-workflow/

    3-Obtener información del usuario actual mediante infopath

    http://jerryleiarnold.wordpress.com/2012/06/19/infopath-get-current-user-information-2010/

    4-Cómo Maneja Microsoft sus Sharepoint (recomendado)

    http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/OSP232

    5-Navegación global custom mediante css

    http://chrisstahl.wordpress.com/2010/11/04/customizing-sharepoint-2010-global-navigation-with-css-and-jquery-2/

    6-Visio Services API: javascript

    http://es.scribd.com/doc/56685592/Visio-2010-Mashup-API-Walk-Thru

    http://blogs.msdn.com/b/visio/archive/2010/02/21/the-visio-services-javascript-mashup-api.aspx

    http://marriedtosharepoint.com/tag/new-window/

    http://www.aboutworkflows.com/2012/06/visio-services-2010-how-to-create.html#more

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

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

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

    7-Conversión de docs a pdf en un event receiver (ItemAdded)

    http://suneet-sharma.blogspot.com.ar/2012/06/word-document-to-pdf-conversion-in.html

    8-Dar permisos mediante un event receiver (itemadded)

    http://extendtheenterprise.com/2012/06/20/item-event-receiver-that-updates-permissions-using-itemadded-override/

    9-Un timer job más liviano en Sharepoint

    http://www.sharepointboost.com/blog/creating-a-lightweight-timer-job-for-a-site-collection-defining-custom-work-items/

    10-Custom Claims Provider Sharepoint 2010

    http://visualstudiogallery.msdn.microsoft.com/bba61404-1062-4011-a388-e32605340515

    lunes, 25 de junio de 2012

    Tips/Info #38 Sharepoint

    1-Filtrar una vista por el tipo de documento (Ej: doc)

    ViewFilter

    2-Obtener el current user o ID con Sharepoint Designer

    Hay dos variables del server que se pueden usar:

    AUTH_USER
    El nombre del usuario que es derivado del header de autorización enviado por el client, antes que el user name sea mapeado a una cuenta de windows. Esta variable no es diferente a REMOTE_USER. Si tu tienes un filtro de autenticatión instalado en tu web server que mapea incoming users a cuentas, usa LOGON_USER para ver el user name mapeado.

    LOGON_USER
    La cuenta de windows que el usuario es impersonalizado (impersonating) mientras es conectado al web server.

    Se debe agregar lo siguiente en la sescción ParameterBindings

        <ParameterBinding Name="UserID" Location="CAMLVariable" DefaultValue="CurrentUserName"/>
        <ParameterBinding Name="Today" Location="CAMLVariable" DefaultValue="CurrentDate"/>
        <ParameterBinding Name="LogonUser" Location="ServerVariable(LOGON_USER)"/>

    Y al usarlo:

    <xsl:value-of select="$UserID"/><br/>
    <xsl:value-of select="$LogonUser"/>
    Nos devolverá lo siguiente:
    La primer sentencia nos devolverá el Alias de la cuenta (Ej: Christian Azcón), y la segunda nos devolverá el ID de la cuenta (Ej: DOMINIO\cazcon)
    3-Comparativa de Documents Sets y Folders


    • Más información en forma agrupado: los documents sets tienen una welcome page que contiene toda la información resumida
    • Permite definir metadata default para todo el document set.
    • Permite sincronización de metadata (mediante las Shared Columns)
    • Permite versionado de items o documentos en particular o todo el contenido (document set)
    • Workflow OOTB para Documents Sets
    • Declarar un document set como registro (record)

    Más información: http://www.sharepointanalysthq.com/2012/06/documents-sets-vs-folders-in-sharepoint-2010/


    4-Web Application y Web Site de IIS


    Una aplicación web de SharePoint está estrechamente relacionado con lo que se llama un sitio web en IIS. Un sitio web de IIS controla las solicitudes entrantes a través de un puerto en particular, y comprueba si hay un encabezado de host en particular o la dirección IP, o ambas cosas. Cada aplicación web de Sharepoint es hosteada en un sitio web de IIS.
       
    La aplicación web de SharePoint y el sitio web de IIS no son exactamente lo mismo (y que están representados por las diferentes clases en el modelo de objetos de SharePoint: la clase y la clase SPWebApplication y SPIisWebSite).
    Por un lado, aunque por lo general hay una relación uno-a-uno entre las aplicaciones web de SharePoint y los sitios web de IIS, esto no es siempre el caso. Es posible extender una aplicación web de SharePoint para múltiples sitios web de IIS.


    5-Sharepoint indexa items (sin errores), pero no retorna resultados de forma correcta


    Recuerda que los resultados del search son security trimmed, es decir si no tienes permisos sobre un item en una lista, no podrás verlo en los resultados del search.


    Pero si tienes permisos y sigues sin ver los resultados, re provisiona el servicio de search. A veces ocurre que quedan mal configurado el servicio de search.


    Si lo anterior no funciona trata de agregar la cuenta de crawl, al grupo Windows Authorization Access group (a veces aparece el siguiente error en los logs: Unexpected AuthZInitializeContextFromSid failed)


    Si sigues teniendo problemas con el search, verifica que en log no tengas el siguiente mensaje: Query Processor                                 Unexpected       AuthzInitializeContextFromSid failed with 2. The querying user’s Active Directory object may be corrupted, invalid or inaccessible. Query results which require non-Claims Windows authorization will not be returned to this querying user.


    Este problema se debe al siguiente KB publicado: http://support.microsoft.com/kb/2344518


    Lo que debes hacer es ejecutar la siguiente consulta de powershell:


    $ssa = Get-SPEnterpriseSearchServiceApplication "nombre del servicio de search"
    $ssa.SetProperty("ForceClaimACLs",1)
    $ssa.GetProperty(“ForceClaimACLs”)


    Después realiza un full crawl y verifica si el search retorna resultados.

    sábado, 23 de junio de 2012

    Tips/Info #37 Sharepoint 2010

    1-Mostrar el ONET.XML de un sitio de Sharepoint

    Con agregar el siguiente texto /_vti_bin/owssvr.dll?Cmd=GetProjSchema a la url de un site, nos devuelve el archivo ONET.XML.

    image

    2-Soporte multidioma de un site mediante PowerShell

    $spWebSite = Get-spWebSite http://sitio_url
    $spWebSite.IsMultilingual = $true
    $spWebSite.Update()
    #Obtengo la configuracion regional actual usada por el server
    $spRegionaSettings = New-Object Microsoft.SharePoint.SPRegionalSettings $spWebSite
    $spRegionaSettings.InstalledLanguages
    #agrego el lenguaje español (Argentina) debe estar previamente instaldo el language pack
    $spWebSite.AddSupportedUICulture(11274)
    $spWebSite.Update()
    $spWebSite.Dispose()

    3-No aparece la librería “Site Pages” y “Sites Assets”

    Ir a Site Actions -> Site Settings –>Manage Site Features

    Activar la feature Wiki Page Home Page

    4-Error:  The security validation for this page is invalid. Click Back in your Web browser, refresh the page, and try your operation again.

    Agrega a tu código la opción de AllowUnsafeUpdates a true.

    Web.AllowUnsafeUpdates = true;
    item["Title"]=”Sample”;
    item.Update();

    Otra manera es cambiar la opción Web Page Security Validation a Off

    img1

    5-xData.responseXML soporte multiplataforma en una consulta web services o spsservices al finalizar (complete)

    Cambiar la siguiente sentencia:

    $(xData.responseXML).find(“z\\:row”).each(function() {

    por esto

    $(xData.responseXML).find(“z\\:row, row”).each(function() {

    z\\:row‘sólo trabaja de forma correcta en IE, y ‘row‘ trabajará en cada navegador.

    Links útiles #38 Sharepoint 2010

    1-Crear una feature en Sharepoint 2010

    http://salaudeen.blogspot.com.ar/2012/05/how-to-create-feature-in-sharepoint.html

    2-SSL para Sharepoint 2010

    http://www.sharepointboost.com/blog/how-to-configure-ssl-for-a-sharepoint-web-site/

    3-Business Connectivity Services y User Profiles: creando una propiedad de usuario

    https://www.nothingbutsharepoint.com/sites/devwiki/articles/Pages/SharePoint-Extend-Active-Directory-People-Search-Result-by-Using-Business-Connectivity-Service-Part-1.aspx

    4-Instalar Sharepoint 2010 con SQL Server 2012 y Windows Server 2012

    http://mohamedradwan.wordpress.com/2012/06/21/install-sharepoint-2010-with-ms-sql-server-2012-on-windows-server-2012/

    5-Script de powershell para saber el tamaño de las bases de datos de contenido (Storage Report)

    http://salaudeen.blogspot.com.ar/2012/05/sharepoint-content-databases-size.html

    6-Health Analyzer y PowerPivot

    http://whitepages.unlimitedviz.com/2012/06/the-health-analyzer-and-powerpivot-for-sharepoint/

    7-Sharepoint y DNS (+ alternate access mapping, bindings, etc)

    http://min2dmax.wordpress.com/2012/06/15/customize-sharepoint-url-using-aam-and-dns/

    8-Limpiar los valores de una user profiles en Sharepoint 2010

    http://blogs.technet.com/b/meamcs/archive/2012/06/22/cleaning-up-specific-user-profile-properties-in-sharepoint-and-avoid-indexing-them-in-search.aspx

    9-Join de listas en Sharepoint

    http://sprider.org/2012/06/22/how-to-join-two-sharepoint-lists-with-inner-join-functionality/

    http://thechriskent.com/2012/06/19/merging-data-into-a-sharepoint-list-using-ssis/

    10-KeywordQuery y FullTextSqlQuery en Sharepoint (búsqueda mediante programación)

    http://sharepoint-snippets.com/sharepoint-2010-search-programmatically-example/

    viernes, 22 de junio de 2012

    Tips/Info #36 Sharepoint 2010

    1-Usuarios con permisos “Read Only” o “View” no pueden acceder a WebDAV

    Darle permisos de “Browse Directories”

    image_thumb_276EC742

    2-Error:"Invalid Caracter” en el handler ScriptResource.axd?d=

    Hay que deshabilitar la comprensión de scripts en el web.config

    <system.web.extensions>
        <scripting>
            <scriptResourceHandler enableCompression="false" enableCaching="true" />
            ...
        </scripting>
    </system.web.extensions>

    Este cambio hay que hacerlo en cada WFE de la granja. Recuerde hacer un iisreset.

    3-Enviar alertas de una Vista

    image

    4-Forzar la activación de la feature Publishing

    Enable-spfeature Publishing -url http://site_collection/subsite –force

    Disabled-spfeature Publishing -url http://site_collection/subsite –force

    5-La opción “Edit in Datasheet” está oculta

    Ir a Advance Settings de la librería, y marcar la opción: “Allow items in this document library to be edited using the datasheet?”

    Tips/Info #35 Sharepoint 2010

    1-State Service

    El State Service es un servicio compartido que es usado por algunos componentes de Sharepoint para almacenar temporalmente datos a traves de request de http en una base de datos de SQL Server. En SharePoint Server 2010, el State Service es requrido por InfoPath Forms Services, el web part de charts y ciertos escenarios de Microsoft Visio 2010 que no usan Silverlight 3.0

    Para provisionarlo haga lo siguiente, abra el powershell

    $serviceApp = New-SPStateServiceApplication -Name “State Service”
    New-SPStateServiceDatabase -Name “StateServiceDatabase” -ServiceApplication $serviceApp
    New-SPStateServiceApplicationProxy -Name “State Service” -ServiceApplication $serviceApp –DefaultProxyGroup

    2-Algunos reportes OOTB

    .    Reportes de tráfico:
    o   Cuanto tráfico recibe el sitio (Number of Page Views);
    o   Quién visita el sitio (Top Visitors);
    o   Cómo arribaron los visitantes al sitio (Top Referrers);
    o   Visitantes únicos diarios, Top destinos, Top navegadores, etc;

    ·   Reportes de búsqueda:
    o   Cuantas veces los usuarios buscaron (Number of Queries);
    o   Cuales son las búsquedas  más comunes (Top Queries);
    o   Cuales son las consultas que no devuelven resultados(Failed Queries);
    o   Best Bet Usage, Search keywords, etc;

    ·   Reportes de inventario: These reports display key metrics regarding the inventory of your sites:
    o   Cual es el total de espacio de disco usado (Storage Usage);
    o   Cuantos sub-sitios existen (Number of Sites);
    o   Top Site Product Versions, Top Site Languages, etc;

    3-Ocultar el título del Site y el icono con CSS

    Oculto el icono del Título -
    <style>
    .s4-titlelogo {
    VISIBILITY: hidden
    }
    </style>

    Oculto el título (incluso el Breadcrumb)
    .s4-titletext {
    VISIBILITY: hidden
    }
    </style>

    4-Error en Meeting Workspaces: g_instanceId is undefined

    image_thumb[2]

    Este error ocurre sobre master pages derivadas de v4.master

    Hay dos soluciones posibles:

    • Agregar el siguiente código en el master page debajo del tag Microsoft.Sharepoint

      <%@ Import Namespace="Microsoft.SharePoint" %>

      <%@ Register Tagprefix="Meetings"Namespace="Microsoft.SharePoint.Meetings"

      Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>

      Después agrega el control web PropertyBag después del tag body

      <body scroll="no" onload="if (typeof(_spBodyOnLoadWrapper) != 'undefined') _spBodyOnLoadWrapper();" class="v4master">

      <Meetings:PropertyBag ID="PropertyBag1" runat="server"/>

      Guardar, Check-in, aprobar. Recomendación: hacer un recycle del app pool, iis reset.

    • Otra manera es agregar un script de javascript en un web part de html

    <Script language="JavaScript">

    function MtgNavigate(a)
    {
    window.location.href="[url del site]/default.aspx?InstanceID="+a
    }
    </Script>

    Cuando se cliquea en cualquier fecha del Meeting Workspaces, se llamará a MtgNavigate con la fecha seleccionada como parámetro.

    5-Saber si una página esta en modo diseño (Edit mode) en un web part

    protected override void OnPreRender(EventArgs e)
    {
      base.OnPreRender(e);

      bool WebPartEnModoDisenio = this.WebPartManager.DisplayMode == WebPartManager.EditDisplayMode;
      bool PaginaEnModoDiseño = SPContext.Current.FormContext.FormMode == SPControlMode.Edit;

      //tu codigo
    }

    jueves, 21 de junio de 2012

    Links útiles #37 Sharepoint 2010

    1-Habilitar acceso anónimo en Sharepoint 2010

    http://sharepointjourney.wordpress.com/2012/06/14/enable-anonymous-access-in-sharepoint-2010/

    2-Limpiar la cache del job de timer

    http://nickhobbs.wordpress.com/2012/06/14/sharepoint-2010-powershell-to-clear-the-timer-job-cache/

    3-Web Part localización (soporte de idiomas)

    http://lixuan0125.wordpress.com/2012/06/13/web-part-localization/

    4-Describiendo el archivo .webpart

    http://lixuan0125.wordpress.com/2012/06/13/the-webpart-file/

    5-Crear columnas localizadas (soporte multidioma) en Visual Studio 2010 para Sharepoint 2010

    http://www.c-sharpcorner.com/UploadFile/anavijai/how-to-localize-site-columns-in-sharepoint-2010-using-visual/

    6-SPListItemCollection: paginación de listas de forma performante

    http://www.c-sharpcorner.com/UploadFile/40e97e/sharepoint-2010-using-splistitemcollectionposition-for-fas/

    7-Crear timer job en Sharepoint 2010

    http://sharepoint.infoyen.com/2012/06/16/custom-timer-job-in-sharepoint/

    8-Cambiar los colores del calendario

    http://davidlozzi.com/2012/06/20/customize-the-sharepoint-calendar-colors/

    9-Application Page en Sharepoint 2010

    http://www.fewlines4biju.com/2011/05/create-application-page-using-visual.html

    http://www.c-sharpcorner.com/uploadfile/hec.ravi/custom-sandbox-application-page-in-sharepoint2010/

    http://blog.beckybertram.com/Lists/Posts/Post.aspx?ID=71

    10-HTML5 Master page

    http://kyleschaeffer.com/sharepoint/v5-responsive-html5-master-page/

    miércoles, 20 de junio de 2012

    Tips/Info #34 Sharepoint 2010

    1-Tesauros en Sharepoint 2010

    Mediante los archivos de sinónimos (thesaurus), un administrador de búsquedas puede especificar sustituciones o sinónimos de las palabras o frases incluidas en las consultas de búsqueda.

  • Especificación de reemplazos de palabras o frases de una consulta. Un administrador de búsquedas puede designar una o más palabras o frases como sustituciones de palabras o frases concretas que un usuario puede escribir en un cuadro de búsqueda. Por ejemplo, un administrador puede especificar que cada vez que aparezca el término “Longhorn” en una consulta, el sistema de búsqueda lo reemplace por “Windows Vista” o “Vista”. De forma similar, un administrador puede especificar que siempre que aparezcan los términos “NT5” o “W2K” en una consulta, el sistema los reemplace por “Windows 2000”.

    Para especificar sustituciones de palabras o frases, el administrador de búsquedas inserta un conjunto de reemplazo en un archivo de sinónimos. Para obtener más información, vea Uso de conjuntos de reemplazo más adelante en este artículo.

    Especificación de sinónimos de palabras o frases de una consulta. Un administrador de búsquedas puede especificar una o más palabras o frases como sinónimos de una palabra o frase concretas que un usuario puede escribir en un cuadro de búsqueda. Por ejemplo, un administrador puede especificar “IE”, “IE8” e “Internet Explorer” como sinónimos. Cuando uno de estos términos aparece en una consulta, el sistema también busca los demás términos. Por lo tanto, una consulta sobre alguno de estos tres términos ofrecerá resultados que contienen “IE”, “IE8” o “Internet Explorer”.

    El programa de instalación de Microsoft SharePoint Server 2010 incluye un archivo de sinónimos para cada uno de los idiomas admitidos, además de un archivo de sinónimos independiente del idioma denominado tsneu.xml. Este archivo se aplica a todas las consultas durante el procesamiento de consultas, incluso cuando hay un archivo de sinónimos específico para el idioma de la consulta.

    De forma predeterminada, SharePoint Server 2010 instala los archivos de sinónimos de todos los idiomas admitidos en %ProgramFiles%\Microsoft Office Servers\14.0\Data\Office Server\Config.

    Más información: http://technet.microsoft.com/es-ar/library/dd361734.aspx

    2-Algunos beneficios de los BLOBS

    • Base de datos más pequeñas
    • BLOBs no usan la base TEMPDB
    • Puedes elegir el tipo de almacenamiento y ubicación
    • El almacenamiento puede ser más barato
    • Almacenamiento on-site o off-site (cloud)

    3-PowerShell 3.0 y Sharepoint 2010

    PowerShell 3.0 usa el framework 4.5, y SPS2010 usa el 3.5 (es decir el 2.0). Para poder ejecutar script sobre Sharepoint deberás agregar el párametro –version 2.0

    4-Nuevos usuarios de AD no pueden ser resueltos en site collections nuevos, pero si en los viejos

    Get-SPSite "http://SharePoint/sites/collection" | fl > C:\temp.txt
    Si abres el archivo tem.txt, verás las propiedades del site collection. Revisa la propiedad "UserAccountDirectoryPath". Por default, debería estar en blanco, si no es así, puede causar que nuevos usuarios en AD no puedan ser resueltos por el People Picker.

    Para cambiar esta propiedad, ejecuta lo siguiente:

    $Sitio = Get-SPSitio "http://SharePoint/Sitios/collection"
    $Valor=""
    $Sitio.UserAccountDirectoryPath = $Valor

    5-Error al deployar con Visual Studio 2010: "Error occurred in deployment step 'Recycle IIS Application Pool': Provider load failure"

  • Se deberá ejecutar la siguiente sentencia de powershell en el servidor de Sharepoint:

    restart-service TrustedInstaller

    6-Al instalar un KB nos lanza el siguiente error en el Health Analyzer: “Missing Server Dependencies”

    Para solucionarlo, ejecutar PSConfig.exe en todos los servers.

    7-Tipos de web pages en Sharepoint 2010

    Publishing Page: se guardan en las Pages library. Permite control sobre el look and feel, permite un manejo más granular.
    Web Part Page: pueden residir en cualquier libreria y carpeta.
    Wiki page: residen en librerías de site pages.

    8-Saber si una url en Sharepoint tiene demasiados caracteres.

    A veces nos lanza el error siguiente: "Specific file or folder name is too long".

    Una manera rápida de verificar si es correcta la url, es con la siguiente sentencia

    SPUrlUtility.IsLegalFileName(url_a _probar);

    9-Ocultar el selector de vistas en una lista de Sharepoint.

    Agregar un content editor, y escribir lo siguiente en el html del web part:

    <style>
    .ms-listheaderlabel {display: none;}
    .ms-viewselector {display: none;}
    </style>

    10-Relink Formularios de Infopath

    image_thumb1

    image_thumb2

    image_thumb3

    Links útiles #36 Sharepoint 2010

    1-Listas externas con Sharepoint Workspaces

    http://www.c-sharpcorner.com/UploadFile/anavijai/external-lists-in-sharepoint-workspace/

    2-Publicar aplicaciones de servicios a otras granjas (Managed Metadata Service)

    http://www.c-sharpcorner.com/UploadFile/anavijai/how-to-publish-a-service-application-in-sharepoint-2010/

    3-Crear un custom document ID provider

    http://www.c-sharpcorner.com/UploadFile/anavijai/how-to-create-custom-document-id-provider-in-sharepoint-2010/

    http://www.c-sharpcorner.com/UploadFile/anavijai/custom-document-id-provider-web-part-for-sharepoint-2010/

    4-Mostrando gráficos dentro de una vista de lista

    http://blog.johnsworkshop.net/displaying-data-using-bar-graphs-inside-your-sharepoint-list-views/

    http://blogs.msdn.com/b/sharepointdesigner/archive/2008/06/27/css-style-bar-graphs-using-data-views.aspx

    5-Business Data Connectivity Model: agregando un filtro a uno existente

    http://www.c-sharpcorner.com/UploadFile/anavijai/how-to-add-a-comparison-filter-descriptor-to-a-finder-method-in-business-data-connectivity-model/

    6-Instalando Reporting Services en una granja existente de Sharepoint 2010

    http://sharepointgeorge.com/2012/installing-configuring-reporting-services-sharepoint-2010-existing-farm/

    7-Hold and Discovery

    http://www.c-sharpcorner.com/uploadfile/anavijai/holds-and-hold-reports-in-sharepoint-2010/

    http://mysharepointsolution.wordpress.com/2012/06/13/sharepoint-2010-hold-and-ediscovery-feature-part-1/

    http://mysharepointsolution.wordpress.com/2012/06/13/sharepoint-2010-hold-and-ediscovery-feature-part-2/

    http://mysharepointsolution.wordpress.com/2012/06/13/sharepoint-2010-hold-and-ediscovery-feature-part-3/

    8-People Picker en Infopath

    http://blogs.solidq.com/sharepoint/Post.aspx?ID=174&title=Person%2fGroup+Picker+en+InfoPath+2010+%E2%80%93+Parte+1

    9-ISA Server Sharepoint 2010

    http://sharing-the-experience.blogspot.com.ar/2012/02/isa-how-to-redirect-http-to-https-how.html

    10-Configurar el search de Sharepoint 2010

    http://sharepointjourney.wordpress.com/2012/06/13/configure-search-in-sharepoint-2010/

    lunes, 18 de junio de 2012

    Links útiles #35 Sharepoint 2010

    1-Compartir dll entre dos soluciones de Sharepoint 2010 (wsp)

    http://ranaictiu-technicalblog.blogspot.com.ar/2012/06/sharepoint-package-your-external.html

    2-Secure Store Service

    http://sharepointfieldnotes.blogspot.co.uk/2010/12/using-sharepoint-2010-secure-store.html

    3-Aplicación WinForms para editar de items de listas

    http://splistitemeditor.codeplex.com/

    4-SharePoint 2010 CSV Bulk Taxonomy TermSet Importer/Exporter

    http://termsetimporter.codeplex.com/

    5-Excel Services y Bing Maps

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

    6-ECMA Scripts

    http://sharepointfordeveloper.blogspot.com.ar/2012/06/sharepoint-2010-ecma-scripts-code.html

    7-Configuración de Remote Blob Storege (BLOB)

    http://highscalability.wordpress.com/2012/06/18/configuring-remote-blob-storage-on-sharepoint-server-2010/

    8-Qué ofrece Office 365?

    http://www.microsoft.com/en-us/download/details.aspx?id=13602

    9-Automatizar la instalación del filtro de PDF

    http://jmhogua.blogspot.com.ar/2012/06/automatizacion-de-la-instalacion-de-la.html

    10-Wiki pages vs Web part pages

    http://nikspatel.wordpress.com/2012/06/08/wiki-pages-vs-web-part-pages-for-sharepoint-intranet-content-pages/

    sábado, 16 de junio de 2012

    Tips/info #33 Sharepoint 2010

    1-Error: soap:Server was unable to process request. —> Value does not fall within the expected range

    Para resolver este error debes configurar “alternate access mappings” y asegurarte que la url este listada como url pública.

    2-Error: InfoPath Forms Services forms cannot be filled out in a Web browser because no State Service connection is configured

    Hay que crear el State Service Application y asociarlo con el web application deseado

  • Crear un nuevo state service application:
  • New-SPStateServiceApplication -Name “Shared State Service Application”
  • Crear una nueva base de datos para el state service application:
  • New-SPStateServiceDatabase -Name “Sharepoint_Shared_StateService” -ServiceApplication “Shared State Service Application”
  • Crear un nuevo proxy para el state service application y agregarlo en el default application proxy group:
  • New-SPStateServiceApplicationProxy -Name “Shared State Service Application” -ServiceApplication “Shared State Service Application” –DefaultProxyGroup
  • 2-Descargar los wsp del Central Administration

    $farm = Get-SPFarm
    $file = $farm.Solutions.Item("solution.wsp").SolutionFile
    $file.SaveAs("c:\Temp\solution.wsp")

    3-Página en blanco al tratar de ingresar al Central Administration

    Ingresar al administrador del IIS, y seleccionar el web application del central administration, y seleccionar a continuación Authentication.

    Revisar que la autentificación clasic esté habilitada.

    4-Nuevos tipos MIME han sido agregados para modo stricto en el CU de abril 2012

    application/vnd.ms-excel.addin.macroEnabled.12 application/vnd.ms-excel.sheet.binary.macroEnabled.12 application/vnd.ms-excel.sheet.macroEnabled.12
    application/vnd.ms-powerpoint.addin.macroEnabled.12
    application/vnd.ms-powerpoint.slideshow.macroEnabled.12
    application/vnd.openxmlformats-officedocument.presentationml.presentation application/vnd.openxmlformats-officedocument.presentationml.slideshow application/vnd.openxmlformats-officedocument.presentationml.template application/vnd.openxmlformats-officedocument.spreadsheetml.sheet application/vnd.openxmlformats-officedocument.spreadsheetml.template application/vnd.openxmlformats-officedocument.wordprocessingml.document application/vnd.openxmlformats-officedocument.wordprocessingml.template

    5-Error: Microsoft.SharePoint.SPException: This view requires at least Microsoft Internet Explorer 7.0, Mozilla FireFox 3.0, or Apple Safari 3.0.    at Microsoft.SharePoint.WebControls.Gantt.OnLoad(EventArgs e) 

  • Abrir RegEdit en el server de search
  • Ir a  HKLM\SOFTWARE\Microsoft\Office Server\14.0\Search\Global\Gathering Manager
  • Cambiar la key UserAgent
  • Mozilla/4.0 (compatible; MSIE 4.01; Windows NT; MS Search 6.0 Robot)

    a esto

    Mozilla/4.0 (compatible; MSIE 7.0; Windows NT; MS Search 6.0 Robot)

  • Restar los searchs de crawl.
  • 6-Error al ingresar al Central Administration: Service Unavailable  HTTP Error 503

    Verifica que la cuenta que corre el servicio del central administration tenga la opción “Log on as a batch job” habilitada.

    7-Diferencia entre las opciones de crear columnas de sitio y de listas/librerias.

    imageimage

    Más info: http://office.microsoft.com/en-us/sharepoint-server-help/site-column-types-and-options-HA010302196.aspx#_Toc277149832

    8-Agregar un custom action, en la sección “Acciones del sitio” (Site Actions)

    En el archivo Element.xml (la feature agregada previamente)

    <?xml version="1.0" encoding="utf-8"?>
    <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
      <CustomAction Id="MySearchAction"
                    GroupId="SiteActions"
                    Location="Microsoft.SharePoint.StandardMenu"
                    Sequence="1000"
                    Title="Google search">
        <UrlAction Url="http://www.google.com/"/>
      </CustomAction>
    </Elements>

    9-Algunos ejemplos de REST sobre Sharepoint 2010

    Listar todos los objetos del site
    http:/<sp>/_vti_bin/ListData.svc

    Listar todos los items de una lista
    http://<sp>/_vti_bin/ListData.svc/Nombre_de_Lista

    Listar un item específico de una lista
    http://<sp>/_vti_bin/ListData.svc/Nombre_de_Lista(<ID>)

    Listar un campo de un item específico de una lista
    http://<sp>/_vti_bin/ListData.svc/ListName(<ID>)/(<Nombre_campo_interno>)

    Filtrar listas dependiendo de un filtro
    http://<sp>/_vti_bin/ListData.svc/ListName?$filter=<Nombre_campo_interno> <operator> <valor>

    10-Error en una aplicación Silverlight “an unhandled exception” al tratar de usar client object

    Esto ocurre porque silverlight no puede conectarse al endpoint de WCF para usar Client Object Model, esto se debe a que la opción Security validation está en Off.

    • Abir el Central Administration
    • Seleccionar Application Management
    • Seleccionar  Manage Web Applications
    • Seleccionar el Web Application donde el error ocurre
    • En la ribbon, seleccionar General Settings
    • En la sección Web Application General Settings, encontrar Web Page Security Validation y seleccionar On

    Links útiles #34 Sharepoint 2010

    1-Crear un campo custom para Sharepoint con Visual Studio 2010

    http://www.c-sharpcorner.com/uploadfile/Roji.Joy/creating-a-custom-field-type-for-sharepoint-2010-email-validation-field/

    2-PageQueryString y PageFieldValue en el content query web part

    http://sharepointnadeem.blogspot.com.ar/2011/09/cqwp-pagequerystring-and-pagefieldvalue.html

    3-Mover el server de search: detener el componente de query

    http://www.pbnet.ro/?p=158

    4-Reemplazar un web part por otro tipo de web part vía powershell

    http://blog.falchionconsulting.com/index.php/2012/06/replace-sharepoint-2010-web-parts-by-type/

    5-Footer para Sharepoint 2010

    http://erikswenson.blogspot.com.ar/2012/06/fix-long-quick-launch-flowing-over.html

    6-Sharepoint 2010 y Reporting Services 2012 Arquitectura de endpoints

    http://blogs.msdn.com/b/jtarquino/archive/2012/06/13/sql-server-reporting-services-2012-sharepoint-integrated-mode-endpoints-architecture-or-how-our-services-talk-each-other.aspx

    7-Cambiar el resaltado de los resultados de Búsqueda

    http://spforsquirrels.blogspot.com.ar/2012/06/sharepoint-2010-search-change-style-of.html

    8-Workflows: Columnas asociadas y parámetros

    http://blogs.msdn.com/b/sharepointdesigner/archive/2011/07/08/understanding-workflow-starting-parameters-part-1.aspx

    http://blogs.msdn.com/b/sharepointdesigner/archive/2011/05/02/association-columns.aspx

    9-Sharepoint Server 2010 vs Sharepoint 2010 ONLINE (cloud)

    http://www.catapultsystems.com/CatapultEventCalendarInvites/SPUG%20Presentations/SharePoint%20Server%20vs%20SharePoint%20Online%20-%20Final.pdf

    10-Mostrar un gráfico (charts web parts) con Excel Services

    http://www.dotnetcurry.com/ShowArticle.aspx?ID=816

    Tips/info #32 Sharepoint 2010

    1-Exportar soluciones de Sharepoint 2010

    $nombreDir = "C:/Temp"
    Write-Host Exporto soluciones a $nombreDir 
    foreach ($solution in Get-SPSolution) 

        $id = $Solution.SolutionID 
        $titulo = $Solution.Name 
        $filename = $Solution.SolutionFile.Name
        Write-Host "Exportando ‘$titulo’ to …\$filename" -nonewline 
        try { 
            $solution.SolutionFile.SaveAs("$nombreDir\$filename") 
            Write-Host " – hecho" -foreground green 
        } 
        catch 
        { 
            Write-Host " – error : $_" -foreground red 
        } 
    }

    2-Mostrar el historial de workflows sólo para administradores

    Abrir la página WrkStat.aspx desde la carpeta 14->template->layouts y agregar el siguiente control en la línea 128
    <Sharepoint:SPSecurityTrimmedControl runat="server" Permissions="ManageLists"> y cierra el tag en la línea 239. El permiso está seteado en el campo “Permissions”.

    3-Error Missing Web Part

    WebPart class [GUID] is referenced [X] times in the database [WSS_Content], but is not installed on the current farm. Please install any feature/solution which contains this web part. Remedy: One or more web parts are referenced in the database [WSS_Content], but are not installed on the current farm. Please install any feature or solution which contains these webparts.

    -- Obtengo el site que tiene el web part

    select s.fullurl, d.DirName, d.leafname, tp_ZoneID, tp_partOrder
    from webparts p
    join alldocs d on (p.tp_PageUrlID = d.ID)
    join sites s on (s.id = p.tp_siteid)
    where tp_WebPartTypeId  = ‘GUID’

    Una vez que obtengo el site donde está referenciado el web part, ingreso a la página y le agrego “?contents=1”, es decir entro a la página de mantenimiento, la cual me permite borrar el web part faltante.

    4-Error The super user account utilized by the cache is not configured. This can increase the number of cache misses, which causes the page requests to consume unneccesary system resources.

    La caché de objetos almacena propiedades de los elementos en Microsoft SharePoint Server 2010. La característica de publicación usa los elementos de esta memoria caché para representar páginas web. Los objetivos de la caché de objetos son reducir la carga en el equipo en el que se ejecuta SQL Server y mejorar el rendimiento y latencia de la solicitud. La caché de objetos realiza consultas como una de dos cuentas de usuario integradas: la cuenta de usuario súper del portal y la cuenta de lector súper del portal. Estas cuentas de usuario deben configurarse correctamente para garantizar que la caché de objetos funcione correctamente. La cuenta de usuario súper del portal debe ser una cuenta que tenga acceso de control total a la aplicación web. La cuenta de lector súper del portal debe ser una cuenta que tenga acceso completo de lectura a la aplicación web.

    La cuenta de usuario súper del portal y la cuenta de lector súper del portal deben ser cuentas independientes que no se vayan a usar nunca para iniciar sesión en el sitio.

    De forma predeterminada, la cuenta de usuario súper del portal es la cuenta de sistema del sitio y la cuenta de lector súper del portal es NT Authority\Servicio local.

    Hay dos problemas principales con el uso de las cuentas integradas.

    1. El primer problema es que algunos elementos se desprotegen para la cuenta del sistema, por lo que cuando se realice una consulta que incluya estos elementos, se devolverá la versión desprotegida del elemento en lugar de la última versión publicada. Esto es un problema debido a que no es lo que un usuario espera que se devuelva, por lo que la memoria caché debe realizar una segunda consulta para recuperar la versión correcta del archivo. Esto tiene un efecto negativo en el rendimiento del servidor en cada solicitud que incluya estos elementos. Se produciría el mismo problema con cualquier usuario que tenga elementos desprotegidos, si la cuenta de dicho usuario se configuró como la cuenta de usuario súper del portal. Por esta razón, las cuentas configuradas como cuenta de usuario súper del portal y cuenta de lector súper del portal no deben ser cuentas que se usan para iniciar sesión en el sitio. Esto garantiza que el usuario no desproteja de forma accidental elementos y ocasiones problemas en el rendimiento.

    2. La cuenta de lector súper del portal predeterminada es NT Authority\Servicio local, que no se resuelve correctamente en una aplicación de la autenticación de notificaciones. Por lo tanto, si la cuenta de lector súper del portal no está configurada explícitamente para una aplicación de autenticación de notificaciones, al buscar las colecciones de sitios en esta aplicación se obtendrá un error de acceso denegado, incluso para el administrador del sitio.

    Para autentificación clasic:

    $wa = Get-SPWebApplication -Identity "<WebApplication>"
    $wa.Properties["portalsuperuseraccount"] = "<SuperUser>"
    $wa.Properties["portalsuperreaderaccount"] = "<SuperReader>"
    $wa.Update()
    Para autentificación vía claims:
    $w = Get-SPWebApplication "http://<server>/"
    $w.Properties["portalsuperuseraccount"] = "i:0#.w|domain\superuser"
    $w.Properties["portalsuperreaderaccount"] = "i:0#.w|domain\superreader"
    $w.Update()
    5-Mostrar los sitios padres en el breadcrumb
    Reemplazar en tu master page default este control
    <SharePoint:SPLinkButton runat="server" NavigateUrl="~site/" id="onetidProjectPropertyTitle"><SharePoint:ProjectProperty Property="Title" runat="server" /></SharePoint:SPLinkButton>
    por
    <asp:SiteMapPath      
    runat="server"      
    SiteMapProviders="SPSiteMapProvider,SPXmlContentMapProvider"      
    RenderCurrentNodeAsLink="false"      
    NodeStyle-CssClass="breadcrumbNode"      
    CurrentNodeStyle-CssClass="breadcrumbCurrentNode"      
    RootNodeStyle-CssClass="breadcrumbRootNode"      
    HideInteriorRootNodes="true"      SkipLinkText=""/>

    Links útiles #33 Sharepoint 2010

    1-Calculando la edad con jquery en Sharepoint 2010

    http://mssharepointworld.wordpress.com/2012/06/08/calculate-age-in-sharepoint-using-jquery/

    2-Soporte multidioma de Sharepoint 2010

    http://blogs.solidq.com/sharepoint/Post.aspx?ID=163&title=Multi-idioma+en+SharePoint+2010

    3-Ejemplo de full trust proxy (Registrar eventos desde una sandbox solution en el log de Sharepoint)

    http://gesellan.wordpress.com/2012/05/30/sharepoint-2010-logging-one-size-fits-all/

    4-Extensión de Visual Studio 2010 para CAML

    http://visualstudiogallery.msdn.microsoft.com/15055544-fda0-42db-a603-6dc32ed26fde

    5-Activación de features/quick launch/agregar listas

    https://www.nothingbutsharepoint.com/sites/devwiki/articles/Pages/SharePoint-2010-Site-Templating-Using-Only-C-Part-1-Feature-Activation-Quick-Launch-Links-and-Tricky-List-Templates.aspx

    6-Integrar autentificación de windows y forms, página custom de sign in

    https://www.nothingbutsharepoint.com/sites/devwiki/articles/Pages/SharePoint-Custom-Sign-In-and-Sign-Out-page-.aspx

    7-WCF Services y Jquery (CKSDev)

    http://blogs.microsoft.co.il/blogs/choroshin/archive/2012/06/15/sharepoint-2010-long-polling-using-jquery-and-wcf-rest-services-example.aspx

    8-Sharepoint 2010 y Access

    http://www.gavd.net/servers/sharepointv4/spsv4_item.aspx?top=0&itm=1485

    9-Links hacia la página de status de workflows en los mails

    http://blog.incworx.com/blog/sharepoint-administrators-blog/email-link-to-workflow-history-in-a-sharepoint-designer-2010-workflow

    10-Top ten características de SQL 2012 para Sharepoint 2010

    http://www.sharepointjoel.com/Lists/Posts/Post.aspx?List=0cd1a63d-183c-4fc2-8320-ba5369008acb&ID=481

    viernes, 15 de junio de 2012

    Tips/info #31 Sharepoint 2010

    1-Saber el lenguaje global y los packs de idiomas instalados mediante programación

    SPLanguage globalLanguage = SPRegionalSettings.GlobalServerLanguage; //con esta sentencia se determina el idioma en el cual fue instalado Sharepoint

    SPLanguageCollection languagePacks = SPRegionalSettings.GlobalInstalledLanguages; //Obtiene la colección de paquetes de idiomas que están instalados en el servidor.

    Para más informacíón: http://msdn.microsoft.com/en-us/library/ms461103

    2-SPWeb.AllProperties vs SPWeb.Properties

    SPWeb.Properties es un diccionario de string (StringDictionary), y no soportar and doesn’t support casing for keys/values (everything gets converted to lowercase)

    3-Incrementar el límite de tamaño al guardar una lista o site como template

    stsadm -o setproperty -propertyname max-template-document-size -propertyvalue 50000000

    4-Save as template: que se guarda y que no en el wsp


    Lo siguiente se incluye en los templates (wsp):


    Lists
    Libraries
    External Lists
    Data source connections
    List views and data views
    Custom forms
    Workflows
    Content Types
    Custom Actions
    Navigation
    Site pages
    Master pages
    Modules
    WebTemplates


    Lo siguiente NO se guarda en los templates (wsp)


    Customized permissions
    Running workflow instances
    List item version history
    Workflow tasks associated with running workflows
    People/group field values
    Taxonomy field values
    Publishing pages and publishing sites
    My Sites


    5-Errores en el deploy de soluciones Sharepoint con Visual Studio 2010


    Error occurred in deployment step 'Recycle IIS Application Pool': The local SharePoint server is not available. Check that the server is running and connected to the SharePoint farm.


    o


    Error occurred in deployment step 'Recycle IIS Application Pool': Cannot connect to the SharePoint site: <ApplicationURL>. Make sure that this is a valid URL and the SharePoint site is running on the local computer. If you moved this project to a new computer or if the URL of the SharePoint site has changed since you created the project, update the Site URL property of the project.


    o

    Error occurred in deployment step 'Recycle IIS Application Pool': <nativehr>0x80070005</nativehr><nativestack></nativestack>Access denied.
    Soluciones:


    • Add-SPShellAdmin -UserName domain\username: esa sentencia dará permisos sobre la base de configuración de Sharepoint.

    • Obtener el ID de la content database donde se deployará "Get-SPContentDatabase -WebApplication <Application URL>"

    • "Add-SPShellAdmin -UserName domain\username -database <Database Id del comando previo>": agregará permisos sobre la base de  contenidos

    • Agregar en la web application deseada al usuario que está ejecutando el visual studio con full control mediante User Policy(/_admin/WebApplicationList.aspx)

    Recuerde reiniciar Visual Studio 2010.


    6-Error: An unexpected error has occurred


    A veces el detalle del error no se muestra de forma correcta, para ello deberemos hacer lo siguiente:



    • Ir a la carpeta donde está el web application del site que quiere depurar (posiblemente c:\inetpub\wwwroot\wss\VirtualDirectories\...)

    • Editar el web.config en la siguiente linea


    <SafeMode MaxControls=“200“ CallStack=“false“ DirectFileDependencies=“10“TotalFileDependencies=“50“ AllowPageLevelTrace=“false“>



    y has los siguientes cambios



    <SafeMode MaxControls=“200“ CallStack=“true“ DirectFileDependencies=“10“TotalFileDependencies=“50“ AllowPageLevelTrace=“true“>



    • Y por último editar la siguiente línea


    <customErrors mode=“On“ />



    a



    <customErrors mode=“Off“ />

    miércoles, 13 de junio de 2012

    Tips/info #30 Sharepoint 2010

    1-BeforeProperties/AfterProperties en Event Receiver

    Para Listas/Libreria:

    List BeforeProperties AfterProperties properties.ListItem
    ItemAdding No Value No Value Null
    ItemAdded No Value No Value New Value
    ItemUpdating Original Value Changed Value Original Value
    ItemUpdated Original Value Changed Value Changed Value
    ItemDeleting No Value No Value Original Value
    ItemDeleted No Value No Value Null

    2-Puerto de SQL Server

    Por default el puerto que usa SQL Server 2008 R2 es el TCP 1433, se puede cambiar por cuestiones de seguridad: http://highscalability.wordpress.com/2012/06/11/make-your-sharepoint-farm-more-secure-changing-the-default-sql-server-port/

    3-Denegar el acceso al directorio virtual /_vti_bin/

    Ir al directorio

    C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\isapi\

    y editar el web.config que se encuentra en al carpeta.

    En la sección de configuration, agregar lo siguiente:

    <!-- Deshabilitar acceso anonimo al directorio _vti_bin -->
    <location path="_vti_bin">
        <system.web>                 
            <authorization>
                <deny users="?" />
            </authorization>
        </system.web>
    </location>

    4-Al abrir una librería en modo explorar nos lanza el siguiente error:

    “Some/SharePoint/Folder is not accessible.  You might not have permission to use this network resource. Contact that administrator of this server to find out if you have access permissions”

    El valor por defecto que se permite para WebDAV en Windows XP es hasta 1 MB de datos, por lo que una llamada al servidor de más de 1 MB provoca que la información sea truncada y corrompida. Ej: 20000 items ~ 20 MB de información

    1. Ejecutar: regedit,
    2. Ir a la siguiente clave de registro HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\
    3. Agregar una nueva clave DWORD
    4. Escribe FileAttributesLimitInBytes para el nombre de la DWORD
    5. Click derecho sobre FileAttributesLimitInBytes, y  modificala. 
    6. En el campo Value, tipea el valor que deseas usar. Ej, si el Web folder contiene 20,000 files, tipea 20000000 en el campo value.
      El servicio WebClient no pregunta por propiedades específicas WebDAV. El Microsoft Office integrated Webfolders redirector pregunta por las propiedades específicas de WebDAV.
    7. Salir de regedit
    8. Detener y reinicar el servicio de WebClient.Pasos:
      1. Inicio, click Run, escribe cmd.
      2. Tipea los siguientes comandos:
        • net stop webclient
        • net start webclient

    5-Error al cargar un formulario de infopath

    Activation could not be completed because the InfoPath Forms Services support feature is not present. / There has been error while loading the form

    Hay que deshabilitar y habilitar la feature oculta con el nombre “IPFSSiteFeatures”
    Disable-SPFeature "IPFSSiteFeatures" -URL http://site collection URL

    Enable-SPFeature "IPFSSiteFeatures" -URL http://site collection URL

    6-Error al editar un master page: The security validation for this page is invalid.

    La primer solución es revertir la master page a la default.

    7-Los módulos de Sharepoint son firmados con una clave de Strong Name, porque supuestamente son deployados en la GAC.

    Recuerde esto al deployar una solución de Sharepoint que contenga módulos.

    8-Error al borrar un sandboxed solution: "Unable to access web scoped feature Id: GUID because it references a non-existent or broken web..."

    Esto se debe a que una instancia de la sandboxed puede ser que se haya borrado y haya quedado en la papelera de reciclaje del Site collection.

    Site Actions > Site Settings > Recycle Bin

    Borrar el elemento correspondiente a la sandboxed, y probar de nuevo.

    9-Autentificación via formularios (forms) y Client Object

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Net;
    using Microsoft.SharePoint.Client;

    namespace ConsoleApplicationSharepoint
    {
    class Program
    {
    static void Main(string[] args)
    {
    try
    {
    using (var contexto = new Clientcontexto(“http://sharepointsitecollection:port))
    {
    contexto.AuthenticationMode = ClientAuthenticationMode.FormsAuthentication;
    FormsAuthenticationLoginInfo formularioAuthInfo = new FormsAuthenticationLoginInfo(“user”, “pass");
    contexto.FormsAuthenticationLoginInfo = formularioAuthInfo;


    var sitio = contexto.Site;
    contexto.Load(sitio);
    contexto.ExecuteQuery();
    Console.WriteLine(sitio.Url);
    }
    }
    catch (Exception ex)
    {

    }
    }
    }
    }




    10-Función “PreSaveAction” de javascript en Sharepoint


    Puede utilizar la función PreSaveAction para ejecutar cualquier código JavaScript en los forms de NewForm.aspx o EditForm.aspx.antes de guardar el elemento.


    "PreSaveAction" es la función de JavaScript que permite a programadores escribir código en esta función que se ejecutará antes de grabar el item. Los programadores pueden utilizar esta función en NewForm.aspx o EditForm.aspx.


    SharePoint utiliza la validación de JavaScript cuando se envía un formulario. El siguiente código aparece al hacer clic con el botón "Guardar":
    if (! PreSaveItem ()) si return false;

    Sintaxis

    PreSaveAction()

    {

    return false; // Cancela el proceso de guardado del ítem

    return true; // OK para el proceso de guardado del ítem

    }