sábado, 31 de marzo de 2012

Links útiles #13–Sharepoint 2010

1-Implementar un web part consumidor

http://www.matchpointcommunity.com/blog/Posts/45/how-to-implement-a-consumer--producer-webpart

2-Soportar IE6 en MySite

http://blog.libinuko.com/2012/03/25/sharepoint-2010-how-to-support-ie6-0-to-access-mysite/

3-Upgrade o migración desde MOSS 2007 a SPS 2010

Hay dos maneras de hacer el upgrade:

  • Inplace upgrade
  • database attach y upgrade

http://blogs.msdn.com/b/sharepoint__cloud/archive/2012/03/25/important-points-on-upgrade-to-sharepoint-2010.aspx

4-Crear un web part con tips diarios

http://sharepointhero.wordpress.com/2012/03/10/adding-a-simple-tip-of-the-day-web-part-22-2/

5-Configurar FBA (autentificación basada en forms) con Sharepoint 2010

http://blogs.technet.com/b/pfelatam/archive/2012/03/21/como-configurar-fba-forms-based-authentication-en-sharepoint-server-2010-utilizando-iis-7-y-asp-net-membership-database-sql-como-en-moss-2007.aspx

6-Configurar Kerberos con Sharepoint 2010

http://www.microsoft.com/download/en/details.aspx?id=23176

https://www.nothingbutsharepoint.com/sites/itpro/Pages/How-To-Configure-Kerberos-Authentication-for-SharePoint-2010.aspx

http://www.thesharepointblog.net/Lists/Posts/Post.aspx?List=815f255a-d0ef-4258-be2a-28487dc9975c&ID=43

http://blogs.msdn.com/b/echarran/archive/2010/02/11/howto-configure-sharepoint-2010-for-kerberos.aspx

http://blogs.msdn.com/b/russmax/archive/2009/10/20/configuring-kerberos-authentication-in-sharepoint-2010-part-1.aspx

7-Alertas custom en Sharepoint 2010

http://www.codeproject.com/Articles/351400/SharePoint-2010-Custom-Alert-Me-for-Discussion-Boa

8- Restore de una base de contenidos de un backup de Sharepoint

http://blog.bugrapostaci.com/2012/03/26/sharepoint-2010-manuel-content-database-restore-from-sharepoint-backup-folder/

9-Logging de eventos en Sharepoint 2010 (timer jobs, item event receivers, desde código custom)

http://www.thesharepointblog.net/Lists/Posts/Post.aspx?List=815f255a-d0ef-4258-be2a-28487dc9975c&ID=106

10- Lista para vacaciones y time card

http://www.sharepoint911.com/blogs/laura/Lists/Posts/Post.aspx?ID=105

11-Agregar link o info en el header de Sharepoint 2010 (mediante javascript/css, controles delegados, custom action)

https://www.nothingbutsharepoint.com/sites/devwiki/articles/Pages/Global-Link-in-SharePoint-Sites-Using-Configuration-Files.aspx

12-Filtrar datos con html form web part

http://office.microsoft.com/en-us/sharepoint-server-help/use-the-html-form-web-part-to-filter-and-display-data-in-another-web-part-HA101791813.aspx

http://www.learningsharepoint.com/2011/08/07/using-html-form-web-part-to-filterwith-examples-sharepoint-2010/

13-Ocultar templates de site en Sharepoint 2010

http://hermansberghem.blogspot.com.ar/2011/03/hiding-site-templates.html?utm_source=BP_recent

domingo, 25 de marzo de 2012

Aplicaciones de servicios que requieren add-in o instaladores

Aplicaciones de Servicios

Descripción

Add-in/Instalador

Word Viewing Service

Permite a los usuarios ver o editar documentos word dentro del navegador.

Office Web Apps

PowerPoint Service

Permite a los usuarios ver o editar documentos powerpoint dentro del navegador.

Office Web Apps

Excel Calculation Services

Permite a los usuarios ver o editar documentos excel dentro del navegador.

Office Web Apps

Project Application Service and Project Server Service Application

Microsoft Project Server 2010 permite tener varias instancias de acceso web, exponer planificaciones sobre datos de  Microsoft Project, y exponer servicios webs para interactuar con datos de Microsoft Project 2010.

Microsoft Project Server 2010

http://technet.microsoft.com/en-us/library/ee662109.aspx

Microsoft SQL Server Power Pivot for Microsoft SharePoint

Microsoft SQL Server PowerPivot da la posibilidad de analizar gran cantidad de datos.

SQL Server 2008 R2

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

Microsoft SQL Server Reporting Services (SSRS)

Integra Microsoft SQL Server Reporting Services con SharePoint Foundation 2010 o SharePoint Server 2010 configurando un servidor de reportes para ejcutarse en modo integrado con SharePoint.

SQL Server 2008 R2 Reporting Services Add-in for SharePoint Products

http://msdn.microsoft.com/en-us/library/bb283190(SQL.105).aspx

Ver archivos html en el navegador sobre Sharepoint 2010

Si haces click sobre un archivo .html en una document library, Sharepoint te mostrará el cartel de “Guardar”. Esto evita ver los archivos html en el navegador.

Para resolver esto, se debe hacer lo siguiente:

  • Abrir SharePoint Central Administration
  • Click sobre Application Management
  • En la sección Web Applications, click sobre Manage web applications
  • Seleccionar el web application deseado
  • En la ribbon elegir Web Application
  • Abrir el menú de General Settings y hacer click sobre General Settings

GeneralSettingsUITab

  • Ir hasta la sección Browser File Handling y cambiar la opción a Permisive

BrowserFileHandling

sábado, 24 de marzo de 2012

Incrementar el tamaño de subida de archivos Sharepoint 2010

Los valores por default de subida de archivos son:

Sharepoint 2010: 50 MB

