Mostrando entradas con la etiqueta Content Types. Mostrar todas las entradas
Mostrando entradas con la etiqueta Content Types. Mostrar todas las entradas

miércoles, 22 de octubre de 2014

Error al borrar un content type “The content type is in use.”

Al trata de borrar un content type, me lanzaba el error: Sorry, something went wrong, The content type is in use.

image

Para poder eliminar un content type, revisa lo siguiente:

  • Papelera de reciclaje: busca en la papelera (primer y segundo nivel) si hay algún item que tenga relación con el content type.

_layouts/15/AdminRecycleBin.aspx

_layouts/15/AdminRecycleBin.aspx?View=2

  • Listas y Librerías: busca si no hay alguna lista o librería que tenga asociado este content type.

image

domingo, 29 de junio de 2014

Borrar un content type huérfano (Delete an “Orphan” Content Type)

IMPORTANTE, LEER ANTES DE HACER CUALQUIER COSA: NO está soportado modificar la bases de Sharepoint. Por lo tanto no realices esto en PRD, ya que Microsoft no te dará soporte. Si tienes el problema que describo contacta al soporte premier de MS el cual te orientará en la solución.

Al tratar de activar la feature de “Report Server Integration Feature”

image

Me lanzaba el error:

image

The content type with Id 0x0101007DFDDF56F8A9492DAA9366B83A95B3A0 defined in feature {e8389ec7-70fd-4179-a1c4-6fcb4342d7a0} was found in the current site collection or in a subsite

El ID del content type puede ser cualquiera de los tres a continuación:

0x010100C3676CDFA2F24E1D949A8BF2B06F6B8B (Report Builder Report)

0x010100D8704AF8ED734F4088724751E0F2727D (Report Builder Model)

0x0101007DFDDF56F8A9492DAA9366B83A95B3A0 (Report Data Source)

Entonces lo primero que hice fue forzar la activación de la feature via powershell

Enable-SPFeature -Identity E8389EC7-70FD-4179-A1C4-6FCB4342D7A0 -Url http://url_sitecollection –force

Este comando me activaba la feature pero no podía ver los content types de Reporting Services en la sección de content types del site collection o del web site

image

.image

Trate de desactivar de nuevo la feature de “Report Server Integration Feature” y activarla de nuevo desde la UI, pero me seguía tirando el mismo error.

A continuación trate de ejecutar un script de powershell para borrar los content types de la feature en todas las librerías donde estaban activado (dos scripts diferentes, uno por ID y dedicado a un website y otro por web application completo). Ejecutar estos scripts para cada content type de la feature de Reporting Services

Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue
get-spweb http://url_sitecollection
$spcontenttypeid = New-Object Microsoft.SharePoint.SPContentTypeId '0x010100C3676CDFA2F24E1D949A8BF2B06F6B8B'
$ct = $web.ContentTypes[$spcontenttypeid]
$usages = [Microsoft.Sharepoint.SPContentTypeUsage]::GetUsages($ct)
foreach ($usage in $usages) {
    Write-Host $usage.Url
}

Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue
$targetCT = "Report Builder Report"
$targetWebApp = "url_WEBAPPLICATION"
$webapp = Get-SPWebApplication $targetWebApp
$sites = $webapp.Sites
foreach ($site in $sites)
{
foreach ($web in $site.AllWebs)
    {
        foreach ($ct in $web.ContentTypes)
        {
            if($ct.Name -eq $targetCT)
            {
            Write-Host $targetCT is defined as a content type in $web.Url
            }
        }

        foreach ($list in $web.Lists)
        {
            foreach ($listct in $list.ContentTypes)
            {
                if($listct.Name -eq $targetCT)
                {
                Write-Host $targetCT is defined in list $list in $web.Url
                }
            }
        }
        Write-Host
    }
}

Los dos scripts me decían que se estaban usando en una librería, pero al querer entrar a la librería no veía los content types.

image

Entonces a continuación borré la librería (desde las dos papeleras de reciclaje, usuario y del site collection). Pero me seguía diciendo que estaba siendo usada.

Cuando en Sharepoint te deci que algo está usado, y no lo ves, en general es porque algún componente quedo huérfano.Entonces revise la base de content types de la content database donde está el site collection (OJO, RECUERDA EL WARNING DEL PRIMER PARRAFO, NO ESTA SOPORTADO CONSULTAR LA BD DE SHAREPOINT NI MODIFICARLA, pero esto es un ejemplo para entender las cosas.)

Ejecuté la siguiente consulta de SQL:

