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

sábado, 12 de julio de 2014

Error al activar una feature

Al deployar una feature mediante un desarrollo de Visual Studio, me lanza el error

Error    1    Error occurred in deployment step 'Activate Features': Failed to load receiver assembly "SPDeployTheme, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0cfdef6acbfeb744" for feature "SPDeployTheme_CustomTheme" (ID: 6c79f87c-dc70-4b98-9965-0c4b5a9365dd).: System.IO.FileNotFoundException: Could not load file or assembly 'SPDeployTheme, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0cfdef6acbfeb744' or one of its dependencies. The system cannot find the file specified.
File name: 'SPDeployTheme, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0cfdef6acbfeb744'
   at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection)
   at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
   at System.Reflection.Assembly.Load(String assemblyString)
   at Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

SOLUCION

Primero revise que no esté la solución deployada, en el caso que esté, la remuevo

image

Hago un iisreset y reinicio el Sharepoint Timer Service

Después agrego un nuevo key para “signar” el assembly

image

Trato de deployar de nuevo la solución, y anduvo perfecto.

image

sábado, 7 de junio de 2014

Error al hacer un upgrade de una base de contenidos

Una de las bases de contenido estaba trabajando en modo compatibilidad. "Database is in compatibility range and upgrade is recommended"

image

Si quieren ver esta información mediante powershell, pueden ejecutar el siguiente comando:

Get-SPDatabase | ?{$_.NeedsUpgrade –eq $true} | Select Name

Pero al hacer el upgrade, me lanzó el siguiente mensaje: The feature with Id 71ad2dbb-db04-4323-b002-cffb64e57a98 is referenced in the database [WSS_Content_AppSPS], but is not installed on the current farm. The missing feature may cause upgrade to fail. Please install any solution which contains the feature and restart upgrade if necessary.

image

Claramente era una feature que no se había retractado correctamente (feature huérfana), la cual habrá que removerla de todas las bases de contenido.