IIS 7 ~ 30 MB

1  -  Incrementar el tamaño via el central administration

    • Ingresar al Central Administration
    • Ir a la sección “Manage Web Applications”
    • Seleccionar el web application deseado
    • Seleccionar “General Settings” en la ribbon
    • En la sección “Maximum Upload Size”, cambio el valor al deseado

image_thumb1

2 – Incrementar el tamaño del request del IIS 7

    • Abro una línea de comandos
    • Ejecuto lo siguiente: %windir%\system32\inetsrv\appcmd set config -section:requestFiltering -requestLimits.maxAllowedContentLength:valorEnBytes

      200 MB –>200x1024x1024=209715200 bytes

      Entonces valorEnBytes sería 209715200

3 – Incrementar el tiempo de timeout de la conexión IIS7

Si se sube archivos grandes, puede ser que nos lance un error de timeout, el valor default es de 120 segundos.

  • Abro el IIS
  • Selecciono el web application
  • Voy a Advanced Settings
  • Expando “Connection Limits”
  • Seteo el valor deseado en “Connection Time-out (seconds)”

image

image_thumb3

Seteo el valor a 1200 segundos.

4 – Incremento el valor de executionTimeOut

Ingreso a 'C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS' (el path depende de donde lo hayas instalado)

Abro el 'web.config' (previo backup), y edito la sección donde está el path “upload.aspx”

<location path="upload.aspx">
    <system.web>
      <httpRuntime executionTimeout="999999" maxRequestLength="2097151" />
    </system.web>
</location>

También edito el web.config en el path C\Inetpub\wwwroot\wss\Virtual Directories\<Virtual Directory>, la sección httpRuntime

<httpRuntime executionTimeout="999999" maxRequestLength="2097151" />

También edito el web.config del siguiente path: C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\CONFIG

<httpRuntime executionTimeout="999999" maxRequestLength="2097151" />

Opcional – Aumentar el tamaño de la propiedad large-file-chunk-size

También es recomendable aumentar el tamaño de la propiedad large–file–chunk–size. El valor dependerá del tamaño máximo de subida que quieras subir. Recomendación: arranca con 50MB y sigue probando hasta que sea el adecuado, recuerda que los archivos se almacenarán en el WFE hasta que son envíados. Ej: archivo de 150 MB, se dividirá en 3 chunks de 50 MB al bajar el documento.

stsadm.exe –o setproperty –pn large–file–chunk–size –pv 52428800

Conversión de documentos

Sharepoint 2010 provee 4 servicios de conversión

  • InfoPah Form a Web Page (xml into html)
  • Word Document a Web Page (docx into html)
  • Word document con Macros a Web Page (docm into html)
  • XML a Web Page (xml into html)
Hay dos servicios de windows
  • Document Conversions Launcher Service
  • Document Conversions Load Balancer Services
Por default estos servicios no está habilitado
  1. Habilitar los 2 servicios (Central Administration > Manage Services on Server).
  2. Configurar cada servicio (Central Administration > Manage Services on Server).
    Launcher Service: Set Load Balancer server and port number 8082.
    Load Balancer Service: scheme (http or https) and port number 8093.
  3. Habilitar “Enable document conversions” para cada web application (Central Administration > General Application Settings > Configure document conversions)
    Enable for webapp, Load Balancer server, block conversion interval.
  4. Habilitar conversión de documentos para los content types a nivel de site collection(Site Settings > Content Types under Galleries > Select a content type > Manage document conversion for this content type) .

CD1

CD2

CAML Queries

Query Syntax:

1. Joins lógicos:

a.        And: Ej. <And><expression1><expression2></And>

b.      OR: Ej.<OR><expression1><expression2></OR>

2. Operador de comparación

a.       BeginsWith:  busca por un string al inicio de una columna.

<BeginsWith><FieldRef Name = “ColumnName”/><Value Type = “Value”/><XML /></BeginsWith>

b.      Contains: busca por un string en cualquier parte de una columna.

<Contains><FieldRef Name = “ColumnName”/><Value Type = “Value”/><XML /></Contains>

c.       Neq: Operador aritmético que significa “no igual a”

<Neq>  <FieldRef Name = “Field_Name”/>  <Value Type = “Field_Type”/>  <XML /> </Neq>

d.      Eq: Operador aritmético que significa “igual a”

<Eq> <FieldRef Name = “Field_Name”/>  <Value Type = “Field_Type”/>  <XML /></Eq>

e.      In: Especifica un item de lista especificado por el campo FieldRef es igual a un conjunto de valores

<In><FieldRef Name = “Field_Name”/><Values><Value Type = “Field_Type”/></Values><XML /></In>

f.        Gt: Operador aritmético que significa “más grande que”

<Gt><FieldRef Name = “Field_Name”/><Value Type = “Field_Type”/><XML /></Gt>

g.       IsNotNull: Retorna ítems que no tienen valores nulos

<IsNotNull><FieldRef Name = “Field_Name”/><Value Type = “Field_Type”/><XML /></IsNotNull>

h.      IsNull: Retorna ítems que tienen valores nulos o vacíos

<IsNull><FieldRef Name = “Field_Name”/><Value Type = “Field_Type”/><XML /></IsNull>

i.         Includes:Si el campo especificado es un campo de lookup que permite varios valores, se especifica que elemento de valor está incluido en el elemento de la lista para el campo especificado por el elemento FieldRef.

<Includes><FieldRef    Name = “Field_Name”/><Value    Type = “Field_Type”/><XML /></Includes>

j.        Lt : Operador aritmético que significa “más chico que”

<Lt><FieldRef Name = “Field_Name”/><Value Type = “Field_Type”/><XML /></Lt>

k.       NotIncludes: Si el campo especificado es un campo de lookup que permite varios valores, se especifica que elemento de valor está EXCLUIDO en el elemento de la lista para el campo especificado por el elemento FieldRef.