SELECT [SiteId] ,[Class] ,[Scope] ,[ContentTypeId] ,[Version] ,[NextChildByte] ,[Size] ,[Definition] ,[ResourceDir] ,[SolutionId] ,[IsFromFeature] ,[DeleteTransactionId] FROM [Intra_ContentDB1].[dbo].[ContentTypes]
Recuerda hacer esto para cada content type.image

Vi que la columna Definition estaba con valor NULL, esto significa que esos content types NO tenían una definición. Ej: de definición del content type 0x010100C3676CDFA2F24E1D949A8BF2B06F6B8B

<ContentType ID="0x010100C3676CDFA2F24E1D949A8BF2B06F6B8B" Name="$Resources:ReportServerResources,ReportBuilderContentTypeName;" Group="$Resources:ReportServerResources,ReportServerContentTypeGroup;" Description="$Resources:ReportServerResources,ReportBuilderContentTypeDesc;" RequireClientRenderingOnNew="FALSE" Version="1" FeatureId="{e8389ec7-70fd-4179-a1c4-6fcb4342d7a0}"><Folder TargetName="_cts/Report Builder Report" /><FieldRefs><FieldRef ID="{c042a256-787d-4a6f-8a8a-cf6ab767f12d}" Name="ContentType" /><FieldRef ID="{5f47e085-2150-41dc-b661-442f3027f552}" Name="SelectFilename" /><FieldRef ID="{8553196d-ec8d-4564-9861-3dbe931050c8}" Name="FileLeafRef" Required="TRUE" /><FieldRef ID="{8c06beca-0777-48f7-91c7-6da68bc07b69}" Name="Created" Hidden="TRUE" /><FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" Required="FALSE" ShowInNewForm="FALSE" ShowInEditForm="TRUE" /><FieldRef ID="{28cf69c5-fa48-462a-b5cd-27b6f9d2bd5f}" Name="Modified" Hidden="TRUE" /><FieldRef ID="{822c78e3-1ea9-4943-b449-57863ad33ca9}" Name="Modified_x0020_By" Hidden="FALSE" /><FieldRef ID="{4dd7e525-8d6b-4cb4-9d3e-44ee25f973eb}" Name="Created_x0020_By" Hidden="FALSE" /></FieldRefs><DocumentTemplate TargetName="/_layouts/15/ReportServer/rs.rsapplication" /><XmlDocuments><XmlDocument NamespaceURI="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms">PEZvcm1UZW1wbGF0ZXMgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vc2hhcmVwb2ludC92My9jb250ZW50dHlwZS9mb3JtcyI+PERpc3BsYXk+RG9jdW1lbnRMaWJyYXJ5Rm9ybTwvRGlzcGxheT48RWRpdD5Eb2N1bWVudExpYnJhcnlGb3JtPC9FZGl0PjxOZXc+RG9jdW1lbnRMaWJyYXJ5Rm9ybTwvTmV3PjwvRm9ybVRlbXBsYXRlcz4=</XmlDocument></XmlDocuments></ContentType>

Entonces lo que hice es copiar el mismo content type en las filas donde estaban en null. Ej: este es  el update para el content type  0x0101007DFDDF56F8A9492DAA9366B83A95B3A0. IMPORTANTE: hacer lo mismo para los demás content types.

