Custom Actions, Content Types y mayúsculas

Hola a todos.

 

Últimamente me estoy topando con incidentes relacionados con Custom Actions y Content Types. Resulta que cuando se crea un botón customizado por medio de un custom action éste no aparece cuando se posiciona en el DisplayFormToolBar de una lista. Sin embargo, tenemos codificados los element.xml de la manera correcta, ¿En qué nos estamos equivocando?. 

 

Pues nada más lejos de la realidad, muchos de desarrolladores usan letras minúsculas en los Content Type IDs o los dejan como Visual Studio los genera (con alguna letra minúscula). Esas letras minúsculas no son admitidas por SharePoint ya que espera letras mayúsculas cuando realiza el parseo de los IDs. El resultado sería la no muestra del botón del menú debido a un fallo ¿Y por qué letras mayúsculas? Porque el ID es un número en Hexadecimal y las letras de los números hexadecimales van en mayúsculas.

 

Por lo cual, aplicad la siguiente Regla de oro: siempre letras mayúsculas en las definiciones de Content Type IDs.

 

Ejemplo

    1: <ContentType
    2:   ID="0x01004F12A3A65D3740B4BE901471FDEE9E15"
    3:   Name="CT Héctor Calvarro Martín"
    4:   Group="CT Test"
    5:   Description="Esto es un ejemplo. Microsoft no se hace responsable de su funcionamiento"
    6:   Version="0"
    7:   Hidden="FALSE"
    8:   ReadOnly="FALSE"
    9:   <FieldRefs>    
   10:   <FieldRef Name="Nombre" DisplayName="Nombre" 
ReadOnly="FALSE" ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}"/>
   11:   </FieldRefs>
   12: </ContentType>

 

    1: <CustomAction 
    2:   Id="Botón especial Hector Calvarro"
    3:   RegistrationType="ContentType" 
    4:   RegistrationId= "0x01004F12A3A65D3740B4BE901471FDEE9E15"
    5:   Description="Botón especial creado a base de un custom action 
basado en un content type. Héctor Calvarro Martín"  
    6:   Location="DisplayFormToolbar"
    7:   Sequence="100"
    8:   Title="Botón Héctor Calvarro">
    9:   <UrlAction Url=""/Lists/GTSC DSC WE RULES""/>
   10: </CustomAction>

 

Resultado:

Ejemplo ilustrativo

Muchas Gracias a todos.

Un saludo.

ACTUALIZACIÓN: Este mismo comportamiento ocurre también con EditformToolbar 

Héctor Calvarro Martín. SharePoint Dev. Microsoft Support Engineer for DEV EMEA