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

jueves, 31 de julio de 2014

Ocultar newsfeeds,sites y OneDrive de la barra superior en Office 365 y Sharepoint On-premise

La idea es ocultar primero mediante css las opciones de Newsfeed, OneDrive y Sites en Office 365

image

IMPORTANTE: en Office 365 se puede realizar desde el Sharepoint admin center (Top Navigation Bar User Experience), pero esto lo realizará para todos nuestros sites collection.

image

La idea es mostrarlo sólo para una página particular, pero se podría crear una App en Office 365 que incluya este código css en cada página o en la master page de nuestro sitio. Les recomiendo que revisen “Office365 Development Patterns and Practices” para buscar una solución con Apps en Office 365. En Sharepoint On-Premise les recomiendo que revisen el siguiente link, donde se deploya un custom.css en cada página de los sitios.

Veamos primero para Office 365. Insertamos un Script Editor Web part

image

y agregamos lo siguiente:

<style type="text/css">
#O365_MainLink_ShellSites
{
  display: none;
}

#O365_MainLink_ShellDocuments
{
  display: none;
}

#O365_MainLink_ShellNewsfeed
{
  display: none;
}

</style>

Para el caso que Sharepoint On-Premise podemos agregar el siguiente código css.

a.ms-core-suiteLink-a[id$="ShellDocuments"]{
    display:none;
}

a.ms-core-suiteLink-a[id$="ShellSites"]{
    display:none;
}

a.ms-core-suiteLink-a[id$="ShellNewsfeed"]{
    display:none;
}

jueves, 29 de noviembre de 2012

Tips Info #81 Sharepoint 2010

1-Error en Visual Studio en ambiente local de Sharepoint: The web application at http://server could not be found. Verify that you have typed the URL correctly. If the URL should be serving existing content, the system administrator may need to add a new request URL mapping to the intended application.

Revisa que estés compilando en x64, ya que Sharepoint es una plataforma de 64 bits.

image

2-Error: The method “GetItems” of the Type “List” with id “{ID}” is blocked by the administrator  on the server

Este error se debe a que se quiso consumir información de Sharepoint mediante client object.

Ejecuto el siguiente comando de powershell para saber si el método se encuentra como tipo restringido.

$wa = Get-SPWebApplication -Identity http://webapplication_url
$wa.ClientCallableSettings.AnonymousRestrictedTypes

image

Como pueden ver en la imagen superior, el método GetItems está restringido.

Para solucionar este error ejecutar el siguiente comando:

$wa = Get-SPWebApplication -Identity "http://webapplication_url"
$wa.ClientCallableSettings.AnonymousRestrictedTypes.Remove([Microsoft.SharePoint.SPList], "GetItems")
$wa.Update()
$wa.ClientCallableSettings.AnonymousRestrictedTypes

image

3-Tips de SQL tunning para Sharepoint

  • maxdop = 1 (Max degree of parallelism)

6443.BlogMaxdopPhoto%231

Cuando se ejecuta una consulta en paralelo, sin duda, encontrará
que uno de los hilos (thread) termina antes que el otro y tiene que esperar a otra
hilo para hacer su trabajo. En aplicaciones con transacciones cortas y rápidas, esto
está muy bien. En las aplicaciones con gran cantidad de transacciones, con un montón de
consultas ejecutadas en paralelo (es decir, como es el caso de SharePoint), esto puede conducir a una
reducción en el rendimiento, ya que los threads que tienen que hacer el trabajo real, tienen que
esperar a que otros hilos terminen.

  • No hacer shrink de los datafiles (MDF, NDF, LDF)

Puede ocasionar desfragmentación de indices y pérdida de performance

  • Configuración de la TempDB

Crear la base de datos tempdb en el almacenamiento más rápido disponible (SSD es una gran opción). Pre-asignación de espacio para tus archivos de tempdb estableciendo el tamaño del archivo inicial a un valor más grande para que pueda adaptarse a la carga de trabajo típica en el entorno, se puede ir en una regla de oro que el tamaño debe ser de 25% de la base de datos más grande de contenido.Crea varios archivos de datos para maximizar el ancho de banda del disco y reduce la contención archivo TEMPDB. Hacer cada archivo del mismo tamaño, lo que permite una óptima proporción de llenado rendimiento.

  • No habilitar la opción de “Auto Update Statistics” y “Auto Update Statistics Asyncronously”