UPDATE [Intra_ContentDB1].[dbo].[ContentTypes] SET Definition = '<ContentType ID="0x010100C3676CDFA2F24E1D949A8BF2B06F6B8B" Name="$Resources:ReportServerResources,ReportBuilderContentTypeName;" Group="$Resources:ReportServerResources,ReportServerContentTypeGroup;" Description="$Resources:ReportServerResources,ReportBuilderContentTypeDesc;" RequireClientRenderingOnNew="FALSE" Version="1" FeatureId="{e8389ec7-70fd-4179-a1c4-6fcb4342d7a0}"><Folder TargetName="_cts/Report Builder Report" /><FieldRefs><FieldRef ID="{c042a256-787d-4a6f-8a8a-cf6ab767f12d}" Name="ContentType" /><FieldRef ID="{5f47e085-2150-41dc-b661-442f3027f552}" Name="SelectFilename" /><FieldRef ID="{8553196d-ec8d-4564-9861-3dbe931050c8}" Name="FileLeafRef" Required="TRUE" /><FieldRef ID="{8c06beca-0777-48f7-91c7-6da68bc07b69}" Name="Created" Hidden="TRUE" /><FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" Required="FALSE" ShowInNewForm="FALSE" ShowInEditForm="TRUE" /><FieldRef ID="{28cf69c5-fa48-462a-b5cd-27b6f9d2bd5f}" Name="Modified" Hidden="TRUE" /><FieldRef ID="{822c78e3-1ea9-4943-b449-57863ad33ca9}" Name="Modified_x0020_By" Hidden="FALSE" /><FieldRef ID="{4dd7e525-8d6b-4cb4-9d3e-44ee25f973eb}" Name="Created_x0020_By" Hidden="FALSE" /></FieldRefs><DocumentTemplate TargetName="/_layouts/15/ReportServer/rs.rsapplication" /><XmlDocuments><XmlDocument NamespaceURI="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms">PEZvcm1UZW1wbGF0ZXMgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vc2hhcmVwb2ludC92My9jb250ZW50dHlwZS9mb3JtcyI+PERpc3BsYXk+RG9jdW1lbnRMaWJyYXJ5Rm9ybTwvRGlzcGxheT48RWRpdD5Eb2N1bWVudExpYnJhcnlGb3JtPC9FZGl0PjxOZXc+RG9jdW1lbnRMaWJyYXJ5Rm9ybTwvTmV3PjwvRm9ybVRlbXBsYXRlcz4=</XmlDocument></XmlDocuments></ContentType>' WHERE ContentTypeId = 0x010100C3676CDFA2F24E1D949A8BF2B06F6B8B and Definition is null
Después de ejecutar estas queries para los tres content  types, ya me apareció en la sección de content types los tipos de contentido y en la librería donde se estaban usando y no los veía.

image


image

jueves, 6 de diciembre de 2012

Tips Info #83 Sharepoint 2010

1-Agrupar por content type en Sharepoint 2010

Edita el web part, agregando lo siguiente:

screen_2

2-Verificar si se necesita ejecutar un upgrade con psconfig

Ejecutar el siguiente comando de powershell: (get-spserver $env:computername).NeedsUpgrade

3-Obtener la lista de todos los usuarios de un web application

Get-SPWebApplication http://webapplication:puerto | Get-SPSite | Get-SPWeb | Get-SPUser

4-Obtener el tamaño de las bases de Sharepoint 2010 en MB

Get-SPDatabase | Sort-Object disksizerequired -desc | Format-Table Name, @{Label ="Size in MB"; Expression = {$_.disksizerequired/1024/1024}}

5-Algunos tips para considerar al unir un server a la granja de Sharepoint

  • La key de la licencia debe ser la misma para todos los servers de la granja
  • La cuenta que ejecuta Farm Configuration Wizard debe ser la Farm Account.
  • Si usas alias para los sql server, recuerda que cada server debe tener el mismo alias (sino tendrás problemas de conexión a base de datos)
  • Verifica si los nuevos servers se pueden  comunicar con los demás servers

miércoles, 26 de septiembre de 2012

Tips/Info #72 Sharepoint 2010

1-Agregar el content type “Link a Document” en un Document Set

image001

Ir la configuración del Document Set:

image005

image006

2-Obtener la password de los app pools en Windows Server 2008

Abro una línea de comandos (cmd) con permisos de administrador e ir hasta la carpeta C:Windows/system32\inetsrv\

A continuación escribo lo siguiente:

appcmd.exe list apppool “Nombre del App Pool" /text:ProcessModel.Password
Para saber los nombres de los app pool, puedes hacerlo mediante el siguiente comando: appcmd list wp
3-Ember un pdf en una página de Sharepoint 2010
Agregar un content editor y agregar el siguiente pedazo de código:
<script type="text/javascript" src="scripts/pdfobject.js"></script>
<div id="pdf1" style="width:500px; height:375px;"></div>
<script type='text/javascript'>
var myPDF = new PDFObject({
url: 'ConferenceGuide.pdf',
pdfOpenParams: {
view: 'Fit',
scrollbars: '0',
toolbar: '0',
statusbar: '0',
navpanes: '0' }
}).embed('pdf1');
</script>
La librería que se usa es la siguiente: http://pdfobject.com/
image_thumb
image_thumb1

4-Excluir cuentas de usuarios en la sincronización de perfiles


El atributo userAccountControl es usado para almacenar las opciones del objecto user en el AD. Esta propiedad informa el estado de la cuenta (disabled, bloqueada, etc)


Ir al Central Administration –> Manage Service Applications –> User Profiles service application –> Manage Synchronization Connections .Click sobre la conexión,  Edit Connection Filters


image_thumb (1)


Las posibles opciones para el atributo son:


image_thumb_4


