sábado, 17 de marzo de 2012

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/


          lunes, 12 de marzo de 2012

          Administrando políticas de borrado en el crawl de Search de SharePoint Server 2010

          SharePoint Server 2010 usa cuatro directivas que controlan la eliminación accidental de contenido, cuando el componente de rastreo (rastreador) encuentra errores intermitentes durante un rastreo. Estas directivas se controlan mediante propiedades de la aplicación de servicio de búsqueda y determinan el número de veces y por cuánto tiempo se reintentará un elemento en rastreos consecutivos.

          A continuación se describen las cuatro directivas y los valores predeterminados de las propiedades (en negrita).

          Directiva de eliminación para acceso denegado o archivo no encontrado

          Cuando el rastreador (crawler) encuentra un error de acceso denegado o archivo no encontrado, se elimina el elemento de índice del índice de búsqueda de componentes de consulta, si se ha encontrado el error en más de ErrorDeleteCountAllowed rastreos consecutivos Y la duración desde el primer error es superior a ErrorDeleteIntervalAllowed horas. Si NO se cumplen ambas condiciones, se reintenta el elemento de índice.

          El valor predeterminado de ErrorDeleteCountAllowed es 30 y el de ErrorDeleteIntervalAllowed es 720 horas (30 días).

          domingo, 11 de marzo de 2012

          Links útiles #9–Sharepoint 2010

          1-Alertas- Mensaje de “Contactando al servidor para información” para usuarios externos al dominio de Sharepoint.

          http://community.bamboosolutions.com/blogs/bambooteamblog/archive/2012/03/09/sharepoint-alerts-contacting-the-server-for-information.aspx

          2-BCS con SQL Server, agregar auditoria a SQL Server (Created By, Modified By)

          http://blog.allegient.com/blog/csi-code-crib/auditing-with-sharepoint-2010-business-connectivity-services-bcs

          3-El Servicio de Security Token no esta disponible

          http://sharepointknowledgebase.blogspot.com/2012/03/security-token-service-is-not-available.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+AmolGhugesSharepointBlogmvpSharepoint+%28Amol+Ghuge%27s+SharePoint+Blog+%5BMVP+SharePoint%5D%29

          4-Servicios Web de Sharepoint 2010

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

          http://ybbest.wordpress.com/2012/03/10/how-to-create-item-in-sharepoint2010-document-library-using-sharepoint-web-service/

          5-Infopath: obtener el usuario actual sin código

          http://moss-net4u.blogspot.com/2012/02/infopath-get-current-user-without.html

          6-Verificar si un usuario tiene permisos sobre un objeto

          http://platinumdogs.wordpress.com/2012/03/08/sharepoint-checking-arbitrary-user-permissions-and-why-splistitem-doesuserhavepermissions-is-a-big-fat-dirty-liar/

          7-SharePoint Diagnostic Studio 2010 – Reportes preconfigurados

          http://www.jeremytaylor.net/2012/03/06/sharepoint-diagnostic-studio-2010/

          8-Crear un health rule

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

          9-Script de PowerShell para encontrar todos los site collections donde hay una feature habilitada

          http://geekswithblogs.net/steveclements/archive/2012/03/09/powershell-script-to-find-where-in-a-site-collection-a.aspx?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+SteveClements+%28Steve+Clements%29

          10-El detrás de escena al abrir un documento de una document library

          http://blogs.msdn.com/b/russmax/archive/2012/03/10/behind-the-scenes-opening-a-document-from-a-sharepoint-2010-document-library.aspx

          Limitar partes de página o formatear el dataview basado en los permisos del usuario

          En el web part Data View o Data Form puedes mostrar contenido condicional basado en los permisos del usuario actual gracias a la función ddwrt:IfHasRights() . Es decir mostrar ciertas partes de páginas

          <xsl:if test="ddwrt:IfHasRights(mascara de permisos)">
          contenido
          </xsl:if>

          <xsl:if test=”ddwrt:IfHasRights(4)”>Only Editors can see this text!</xsl:if>

          De esta manera podremos ocultar lo que deseamos, ej: un campo de una lista.

          080307_2245_SharePointD1

          La lista de permisos (máscara) se puede encontrar en el archivo: CAML2XSL.XSL


          sábado, 10 de marzo de 2012

          Links útiles #8–Sharepoint 2010

          1- Cargar archivos a Sharepoint 2010 con la fecha "Modified" que se desea

          http://code4admins.blogspot.com/2011/01/cargar-archivos-en-sharepoint-con-la.html

          2- Manejar perfiles vía programación

          http://burcakcakiroglu.com/?p=2774

          3-February 2012 Cumulative Update for the SharePoint 2010

          http://blogs.technet.com/b/stefan_gossner/archive/2012/03/07/february-2011-cu-for-sharepoint-2010-has-been-released.aspx

          Office Web Apps CU is avail here: support.microsoft.com/.../KBHotfix.aspx

          4-Controles delegados

          Personalizar uno existente: http://geeks.ms/blogs/ciin/archive/2011/10/22/sharepoint-2010-controles-delegados-i.aspx

          Crear uno nuevo>http://geeks.ms/blogs/ciin/archive/2012/03/08/sharepoint-2010-controles-delegados-ii.aspx

          5-Todo sobre alertas Sharepoint 2010

          http://blogs.technet.com/b/steve_chen/archive/2009/11/20/alerts-in-sharepoint-troubleshooting-moss-wss.aspx#Database Tables

          6-Evento de WebProvisioned en SharePoint 2010

          http://www.anhero.org/to-use-webprovisioned-event-in-sharepoint-2010/

          7-SharePoint 2010 CSS Reference Chart

          http://sharepointexperience.com/csschart/csschart.html

          8-Subir un form template (infopath) a Infopath form services

          http://geeks.ms/blogs/marchena/archive/2012/03/08/publicando-infopath-web-forms-con-c-243-digo.aspx

          Mover un sitio dentro del mismo site collection

          Podremos hacer esta tarea mediante el backup & restore del sitio, tanto con powershell, central administration o stsadm

          En este post explicaré algunos métodos alternativos:

          Hay una feature llamada "reparent" que permite mover un sitio de Sharepoint dentro del mismo site collection sin ninguna operación de backup o restore.

          Creamos un proyecto de Visual Studio y agregamos la referencia de Microsoft.SharePoint.dll

          string oldUrl = "http://servername/SitioAMover/";
          string newUrl = "sitepadre/SitioMovido";
          using (SPSite site = new SPSite(oldUrl))
          using (SPWeb web = site.OpenWeb())
          {
            web.ServerRelativeUrl = newUrl;
            web.Update();
          }

          Hemos movido el sitio http://servername/SitioAMover a la dirección "http://servername/sitepadre/SitioMovido".
          Simplemente modificando el valor de ServerRelativeUrl de un objeto SPWeb movemos un sitio de Sharepoint, junto a su contenido y todos los permisos, dentro del mismo site collection. El sitio “sitepadre” debe existir previamente.


          Podemos activar la feature de reparent mediante stsadm.

          stsadm -o renameweb -url http://servername/SitioAMover -newname sitepadre

          Otra posibilidad es usar la herramienta SharePoint Manager 2010 (http://spm.codeplex.com/)


          Cosas a considerar:



          Tips #5–Sharepoint 2010

          1-Obtener el ID de una lista

          • Ir a la lista SharePoint usando el navegador
          • Seleccionar Settings + List Settings
          • Copiar la url del navegador

          http://sitecollection/proyecto/_layouts/listedit.aspx?List=%7B26534EF9%2DAB3A%2D46E0%2DAE56%2DEFF168BE562F%7D

          • cambiar todo los “%7B” a “{” 
          • cambiar todo los “%2D” a “-“
          • cambiar todo los“%7D” a “}”

          Se obtiene el ID = {26534EF9-AB3A-46E0-AE56-EFF168BE562F}"

          2-Ciclo de vida de webparts

          1. protected override void OnInit(EventArgs e)
          2. protected override void OnLoad(EventArgs e)
          3. protected override void CreateChildControls()
          4. protected override void LoadViewState(object savedState) //sólo en postback
          5. protected override void OnPreRender(EventArgs e)
          6. protected override void Render(System.Web.UI.HtmlTextWriter writer)
          7. protected override void OnUnload(EventArgs e)
          8. public override void Dispose()

          3-Cambiar la cookie de la session en una autentificación basada en claims, una cookie es escrita al disco para la almacenar el claims, lo cual previene de autentificarte siempre al abrir un browser nuevo o un descargar un archivo

          $sts = Get-SPSecurityTokenServiceConfig
          $sts.UseSessionCookies = $true
          $sts.Update()
          iisreset

          Más info: http://blog.sharepointsite.co.uk/2012/03/office-document-in-sp2010-wont-open.html

          4-Listar todos los documentos y folders de una librería vía CMD

          Tienes el siguiente sitio: http://documents/Products/Forms/AllItems.aspx

          La dirección UNC en el windows explorer es:

          \\documents\products

          Abro un cmd:

          DIR /d /s (nombre del path UNC) > (nombre del archivo que quieres exportar con la info)

          Ejemplo:

          DIR /d /s \\documents\products > c:\productfilelist.txt

          Más info: http://www.sharepointgeoff.com/how-to-quickly-list-documents-and-sub-folders-from-a-document-library-in-sharepoint-to-a-file/

          5-Abrir una página para editar (edit mode)

          http://url.com?ToolPaneView=2&pagemode=edit

          6-Determinar el tiempo de ejecución de una determinada sección de código en SharePoint

          El Nombre de Espacio System.Diagnostics contiene una clase llamada Stopwactch que permite crear un cronometro.

             1:  Stopwatch sObj = Stopwatch.StartNew();
             2:  System.IO.File.WriteAllText ("timertest.txt", new string ('*', 30000000));
             3:  Console.WriteLine (sObj .Elapsed); // 00:00:01.4322661


          7-Saber quién creo una lista, es decir el autor de la misma


             1:  $miSitio = Get-SPWeb http://sharepoint
             2:  $miLista = $miSitio.lists["nombre de lista"]
             3:  $creador = $miLista.Author
             4:  Write-Host $creador




          También se puede usar una query contra la base de datos


          Averigua el ID de una lista (ver item 1).


          Ir a la base de contenidos que contiene la lista con el SQL Managment Studio. Ejecutar la siguiente consulta:


             1:  SELECT tp_Author
             2:  FROM [WSS_Content].[dbo].[Lists]
             3:  WHERE [tp_ID] = 'ID de la lista'




          El ID que retorna la query utilizar en otra query


             1:  SELECT *
             2:  FROM [WSS_Content].[dbo].[UserInfo]
             3:  WHERE tp_ID = 'ID retornado de la consulta anterior'



          8-La opción de ”Editar Página” está grisada o no se ve:



          El problema de que esté grisada la opción es porque alguien tiene tomada la página (check out). Si sos administrador, puedes cancelar el check out.


          En el caso que no la veas la opción, agrega lo siguiente a la url del navegador: ToolPaneView=2

          jueves, 8 de marzo de 2012

          Datasheet View para listas y librerias para Office 2010 de 64 bits

          Es posible que hayas instalado Office 2010 de 64 bits, y cuando querés acceder a la vista de datasheet, te lanza el siguiente error:
          “The list cannot be displayed in Datasheet view for one or more of the following reasons:
          • A datasheet component compatible with Microsoft SharePoint Foundation is not installed.
          • Your Web browser does not support ActiveX controls.
          • A component is not properly configured for 32-bit or 64-bit support.”
          “No se puede mostrar en la vista Hoja de datos por alguna de las razones siguientes”
          • No tiene instalado un componente de hoja de datos compatible con Microsoft SharePoint Foundation
          • El explorador no admite controles ActiveX
          • Un componente no está debidamente configurado para la compatibilidad con 32 bits o 64 bits o la compatibilidad con los controles ActiveX está deshabilitada
          Hay varias causas posibles de este error:
          1) Problemas de incompatibilidad específicos para la versión de Microsoft Office instalada en su ordenador.
          2) El archivo Owssupp.dll no está registrado correctamente en Microsoft Windows y / o está dañado debido a la instalaciónde Office 2003 profesional, y cualquiera de los productos de Office 2007-2010
          3) Está utilizando Microsoft Office 2010 y no tiene una versión de 64 bits de controles ActiveX instalados en el equipo.
           
          Algunas soluciones
          1-Ejecutar la herramienta de diagnóstico de Office para reparar la dll Owssupp.dll (Start > All Programs > Microsoft Office > Microsoft Office Tools > Microsoft Office Diagnostics)
          2-Instalar Sharepoint Designer 2010/2007, ya que registra a dll Owssupp.dll
          3-Descargar el driver de 2007 Office System Driver: Data Connectivity Components:http://www.microsoft.com/downloads/en/details.aspx?familyid=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=en
          4-Verificar que el active x esté habilitado y agregar el site como Trusted Site
          En el IE verificar lo siguiente:    
          Download signed ActiveX controls –> Enabled
          Run ActiveX controls and plug-ins –> Enable
          Script ActiveX controls marked safe for scripting –> Enable
          Allow previously unused Active X controls to run without prompt –> Enabled
          5-Hacer un backup y posteriormente borrar la siguiente entrada, y reiniciar el IE:
          HKLM\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\
          {65BCBEE4-7728-41A0-97BE-14E1CAE36AAE}
            y después registrar la siguiente dll: stslist.dll:
            regsvr32.exe stslist.dll
          6-Instalar una versión de Office 32 bits
          Hay un artículo de MS KB sobre este issue: http://support.microsoft.com/kb/2266203

          OTRO PROBLEMA ASOCIADO: la opción de datasheet aparece grisada, o la opción de "Open in explorer" no está. Esto se debe a que NO esta usando Internet Explorer, o necesita la versión de 64 bits. Sharepoint usa javascript para verificar esto.

          Link útiles #7–Sharepoint 2010

          1-Iniciar un workflow desde javascript

          http://digsharepoint.blogspot.com/2012/03/javascript-front-end-to-start.html

          2- Definir y configurar las 3 áreas principales de consumo de recursos de CPU de un crawl de Sharepoint 2010. Cuando tu crawl consume mucha CPU, revisa este link

          http://www.wssdemo.com/Blog/archive/2012/03/03/sharepoint-crawl-component-server-cpu-overload.aspx

          3- Modelo Vista Controlador (MVC) en Sharepoint

          http://dotnet-experience.blogspot.com/2010/10/model-view-presenter-pattern-with.html

          http://annagacc.wordpress.com/2011/04/29/implementing-mvp-model-view-presenter-pattern-in-sharepoint-solutions/

          http://geekswithblogs.net/Podwysocki/archive/2007/12/20/117881.aspx

          4- Dropdrow list en cascada con Infopath 2010

          http://sp365.co.uk/2012/03/sharepoint-starter-series-how-to-create-a-cascading-dropdown-list-in-infopath/

          5- Problemas conocidos de la configuración de Kerberos (SharePoint Server 2010)

          http://technet.microsoft.com/library/gg502606(office.14).aspx

          sábado, 3 de marzo de 2012

          Tips #4–Sharepoint 2010

          1- Cambiar el icono de Sharepoint 2010 con PowerShell

          El siguiente script lista todos los sitios en un site collection y sus iconos:

             1:  $site = Get-SPSite http://urlToYourSite
             2:  $site.AllWebs | foreach { $_.Url + "   Logo URL: " +  $_.SiteLogoUrl }
           
          Si desea listas todos los sites de un web application
           

             1:  Get-SPWebApplication "http://intranet" | Get-SPSite "| Get-SPWeb | 
             2:    foreach { $_.Url + "   Logo URL: " +  $_.SiteLogoUrl }
           
          Todas las webs en todos los site collections en todos los web applications:
           

             1:  Get-SPWebApplication | Get-SPSite | Get-SPWeb | 
             2:    foreach { $_.Url + "   Logo URL: " +  $_.SiteLogoUrl }





           

          Si desea cambiar el icono de un sitio:

           

             1:  $site = Get-SPSite http://urlToYourSiteCollection
             2:  $site.AllWebs | foreach { $_.SiteLogoUrl = "/SiteAssets/NewLogo.jpg"; $_.Update() }





          2-Es buena práctica desactivar el SharePoint Foundation Web Application Service en el  Central Admin Server para evitar la sobrecarga de rendimiento adicional mediante la ejecución de menos aplicaciones Web de SharePoint sobre el IIS.


          3-Auto Update Statistics y Auto Create Statistics sobre las databases? SharePoint utiliza una regla del Health Analyzer para mantener las estadísticas. Por defecto, esta regla está programada para ejecutarse todos los días y es una regla de reparación, lo que significa que tiene una acción de reparación. Alguna sbases de datos de SharePoint implementan un procedimiento para actualizar las estadísticas, proc_UpdateStatistics.



          • Configuration databases
          • Content databases
          • User Profile Service Application Profile databases
          • User Profile Service Application Social databases
          • Web Analytics Service Application Reporting databases
          • Web Analytics Service Application Staging databases
          • Word Automation Services databases
          • WSS_Logging

          4-Agregar usuarios de otros dominios:



          stsadm -o setproperty -pn peoplepicker-searchadforests -pv "domain:dominioA.com;domain:dominioB.com;domain:dominioC.com"  -url http://miportal

          Los dominios deben estar en relación de confianza.


          5-Tips para mejorar la performance en Sharepoint 2010



          http://blogs.msdn.com/b/vrajas/archive/2012/02/28/top-10-tips-for-improving-sharepoint-2010-performance.aspx

          Sobrescribir páginas de aplicación (Error.aspx, Login.aspx,AccessDenied.aspx ) con custom en SharePoint 2010

          Con SharePoint 2010 puede establecer sus propias páginas de error personalizadas.

          Página descripción
          AccessDenied Especifica AccessDenied.aspx.
          Confirmation Especifica Confirmation.aspx.
          Error Especifica Error.aspx.
          Login Especifica Login.aspx.
          RequestAccess Especifica ReqAcc.aspx.
          Signout Especifica SignOut.aspx.
          WebDeleted Especifica WebDeleted.aspx.
          1. Has una copia de una página existente en Template/Layoutsm, puede armar tu propia página con Visual Studio.

          El siguiente código va en una feature de Web Application

          El evento de FeatureActivated se incluye el siguiente código:

             1:  public override void FeatureActivated(SPFeatureReceiverProperties properties)
             2:   
             3:  {
             4:   
             5:  if (properties == null) throw new ArgumentNullException(“properties”);
             6:   
             7:  SPWebApplication webApp = properties.Feature.Parent as SPWebApplication;
             8:   
             9:  if (webApp != null)
            10:   
            11:  {
            12:   
            13:  webApp.UpdateMappedPage(SPWebApplication.SPCustomPage.RequestAccess, “/_layouts/MyDir/MyCustomPage.aspx”);
            14:   
            15:  webApp.Update();
            16:   
            17:  }
            18:   
            19:  }

          En el evento de FeatureDeactivating se incluye el siguiente código:


             1:  public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
             2:   
             3:  {
             4:   
             5:  if (properties == null) throw new ArgumentNullException(“properties”);
             6:   
             7:  SPWebApplication webApp = properties.Feature.Parent as SPWebApplication;
             8:   
             9:  if (webApp != null)
            10:   
            11:  {
            12:   
            13:  webApp.UpdateMappedPage(SPWebApplication.SPCustomPage.RequestAccess, null);
            14:   
            15:  webApp.Update();
            16:   
            17:  }
            18:   
            19:  }



          En el caso que lo quieras hacer con PowerShell, el cambio:


             1:   $site = get-spsite "http://intranet.contoso.com"
             2:   $webApp = $site.WebApplication
             3:   $webapp.UpdateMappedPage(1, "/_layouts/AccessDeniedNew.aspx")
             4:   $webapp.Update()

          Volver a la página original:


             1:  $webapp.UpdateMappedPage(1, $null)
             2:  $webapp.Update()



           


           


          Fuente:


          http://madalina.blog.com/2011/03/customizing-the-errormessage-pages-in-sharepoint-2010/


          http://www.learningsharepoint.com/2011/08/01/override-existing-application-pages-error-aspx-login-aspxaccessdenied-aspx-with-custom-in-sharepoint-2010/


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




          http://www.sharemuch.com/2011/10/09/customizing-accessdenied-signout-and-other-pages-in-sharepoint-2010-using-powershell/

          Formato ISO8601 y Sharepoint 2010

          Sharepoint 2007 y 2010 internamente trabaja con fecha en el formato ISO8601

          yyyy-mm-ddThh:mm:ssZ


          Convertir desde DateTime a ISO8601 DateTime (C#):

          DateTime date = DateTime.Now;
          string isoDate = SPUtility.CreateISO8601DateTimeFromSystemDateTime(date);

          OR

          DateTime.Now.AddDays(15).ToString("yyyy-MM-ddThh:mm:ssZ");


          Example:




          Convertir desde ISO8601 a DateTime (C#):

          DateTime date = DateTime.Parse("2010-06-15 00:00:00");
          string sysDate = date.ToString("MM/dd/yyyy");


           

          Fuente:


          http://prasanjitmandal.blogspot.com/2010/06/sharepoint-datetime-format-conversions.html


          http://blog.furuknap.net/convert-datetime-to-iso8601-for-use-in-sharepoint-caml-queries


          http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.utilities.sputility.createiso8601datetimefromsystemdatetime.aspx


          http://www.dev4side.com/community/blog/2010/3/3/date-format-using-sharepoint-lists-web-service-and-updatelistitems-method.aspx

          jueves, 1 de marzo de 2012

          Links útiles #6–Sharepoint 2010

          1-Búsqueda contextual Sharepoint 2010

          http://olenicksharepoint.wordpress.com/2012/03/01/the-problem-with-contextual-search-scopes/

          2-Como maneja el tiempo y las zonas horarias Sharepoint 2010

          http://blog.tylerholmes.com/2012/02/how-sharepoint-deals-with-time-and-time.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+ItsInSystemDotWhat+%28System.What%3F%29

          3-Agregar items vía REST y datajs en Sharepoint 2010

          http://blog.tedpattison.net/Lists/Posts/Post.aspx?ID=12

          4-Exportar las políticas de un web application

          http://blogs.msdn.com/b/rcormier/archive/2012/02/29/export-web-application-policies.aspx

          5-Profundizando Reporting Services 2012 y Sharepoint 2010

          http://video.es.msn.com/watch/video/profundizando-en-reporting-services-ssrs-2012-para-sharepoint-2010/1izoku72l

          6-FAQ SSRS Sharepoint modo integrado

          http://sharepointdragons.com/2012/02/28/ssrs-infrastructure-in-sharepoint-2010-integrated-mode/

          Cambiar el lenguaje del corrector ortográfico Sharepoint 2010

          Hay que agregar al masterpage las siguientes líneas:

          <script language=”javascript” type=”text/javascript”>
          L_Language_Text = 1034;
          </script>

          1034 = Spanish tradicional

          Más idiomas: http://msdn.microsoft.com/en-us/goglobal/bb964664

          Crear un host name para un web application

          Hay 3 pasos para crear un host name para un web application en Sharepoint

          1. Agregar el host header al archivo host o DNS. Está localizado en:  Windows > System 32 > drives > etc.
            # Copyright (c) 1993-2009 Microsoft Corp.
            #
            # This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
            #
            # This file contains the mappings of IP addresses to host names. Each
            # entry should be kept on an individual line. The IP address should
            # be placed in the first column followed by the corresponding host name.
            # The IP address and the host name should be separated by at least one
            # space.
            #
            # Additionally, comments (such as these) may be inserted on individual
            # lines or following the machine name denoted by a '#' symbol.
            #
            # For example:
            #
            # 102.54.94.97 rhino.acme.com # source server
            # 38.25.63.10 x.acme.com # x client host   # localhost name resolution is handled within DNS itself.
            # 127.0.0.1 localhost
            # ::1 localhostS     #Turned off loopback so these will work: http://support.microsoft.com/kb/926642/en-us/
            127.0.0.1 sharepoint
            127.0.0.1 search.sharepoint
            127.0.0.1 intranet.sharepoint
            127.0.0.1 mysites.sharepoint

            Después ejeuctar: iisreset /noforce


          2. Usar Powershell (this is manadatory) to create the host header site collection:
            New-SPSite http://hostheader.sharepoint/ -OwnerAlias contoso\administrator -HostHeaderWebApplication http://sharepoint

          3. Actualizar el  IIS Bindings:



            1. Edit Bindings
            2. Agregar una entrada para el host headerAdd binding

          Hacer un iisreset, y probar de nuevo