auto-create-statistics-on-a-sql-server_thumb

 

4-Ocultar la ribbon para usuarios anónimos

Buscar en la master page el div con el id s4-ribbonrow, y agregar la clase hide-ribbon

<div id="s4-ribbonrow" class="s4-pr s4-ribbonrowhidetitle hide-ribbon">

Una vez agregado la clase, se deberá agregar el siguiente control en la master page

<SharePoint:SPSecurityTrimmedControl ID="VerRibbon" PermissionString="ManageLists" runat="server">
  <style type="text/css">
    body .hide-ribbon {
      display: none;
    }
  </style>
</SharePoint:SPSecurityTrimmedControl>

También se puede agregar todo el div s4-ribbonrow, pero puede ocasionar problemas con el elemento #s4-workspace y los scrollbars.

5-Cambiar el logo de todos los sites collections y sites de un web application mediante powershell

Get-SPWebApplication http://url_webapplication | get-spsite -Limit All | get-spweb -Limit All | foreach {$_.SiteLogoUrl = "/_layouts/images/custom/logo.gif"; $_.Update()}

lunes, 17 de septiembre de 2012

Tips/Info #70 Sharepoint 2010

1-Reportar el progreso de un timer job

public  override  void  Execute(Guid  contentDbId){
    this.UpdateProgress(<numero entre 0 y 100>);
}

timerjob_progress2

Más info: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.spjobdefinition.updateprogress(v=office.12).aspx

2-Objecto flotantes al editar un item quedan fuera de lugar al mover la scrollbar

Ej: los divs con clase .s4-ctx

Agregar lo siguiente en el coreV4.css

* fix scrolling en páginas */

#s4-bodyContainer
{
            position: relative;
}

3-SharePoint 2010 Keyboard Shortcuts

SP2010 soporta shortcuts de teclas, implementandolo con el tag "accesskey".
Ej:

<a href="javascript:;" onclick="javascript:this.href=’#mainContent’;" class="ms-SkiptoMainContent" accesskey="X">Skip to main content</a>
   
Se debe usar de la siguiente manera:
ALT+X para seleccionar el item específico y a continuación presionar ENTER.

Home Link    Alt + 1 -> ENTER
Skip to Main Content    Alt + X -> ENTER
Help    Alt + 6 -> ENTER
Search Box    Alt + S
Site Actions    Alt + / -> ENTER
View All Site Content    Alt + 3 -> ENTER
Shared Documents    Alt + W -> ENTER
Next Web Part    Alt + W
Skip ribbon commands    Alt + Y –> ENTER

Más información: http://keremozen.com/2012/02/07/sharepoint-2010-keyboard-shortcuts/

4-Deshabilitar la actualización y cambio automático de la password

$account = Get-SPManagedAccount -identity dominio\sp_admin
$account.AutomaticChange = $False
$account.Update()
Get-SPManagedAccount | Select-Object UserName, AutomaticChange

5-Algunas de las features en Sharepoint

Scope de una feature

·         Web
·         Site Collection
·         Web Application
·         Farm

Eventos de una feature

·         Installing
·         Uninstalling
·         Activating
·         Deactivating

Elementos de una feature:

·         Menu Commands
·         Toolbar Buttons
·         Web Parts
·         Workflows
·         Event Handlers
·         Page Definitions
·         List Definitions
·         Templates

viernes, 22 de junio de 2012

Tips/Info #35 Sharepoint 2010

1-State Service

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

Para provisionarlo haga lo siguiente, abra el powershell

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

2-Algunos reportes OOTB

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

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

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

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

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

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

4-Error en Meeting Workspaces: g_instanceId is undefined

image_thumb[2]

Este error ocurre sobre master pages derivadas de v4.master

Hay dos soluciones posibles:

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

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

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

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

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

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

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

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

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

<Script language="JavaScript">

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

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

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

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

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

  //tu codigo
}

miércoles, 20 de junio de 2012