En este link encontrará más información: http://www.harbar.net/archive/2011/02/22/323.aspx


5-Usar la columna rating en una librería


Ir a List Settings, y ingresar a la sección Rating settings


Rating_2


En esta sección, habilitar el rating para items.


Rating_3


Votar sobre un item.


Rating_4


Para que los resultados de los rating se consoliden, deberás tener iniciado el User Profile Service iniciado.





image_thumb


A continuación deberás configurar los dos siguientes jobs para consolidar ratings. Es recomendable que los dos jobs tengan un mismo intervalo de ejecución.


image_thumb1

viernes, 24 de agosto de 2012

Tips/Info #61 Sharepoint 2010

1-Promoviendo propiedades desde Infopath

Ir a File/Form Options

082012_0141_InfoPathSta1

Después seleccionar Property Promotion

082012_0141_InfoPathSta2

Y a continuación elegir los campos que querés promocionar como propiedades.

082012_0141_InfoPathSta3

Por último, publicar el formulario.

2-Deshabilitar el icono de ”New” en Sharepoint 2010

072609_2010_SetDuration11

$webApp = Get-SPWebApplication http://sharepoint_site
$webApp.DaysToShowNewIndicator = "0"
$webApp.Update()

3-Agregar “Link to a Document ” en una librería de Sharepoint 2010

Habilitar content type específico

image_thumb8

Agregar el content type ”Link to a Document”

image_thumb10

image_thumb6

4-Funcíón del archivo DocIcon.xml

Este archivo se encuentra en cada servidor frontend de SharePoint. Su propósito es proveer una manera de especificar el icono que se muestra en un tipo de archivo que se haya subido a una lista o librería y opcionalmente especifica un control ActiveX que será usado para abrir el archivo y el texto que aparece en el menú dropdown para editar el item (“Edit in Application name”)

Un error típico, que informa que falta una configuración en este archivo es el siguiente:

image_thumb

Recuerde tener sincronizado este archivo en todos los servidores frontend (una buena manera es usar una feature a nivel de farm)

La imagen que se defina en el campo value, debe estar en la siguiente carpeta:%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\IMAGES

Definición del esquema de este archivo: http://msdn.microsoft.com/en-us/library/aa979708.aspx

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

 <ByExtension>
<Mapping
Key="asax"
Value="icasax.gif" />
<Mapping
Key="ascx"
Value="icascx.gif" />
<Mapping
Key="asmx"
Value="icasmx.gif" />
...
<Mapping
Key="mpp"
Value="icmpp.gif"
EditText="Microsoft Office Project"
OpenControl="SharePoint.OpenDocuments" />
<Mapping
Key="mps"
Value="icmps.gif" />
<Mapping
Key="mpt"
Value="icmpt.gif"
EditText="Microsoft Office Project"
OpenControl="SharePoint.OpenDocuments" />
...
</ByExtension>
5-Error al deployar una solution (en el paso de ‘Add Solution’): Error: Cannot add the specified assembly to the global assembly cache: mi_libreria.dll.
Tendrás que desinstalar manualmente la dll o assembly de la GAC, y reiniciar el Visual Studio. En el caso que sigas con problemas, reiniciar el owstimer y haz un iisreset.

miércoles, 27 de junio de 2012

Links útiles #40 Sharepoint 2010

1-Crear custom content type vía Visual Studio 2010

http://www.c-sharpcorner.com/UploadFile/54db21/content-types-in-sharepoint-2010-via-om/

2-Crear lista mediante Visual Studio 2010

http://www.c-sharpcorner.com/UploadFile/54db21/list-creation-in-sharepoint-2010-programmatically-using-vs-2/

3-Aplicar themes mediante una solución

http://www.c-sharpcorner.com/UploadFile/54db21/themes-in-sharepoint-2010-programmatically-using-vs-2010/

http://www.sharepointusecases.com/index.php/2010/09/automatically-apply-theme-to-a-sharepoint-foundation-2010-subsite/

4-Web Services y Business Connectivity Services

http://www.c-sharpcorner.com/UploadFile/Roji.Joy/connecting-to-a-web-service-using-business-connectivity-serv/

5-Deployar assemblies a global assembly

http://www.fewlines4biju.com/2012/06/deploy-assembly-to-globalassemblycache.html

6-Leer items de una lista con ECMA

http://sprider.org/2011/06/12/using-the-ecmascriptjavascript-client-object-model-to-read-lists-in-sharepoint-2010/

7-Ocultar la opción de upload múliplte para una document library particular

http://preachingsharepoint.blogspot.co.nz/2012/06/hide-multiple-upload-option-for.html

