CustomAction problem i SharePoint 2007

I dag på arbejdet, skulle jeg bruge en CustomAction til en liste. Listen har flere indholdstyper tilknyttet til sig. Og det var så kun den ene indholdstype, som jeg skulle ramme med denne CustomAction.

Så jeg opretter en XML fil med min simple CustomAction i:

<CustomAction
    Id="MyCustomActionId"
    Title="My Custom Action"
    Description="My Custom Action Description"
    RequireSiteAdministrator="FALSE"
    RegistrationType="ContentType"
    RegistrationId="0x0101000936a05e70da4cf2a6846c669da7fdb6"
    GroupId="ActionsMenu"
    Sequence="1000"
    Location="Microsoft.SharePoint.StandardMenu" >
	<UrlAction Url="{SiteUrl}/_layouts/MySharepointArtifacts/MyCustomAction.aspx?ListId={ListId}"/>
</CustomAction>

Men selvom den er så simpel, så kom den aldrig frem i listen. Efter flere forsøg, og søgninger på Google, hev jeg mig godt i håret. Ligesom man stod og skulle ud af døren, fandt jeg fejlen.

Den GUID som jeg havde brugt til min imdholdstype startede tilfældigvis med 0. Og selvom det virker uskyldigt, og alt andet fungerer. Så gav det store problemer for den simple customaction. For med nyt ID til indholdstypen, så virkede det pludselig. Se forskellen her:

<CustomAction
    Id="MyCustomActionId"
    Title="My Custom Action"
    Description="My Custom Action Description"
    RequireSiteAdministrator="FALSE"
    RegistrationType="ContentType"
    RegistrationId="0x0101004936a05e70da4cf2a6846c669da7fdb6"
    GroupId="ActionsMenu"
    Sequence="1000"
    Location="Microsoft.SharePoint.StandardMenu" >
	<UrlAction Url="{SiteUrl}/_layouts/MySharepointArtifacts/MyCustomAction.aspx?ListId={ListId}"/>
</CustomAction>

Forskellen er i RegistrationId. Et 0 er blevet til et 4 tal. Og så kom min CustomAction i live.

Se definitionen for et indholdstype id her: http://msdn.microsoft.com/en-us/library/aa543822.aspx. Som sjovt nok ikke nævner noget om, at den GUID man bruger til at definere sin indholdstype id med, ikke må starter med 0.

Så et godt råd er, brug aldrig en GUID der starter med 0 til at forlænge dit indholdstype id med.

1 kommentar

Skriv et svar