La manera más fácil es usando SharePoint Feature Administration and Clean Up Tool (http://featureadmin.codeplex.com/), usando la funcionalidad “Find Faulty Feature in Farm”

image

Otra posibilidad es usar PowerShell

Mediante el nombre de la feature

$feature = Get-SPFeature | ? { $_.DisplayName -eq "My_Orphane_Feature" }
$feature.Delete()

Mediante el ID de la feature

$Feature = Get-SPFeature | ? { $_.Id -eq "featureid" }
$Feature.Delete()

Una ves que removí la feature huérfana, hago el upgrade.

Upgrade-SPContentDatabase -Identity NombreBaseContenido (en el caso de hacer el upgrade de una base de contenido)

image

martes, 5 de marzo de 2013

Tips Info #10 - Sharepoint 2013

1-Query Spelling correction (Did you mean?) en el search de Sharepoint 2013

image

Sharepoint 2013 conoce dos tipos de diccionarios de query spelling sugestion: dinámico y estático. El diccionario dinámico es mantenido por Sharepoint basado en el indice de search del contenido. Mientras el diccionario estático, es mantenido por el administrador de la granja o del servicio de metadata. Por default Sharepoint usa el diccionario dinámico.

Para que un término se incluya en el diccionario de correcciones de sugerencias, debe estar incluido en al menos 50 documentos.

image

Para el diccionario estático SharePoint 2013 usa dos Global Term Sets llamados Query Spelling Exclusions y Query Spelling Inclusions para definir el query spelling suggestions. Ambos Term Sets son ignorados por el módo dinámico, si deseas setear que el servicio de search use el módo estático, se puede realizar mediante PowerShell

$ssa = Get-SPEnterpriseSearchServiceApplication
Set-SPEnterpriseSearchQuerySpellingCorrection -SearchApplication $ssa -SpellingDictionary Static

Este comando permitirá usar el diccionario estático en vez del dinámico.

image

Más información: http://technet.microsoft.com/en-us/library/jj591607.aspx

2-Cambios de licencia en Sharepoint 2013

Las versiones anteriores de Sharepoint requerían que la organización entera tenga una CAL (Client Access Licences) Enterprise o Standart. Es decir todo o nada. Una de las áreas que impactaba este método, es el área de BI.

Ahora con 2013, hay un mix de tipos de licencia (Standard, Enterprise, Project, y Office Web App Edit licenses) dentro del mismo site collection.

Usando PowerShell, las personas en grupos de AD pueden ser asignadas a diferentes tipos de licencia. Esto afecta a la funcionalidad que los usuarios pueden ver dentro de un site. Los cambios de licencia pueden ser hechos on the fly, sin logging out y logging in. Este cambio permite a una compañia iniciar con una licencia Standart, y a futuro ir haciendo el upgrade a licencias Enterprise un usuario a la vez o vía un departamento de la empresa.

Para mayor información: http://www.degdigital.com/blog/big-changes-in-sharepoint-2013-licensing-for-portal-clients/

3-Agregar el web part MyTask fuera de MySite

Este web part existe por default en MySite, para poder utilizarlo fuera de Mysite hay que activar la feature llamada “My Task Dashboard”. Esta una feature oculta con alcance a nivel de web, el ID de la misma es: 89D1184C-8191-4303-A430-7A24291531C9

Enable-SPFeature -identity 89D1184C-8191-4303-A430-7A24291531C9 -URL http://url_web_site

4-Sharepoint 2013 tiene soporte nativo para la búsqueda de pdf

NO será necesario instalar ningún IFilter de pdf.

5-Cambiar intervalo de continuos crawl para Sharepoint 2013

$ssa = Get-SPEnterpriseSearchServiceApplication
$ssa.SetProperty("ContinuousCrawlInterval", 10)

El script anterior setea el continuos crawl a ejecutarse cada 10 minutos.

viernes, 22 de febrero de 2013

Tips Info #97 Sharepoint 2010

1-Indexar archivos grandes en Sharepoint 2010

En Sharepoint 2010 el crawl por default no indexa archivos más grandes que 16 MB. Se puede cambiar esta propiedad mediante el siguiente comando de powershell:

$dSize = Get-SPEnterpriseSearchServiceApplication;
$dSize.SetProperty("MaxDownloadSize", 32);
$dSize.Update();

Recuerde que deberá reiniciar el servicio de search: Restart-Service osearch14

2-Reducir el tamaño de la base de datos de logging (WSS_UsageApplication) en Sharepoint 2010

Por default la cantidad de días que se retiene la información es de 14 días. Se puede verificar con el siguiente comando de power shell: Get-SPUsageDefinition

Se puede reducir el tamaño de la base ejecutando el siguiente comando:

Set-SPUsageDefinition –Identity "Page Requests" -DaysRetained 3

Esto provocará que se reduzca el tamaño.

Una manera rápida de ejecutar el comando sobre todas las features es mediante el siguiente script:

$definicionUsage = Get-SPUsageDefinition

Foreach($def in $definicionUsage)

{

Set-SPUsageDefinition –Identity $def.Name –DaysRetained 3

}

Recuerde que deberá ejecutar los dos siguientes jobs para limpiar los datos históricos:

'Microsoft SharePoint Foundation Usage Data Import' y 'Microsoft SharePoint Foundation Usage Data Processing'.

3-Feature ‘Site Use Confirmation and Deletion’

Site Use Confirmation and Deletion

Puede acceder a esta feature desde Central Administration > Site Collections > Site Use Confirm and Deletion

Esta feature informa a los administradores del site collection sobre sites que no se actualizan.

Hay tres campos que juegan un papel importante en el proceso (tabla AllSites de la base de contenido del web application):

  • “DeadWebNotifyCount”
  • “CertificationDate”
  • “LastContentChange”

DeadWebNotifyCount indica las veces que se notifico al usuario. Si es cero, significa que la fecha de expiración se extendió.

CertificationDate informa cuando se verificó el site.

LastContentChange, indica cuando se modificó el site (un documento, una lista, cualquier contenido)

Para poder actualizar los emails que se envian lea este link: http://msdn.microsoft.com/en-us/library/aa979730(v=office.14).aspx

4-Scope para buscar sólo documentos de librerías en Sharepoint 2010

Una vez que se crea un scope, se debe agregar una regla de query.

image

5-Workflows no disponibles después de realizar el upgrade de Sharepoint 2007 a 2010

Después de realizar el upgrade de SharePoint 2007 de la base de datos a SharePoint 2010 se observa que los Approval workflows de 2007no están disponibles/visibles para usuarios para crear nuevos workflows.

Ejecuta los siguientes pasos para habilitar 2007 workflows después del upgrade a SharePoint 2010:

· Ir a Site Actions ->Site Settings->Site Collection Administration->Site collection features

· Activar ‘SharePoint 2007 Workflows’

· Remueve el valor ‘none’ en <AssociationCategories>none</AssociationCategories> desde los siguientes files

    -14\template\features\ReviewWorkflows\Reviewapproval.xml

    -14\template\features\ReviewWorkflows\ReviewFeedback.xml

    -14\template\features\SignatureWorkflow\Signatures.xml

· Asocia el Workflow, ir a una librería,Library Settings, Add a Workflow, Seleccionar legacy Workflow.

Recuerda realizar un backup de los tres archivos modificados.

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

domingo, 8 de julio de 2012

Tips/Info #47 Sharepoint

1-Obtener información de un web part GUID o ID

SELECT DISTINCT D.SiteID, D.WebId, W.FullURL as WebURL, D.Id As DocumentId,
                D.DirName, D.LeafName, tp_ID
FROM       dbo.Docs D WITH (nolock) 
INNER JOIN dbo.Webs W WITH (nolock) ON D.WebID = W.Id
INNER JOIN dbo.WebParts WP WITH (nolock) ON D.Id = WP.tp_PageUrlID
WHERE WP.tp_ListId Is Null AND WP.tp_Type Is Null AND WP.tp_Flags Is Null
      AND WP.tp_BaseViewID Is Null AND WP.tp_DisplayName Is Null 
      AND WP.tp_Version Is Null
AND WP.tp_WebPartTypeId='ID del web part'

2-Ver y editar la configuración de Sharepoint Diagnostic Logging usando PowerShell

Lista los niveles de log configurados para un área específica:
get-sploglevel -identity "SharePoint Server:*" | format-table name, eventseverity, traceseverity

Setea el nivel de log para el área Sharepoint Server para que loguee logs de "Errores"
set-sploglevel -identity "SharePoint Server:*" -eventseverity Error -traceseverity Monitorable
Más información: http://technet.microsoft.com/en-us/library/ff607887

3-Algunas buenas prácticas para el logging de Sharepoint 2010

Cambiar la unidad donde se registra los logs. De forma predeterminada, el registro de diagnóstico está configurado para escribir los registros en la misma unidad y partición que SharePoint Server 2010 donde se instaló.Debido a que el registro de diagnóstico puede utilizar un montón de espacio en el disco y la escritura en los registros puede afectar el rendimiento del disco, usted debe configurar el registro para escribir en un disco que es diferente de la unidad en la  cual SharePoint Server 2010 se ha instalado.
   
Restringir el espacio de disco usado por logs. Por defecto, la cantidad de espacio en disco que puede utilizar el registro de diagnóstico no se limita. Por lo tanto, limitar el espacio de disco que utiliza el registro para asegurarse de que el disco no se llena, sobre todo si se configura el registro detallado para escribir eventos de nivel. Cuando la restricción del disco se agota, los registros más antiguos se eliminan y nuevos logs se registran.

Use la configuración de logging "Verbose" con cuidado. Puede configurar el registro de diagnóstico detallado para registrar eventos de nivel. Esto significa que el sistema registrará cada acción que lleva SharePoint Server 2010.El nivel Verbose puede utilizar espacio en el disco y afectar la unidad y el rendimiento del servidor. Usted puede utilizar detallado a nivel de registro para registrar un mayor nivel de detalle cuando se están haciendo cambios críticos y volver a configurar el registro para registrar sólo los eventos de más alto nivel después de realizar el cambio.

Regularmente haz backups de logs. Los registros de diagnóstico contiene datos importantes. Por lo tanto, que realizar copias de seguridad periódicamente para asegurarse de que estos datos se mantiene. Cuando se restringe el uso del espacio, los archivos de registro se borran automáticamente, a partir de los archivos más antiguos en primer lugar, cuando el umbral se cumple.

Habilitar el evento de "log flooding protection". Al habilitar esta opción se configura el sistema para la detección de eventos que se repiten en el registro de eventos de Windows. Cuando el mismo evento se registra en varias ocasiones, los eventos que se repiten son detectados y suprimidos hasta que las condiciones vuelven a un estado normal.

4-“The specified name is already in use” while activating site feature"

Revisar el log, y buscar el ID de la feature que lanza esta excepción.
Abrir el Sharepoint Manager (http://spm.codeplex.com/) y activar la feature, en la sección Web Features.

Figure1[3]

5-Verificar la consistencia de una actualización en Sharpeoint 2010

Si la información de la versión no es consistente a través de estos tres lugares, esto puede indicar que la actualización no se ha instalado correctamente. Esto puede provocar errores y otros problemas que pueden ser muy difíciles de solucionar.

1. La clave de registro (HKLM\Software\Microsoft\Office Server\14.0\BuildVersion)

2. La siguiente clave de registro (HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\{9014000

0-110D-0000-1000-0000000FF1CE}\DisplayVersion)

3. El archivo Microsoft.SharePoint.Portal.dll (\Program Files\CommonFiles\Microsoft Shared\Web Server Extensions\14\ISAPI\Microsoft.SharePoint.Portal.dll)

sábado, 7 de julio de 2012

Links útiles #42 Sharepoint

1-Mostrar web parts de charts con fuentes de datos de excel services

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

2-AppFabric y Sharepoint 2010

http://www.wictorwilen.se/Post/Improve-performance-of-your-SharePoint-2010-applications-using-Windows-Server-AppFabric-caching.aspx

3-Porqué LINQ to Sharepoint es malo para el desarrollo ?

http://blog.furuknap.net/why-linq-to-sharepoint-is-a-bad-idea

4-Recover data from an unattached content database

http://jmhogua.blogspot.com.ar/2012/07/recuperando-un-documento-de-una-base-de.html

5-Crear una feature en Visual Studio 2010

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

6-Crear una application page en Sharepoint 2010

http://salaudeen.blogspot.com.ar/2012/07/how-to-create-custom-application-page.html

7-Windows AZURE / Sharepoint 2010 / REST / JSONP

http://blogs.msdn.com/b/steve_fox/archive/2012/07/01/jsonp-sharepoint-online-amp-windows-azure.aspx

8-Sección del web.config relacionada a Sharepoint 2010

http://www.gavd.net/servers/sharepoint/sps_item.aspx?top=wps&itm=119

9-Crear un external content type mediante Visual Studio 2010

http://sharepointjourney.wordpress.com/2012/07/05/creating-an-external-content-type-using-the-visual-studio-2010-bdc-model-project-template-and-extend-the-external-content-type/

10-Rebuild de un web application (Nuevo web application misma base de contenido)

http://mmman.itgroove.net/2011/12/rebuilding-a-web-application-in-sharepoint-central-admin-data-non-destructive/

martes, 3 de julio de 2012

Links útiles #41 Sharepoint

1-Timer Jobs

http://www.codeproject.com/Articles/403323/SharePoint-2010-Create-Custom-Timer-Jobs

http://adicodes.com/timer-job-in-sharepoint-for-specific-site/

2-Feature: activación de dependencias

http://karinebosch.wordpress.com/2011/03/12/feature-activation-dependencies-in-visual-studio-2010/

3-ECMA ejemplos

http://adicodes.com/javascript-object-model-in-sharepoint-2010/

4-Actions Ribbon Sharepoint 2010

http://sharepointwings.blogspot.com.ar/2012/06/sharepoint-2010-ribbon-button.html

5-Enviar un mail con adjunto en un workflow de Sharepoint (actividad)

http://sharepointstuff.codeplex.com/releases/view/66258

6-Conectando un WCF service con Infopath

https://www.nothingbutsharepoint.com/sites/devwiki/articles/Pages/Connecting-a-WCF-Service-to-an-InfoPath-Form.aspx

7-Deployando Sharepoint en Azure Virtual Machines

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

8-Crear job en Sharepoint que escriba en Base de Datos

http://www.codeproject.com/Articles/403323/SharePoint-2010-Create-Custom-Timer-Jobs

9-Abrir PDF en el navegador en Office 365

http://sharepointontop.blogspot.com.ar/2012/06/office-365-open-pdf-files-in-browser.html

10-Habilitar & Deshabilitar alertas en Sharepoint 2010

http://code.msdn.microsoft.com/sharepoint/Enable-Disable-Alerts-for-cb765602

sábado, 23 de junio de 2012

Links útiles #38 Sharepoint 2010

1-Crear una feature en Sharepoint 2010

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

2-SSL para Sharepoint 2010

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

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

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

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

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

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

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

6-Health Analyzer y PowerPivot

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

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

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

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

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

9-Join de listas en Sharepoint

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

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

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

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

viernes, 22 de junio de 2012

Tips/Info #36 Sharepoint 2010

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

Darle permisos de “Browse Directories”

image_thumb_276EC742

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

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

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

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

3-Enviar alertas de una Vista

image

4-Forzar la activación de la feature Publishing

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

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

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

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

sábado, 16 de junio de 2012

Links útiles #33 Sharepoint 2010

1-Calculando la edad con jquery en Sharepoint 2010

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

2-Soporte multidioma de Sharepoint 2010

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

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

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

4-Extensión de Visual Studio 2010 para CAML

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

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

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

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

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

7-WCF Services y Jquery (CKSDev)

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

8-Sharepoint 2010 y Access

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

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

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

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

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

viernes, 8 de junio de 2012

Tips/info #29 Sharepoint 2010

1-Algunas cosas del media web part de Sharepoint 2010

Formatos de archivos que soporta: http://msdn.microsoft.com/en-us/library/cc189080(VS.95).aspx

No soporta flash.

Permite streaming de otros sitios

Es una feature de Publishing

Más info: http://blogs.msdn.com/b/sanjaynarang/archive/2010/05/20/media-web-part-in-sharepoint-2010-faq.aspx

2-Ejecutar todos los jobs del Health Analyzer mediante PowerShell

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

3-Debugging de timer de jobs

Hay veces que el debugging de atachar el proceso de w3wp no funciona, para ello se puede usar:

System.Diagnostics.Debugger.Launch();

Esta instrucción hará que salte el típico cuadro de diálogo que nos permite seleccionar el depurador que queremos adjunta a nuestro servicio. Evidentemente la podemos usar en aplicaciones que no sean servicios para tener la oportunidad de ajuntar un depurador cuando se ejecute determinado código

image_a7457bd8-76d6-49f4-b605-de1b14a3aaef

3-Export web con la seguridad y las últimas 3 versiones de los archivos

Export-SPWeb -Identity http://servidor/sitio -Path "C:\Backup.bak" –IncludeUserSecurity -IncludeVersions 3

IncludeUserSecurity: Conserva la configuración de seguridad del usuario.

IncludeVersions: Indica qué tipo de historial de versiones de archivos y elementos de lista debe incluirse en la exportación. Si el parámetro IncludeVersions no está presente, el cmdlet Export-SPWeb usará el valor 1 como predeterminado.

4-Cambiar los iconos de los tipos de archivos

Estos pasos se deben hacer en cada WFE, ir a :

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

    Subir el icono deseado.

    Después ir a

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

    y editar el archivo docIcon.xml, encontrar el elemento <ByExtension>, y cambiarle el atributo de la imagen con el nombre que subimos en el paso 1.

    <Mapping Key="pdf" Value="pdf-small.png"/>

    5-Borrar site huérfanos

    Ejecutar enumweb sobre todas las base de datos para checkear sites huérfanos.
    stsadm –o enumallwebs –databasename "databasename" –databaseserver

    stsadm -o deletesite -siteid "GUID" -databaseserver "SQLServerame" -databasename "databasename" –force

    6-Borrar web parts huérfanos

    Abrir la página en modo mantenimiento (?content=1) y borrar el web part huérfano (no usar Remove)

    The error "Missing server side dependencies" came up with an explanation saying "WebPart class [GUID] is referenced [x] times in the database [ContentDB], but is not installed on the current farm."

    Usar la siguiente consulta SQL para saber en que lugar está el web part huérfano.

    SELECT Id, SiteId, DirName, LeafName, WebId, ListId, tp_ZoneID, tp_DisplayName

    from AllDocs

    inner join AllWebParts on AllDocs.Id = AllWebParts.tp_PageUrlID

    where AllWebParts.tp_WebPartTypeID = 'GUID’;

    7-Agregar palabras custom al spell check (corrector ortográfico) de Sharepoint 2010

    Crear una document library a nivel del root site, es decir a nivel de site collection llamada ‘Spelling’.

    Crear un archivo .txt con términos custom que se agregaran al diccionarion– un término por línea y guardalo con el nombre “Custom Dictionary.txt”.

    Y subí el txt a la librería “Spelling”.

    8-Relink los forms de infopath después de migrar

  • Abrir la libreria de forms
  • Click “Modify Columns and Settings”
  • En la sección General Settings, click Relink forms to this form library.
  • En la vista presentada, seleccionar todos los forms que se quieren relinkear.
  • Click el botón Relink

  • También se puede usar el siguiente comando de powershell;


     Update-SPInfoPathAdminFileURL -find <OldUURLtoReplace> -replace <NewURL>


    9-Jquery y SPServices


    Si se usa una versión más grande de SPServices que 0.7.1a usarlo de la siguiente manera:


    jQuery(xData.responseXML).SPFilterNode(“z:row”)


    Sino usar:


    jQuery(xData.responseXML).find(“z\\:row’”)


    10-Desactivar una feature en todos los sitios de una site collection

    $url = "http://sharepoint_site"
    $sitio = Get-SPsitio $url
    foreach($web in $sitio.AllWebs)
    {
    $url = $web.Url
    if($url -ne $url){
    foreach($feature in Get-SPFeature -Web $url)
    {
    $featureName = $feature.DisplayName
    if($featureName -eq "NOMBRE_FEATURE")
    {
    "Desactivo al feature en la web"
    Disable-SPFeature -Identity NOMBRE_FEATURE -Url $url -Confirm:$false
    break;
    }
    }
    }
    }



    sábado, 2 de junio de 2012

    Tips/info #26 Sharepoint 2010

    1-Obtener la cantidad de items de una web application mediante powershell
    if ( (Get-PSSnapin -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue) -eq $null ) 
    {Add-PSSnapin Microsoft.SharePoint.Powershell}
    
    $SPWebApp = Get-SPWebApplication("http://intranet.contoso.com")
    
    $cantidad=0
    foreach ($SPSite in $SPWebApp.Sites)
    {
        Write-Host "Inicio de lectura de Site Collection: " $SPWeb.Title
        foreach ($SPWeb in $SPSite.AllWebs)
        {
            Write-Host "Inicio de lectura para sitio: " $SPWeb.Title
            foreach ($SPList in $SPWeb.Lists)
            {
                Write-Host "Inicio lectura de lista:" $SPList.Title " la misma tiene " $SPList.ItemCount 
                foreach ($SPListItem in $SPList.Items)
                {
                    $cantidad=$cantidad+1                
                }            
            }
            $SPWeb.dispose() 
        }
        $SPSite.dispose()
    }
    Write-Host "Cantidad de Items: " $cantidad
    
    2-Error al ingresar a  /_admin/ServiceJobDefinitions.aspx
    "Object Reference not set to an instance of an object" error.

    System.NullReferenceException: Object reference not set to an instance of an object.
    Microsoft.Office.Project.Server.Administration.ServerScheduledTimerJob.get_DisplayName()Microsoft.SharePoint.ApplicationPages.JobDefinitionsDataSourceView.AddRow(SPJobDefinition jd, DataTable table, DataSourceSelectArguments selectArguments)



    Podremos ver en el event viewer algunos errores relacionados a esta excepción, los cuales informan el ID del job.

    Ej: There was an exception loading job definition "Microsoft.Office.Project.Server.Administration.ServerScheduledTimerJob" (id "27ff4638-a131-4100-9796-2c72f29ec0a8"). Object reference not set to an instance of an object.

    Para borrarlo, se deberá ejecutar el siguiente comando

    $job = Get-SPTimerJob  27ff4638-a131-4100-9796-2c72f29ec0a8
    $job.delete()

    Hay casos que borrando todos los ID de los jobs que aparecieron en el Event Viewer, siga habiendo problemas al ingresar a ServiceJobsDefinitios.

    Para ello ejecutamos lo siguiente:

    $jobNulls = Get-SPTimerJob | Where-Object {$_.DisplayName -eq $null}

    $jobNulls

    Nos retornará algo así:

    Name                 Schedule             Last Run
    ----                 --------             --------
    PWASSP_7a8e8c16-3... daily between 01:... 1/1/0001 12:00:00 AM
    PWASSP_7a8e8c16-3... hourly between 0 ... 1/1/0001 12:00:00 AM
    PWASSP_7a8e8c16-3... daily between 00:... 1/1/0001 12:00:00 AM
    PWASSP_84eec303-4... daily between 00:... 1/1/0001 12:00:00 AM
    PWASSP_ce05f8e3-3... daily between 00:... 1/1/0001 12:00:00 AM
    PWASSP_f8d30a49-6... daily between 00:... 1/1/0001 12:00:00 AM

    De esta manera ejecutando lo siguiente:

    get-sptimerjob | where-object {$_.name -like "*PWASSP_84eec303-4*"} | format-list name, id

    Nos retornará el ID correspondiente, y podremos borra el job mediante el comando especificado más arriba.

    3-Iniciar un job mediante powershell

    get-sptimerjob | where-object {$_.name -like "EPM*"} | Start-SPTimerJob

    Si se desea ejecutar un job de un determinado web application

    $wa = Get-SPWebApplication $url

    Get-SPTimerJob | ?{$_.Name -match "EPM"} | ?{$_.Parent -eq $wa} | Start-SPTimerJob

    4-Error: There are no addresses available for this application

    Este error surge cuando se un servicio de Sharepoint está apagado.

    Ir a "Manage services on server" ver si los servicios necesario están corriendo. Si el error sige surgiendo mientras el servicio está corriendo, hace un iisreset.

    5-Error al deployar una solución: Error occurred in deployment step ‘Add Solution’: The EXECUTE permission was denied on the object ‘proc_putObject’, database ‘SharePoint_Config’, schema ‘dbo’.

    Hay que agregar el rol “SharePoint_Shell_Access” para el usuario sobre la base Sharepoint_Config

    image_thumb2

    6-Features en Sharepoint 2010

    SharePoint Features pueden estar al alcance de la Farm, Web Application, Site Collection, y Web Site dependiendo de la característica. El “Feature scope” es determinado seteando el atributo “Scope” en el elemento feature en el archivo feature.xml

    Ej:

    <Feature Id="G73C15DF-59ED-33be-8732-E6FFBW1439184" 
    Title="titulo de la Feature" 
    Description="Descripcion de la Feature" 
    Version="1.0.0.0" 
    Scope="Site"
    Hidden="false"> 
    </Feature>
    Tipos de elementos para features


    Elemento

    Descripción

    Scope

    Content Type

    Contiene un esquema de definición que puede reusarse y aplicarse a multiples definiciones de listas.

    Site

    Content Type Binding

    Content type binding habilita la provisión de un content type sobre una lista definida en el esquema Onet.xml. Listas definidas en el esquema Onet.xml no pueden ser modificadas de forma directa.

    Site

    Control

    Un control delegado contiene una registración para un control bien conocido instalado en la página. Este permite reemplazar controles existentes tales como Windows SharePoint Services search control, con otro control.

    Farm, WebApplication, Site, Web

    Custom Action

    Puede definir los siguientes tipos de acciones personalizadas:

    ·         Links para la página de configuración de Content type

    ·         Menú de acciones para el menú Drop-down que aparece para un item.

    ·        Botones de formularios para forms de  New, Edit, o Display

    ·         Link para la página Site Settings.

    Farm, WebApplication, Site, Web

    Custom Action Group

    Define un grupo de custom actions

    Farm, WebApplication, Site, Web

    Document Converter

    Contiene la definición de un convertidor de documentos.Un convertidor de documentos es un archivo ejecutable personalizado que toma un documento de un tipo de archivo, y genera una copia de ese archivo en otro tipo de archivo.

    WebApplication

    Feature/Site Template Association

    Enlaza una característica (feature) a una configuración de definición de sitio para que los sitios creados se doten de la característica.

    Farm, WebApplication, Site

    Field

    Contiene una definición de campo que se puede reutilizar entre varias listas.

    Site

    Hide Custom Action

    Oculta una acción personalizada (custom action) que se ha añadido a través de otra acción personalizada.

    Farm, WebApplication, Site, Web

    List Instance

    Provisiona un sitio de SharePoint con una lista específica de datos.

    Site, Web

    List Template

    Provisiona una definición de lista o de la plantilla, que define una lista que puede ser suministrada en un sitio de SharePoint.

    Site, Web

    Module

    Contiene un conjunto de archivos con los cuales provisionan sitios.

    Site, Web

    Receiver

    Contiene el registro de un manejador de eventos

    Web

    Workflow

    Contiene la definición para un workflow en una lista.

    Site

    jueves, 31 de mayo de 2012

    Tips/info #25 Sharepoint 2010

    1-Actualizar los mails de las solicitudes de acceso para todos los sites de un web application mediante powershell

    $webapp = Get-SPWebApplication "http://webapplication"
    foreach($site in $webapp.Sites)
    {
    foreach($web in $site.AllWebs)
    {
    Write-Host $web.url
    if(!$web.HasUniquePerm)
    {
    Write-Host "La solicitud de acceso hereda del elemento padre"
    }
    else
    {
    $web.RequestAccessEmail = "emailrequest@emailHost.com"
    $web.Update()
    Write-Host " Email cambiado"
    }
    }
    }




    2-Conducta de comportamiente para abrir documentos : open in the client application


    DocShare3


    $site=Get-SPSite "http://sitio/"
    $web=$site.RootWeb
    $docLibrary =$web.Lists["libreria"]
    # abre en el cliente
    docLibrary.DefaultItemOpen = DefaultItemOpen.PreferClient;
    $docLibrary.Update()


    Se puede usar:


    // Abrir en el navegador
    docLibrary.DefaultItemOpen = DefaultItemOpen.Browser;

    // usa la configuración default
    docLibrary.DefaultItemOpenUseListSetting = false;

    3-Error: The web application at [URL] 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.


    Agrega la [url] que menciona el error al alternate access mapping del web application correspondiente.


    4-Site collection bloquear su contenido


    Para setear un Lock (bloqueo):
    stsadm -o setsitelock -url <Site-collection-url> -lock <Lock-Type>


    Para verificar los bloqueo actuales:
    stsadm -o getsitelock -url <Site-collection-url>


    donde<Lock-Type> puede tener los siguientes valores:


  • none  - Remueve todos los bloqueos
  • noadditions  - Previene de agregar contenido
  • readonly – No puede agregar/actualizar/borrar contenido
  • noaccess – No se puede ver el sitio de ninguna manera

    5-Algunas funciones útiles de SPServices


    Columnas de tipo personas o grupo, o columnas de tipo lookup


    Al usar estos campos, la información que se retorna es de la siguiente manera:  110;#4540152 o 16;#Departamento de Sistemas


    Podrás usar la siguiente función:

    function AjustarOWS(value){
    stringValue = value.indexOf(";#");
    salida = value.substring(stringValue +2);
    theLen = salida.length;
    if (theLen < 8){salida = "Not Listed"}else{salida}
    return salida;
    }



    Se podrá usar con SPServices de la siguiente manera:

    var depSistemas = ajustarOWS($(this).attr("ows_DepartamentoSistemas"));

    6-Error al mover o copiar una document set vía programación: DocID: Site prefix not set.

    $site = Get-SPSite http://host/sites/yoursite
    $properties = $site.RootWeb.Properties

    if ($properties["docid_msft_hier_siteprefix"] -eq $null)
    {
    $properties["docid_msft_hier_siteprefix"] = ""
    $properties.Update()
    }
    7-Remover una sección inválida del web.config mediante PowerShell

    $webapplication = Get-SPwebapplicationlication http://url de la web application
    $modification = $webapplication.WebConfigModifications | where { $_.Name -eq "<el nombre de la key" }
    $webapplication.WebConfigModifications.Remove($modification)
    $webapplication.Update()


    8-Error: Object Reference not set to an instance of an object with Timer Job Definitions al tratar de ingresar a http://<CA URL>/_admin/ServiceJobDefinitions.aspx


    El error nos informa en el event viewer:


    “There was an exception loading job definition "Microsoft.Office.Project.Server.Administration.ServerScheduledTimerJob" (id "r3u7f3gd-721b-5dcd-1135-fb3456e39425"). Object reference not set to an instance of an object.”


    abro una consola de powershell y hago lo siguiente:



    • get-sptimerjob | where-object {$_.name -like "PWA*"} | format-list name, id
    • disable-sptimerjob r3u7f3gd-721b-5dcd-1135-fb3456e39425

    9-Comandos de powershell para trabajar con features de Sharepoint


  • #Feature mostrada por nombre alfabeticamente
    Get-SPFeature | Sort -Property DisplayName


    #Feature mostrada por nombre alfabeticamente y agrupada por scope
    Get-SPFeature | Sort -Property Scope,DisplayName | FT -GroupBy Scope DisplayName,Id


    #exportar el resultado
    Get-SPFeature | Sort -Property Scope,DisplayName | FT -GroupBy Scope DisplayName,Id > c:\resultados.txt


    #Features del sitio correspondiente  ordenada por displayname y agrupadas por displayname y ID
    Get-SPFeature -Site http://sitecollectionurl | Sort DisplayName | FT DisplayName,Id


    10-No aparece la opción de “Spell Checker” en la ribbon


    Hay que activar la feature SharePoint Server Publishing Infrastructure a nivel del site collection


    SpellChecker_thumb



    11-Asignar permisos mediante client object


    http://alancejacob.wordpress.com/2012/05/30/programmatically-assign-permission-to-sharepint-list-for-specific-users/


    12-Modificar las columnas created by (creado por) y modified by (modificado por) con Client Object


    http://alancejacob.wordpress.com/2012/05/30/add-listitem-in-created-bymodified-by-field-sharepoint-2010-client-object-model/


    13-Obtener un icono de la carpeta 14 con SPUtility


    http://blogs.msdn.com/b/knackpoint/archive/2012/05/13/fetching-document-file-icons-in-sharepoint.aspx