http://villpates.wordpress.com/2012/05/24/hide-multiple-upload-link-in-sharepoint-2010/

8-Subir un archivo mediante client object

http://ahujadhiraj.wordpress.com/2012/06/19/upload-a-image-in-the-document-library-and-update-its-metadata-using-client-object-model/

9-SPSecurityTrimmedControl: control que permite segmentar el contenido dependiendo de los permisos.

http://msdn.microsoft.com/en-us/library/ms476454

Algunos miembros útiles:

PermissionsString: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spbasepermissions.aspx

PermissionContext :http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.spsecuritytrimmedcontrol.permissioncontext.aspx

PermissionMode: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.spsecuritytrimmedcontrol.permissionmode.aspx

AuthenticationRestrictions: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.spsecuritytrimmedcontrol.authenticationrestrictions.aspx

10-Obtener el último ID de un item creado

http://sharepointkunskap.wordpress.com/2012/06/20/three-ways-to-get-the-id-of-last-created-splistitem/

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

lunes, 28 de mayo de 2012

Links útiles #25 Sharepoint 2010

1-Deshabilitar drag and drop de eventos en calendarios Sharepoint 2010 (SP.UI.ApplicationPages.CalendarContainerFactory.create)

http://spblog.net/post/2012/01/29/How-to-disable-drag-and-drop-events-in-calendar.aspx

2-Obtener la fecha seleccionada de un calendario Sharepoint 2010

http://franknezrick.blogspot.com.ar/2012/03/get-selected-datetime-within-sharepoint.html

3-Obtener el ID del evento que se clickea en un calendario

http://mhusseini.wordpress.com/2012/05/18/handle-clicks-on-calendar-items-in-sharepoint-2010-with-javascript/

4-Restringir a que usuarios borren content types

http://alancejacob.wordpress.com/2012/05/18/restrict-users-to-edit-or-delete-contenttype-fields-from-a-list-in-sharepoint-eventreceiver/

5-Conectar dos web parts

http://www.sharepointkings.com/2012/05/connectable-web-parts-in-moss.html

6-Tips para trabajar con los calendarios

http://digitalmacgyver.wordpress.com/2012/05/24/simple-tips-for-working-with-sharepoint-calendars/

7-Mostrar el historial de versiones en la página DispForm

http://benmjamin.wordpress.com/2012/05/17/sharepoint-2010-list-item-version-history-on-display-form/

8-Mostrar campos en el Content Query

http://www.sharepointblog.co.uk/2012/05/fields-to-display-in-content-query-web-part/

9-Diálogos modales en Sharepoint 2010

http://saifalmaluk.wordpress.com/2012/05/18/sharepoint-2010-modal-dialog-pop-up/

http://spblog.net/post/2012/04/28/SharePoint-2010-modal-dialog-extensions.aspx

http://franknezrick.blogspot.com.ar/2012/03/refresh-parent-showmodaldialog.html

10-Crear un custom template con Visual Studio 2010

http://dotnetfollower.com/wordpress/2012/05/sharepoint-how-to-create-a-custom-master-page/

11-Crear servicio de aplicación en Sharepoint 2010

http://www.sharepointblog.co.uk/2012/05/creating-custom-sharepoint-2010-service-applications-and-consumers/

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

12-Nivo Slider Web Part

http://nivowebpart.codeplex.com/releases/view/88481

13-Kentico para Sharepoint

http://devnet.kentico.com/docs/devguide/index.html?sharepoint_overview.htm

14-PowerShell para Office 365

http://blog.powershell.no/2011/05/09/administering-microsoft-office-365-using-windows-powershell/

http://technet.microsoft.com/en-us/magazine/hh750396.aspx

http://onlinehelp.microsoft.com/office365-enterprises/hh124998.aspx

15-Deploy custom page aspx mediante una sandbox solution

http://www.akruratechnologies.com/2012/05/14/deploy-custom-aspx-page-with-sandbox-solutions-sharepoint-2010/

16-Web Part SkyDrive para Sharepoint 2010

http://skydriveconnector.codeplex.com/

17-Comparación entre Exchange public folders y Sharepoint

http://sharepointadmin4u.wordpress.com/2012/05/22/exchange-public-folder-vs-sharepoint-why-should-you-migrate-your-exchange-public-folders-to-sharepoint/

18-SPQuery y problema con las fechas (datetime)

http://sladescross.wordpress.com/2012/05/28/spquery-iso-datetime/

sábado, 19 de mayo de 2012

Tips/Info #23 Sharepoint 2010