<NotIncludes><FieldRef    Name = “Field_Name”/><Value    Type = “Field_Type”/><XML /></NotIncludes>

3. Group Operators

a.       GroupBy: permite agrupar la info devuelta

<GroupBy  Collapse = “TRUE” | “FALSE”><FieldRef Name = “Field_Name”/></GroupBy>

b. OrderBy: determina el orden de la consulta  

<OrderBy  Override = “TRUE” | “FALSE”  UseIndexForOrderBy = “TRUE” | “FALSE”>

<FieldRef     Ascending = “TRUE” | “FALSE”    Name = “Text” />

</OrderBy>

4. Value Elements

a. Month: Se utiliza en el elemento DateRangesOverlap para recuperara partir de un calendario de todas las instancias de un evento recurrente que se producen dentro de un mes.

<DateRangesOverlap>  <FieldRef Name= “EventDate” />  <FieldRef Name= “EndDate” />  <FieldRef Name= “RecurrenceID” />  <Value Type=\”DateTime\”>    <Month />  </Value></DateRangesOverlap>

b. Now: Devuelve la fecha y hora actuales.

<Now></Now>

c. Today: Presenta la fecha actual en el formato que sea relativa a la zona del servidor, hora local. Para los servidores en los Estados Unidos, el formato es DD / MM / AAAA (por ejemplo,01/21/2001).

<Today  Offset = “Integer”></Today>

d. UserId: Contiene el número único de identificación del usuario autenticado actualmente de un sitio, tal como se define en la tabla UserInfo de la base de datos de contenido.

<UserID></UserID>

Tips #9–Sharepoint 2010

1-Error “Cannot connect to the configuration database” (No puede conectarse a la base de datos de configuración)

Verificar si el servicio MSSQLSERVER en el servidor de SQL SERVER esta iniciado.

2-Calcular el tamaño de las bases de datos de administración de search, de crawl y de property.