Tips/Info #34 Sharepoint 2010

1-Tesauros en Sharepoint 2010

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

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

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

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

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

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

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

    2-Algunos beneficios de los BLOBS

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

    3-PowerShell 3.0 y Sharepoint 2010

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

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

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

    Para cambiar esta propiedad, ejecuta lo siguiente:

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

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

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

    restart-service TrustedInstaller

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

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

    7-Tipos de web pages en Sharepoint 2010

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

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

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

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

    SPUrlUtility.IsLegalFileName(url_a _probar);

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

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

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

    10-Relink Formularios de Infopath

    image_thumb1

    image_thumb2

    image_thumb3

    miércoles, 6 de junio de 2012

    Tips/info #28 Sharepoint 2010

    1-Error: Sharepoint Service Error: A deployment or retraction is already under way for the solution “xxx.wsp” , and only one deployment or retraction at a time is supported

    Para solucionar haga lo siguiente:

  • Abra una consola de powershell y vaya a la ubicación siguiente: C:\Program Files\Common Files\Microsoft Shared\web server extensions\14\BIN y escriba stsadm -o enumdeployments
  • Verificamos el id del job que está generando conflicto
  • Y ejecutamos lo siguiente: stsadm -o canceldeployment -id ” jobId”

    2-Error:“Error Updates are currently disallowed on GET requests.  To allow updates on a GET, set the ‘AllowUnsafeUpdates’ property on SPWeb. Troubleshoot issues with Microsoft SharePoint Foundation”

    $w = get-spwebapplication http://nombredelwebapplication
    $w.HttpThrottleSettings
    $w.Update
    ()
    3-Los botones de página de layouts y de texto de layouts está grisados o deshabilitados
    Ir a la master page del sitio y agregar en el body, lo siguiente:
    <body onload=”javascript:_spBodyOnLoadWrapper();”>
    4-Habilitar el modo debug de los archivos js de Sharepoint 2010
    Como saben, Sharepoint tiene dos versiones de cada archivo core de javascript de Sharepoint. Ej: sp.js, y el sp.debug.js
    Esos archivos pueden encontrarse en C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\_LAYOUTS
    Si se desea cargar los archivos debug para un web application, se debe ir a C:\inetpub\wwwroot\wss\VirtualDirectories y abrir la carpeta con el puerto deseado.
    Localizar web.config y editar de la siguiente manera:
    <compilation batch="false" debug="false">
    reemplazarlo con 
    <compilation batch="false" debug="true">
    y hacer un iisreset.
    5-Obtener las content database por web application con powershell
    Get-SPWebApplication | %{Write-Output "`n- $($_.url)"; foreach($cd in $_.contentdatabases){Write-Output $cd.name}} >> C:\Temp\contentdatabases.txt
    6-ListItem.Update Powershell Exception (Cannot take 0 arguments)



    Posiblemente la excepción sea por problemas de permisos del usuario que ejecuta el script.


    7-No aparece la opción “Manage content and structure”


    Habilitar las features 'SharePoint Server Publishing Infrastructure' a nivel de Site Collection, y después activar la feature 'SharePoint Server Publishing'


    8-Agregando un adjunto con SPList a un item


  • private void AgregarAdjunto(int ID_item)
    {
        try
        {
            SPList lista = SPContext.Current.Web.Lists["nombre Lista"];


            SPListItem miItem = lista.GetItemById(ID_item);


            if (fileUpload.PostedFile != null && fileUpload.HasFile)
            {


                Stream fStream = fileUpload.PostedFile.InputStream;


                byte[] contents = new byte[fStream.Length];


                fStream.Read(contents, 0, (int)fStream.Length);


                fStream.Close();


                fStream.Dispose();


                SPAttachmentCollection attachments = miItem.Attachments;


                string fileName = Path.GetFileName(fileUpload.PostedFile.FileName);


                attachments.Add(fileName, contents);


                miItem.Update();


            }


        }
        catch (Exception ex)
        {    }
    }


    9-Cargar un archivo css mediante el control CssRegistration


    <SharePoint:CssRegistration ID="CssRegistration1" Name="/Style Library/estilo.css"
        runat="server" After="corev4.css" />

    10-Acciones de comando en los custom actions

    {ItemId} – ID (GUID) taken from the list view.
    {ItemUrl} – Web-relative URL of the list item (Url).
    {RecurrenceId} – ID of a recurrent item (RecurrenceID).
    {SiteUrl} – The fully qualified URL to the site (Url).
    {ListId} – ID (GUID) of the list (ID).
    {ListUrlDir} – Server-relative URL of the site plus the list's folder.
    {Source} – Fully qualified request URL.
    {SelectedListId} – ID (GUID) of the list that is currently selected from a list view.
    {SelectedItemId} – ID of the item that is currently selected from the list view.
    ~site    SPContext.Current.Web.ServerRelativeUrl
    ~sitecollection    SPContext.Current.Site.ServerRelativeUrl


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

    sábado, 26 de mayo de 2012

    Tips/Info #23 Sharepoint 2010

    1-Script de powershell para setear el mail de los access request de los sitios

    $webapp = Get-SPWebApplication "nombre del web application"
    foreach($site in $webapp.Sites){
        foreach($web in $site.AllWebs){
            if ($web.HasUniqueRoleDefinitions){
                if($web.RequestAccessEnabled){
                    Write-Host $Web.URL
                    Write-Host "---"

                    Write-Host $Web.URL "Actualizando RequestAccessEmail"
                    Write-Host "---"
                    $web.RequestAccessEmail ="email@email.com"
                    $web.Update()
                }
                else {
                    Write-Host "Access Request no habilitado." $Web.URL
                }
            }
        }
    }

    2-Obtener los administradores de los sitios mediante powershell

    $siteUrl = Read-Host "Enter Site URL"
    $rootSite = New-Object Microsoft.SharePoint.SPSite($siteUrl)
    $spWebApp = $rootSite.WebApplication

    foreach($site in $spWebApp.Sites)
    {
        foreach($siteAdmin in $site.RootWeb.SiteAdministrators)
        {
            Write-Host "$($siteAdmin.ParentWeb.Url) - $($siteAdmin.DisplayName)"
        }
        $site.Dispose()
    }
    3-Exportar los resultados de las encuestas en Sharepoint 2010

  • Ir a Acciones del sitio/Ver todo el contenido del sitio
  • Ir a la encuesta
  • Acciones/ Exportar a hoja de datos

    image


    4-Agregar la opción de Tags & Notes dentro de cualquier página con javascript

    <a title="Etiquetar pagina" id="TagsAndNotes_ctl00_ctl42" onclick="SafeRunFunction(function() { TagDialogOpener.Open('http:\u002f\u002fsharepoint2010a:45354\u002fen-us\u002fPages\u002fdefault.aspx', document.title, '0'); }, 'SocialData.js', 'TagDialogOpener');" href="javascript:;">Etiquetar página</a>



    5-Encontrar todas las alertas de una site collection mediante una query de SQL

     Add-PSSnapin microsoft.sharepoint.powershell

    $site = Get-SPSite "http://sitiosharepoint2010/sites/sitioalertas/"
    $alertResultsCollection = @()
    foreach ($web in $site.AllWebs)
    {
    foreach ($alert in $web.Alerts)
    {
    $alertURL = $web.URL + "/" + $alert.ListUrl
    $alertResult = New-Object PSObject
    $alertResult | Add-Member -type NoteProperty -name "URL DE LA LISTA" -value $alertURL

    $alertResult | Add-Member -type NoteProperty -name "TITULO DE LA ALERTA" -value $alert.Title
    $alertResult | Add-Member -type NoteProperty -name "TIPO DE ALERTA" -value $alert.AlertType

    $alertResult | Add-Member -type NoteProperty -name USUARIO SUBSCRIPTO
    " -value $alert.User
    $alertResultsCollection += $alertResult
    }

    $site.Dispose()
    $alertResultsCollection

    # Exportar a CSV
    #$alertResultsCollection | Export-CSV "
    Alertas.csv"
    6-Borrar un archivo mediante client object
    ClientContext cc = new ClientContext(url);
    Web w = cc.Web;
    List olist = w.Lists.GetByTitle("Libreria");
    cc.Load(olist);
    var files = olist.RootFolder.Files;
    FileCollection fc =files;
    cc.Load(fc);
    cc.ExecuteQuery();
    File Deleteimtefile = fc[1]; //borro el primer archivo
    Deleteimtefile.DeleteObject();
    cc.ExecuteQuery();
    7-Ocultar la papelera de reciclaje con css
    <style type=”text/css”>

    .ms-quicklaunchheader{

    display:none;}

    .ms-recyclebin{

    display:none;}

    </style>


    8-Error al ejecutar código que trata de consultar algo del Active directory: 

    “An operations error occurred at System.DirectoryServices.AccountManagement.ADStoreCtx.FindPrincipalByIdentRefHelper”

    Ejecute la sección de código fuente que llama al Active Directory con SPSecurity.RunWithElevatedPrivileges.


    9-Mostrar pantalla de procesamiento


    image

    protected void btnEvento_Click(object sender, EventArgs e)
    {
    //Operacion de tiempo extenso
    using (SPLongOperation longOperation = new SPLongOperation(this.Page))
    {
    //Mensaje custom que aparecerá con una rueda de procesamiento
    longOperation.LeadingHTML = "<div><h2>Procesando solicitud</h2></div>";
    longOperation.TrailingHTML = "<div><h3>Por favor espere mientras el procesamiento termina</h3></div>";

    //Inicia la operación con procesamiento extenso
    longOperation.Begin();

    //El codigo del procesamiento extenso va aca


    //termina la operación con procesamiento extenso
    string redirectURL = SPContext.Current.Web.Url + "/SitePages/default.aspx";
    longOperation.End(redirectURL);
    }
    }

    10-Opciones para EventLog
























    NivelDefinición
    NoneNo ocurre ningún logging
    CriticalEste tipo de mensaje indica un error grave que ha causado un gran fallo en la solución.
    ErrorEste tipo de mensaje indica una condición de urgencia. Todos los eventos de error debe ser investigados.
    WarningEste tipo de mensaje indica un problema potencial o problema que podría requerir atención. Los mensajes de advertencia deben ser revisados y analizados en el tiempo.
    InformationLos mensajes de información no requieren ninguna acción,pero pueden proporcionar datos valiosos para el seguimiento del estado de su solución.
    VerboseEste nivel de registro de eventos corresponde a eventos o mensajes.

    11-Opciones para TraceLog
























    LevelDefinition
    NoneNingún trace logs son escritos.
    UnexpectedEste nivel se utiliza para registrar los mensajes sobre eventos que hacen que las soluciones detienen su procesamiento.Cuando se establece a este nivel, el registro sólo incluye los eventos de este nivel.
    MonitorableEste nivel se utiliza para registrar mensajes acerca de eventos irrecuperables que limitan la funcionalidad de la solución, pero no detienen la aplicación. Cuando se establece a este nivel, el registro incluirá también los errores críticos (nivel inesperado).
    High

    Este nivel se usa para registrar los eventos que son inesperados, pero que no detendrá el procesamiento de una solución. Cuando se establece para acceder a este nivel, el registro incluirá advertencias, errores controlables (nivel) y los errores críticos (nivel inesperado).

    MediumCuando se establece en este nivel, el registro de seguimientoincluye todo excepto los mensajes detallados. Este nivel se utiliza para registrar toda la información de alto nivel acerca de las operaciones que se realizaron. En este nivel, hay suficiente detalle para generar el flujo de datos y la secuencia de operaciones. Este nivel de registro puede ser utilizado por los administradores o los profesionales de soporte técnico para solucionar problemas.
    VerboseCuando se establece para acceder a este nivel, el registroincluye mensajes en todos los otros niveles. Casi todas lasacciones que se realizan se registran cuando se utiliza este nivel. Detallado rastreo produce muchos mensajes de registro. Este nivel se utiliza normalmente sólo para la depuración en un entorno de desarrollo.

  • lunes, 14 de mayo de 2012

    Links útiles #21–Sharepoint 2010

    1-Columna lookup de una lista de otro sitio

    http://stackoverflow.com/questions/10495245/how-to-multilookup-from-one-site-list-to-another-site-list-in-sharepoint-2010

    2-Sharepoint 2010 y Reporting Services 2012 Suscripciones y alertas

    http://geeks.ms/blogs/ciin/archive/2012/05/13/sharepoint-2010-y-ssrs-2012-trabajo-con-suscripciones-y-alertas-ii.aspx

    3-ODATA Sharepoint 2010 CRUD operaciones

    http://moss-net4u.blogspot.com.ar/2012/05/using-odata-rest-api-for-crud.html

    4-Deactivar la interface mobile de Sharepoint 2010

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

    5-Limitaciones de los document sets (Conjunto de documentos)

    http://www.sharepointanalysthq.com/2011/09/document-set-limitations-and-considerations-in-sharepoint-2010/

    6-Sharepoint 2010 CSS referencia

    http://sharepointexperience.com/csschart/csschart.html?utm_source=spexp.me&utm_medium=urlshortener

    7-Obtener el valor de una propiedad del perfil de usuario con jquery y editar una propiedad

    http://www.sharemuch.com/2012/05/11/retrieve-sharepoint-user-profile-property-value-with-jquery/

    http://www.sharemuch.com/2012/05/13/dynamically-modify-sharepoint-user-profile-properties-with-jquery/

    8-Crear un web part reusable

    http://www.sharepointblog.co.uk/2012/05/create-a-reusable-web-part/

    9-Reemplazar un valor en una lista con gráficos (xlst)

    http://highbrowse.wordpress.com/2012/05/04/replace-values-in-a-sharepoint-list-with-graphics/

    10-Renombrar Base de datos Sharepoint 2010

    http://techchucker.wordpress.com/2012/04/30/clean-deploy-of-central-admin/

    11-Exportar e importar listas/librerias con powershell

    http://sharepointnomad.wordpress.com/2012/05/03/how-to-export-and-import-lists-and-libraries-from-a-sharepoint-2010-site-using-powershell/

    12-Configuración de SQL Server para Sharepoint

    TempDB: http://spjoel.wordpress.com/2012/05/03/multiple-tempdbs/

    Cantida de Memoria que puede consumir SQL: http://spjoel.wordpress.com/2012/05/03/max-server-memory/

    13-Mostrar o ocultar campos basado en los permisos

    http://sharepointjavascript.wordpress.com/2012/05/07/showing-or-hiding-form-fields-based-on-membership-in-a-sharepoint-group/

    domingo, 13 de mayo de 2012

    Tips/Info #20 Sharepoint 2010

    1-Resetear el theme del site al desactivarse una feature

    public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
    {
        //Voy al site collection actual
        SPSite siteCollection = properties.Feature.Parent as SPSite;
        if (siteCollection != null)
        {
            SPWeb topLevelSite = siteCollection.RootWeb;
            foreach (SPWeb site in siteCollection.AllWebs)
            {
                //reseteo el tema en el caso que se haya aplicado
                ThmxTheme.RemoveThemeFromWeb(site, true);
            }
        }
    }




    2-Detener las intancias del servicio SharePoint Incoming E-Mail Service


    Get-SPServiceInstance | ? {$_.Typename -eq "Microsoft SharePoint Foundation Incoming E-Mail"} | Stop-SPServiceInstance -Confirm:$False



    3-Obtener todas las listas mediante una query de base de datos


    SELECT      
        Webs.FullUrl as 'URL', 
        Webs.Title as 'Web Title', 
        WEBS.Description as 'Web Description', 
        AllLists.tp_Title as 'List Description', 
        AllLists.tp_Version as 'List Version' 
    FROM          
        Webs  with (nolock)
    INNER JOIN  
        Sites ON Webs.SiteId = Sites.Id  
    INNER JOIN AllLists ON Webs.Id = AllLists.tp_WebId 
    ORDER BY 
        Webs.FullUrl




    4-Ejecutar de forma inmediata el jobs de Análisis de Mantenimiento


    Get-SPTimerJob | Where {$_.Name -like "*Health*" -and $_.Name -like "*-all-*"} | Start-SPTimerJob



    5-Ocultar la sección de papelera de reciclaje (Recycle Bin) y todo el contenido del sitio (All Site Content)


    leftnav2b


    <style type="text/css">
    .s4-specialNavLinkList
    {
    display:none !important;
    }
    </style>


    6-Consultas de SQL: Obtener los grupos de permisos con nombre ‘HR Visitors’ y con el tipo de permiso de full control


    select ra.PrincipalId as 'GroupID', g.Title as 'GroupTitle', p.ScopeUrl, r.Title as 'RoleTitle', ui.tp_Title
    from RoleAssignment ra with (nolock)
        left outer join Roles r  with (nolock) on ra.RoleId = r.RoleId
        left outer join Perms p  with (nolock) on ra.ScopeId = p.ScopeId
        left outer join GroupMembership gm  with (nolock) on ra.PrincipalId = gm.GroupId
        left outer join Groups g  with (nolock) on gm.GroupId = g.ID
        left outer join UserInfo ui  with (nolock) on gm.MemberId = ui.tp_ID
    where     p.ScopeUrl like 'sites/HR%'
        and g.Title = 'HR Visitors'
        and r.Title != 'Full Control'




    7-Consultas de SQL: Obtener todos los grupos donde un usuario específico está incluido




    SELECT Groups.Title
    FROM GroupMembership with (nolock)
    inner join Groups with (nolock)  ON GroupMembership.GroupId = Groups.ID
    inner join UserInfo with (nolock)  ON GroupMembership.MemberId = UserInfo.tp_ID
    where userinfo.tp_Login like '%cazcon'



    8-Compartir servicios en granjas de servidores de Sharepoint 2010 (Service Application Federation)


    En Microsoft SharePoint Server 2010, un conjunto o granja de servidores de SharePoint puede conectarse a una aplicación de servicio publicada en otra granja de servidores de SharePoint Server 2010 para usarla. Para ello, las granjas de servidores deben intercambiar certificados de confianza.

    En este artículo se describe cómo intercambiar certificados de confianza entre la granja de servidores de publicación y la granja de servidores de consumo. Tenga en cuenta que ambas granjas de servidores deben participar en este intercambio para que el uso compartido de las aplicaciones de servicio funcione.

    Un administrador de la granja de servidores de consumo debe proporcionar dos certificados de confianza para la granja de servidores de publicación: un certificado raíz y un certificado de servicio de token de seguridad (STS). Un administrador de la granja de servidores de publicación debe proporcionar un certificado raíz para la granja de servidores de consumo.

    Más info: http://technet.microsoft.com/es-ar/library/ee704552.aspx

    http://sharepintblog.com/2011/12/02/publishing-and-consuming-sharepoint-service-application-with-powershell/

    http://www.kowalski.ms/2010/07/16/sharepoint-server-2010-enterprise-service-application-publishing-and-consuming-farms/

    http://www.aiim.org/community/blogs/expert/Connecting-to-the-User-Profile-Service-Proxy

    9-Obtener el id de la granja (farm) con powershell

    (Get-SPFarm).Id

    10-Actualizar password para cuentas administradas

    Set-SPManagedAccount -Identity <<Doamin\LoginName>> –UseExistingPassword

    11-Restear la farm Passphrase


    • Abrir una consola de powershell y ingresa lo siguiente


    $passphrase = ConvertTo-SecureString -asPlainText –Force



    • Escriba la contraseña

    • Después ingrese los siguiente: Set-SPPassPhrase -PassPhrase $passphrase –Confirm

    • Reingrese la contraseña

    12-Control CSSResgistration para la carga de CSS


    <SharePoint:CSSRegistration name= "<%$SPrl:~SiteCollection/Style Library/~language/Core Stypes/Band.css%>" runat="server"/>


    Algunas propiedades útiles de este control:


    After: permite cargar un css después de un determinado elemento de css. Ej: <SharePoint:CSSRegistration name= “_layouts\CleanV4\style0.css” runat="server" After=”corev4.css”/>

    ConditionalExpression:
    <SharePoint:CSSRegistration name= “_layouts\CleanV4\style0.css” runat="server" ConditionalExpression =”IE 6.0” />
    La última sentencia sólo se cargar para IE 6

    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

    sábado, 24 de marzo de 2012

    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/

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