1-Search content sources disponibles para crawl

  • Sitios de Sharepoint
  • Sitios webs
  • Files Shares
  • Carpetas públicas de Exchange
  • Línea de datos de  negocio
  • Repositorio Custom

    2-Error al borrar una solución sandbox

    Si tienes el error: "Unable to access web scoped feature Id: GUID because it references a non-existent or broken web..."

    Ve a la papelera de reciclaje y borra la solucíón sandbox

    3-Setear la ventana de horario para consultas extensas con PowerShell

  • 6038.image_thumb_04B1D8DE

    $hour = "22"

    $minute = "30"

    #la ventana horario, de 0 a 24

    $duration = "16"

    Get-SPWebApplication | % { $_.UnthrottledPrivilegedOperationWindowEnabled = $true; $_.SetDailyUnthrottledPrivilegedOperationWindow($hour, $minute, $duration); $_.Update() }

    4-Ocultar/Mostrar una columna en los formularios New/Edit usando powershell

    $webUrl = Get-SPWeb http://spssite

    $listName = $web.Lists["Tasks"]

    $columnName = $list.Fields["date"]

    Si deseas ocultar la columna en Edit Form entonces usa:

    $columnName.ShowInEditForm = $false

    Si deseas mostrar la columna en New Form entonces usa:

    $columnName.ShowInNewForm=$false

    $columnName.Update()

    $listName.Update()

    $webUrl.Dispose()

    5-Habilitar la búsqueda de contenttypes en el search de Sharepoint 2010

    Set-SPEnterpriseSearchMetadataManagedProperty -Identity ContentType -SearchApplication "Search Service Application" -EnabledForScoping $true
    contenttype
    6-Habilitar Document Conversion 

    En el Central Administration se debe activar los siguientes servicios:


    • Document Conversions Load Balancer Service: gestiona la disponibilidad de los convertidores de documentos y tiene que ponerse en marcha en primer lugar.
    • Document Conversions Launcher Service: pone en marcha la conversión de documentos en unservidor de aplicaciones.

    7-Excluir carpetas del antivirus



    • %ProgramFiles%\Microsoft Office Servers\14.0\Data
    • %ProgramFiles%\Microsoft Office Servers\14.0\Logs
    • %ProgramFiles%\Microsoft Office Servers\14.0\Bin
    • %ProgramFiles%\Microsoft Office Servers\14.0\Synchronization Service
    • %ProgramFiles%\Common Files\Microsoft Shared\Web Server Extensions
    • %windir%\Microsoft.NET\Framework\v2.0.xxxx\Temporary ASP.NET Files
    • %systemroot%\system32\inetsrv

    Algunos archivos que no se deberían analizar:


    w3wp.exe, owstimer.exe, mssearch.exe, inetinfo.exe.



    En los servidores SQL, no se deberían escanear los archivos .mdf y ldf


    8-Test-SPContentDatabase


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


    Verifica por lo siguiente:



    • Faltan WebTemplates
    • Faltan features
    • Orphaned sites
    • Falta setup files
    • Faltan Webparts
    • Faltan Event reveiver assemblies

    http://blogs.msdn.com/b/subbu/archive/2012/05/19/little-more-about-test-spcontentdatabase-cmdlet.aspx


    http://blogs.msdn.com/b/subbu/archive/2012/05/20/fixing-test-spcontentdatabase-warnings.aspx


    9-Error: An error occurred during the processing of xxxxx. Code blocks are not allowed in this file.


    Sharepoint no permite código de servidor (runat=”server”) que se ejecute en la página indicada. Para que pueda ejecutarlo, debe editar el web.config


    <PageParserPaths>
    <!—Se permite a un sólo archivo -->
    <PageParserPath VirtualPath="/mi pagina.aspx" CompilationMode="Always"AllowServerSideScript="true" />
    <!—Se permite de forma global: -->
    <PageParserPath VirtualPath="/*" CompilationMode="Always" AllowServerSideScript="true" />
    <!—Se permite de forma global  dentro de un subsite -->
    <PageParserPath VirtualPath="/misitio/*" CompilationMode="Always"AllowServerSideScript="true" />
    </PageParserPaths>

    En VirtualPath definimos en cual directorio queremos habilitar la propiedad que las páginas puedan interpretar código.

    viernes, 27 de abril de 2012

    Tips/info #16–Sharepoint 2010

    1-La opción de “New Folder” aparece grisada

    --Vaya a List settings

    --Después a Advanced settings

    -- Seleccione Yes la opción de “Make “New Folder” command available?”

    2-Content Type Hub

    Los tipos de contenido también se puede almacenar en un concentrador de tipo de contenido (CONTENT TYPE HUB) para la gestión centralizada de los tipos de contenido a través de las colecciones de sitios y aplicaciones Web. Esta característica utiliza el servicio de metadatos administrados y permite a las colecciones de sitios suscribirse a cualquier tipo de contenido publicado. Cualquier cambio en los tipos de contenido publicados se actualizará en las colecciones de sitios de suscripción.

    3-Actualizar un archivo de css en Sharepoint desde la carpetas layouts (problemas de cache)

    Al cambiar un archivos css, js, o images de la carpeta _layouts [14 hive\Layouts] a veces no se refresca de forma automática en todos los clientes. Una manera rápida para testing es hacer un hard refresh (CRTL + F5) pero para ambientes productivos, podemos hacer lo siguiente:

    Para evitar browser caching de un archivo incluso después de ser actualizado, simplemente cambiar el fomato de la URL:

    <link href="/_LAYOUTS/miestilo.css" rel="stylesheet"type="text/css">link>

    <script src="/_LAYOUTS/miscript.js" type="text/javascript">script>

    A

    <link href="/_LAYOUTS/miestilo.css?rev=<build-version>"rel="stylesheet" type="text/css">link>

    <script src="/_LAYOUTS/miscript.js?rev=<random number>"type="text/javascript"> script>

    Otra posibilidad es usar

    SPUtility.MakeBrowserCacheSafeLayoutsUrl(RelativeUrl, false);
    protected override void CreateChildControls()
    {
    string cacheSafeUrl =
    SPUtility.MakeBrowserCacheSafeLayoutsUrl(RelativeUrl, false);

    ScriptLink scriptLink = new ScriptLink
    {
    Language = "javascript",
    Localizable = false,
    Name = cacheSafeUrl,
    Version = 4
    };

    Controls.Add(scriptLink);

    base.CreateChildControls();
    }
    Tendrás que hacer un recycle del App Pool cada vez que deployas la solución.

    Les dejo el links de donde saqué algunas cosas, es recomendado que lo lean, tiene mucha información: http://www.sharepointnutsandbolts.com/2011/11/avoiding-bugs-from-cached-javascript.html

    4-Resetear un form de una lista customizado con Infopath (infopath –> default)




      • Ir a la lista en cuestión, elegir la opción “List Settings

      • En la sección “General Settings”, seleccionar la opción “Form Settings

      • En la sección “Form Options” cambia el check box “Modify the existing InfoPath form” a “Use the default SharePoint form“. Y además seleccionar el check “Delete the InfoPath Form from the server“.


    042412_1033_resetcustom4


    5-list.Recycle() y item.Recycle()



    Al querer borrar un item mediante programación, es decir mediante los métodos list.Delete() o item.Delete(), los items se borran de forma permanente. Para ello se deberá usar los métodos list.Recycle() o item.Recycle() los cuales envían el item o lista borrada a la papelera de reciclaje.


    6-Tips/diseño de SQL SERVER para Sharepoint




      • Utilizar más discos pequeños que un número menor de discos más grandes

      • Trate de No virtualizar los servidores de SQL

      • La base de datos de crawl es la base de datos más demandante. Trate de separar las bases de datos de search

      • IOPS es el requerimiento clave a obtener(http://technet.microsoft.com/en-us/library/cc298801.aspx)

      • RAID 10 es la configuración preferida para base de datos de servicios

      • 2500 IOPS es el mínimo para base de datos de Servicios

      • Un promedio de 2,5 versiones de documentos es común

      • Un promedio de 300 KB por documento es común

      • Con Clustering se tiene una copia de datos

      • Con Mirroring (a nivel de transacción) se tiene varias copias de datos (las dos únicas base de datos que no combienen hacer mirroring son User Profile Service y Web Analytics Service)

      • Use alias de SQL

      • Trate de mantener un standart en los nombres de las base de datos

      • remote blob storage: trate de pensar que problemas puede solucionar con esta tecnología.

      • no utilice la opción “auto update create/update statistics” con Sharepoint

      • maximum degree of parallelism (maxdop) debería estar seteado a 1

      • Setear el mínimo y máximo de memoria (Ej: ambos a 100% – 4GB)

      • Checkear regularmente las base de datos: DBCC CHECKDB, pero no utilice la opción de reparación automática

      • Limite las base de contenido a 100 GB si es posible

    7-SPMetal



    Este ejecutable permite crear las clases entidades para LINQ to Sharepoint. Se encuentra en la siguiente carpeta:


    %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\BIN


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


    8-PSConfig y firewall



    Al instalar Sharepoint agregar una regla para que PSConfig pueda comunicarse (crear conexiones) a los host de la farm (eJ: SQL Server)


    9-Comando para listar todos los servicios de Sharepoint



    stsadm -o enumservices > c:\services.txt


    Aparte de listar los servicios te dará el nombre de cada uno en el caso que necesites reiniciar o detenerlos.


    10-Word Automation Services



    Servicios de automatización de Word es una aplicación de servicio de SharePoint Server 2010 que permite la conversión desatendida y del lado servidor de documentos compatibles con la aplicación cliente de Microsoft Word. Los Servicios de automatización de Word le permite realizar operaciones de archivo en el servidor que antes requerían tener Word instalado en su desktop.



    • La conversión entre formatos de documentos (por ejemplo,DOC a DOCX)

    • Conversión a formatos fijos (por ejemplo, PDF o XPS

    • Actualización de los campos

    • Importación de "trozos de formato alternativo"

    • Etc.

    El job de conversión corre cada 10 minutos de forma default. Central Administration -> Monitoring -> Review job definitions –> encontrar Word Automation Services Timer Job, y configurar la planifcación deseada.


    Escenarios de uso:



    1. Cada mes, una empresa de fabricación genera un gran número de facturas que se basan en información almacenada en una base de datos. Al usar una combinación del SDK de Open XML de Office y Servicios de automatización de Word, la empresa configura un proceso automatizado para generar las facturas con un formato fijo. El proceso automatizado recupera una plantilla de documento que se almacena en SharePoint Server 2010, combina cada registro en la base de datos con la plantilla para generar un documento de Microsoft Word y, a continuación, convierte el conjunto de documentos generados en un documento de formato fijo, por ejemplo, un archivo PDF o XPS.

    2. Una empresa de ingeniería crea un flujo de trabajo para coordinar la aprobación de documentos del proyecto por cada uno de los colaboradores principales del proyecto. Una vez que todos los colaboradores han aprobado un documento dado, el flujo de trabajo genera automáticamente una copia del documento en formato PDF/A para archivar y enviar a los responsables de cumplimiento normativo y, a continuación, elimina el documento de Word original.

    3. Una compañía consultora desea configurar un sistema para almacenar, recuperar y volver a usar los documentos que crea para cada proyecto. Al final de cada proyecto, la compañía desea que cada jefe de proyecto vaya a una página web central y use un control Microsoft Silverlight en la página web para archivar sus documentos con un formato fijo. Después, el sistema recupera todos los documentos en las carpetas del proyecto y los almacena en un archivo central.

    11-Debuggear un job de Sharepoint



    El siguiente link explica la manera: http://msdn.microsoft.com/en-us/library/ff798310.aspx de todos modos alguns recomendaciones que no aparecen en ese artículo



    • Renicia el timer service cuando realiza el deploy del job. Es tan simple como realizar las siguientes operaciones en una línea de comando:

                         net stop SPTimerV4 – Pre Build


                         net start SPTimerV4 – Post Build



    • Haz que tu proyecto esté en modo “debug”, NO en Release.Link

    • En el caso que se siga manteniendo la versión vieja del código, has un IISReset

    12-Sharepoint 2010 Errores custom



    Cuando desarrollamos, hay ocasiones que Sharepoint nos lanza el siguiente mensaje:


    Runtime Error

    Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed.

    Details: To enable the details of this specific error message to be viewable on the local server machine, please create a <customErrors> tag within a “web.config” configuration file located in the root directory of the current web application. This <customErrors> tag should then have its “mode” attribute set to “RemoteOnly”. To enable the details to be viewable on remote machines, please set “mode” to “Off”.

    Server Error in ‘/’ Application.——————————————————————————–
    Runtime Error Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed.
    Details: To enable the details of this specific error message to be viewable on the local server machine, please create a <customErrors> tag within a “web.config” configuration file located in the root directory of the current web application. This <customErrors> tag should then have its “mode” attribute set to “RemoteOnly”. To enable the details to be viewable on remote machines, please set “mode” to “Off”.

    En Sharepoint 2010 debemos desactivar los custom errors, para ello vaya a %Common Files%\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\web.config , y edite la sección “customErrors” con el valor “Off”

    El web.config de Central Administración se encuentra en la siguiente ubicación:

    %Common Files%\Microsoft Shared\Web Server Extensions\14\TEMPLATE\ADMIN\web.config