Mostrando entradas con la etiqueta QueryString. Mostrar todas las entradas
Mostrando entradas con la etiqueta QueryString. Mostrar todas las entradas

viernes, 30 de noviembre de 2012

Tips Info #82 Sharepoint 2010

1-Tablas NameValuePair

Al crear una columna con un índice, se llenará las tablas NameValuePair[_{SQLCollation}] con datos de la columna que tu indexas.

Cada vez que actualizas datos de las columnas, se actualiza las tablas NameValuePair[_{SQLCollation}]. Cuando se realiza una consulta a cualquiera de las listas de las cuales tiene un campo indexado, a continuación, se hace un JOIN con la tabla dbo.AllLists y la tabla dbo.NameValuePair. Esto provocará que las queries sean más rápidas.

2-Versionado y acceso anónimo

Si activas la opción “Major Version” en el versionado de las librerías, cada vez que publicas una versión, todos los usuarios podrán ver esa versión incluso los anónimos. En cambio una versión "minor" sólo los propietarios del documento, administradores y usuarios con permisos de approve podrán ver la versión.

3-Mostrar los attachments (adjuntos) de listas en xlst

Usar el control <xsl:element name="SharePoint:AttachmentsField">

<xsl:element name="SharePoint:AttachmentsField">
    <xsl:attribute name="runat">server</xsl:attribute>
    <xsl:attribute name="FieldName">Attachments</xsl:attribute>
    <xsl:attribute name="ControlMode">Display</xsl:attribute>
    <xsl:attribute name="Visible">true</xsl:attribute>
    <xsl:attribute name="ItemId">
        <xsl:value-of select="@ID"/>
    </xsl:attribute>
</xsl:element>

4-Query sobre list items de varios sites

Se puede usar SPSiteDataQuery o CrossListQueryInfo.

5-Algunos tips útiles sobre querys string en Sharepoint

Por default, Sharepoint 2010 muestra la última versión del documento, si se quiere mostrar todas las versiones, se puede utilizar el query string IncludeVersions:

AllItems.aspx?IncludeVersions=TRUE

Si se quiere mostrar sólo los items de un folder, se puede utilizar el query string RootFolder=*

Ej: url?RootFolder=*  ->muestra los items de todos los folders

Ej: http://urlsitecollection/sites/Demo/TheDocumentLibrary/Forms/AllItems.aspx?RootFolder=%2fdemo%2fthedocumentlibrary%2fcarpeta

Importante: el query string RootFolder es case sensitive, debe tener caracteres de escape (%2f para barras, %2d para guiones)

Editar una página de NewItem o EditItem (por default no se pueden editar)
Ej: agregar el query string ToolPaneView, DispForm.aspx?ID=12&ToolPaneView=2

Query string que permite retornar a una url determinada, al cerrar la página o aceptar la acción
?Source=http://sitecollection/Intranet/default.aspx

Otros parámetros útiles: _ModerationStatus y _IsCurrentVersion

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" />

    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/


          viernes, 13 de enero de 2012

          Parámetros query string que no deberías usar con tus aplicaciones Sharepoint

          Al crear el objeto SPContext de SharePoint evalúa los siguientes parámetros de consulta:

          • FeatureId
          • ListTemplate
          • List
          • ID (con números funciona bien)
          • VersionNo
          • ContentTypeId
          • RootFolder
          • View
          • FolderCTID
          • Mode
          • Type
          • PageVersion
          • IsDlg
          • Title
          • _V3List_

          Para asegurarse de que la creación del objeto SPContext no falle, la aplicación debe asegurarse de que los parámetros de cadena de consulta son diferentes de las mencionadas anteriormente.