La base de datos de administración de search requiere aproximadamente 10GB. Las restantes, use la siguiente fórmula:

  • Crawl: 0.046 × (suma del tamaño de las bases de contenido)
  • Property: 0.015 × (suma del tamaño de las bases de contenido)
  • 3-Verificar las managed property actuales del servicio de search

    Get-SPEnterpriseSearchMetadataManagedProperty -SearchApplication "Search Service Application" | where {$_.Retrievable -eq $false}

    4-Poner como sólo lectura una base de contenido

    - Abrir Microsoft SQL Server Management Studio y conectarse al servidor SQL de SharePoint
    - Elija la base de contenidos deseada
    - Seleccione "Propiedades" mediante el botón derecho sobre la base
    - En la pantalla de Propiedades seleccione Opciones
    - En la sección de "Otras opciones" - Estado - "Base de datos de solo lectura" seleccione "True" y acepte los cambios

    5-Valor nulo al usar property bag element

       1:  <?xml version="1.0" encoding="utf-8"?>
       2:  <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
       3:       <PropertyBag ParentType="Web">
       4:                 <Property Name="letras en minuscula" Type="string" Value="valor" />
       5:       </PropertyBag>
       6:  </Elements>
    6-Sincronizar información del usuario desde el AD 

     Set-SPUser -Identity sharepoint\usuario -Web http://spssite –SyncFromAD
    7-Deshabilitar el borrado de una lista


    PS > $spWeb = Get-SPWeb http://sharepointsite.com
    PS > $spList = $spWeb.Lists["Tareas"]
    PS > $spList.AllowDeletion = $false
    PS > $spList.Update()
    PS > $spWeb.Dispose()

    8-Remover una base de contenidos via PowerShell

    Get-SPContentDatabase -Identity "ContentDBaBorrar" | Remove-SPContentDatabase   Confirm
    9-Obtener la url de los adjuntos de un objeto SPListItem


       1:  private string[] GetAttachmentUrls(SPListItem item)
       2:  {
       3:    return from string fileName in repeaterItem.Attachments
       4:           orderby fileName
       5:           select SPUrlUtility.CombineUrl(item.Attachments.UrlPrefix, fileName);
       6:  }





    10-Abrir un popup con contenido aspx



       1:  var options = SP.UI.$create_DialogOptions();options.width = 900;
       2:  options.height = 400;
       3:  options.resizable = 1;
       4:  options.scroll = 1;
       5:  options.url = '{SiteUrl}/_layouts/ApplicationPage.aspx';
       6:  SP.UI.ModalDialog.showModalDialog(options);



    11-Saber que librerías tiene habilitada la opción de recibir emails.



       1:  SELECT
       2:       Webs.FullUrl As LibraryURL,
       3:       AllLists.tp_Title As LibraryTitle,
       4:       AllLists.tp_EmailAlias As emailAlias
       5:  FROM
       6:       AllLists
       7:  INNER JOIN
       8:       webs on AllLists.tp_WebID = Webs.Id
       9:  WHERE
      10:      AllLists.tp_EmailAlias IS NOT NULL

    Links útiles #12 – Sharepoint 2010

    1-Search multilenguaje Sharepoint 2010

    http://blogs.msdn.com/b/opal/archive/2010/06/28/multilingual-search-in-sharepoint-server-2010-and-fast-search-server-2010.aspx

    2-Crear un slider de contenido con Sharepoint y Jquery

    https://www.nothingbutsharepoint.com/sites/eusp/pages/creating-your-own-content-slider-for-sharepoint.aspx

    3-Alias de SQL Server 2008 R2 con Sharepoint 2010

    http://www.sharepointassist.com/2010/02/02/configure-a-sql-server-alias-for-sharepoint-sql-server-2008/

    4-Filtrar una lista de Sharepoint con jquery y un combo

    http://request4it.wordpress.com/2012/03/13/filter-a-sharepoint-list-with-jquery/

    5-Puertos necesarios para un farm de Sharepoint 2010

    http://geeks.ms/blogs/ciin/archive/2012/03/21/sharepoint-2010-puertos-necesarios-para-un-despliegue-en-modo-granja.aspx

    6-Script para habilitar todas las features de IIS para usar Sharepoint 2010

    http://otak-otak-it.blogspot.com.ar/2012/03/automatic-iis-configuration-script-for.html

    7-Eligiendo la tecnología de reportes correcta

    http://devinknightsql.wordpress.com/2012/03/01/choosing-the-right-microsoft-reporting-technology-part-1-report-services/

    http://devinknightsql.wordpress.com/2012/03/06/choosing-the-right-microsoft-reporting-technology-part-2-excel/

    http://devinknightsql.wordpress.com/2012/03/15/choosing-the-right-microsoft-reporting-technology-part-3-powerpivot/

    http://devinknightsql.wordpress.com/2012/03/21/choosing-the-right-microsoft-reporting-technology-part-4-performancepoint/

    8-Reglas: Analizador/mantenimiento de base de datos de Sharepoint 2010

    http://www.mssqltips.com/sqlservertip/2648/sharepoint-2010-databases-maintenance-health-analyzer-rules/

    9-Configurando el Panel de refinamiento Sharepoint 2010

    http://geeks.ms/blogs/marchena/archive/2012/03/22/configuraci-243-n-del-panel-de-refinamiento-en-los-resultados-de-b-250-squeda.aspx

    10-Configurar el servicio de user profile

    http://www.anhero.org/how-to-configuration-the-user-profile-service-in-sharepoint-2010/

    11- Extendiendo la parte social de Sharepoint

    http://www.sharepointnutsandbolts.com/2012/03/extending-sharepoint-2010-social.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+ChrisObrien+%28Chris+O%27Brien+%5BMVP+SharePoint%5D%29

    12-Crear una columna autoincremental con formato definido

    http://dlairman.wordpress.com/2011/01/10/add-a-unique-auto-incrementing-column-to-a-sharepoint-list/

    13-Desarrollando un BCS de Sharepoint 2010 con Visual Studio 2010

    http://www.sharepointbriefing.com/spcode/develop-a-business-data-connectivity-model-for-sps-2010-using-vs-2010.html

    14-Almacenar datos de configuración para los jobs

    http://blogs.microsoft.co.il/blogs/itaysk/archive/2012/03/23/storing-configuration-settings-for-timer-jobs.aspx

    15-Acceder a Sharepoint 2010 vía tecnologías de cliente.

    http://platinumdogs.wordpress.com/2012/03/20/sharepoint-displaying-list-data-with-client-side-technology-spservices-jquery-jsrender/

    16-Cómo saber a que proceso atachar el debbuger en Visual Studio 2010 y Sharepoint 2010

    http://ybbest.wordpress.com/2012/03/22/how-to-find-which-w3wp-exe-to-attach-when-debugging-your-sharepiont2010-project/

    17-Servicios disponibles en las dos versiones de Sharepoint 2010 (Standart & Enterprise)

    http://www.etechplanet.com/blog/service-applications-available-out-of-the-box-with-sharepoint-2010-products.aspx

    18-Importar las managed property y crawled property

    http://gallery.technet.microsoft.com/Import-Search-CrawledManage-1fa3d94b

    19-Optimizando la performance de reporting services

    http://sqlcat.com/sqlcat/b/technicalnotes/archive/2009/01/14/reporting-services-performance-optimizations.aspx

    20-Mejores prácticas para backups & restore de Sharepoint 2010

    http://smallcitydesign.com/sharepoint-2010-backup-and-recovery-best-practices/

    sábado, 17 de marzo de 2012

    Link útiles #11–Sharepoint 2010

    1- Buscar contenido externo usando BCS

    http://blogs.msdn.com/b/ericwhite/archive/2010/04/28/searching-external-data-in-sharepoint-2010-using-business-connectivity-services.aspx

    2-Configurar Form Based Authentication y SQL Membership Provider

    http://jasear.wordpress.com/2012/03/16/sharepoint-2010-setting-up-form-based-authentication-fba-using-asp-net-sql-membership-provider/

    3-Usando CONTAINS con FULLTETSQLQUERY

    http://platinumdogs.wordpress.com/2012/03/12/sharepoint-using-the-contains-predicate-with-fulltextsqlquery/

    4-Crear columnas o fields de listas de manera programática (Single line of text, multiline text, boolean, number, choice, user field, date time field, lookup field, modificar una vista)

    http://aleemsheikh.wordpress.com/2012/03/16/creating-list-fields-programmatically-in-sharepoint-2010-2/

    5-Redireccionar un formulario infopath después de hacer el submit

    http://www.tcscblog.com/2011/06/29/redirect-an-infopath-form-web-part-after-submit/

    6-Filtrar un combo en infopath, dependiendo del valor de otro valor seleccionado

    http://dataqueen.unlimitedviz.com/2012/03/dynamically-filter-a-drop-down-on-your-sharepoint-list-by-another-user-selected-value/

    7-Usar una conexión de base de datos en infopath

    http://dataqueen.unlimitedviz.com/2012/03/use-a-sql-server-data-source-for-an-infopath-pick-list/

    8-Configurar el servicio de Search en Sharepoint 2010

    http://mosshosting.asphostportal.com/?p=1989

    9-Configurar el Servicio de User Profile

    http://mosshosting.asphostportal.com/?p=2029

    10-Permitir SSL en Sharepoint 2010

    http://mosshosting.asphostportal.com/?p=2029

    Evitar el prompt (pedido) de acceso de manera continua en Sharepoint 2010

    image_thumb

    1 - Agregar el sitio de Sharepoint  a la zona trusted security (Tools –> Internet Options –>Security->Local Intranet->Sites). Se recomienda que se ingrese de la siguiente manera: *.domainsharepoint.com

    2 – Usar el store de Windows Credential Store, registrar sus credenciales en este store

    3 - Si al descargar documentos, le lanza la pantalla de acceso y tiene windows vista o 7, baje el siguiente KB: http://support.microsoft.com/?id=943280

    Tip: si la vista del explorador de Sharepoint anda lenta, desmarcá la opción “Automatically detect settings” en la configuración de la LAN (Tools/Internet Options)

    Tips #8–Sharepoint 2010

    1-El menú Site actions no aparece!!!

    Agregar la url del site como trusted site

    Ejecutar el IE como administrador.

    2-Script para mostrat todos los administradores de site collection

       1:  $sitioRoot = New-Object Microsoft.SharePoint.SPSite($sitioUrl)
       2:  $spWebApp = $sitioRoot.WebApplication
       3:   
       4:  foreach($site in $spWebApp.Sites)
       5:  {
       6:      foreach($siteAdmin in $site.RootWeb.SiteAdministrators)
       7:      {
       8:          Write-Host "$($siteAdmin.ParentWeb.Url) - $($siteAdmin.DisplayName)"
       9:      }
      10:      $site.Dispose()
      11:  }
      12:  $sitioRoot.Dispose()



    3-Recorrer todos los site collections y subsitios



       1:  function RecorrerSite() {
       2:      param([Microsoft.SharePoint.SPWeb]$SiteIdentity)
       3:   
       4:      Write-Output "Sitio: $($SiteIdentity.Url)"
       5:      
       6:      if($SiteIdentity.Webs.Count -gt 0)
       7:      {
       8:          foreach($subSitio in $SiteIdentity.Webs)
       9:          {
      10:              RecorrerSite -SiteIdentity $subSitio
      11:          }
      12:      }
      13:  }
      14:   
      15:  $servicioWebApplication = (Get-SPFarm).services |
      16:   ? {$_.typename -eq "Microsoft SharePoint Foundation Web Application"}
      17:   
      18:  foreach($webApp in $servicioWebApplication.WebApplications)
      19:  {
      20:      Write-Output "Web Application: $($webApp.name)"
      21:      foreach($siteColl in $webApp.Sites)
      22:      {
      23:          Write-Output "Colleccion de sitio: $($siteColl.Url)"
      24:          RecorrerSite -SiteIdentity $($siteColl.RootWeb)
      25:      }
      26:  } 



    4-Clase ContentIterator para procesar una lista de gran tamaño



    SharePoint Server proporciona un API,ContentIterator, para ayudar con el acceso a más de 5.000 elementos en una lista larga y no chocar con el throttling de la lista (SPQueryThrottleException). ContentIterator permite segmentar la consulta para el procesamiento de manera única. Considere el uso de esta capacidad si es necesario para procesar un gran número de elementos que pueden exceder el throttling de una lista.


     


       1:  static int exceptions = 0;
       2:  static int items = 0;
       3:   
       4:  protected void OnTestContentIterator(object sender, EventArgs args)
       5:  {
       6:      items = 0;
       7:      exceptions = 0;
       8:      string query1 = @"<View>
       9:          <Query>
      10:              <Where>
      11:                  <And>
      12:                      <BeginsWith>
      13:                          <FieldRef Name='SKU' />
      14:                          <Value Type='Text'>S</Value>
      15:                      </BeginsWith>
      16:                  </And>
      17:              </Where>
      18:          </Query>
      19:      </View>";
      20:   
      21:      ContentIterator iterator = new ContentIterator();
      22:      SPQuery listQuery = new SPQuery();
      23:      listQuery.Query = query1;
      24:      SPList list = SPContext.Current.Web.Lists["Parts"];
      25:      iterator.ProcessListItems(list,
      26:          listQuery,
      27:          ProcessItem,
      28:          ProcessError
      29:      );
      30:  }
      31:   
      32:  public    bool ProcessError(SPListItem item, Exception e) 
      33:  { 
      34:      // process the error
      35:      exceptions++; 
      36:      return true; 
      37:  }
      38:  public void ProcessItem(SPListItem item)
      39:  {
      40:      items++;
      41:      //process the item.
      42:  }



    5-Constantes de los estados de workflows




    • Status: Value
    • Not Started: 0
    • Failed on Start: 1
    • In Progress: 2
    • Error Occurred: 3
    • Canceled: 4
    • Completed: 5
    • Failed on Start(Retrying): 6
    • Error Occurred (Retrying): 7
    • Canceled: 15
    • Approved: 16
    • Rejected: 17

    6-The SharePoint Health Analyzer detected a condition requiring your attention. Drivers are at risk of running out of free space



    Para evitar este error, deberás tener 5 veces más de RAM que espacio libre en el server.



    7-Falta “Destination Folder” cuando se sube un documento



    Se debe activar la feature Metadata Navigation and Filtering


    8-Durante el backup de un site se pone el site cómo sólo lectura, en el caso que haya una interrupción (ej:reiniciar el server), se dejará como sólo lectura. Para ello será necesario ejecutar lo siguiente:



    Set-SPSite -Identity http://mysite -LockState "Unlock"


    9-Cambiar la opción del indicador “New” en los documentos recientemente subidos


    El default para que aparezca el valor “Nuevo” es de dos días.
    Verificar la configuración actual:


    stsadm.exe -o getproperty -pn days-to-show-new-icon -url http://misitio


    Cambiar a 4 días


    stsadm.exe -o setproperty -pn days-to-show-new-icon -pv 4 -url http://misitio
    Si lo seteo a 0 (cero), directamente no aparece.


    10-Enviar un mail con powershell



       1:   function enviarMail{
       2:   
       3:       Write-Host "Enviando Email"
       4:   
       5:       #nombre del servidor SMTP
       6:       $smtpServer = "smtp.xxxx.com"
       7:   
       8:       #Creando un objeto mail
       9:       $msg = new-object Net.Mail.MailMessage
      10:   
      11:       #Creando un objeto SMTP server
      12:       $smtp = new-object Net.Mail.SmtpClient($smtpServer)
      13:   
      14:       #Email formato
      15:       $msg.From = "fromID@mail.com"
      16:       $msg.ReplyTo = "replyto@mail.com"
      17:       $msg.To.Add("toID@mail.com")
      18:       $msg.subject = "Mi asunto"
      19:       $msg.body = "Es es el cuerpo del mail."
      20:   
      21:       #Enviando el mail
      22:       $smtp.Send($msg)
      23:    
      24:  }
      25:   
      26:  #Llamo a la funcion
      27:  enviarMail

    Comparación entre la arquitectura Sharepoint 2007 / 2010

    2007-arc

    2010arc

    viernes, 16 de marzo de 2012

    Tips #7–Sharepoint 2010

    1-Cómo puedo saber cuanto pesa mi site

  • Mediante StorMan.aspx: Site Actions > Site Settings > Site Collection Administration > Storage Metrics
  • Mediante Sharepoint Designer

                   2012-03-13-StorageSpace-02

  • Mediante Web Analytics: Site Actions > Site Settings > Site Actions > Site Collection Web Analytics reports, después click sobre Storage Usage y elegir un rango de fecha que sea desde el inicio.
  • Mediante Powershell

                     $site = Get-SPSite http://misitio

                               $site.Usage.Storage;

                               $site.Dispose();

  • 2-Si necesitás hacer slideshows, usa una “Picture Library”, en caso contrario, cualquier otro tipo de contenido multimedia, usa una “Asset Library” (soporta metadata navegación, podcasting via rss, menues standarts, soporte para imagenes/videos/audios, tiene thumbnail, preview de imágenes.)
     
    3-Deployar imágenes a la carpeta “LAYOUTS”:

    Usar Mapped Folders en Visual Studio 2010. Click derecho sobre el proyecto y seleccionar  “Add > SharePoint "Images" Mapped Folder”. Cuando deployes, automaticamente copiará las imágenes de esa carpeta a _layouts. Más info

    4-Realizar copia de seguridad mientras el web application se está ejecutando

       1:  SPSite siteCol = SPContext.Current.Site;
       2:  SPContentDatabase cDB = siteCol.ContentDatabase;
       3:  SPDatabaseSnapshot snap = cDB.Snapshots.CreateSnapshot();
       4:  SPContentDatabase unDB = SPContentDatabase.CreateUnattachedContentDatabase(snap.ConnectionString);
       5:  unDB.Sites.Backup(siteCol.ServerRelativeUrl.Trim('/'), "\\Server\Backups\MySite.bak", true);




    5-Algunas cosas de search



    Especificar una keyword.Sólo una palabra clave.


    results.aspx?k=sharepoint%20search


    Especificar un scope de search. Puede tener varios scopes separados con %2c.
    results.aspx?s=SDKContent
    results.aspx?s=SDKContent%2cTechnicalArticles


    Especificar el ordenamiento de los resultados:


    -relevance
    -date
    results.aspx?v=date
    results.aspx?v=relevance


    Especificar la propiedad a filtrar. Ej:Buscar la propiedad Companies=Microsoft
    results.aspx?k=sharepoint&a=companies:microsoft



    Especificar la url donde los resultados aparecen


    results.aspx?k=sharepoint&u=http://www.contoso.com


    Algunas cosas más a considerar


    Incluir cualquier de los términos: ANY(term1 term2)


    Incluir todos los términos: ALL(term3 term4)


    Incluir ninguno de estos términos: NONE(term5 term6)


    Incluir un sólo scope: (scope:”scope1”)


    Incluir múltiples scopes: (scope:”scope1” OR scope:“scope2”)


    Incluir un término de refinamiento: r=refinementname=”refinementvalue”


    Incluir varios términos de refinamiento: r=refinementname1=”refinementvalue1” refinementname2=”refinementvalue2”


    Ej URL: results.aspx?k=ANY(term1)NONE(term5)(scope:”scope1”)&r=refinementname=”refinementvalue”


    Algunos caracteres codificados:








































































    CharacterEncoded Value
    $%24
    &%26
    :%3A
    ;%3B
    =%3D
    ?%3F
    @%40
    %22
    <%3C
    >%3E
    %%25
    (%28
    )%29
    {%7B
    }%7D
    |%7C
    \%5C
    ~%7E
    [%91
    ]%93
    #%23
    +%2B

     


    6-Donde está Microsoft.Sharepoint.dll



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


    7-Donde están Microsoft.SharePoint.Client.Silverlight.dll, Microsoft.SharePoint.Client.Silverlight.Runtime.dll



    C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\ClientBin


    8-Instalar los servicios de SharePoint Web front-end en el servidor de reporting services, ya que si no es un miembro de la granja, lanzará errores.



    Más info: http://technet.microsoft.com/en-us/library/cc281311.aspx



    http://technet.microsoft.com/en-us/library/bb326356.aspx


    9-Si tus workflows no se publican con Sharepoint Designer, es porque entra en juego la cache de activities que mantiene el Sharepoint Designer


    Ingresa a \AppData\Local\Microsoft\WebsiteCache y borra la cache


    10-Referenciar hojas de estilo



    Agregarlas a la libreria Style Library/mycss.css, y después agregar en el master page actual lo siguiente.



    <SharePoint:CssRegistration name="<% $SPURL:~sitecollection/Style Library/mycss.css %>" After="corev4.css" runat="server"/>"



    La línea de arriba va entre las etiquetas <head></head> debajo de <SharePoint:SPHelpPageComponent Visible="false" runat="server" />

    jueves, 15 de marzo de 2012

    Link útiles #10 Sharepoint 2010

    1-Consideraciones de capacidad al diseñar una farm

    http://blogs.msdn.com/b/mohamed_el_ashmawi/archive/2012/03/12/sharepoint-2010-capacity-management-farm-design-considerations.aspx

    2-Documento que describe las características y los pasos para migrar a FAST SEARCH

    http://technet.microsoft.com/en-us/library/bb735129.aspx

    3-Diseño de listas de gran tamaño y maximización del rendimiento de listas

    http://technet.microsoft.com/es-ar/library/cc262813(v=office.14).aspx

    4-Implementando un Secure Store Provider

    http://pholpar.wordpress.com/2012/03/13/implementing-a-simple-secure-store-provider/

    5-Microsoft Script Explorer for Windows PowerShell Beta 1

    http://blogs.technet.com/b/heyscriptingguy/archive/2012/03/14/microsoft-script-explorer-for-windows-powershell-beta-1-now-available.aspx

    6-Habilitar accesos cross dominios en Infopath forms services

    http://www.thesharepointblog.net/Lists/Posts/Post.aspx?List=815f255a-d0ef-4258-be2a-28487dc9975c&ID=108

    7-Mapeo de Powershell y Stsadm

    http://www.dhirendrayadav.com/2012/02/stsadm-to-windows-powershell-mapping.html

    8- Instalar un certificados de seguridad

    http://blog.brainlitter.com/2012/03/13/sharepoint-2010-and-cert-trust-could-not-establish-trust-relationship-for-the-ssltls-secure-channel/

    9-Facebook Kit for SharePoint

    http://fks.codeplex.com/

    10-Sharepoint Skype status field

    http://skypestatusfield.codeplex.com/

    11-Configurar Sharepoint y Exchange

    http://www.anhero.org/how-to-configuration-incoming-email-in-sharepoint-2010-with-exchange-step-by-step-guide/

    miércoles, 14 de marzo de 2012

    Tips #6–Sharepoint 2010

    1-Filtros (querystring) Sharepoint 2010

    Filtrar una o más columnas

    • intranet/sites/christianTareas/Lists/Tasks/AllItems.aspx?FilterField1=Title&FilterValue1=In Progress

    En la consulta anterior, informo el campo a filtrar (FilterField1) y el valor a filtrar sobre ese campo (FilterValue1).

    • FilterField1=AssignedTo&FilterValue1=Christian&FilterField2=Status&FilterValue2=Not Started

    Es posible agregar varios campos a filtrar, cómo en la consulta anterior.

    FilterNameX debe estar en la vista actual a filtrar, en caso contrario no se filtrará. FilterNameX es case sensitive y debe ser el nombre interno.

    FilterValueX no es case sensitive y no soporta wild cards.

    Filtrar una columna con múltiples valores

    ?FilterName=Status&FilterMultiValue=In Progress;Completed

    FilterMultiValue permite el uso de wild cards.

    ?FilterName=Title&FilterMultiValue=*meeting*

    El siguiente ejemplo encontrará todas las tareas de christian con “reunion” en el título

    FilterField1=AssignedTo&FilterValue1=christian&FilterName=Title&FilterMultiValue=*reunion*

    FilterName debe esta en la vista actual, es case sensitive, y debe usarse el nombre interno.

    FilterMultiValue no es case sensitive y soporta wild cards. Cada término se separa con ; .Ojo con los espacios.

    Ordenar

    ?SortField=Title&SortDir=Desc

    2-Cómo encuentro el nombre interno de un campo

    1. Ir a la lista
    2. Ir a “Settings Library”
    3. Ingreso a editar el campo deseado
    4. Reviso la url, y obtengo el valor del query string “Field”image

    intranet/sites/training/_layouts/FldEdit.aspx?List=%7B64C528B3%2D224B%2D4613%2D9D60%2D216300B5BCE0%7D&Field=PercentComplete

    3-Algunas tablas de Sharepoint 2010

    Features: tabla que contiene información sobre todas las características activadas para cada colección de sitios o en el sitio.

    Sites: Tabla que contiene información acerca de todas lascolecciones de sitios para esta base de datos de contenido.

    Webs: Tabla que contiene información acerca de todos los sitios específicos (redes) en cada colección de sitios.

    UserInfo: Tabla que contiene información acerca de todos los usuarios para cada colección de sitios.

    Groups: Tabla que contiene información acerca de todos los grupos de SharePoint en cada colección de sitios.

    Roles Tabla que contiene información acerca de todos los roles de SharePoint (los niveles de permisos) para cada sitio.

    AllLists: Tabla que contiene información acerca de las listas para cada sitio.

    GroupMembership: Tabla que contiene información acerca de todos los miembros de grupo de SharePoint.

    AllUserData: Tabla que contiene información sobre todos los elementos de la lista para cada lista.
    AllDocs: Tabla que contiene información sobre todos los documentos(y todos los elementos de la lista) para cada biblioteca de documentos y la lista.
    RoleAssignment Tabla que contiene información acerca de todos los usuarioso grupos de SharePoint que se asignan a roles.

    SchedSubscriptions: Tabla que contiene información acerca de todas lassuscripciones programadas (alertas) para cada usuario.

    ImmedSubscriptions Tabla que contiene información acerca de todas lassuscripciones inmediatos (alertas) para cada usuario.

    4-Averiguar el tamaño de un sitio

       1:  static void StorageQuery_2()
       2:      {
       3:          long espacio = 0;
       4:          using (SPSite spsSitio=new SPSite("http://sharepoint/site/"))
       5:          {
       6:              using (SPWeb spwSitio=spsSitio.OpenWeb())
       7:              {
       8:                  foreach (SPFolder spfFolder in spwSitio.Folders)
       9:                  {                    
      10:                     foreach (SPFile spfFile in spfFolder.Files)
      11:                     {
      12:                         espacio +=  spfFile.Length);
      13:                     }                   
      14:                 }
      15:             }                
      16:         }
      17:     }



    5-Sabías que Sharepoint automáticamente agrega un flag a los perfiles usuarios, cuando el usuario no ha ingresado por un largo período de tiempo, es decir permanece como inactivo. Esto puede ocasionar problemas con “people picker” ya que el perfil no está actualizado. Una manera de solucionarlo, es asignarle permisos a una lista, y después removerlos. Esto ocasiona que el flag se cambie a activo y por lo tanto el job actualice el perfil. Otra solución es actualizar el perfil vía código (http://ghamson.wordpress.com/2010/11/04/updating-user-profile-properties-via-powershell-pictureurlsharepoint-2010-in-sp2010/)


    6-Tips para solucionar problemas de performance.



    http://social.technet.microsoft.com/wiki/contents/articles/7926.sharepoint-2010-tips-for-dealing-with-performance-issues.aspx?wa=wsignin1.0


    7-Automáticamente asignar un theme a un sitio recién creado.




      • Crear un proyecto que incluya un event receiver
      • El mismo será de tipo “A site was provisioned”
      • Doble click sobre la feature y cambiar el scope a “Site”
      • Editar el archivo element.xml, el atributo “Receivers” y “Synchronization”

          <?xml version=”1.0″ encoding=”utf-8″?>
          <Elements xmlns=”http://schemas.microsoft.com/sharepoint/”>
          <Receivers Scope=”Site”>
          <Receiver>
          <Name>EventReceiver1WebProvisioned</Name>
          <Type>WebProvisioned</Type>
          <Assembly>$SharePoint.Project.AssemblyFullName$</Assembly>
          <Class>EventReceiverProject2.EventReceiver1.EventReceiver1</Class>
          <SequenceNumber>10000</SequenceNumber>
          <Synchronization>Synchronous</Synchronization>
          </Receiver>
          </Receivers>
          </Elements>


           1:  ///Definimos el código que cambiará el theme
           2:   
           3:  using System;
           4:  using System.Security.Permissions;
           5:  using Microsoft.SharePoint;
           6:  using Microsoft.SharePoint.Security;
           7:  using Microsoft.SharePoint.Utilities;
           8:  using Microsoft.SharePoint.Workflow;
           9:   
          10:  namespace EventReceiverSiteTheme.EventReceiver1
          11:  {
          12:      public class EventReceiver1 : SPWebEventReceiver
          13:      {
          14:   
          15:          public override void WebProvisioned(SPWebEventProperties properties)
          16:          {
          17:              try
          18:              {
          19:                  base.WebProvisioned(properties);
          20:                  SPWeb web = properties.Web;
          21:                  web.Navigation.UseShared = true;
          22:                  string ThemeURL = “[Your Site URL]/_catalogs/theme/Mission.thmx”;
          23:                  ThmxTheme.SetThemeUrlForWeb(web, ThemeURL);
          24:                  web.Update();
          25:              }
          26:              catch (Exception ex)
          27:              {
          28:                  throw;
          29:              }
          30:          }
          31:      }
          32:  }






          8-Workflows Actions



          Un archivo de acciones de workflows(.actions) es un archivo XML que describe cómo Sharepoint Designer interactua con las actividades del workflow.


          Workflow actions fson deployados en la carpeta TEMPLATE\[Locale ID]\Workflow en el root de Sharepoint (ej, TEMPLATE\1033\Workflow). La mejor manera de deplotar estos archivos, es desde el Visual Studio 2010 agregando un folder mapeado.


          Con los archivos .actions definidos, la próxima configuración es agregar una entrada authorizedType al web.config.



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


          http://www.chaholl.com/archive/2010/03/13/make-a-custom-activity-available-to-sharepoint-designer-2010.aspx


          9-Borrar una lista con powershell



          List settings no muerta la opción “Delete this list” o el botón del ribbon.  Usando SharePoint Designer al tratar de borrar nos dice “Unable to save changes. This list cannot be deleted”.  Se puede utilizar Powershell para borrarla


             1:  $Web = Get-SPWeb http://misite
             2:  $List = $Web.Lists["Lista_A_Borrar"]
             3:  $List.AllowDeletion = $TRUE
             4:  $List.Update()
             5:  $List.Delete()
             6:  $Web.Dispose()



          10-Modificar el quick launch



          Es posible modificar el control del quick launch

          <SharePoint:AspMenu id="V4QuickLaunchMenu" runat="server" 
          EnableViewState="false" DataSourceId="QuickLaunchSiteMap"
          UseSimpleRendering="true" UseSeparateCss="false" Orientation="Vertical"
          StaticDisplayLevels="1" MaximumDynamicDisplayLevels="1"
          SkipLinkText="" CssClass="s4-ql" />

          Por default, el atributo StaticDisplayLevels es seteado a 2, es decir tiene 2 niveles de menú. Si lo cambio a 1, sólo el título se verá.

          El valor default del atributo MaximumDynamicDisplayLevels es 0. Esto deshabilita los menues flyout.

          Ej: el siguiente menú se cambio MaximumDynamicDisplayLevels= 3 y StaticDisplayLevels =3

          20120314-105157

          Más info: http://msdn.microsoft.com/en-us/library/ms466994.aspx

          http://panvega.wordpress.com/2008/04/18/customize-the-sharepoint-navigation-aspmenu/

          http://aanuwizard.wordpress.com/2012/03/13/sharepoint-2010-part-1-customizing-quick-launch-to-pick-up-sub-menu-items/