lördag 18 september 2010

Innehållstyper

Innehållstyper
Innehållstyper (Content Types) är ett relativt avancerat men mycket viktigt begrepp i SharePoint. Microsofts definition av en innehållstyp är inte helt glasklar:
"A content type is a reusable collection of metadata (columns), workflow, behavior, and other settings for a category of items or documents in a Microsoft SharePoint Foundation 2010 list or document library." 

Om du inte har arbetat med innehållstyper tidigare så kan du tänka på en innehållstyp som en "en samling kolumner". Detta är inte hela sanningen men en bra start. Tänk dig helt enkelt att du tar en eller flera kolumner, kombinerar dem och ger dem ett namn. Då har du en innehållstyp. Exempelvis kanske du vill slå ihop kolumnerna "Förnamn", "Efternamn" och "Adress" till en innehållstyp som du ger namnet "Personuppgift".

Innehållstyper i listor och bibliotek
De fyra viktigaste ingredienserna i en lista/bibliotek är:
Alla listor och bibliotek kan ha innehållstyper. En lista eller ett bibliotek kan ha flera innehållstyper. Har de fler än en så måste alltid en vara "Standardinnehållstyp" (Default Content Type). Varje innehållstyp använder en eller flera av listan/bibliotekets kolumner och en kolumn kan användas i flera innehållstyper. En innehållstyp kan dock endast använda de kolumner som kan redigeras av användaren.

Innehållstyper och "Nytt objekt"
Innehållstyper är kopplade till listans "Nytt objekt":


"Nytt objekt" har ett alternativ för varje innehållstyp. Listan ovan har alltså två innehållstyper med namnen "Uppgift" och "Sammanfattningsaktivitet". Länken "Lägg till nytt objekt" är alltid kopplat till den innehållstyp som är standard för listan/biblioteket (den ligger också alltid överst i "Nytt objekt").

När du väljer en av innehållstyperna i "Nytt objekt" så får du upp ett formulär med precis de kolumner som används i innehållstypen. Det är alltså innehållstypen som avgör vilka av listan/bibliotekets kolumner du får fylla i när du skapar ett nytt objekt (minns att innehållstyper bara kan innehålla kolumner som kan redigeras och inte exempelvis "Skapad av" som SharePoint själv sköter).

Varför innehållstyper?
Man kan fråga sig vad det är för poäng med innehållstyper. Varför inte låta SharePoint visa ut alla kolumner (som kan redigeras) i listan när man väljer "Nytt objekt" så kan man fylla i de kolumner man vill? Här är ett exempel där innehållstyper är användbara.

Säg att du har en lista med böcker med kolumner såsom "Titel", "Författare", "ISBN nummer" o.s.v. En del av dessa böcker är e-böcker som till största del använder samma kolumner som vanliga böcker men med några skillnader: vanliga böcker har information om "Vikt" som e-böcker saknar medan e-böcker har information om "Filtyp" som vanliga böcker saknar. Då skapar man en lista med alla kolumner (inklusive både vikt och filtyp) och två innehållstyper, "Vanlig bok" och "e-bok", där den första består av alla (redigerbara) kolumner utom "Filtyp" och den andra av alla utom "Vikt".

Poängen med innehållstyper är alltså att man kan skapa listor/bibliotek vars objekt har något olika typ av innehåll (därav namnet). SharePoint håller reda på vilken innehållstyp ett särskilt objekt i listan är av och det är användbart på flera sätt (som beskrivs längre fram). För att det skall vara meningsfullt med innehållstyper så bör objekten vara snarlika. Är de helt olika (säg böcker och recept) så hör de hemma i separata listor.

Tillåta innehållstyper i lista/bibliotek
För de flesta listor och bibliotek kan du avgöra om du vill "Tillåta hantering av innehållstyper". Detta gör du från sidan "Avancerade inställningar" som du når från "Inställningar för lista". Standardinställningen för de listor/bibliotek som bara har en innehållstyp (de flesta) är "Nej" medan den är "Ja" för övriga (exempelvis listor baserade på "Uppgifter"). Det finns dock en del listor/bibliotek som inte tillåter hantering av innehållstyper, exempelvis listor skapade på mallen "Undersökning" och bibliotek skapade på mallen "Wiki-sidbibliotek (de har dock fortfarande innehållstyper).

Om du inte tillåter hantering av innehållstyper så döljer SharePoint allt som har med innehållstyper att göra för dig (de finns fortfarande där). SharePoint använder då bara en innehållstyp, den som är standard, vilket betyder att det bara finns ett alternativ för "Nytt objekt" (även om listan har flera innehållstyper).

Om du tillåter hantering av innehållstyper så får du ett nytt avsnitt "Innehållstyper" på sidan "Inställningar för lista":

När du tillåter hantering av innehållstyper förändras också avsnittet "Kolumner" på sidan "Inställningar för lista". Utan innehållstyper så visas kolumnernas titel, kolumnernas typ och vilka som är obligatoriska (för alla redigerbara kolumner plus "Skapad av" och "Ändrad av"). Med innehållstyper så ändras "Obligatorisk" till "Används i" och där ser man vilken eller vilka innehållstyper kolumnen används i (förutom de två sista som aldrig kan användas i en innehållstyp):


Hantera innehållstyper i lista/bibliotek
Om man klickar på en innehållstyp som tillhör en lista/bibliotek så kommer du till sidan för hantering av innehållstypen:

  • "Information om innehållstyp" visar innehållstypens namn och en beskrivning. "Överordnad" förklaras i avsnittet "Innehållstyper och arv" nedan.
  • I "Namn och beskrivning" kan du redigera dessa två egenskaper.
  • "Ta bort den här innehållstypen". Du kan inte ta bort en innehållstyp om det finns ett objekt i listan som är av den innehållstypen. Tar du bort alla innehållstyper så kan du inte längre skapa nya objekt.
  • Övriga inställningar beskrivs under "Hantera en webbplatsinnehållstyp" nedan.
  • "Kolumner" visar vilka av listans kolumner som innehållstypen använder (alltså vilka av listans kolumner som objekt av denna innehållstyp kan kan hantera). Status visar om om kolumnen är obligatorisk, valfri eller dold. En kolumn kan exempelvis vara obligatorisk för en innehållstyp men valfri för en annan. "Källa" beskrivs också i avsnittet "Hantera en webbplatsinnehållstyp" nedan.
  • Alternativet under "Kolumner", "Lägg till från befintliga webbplats- eller listkolumner" beskrivs i nästa avsnitt.
  • I "Kolumnordning" får du ange i vilken ordning innehållstyperna skall visas i "Nytt objekt".
Lägga till och ta bort kolumner till en innehållstyp i lista/bibliotek
Man kan lägga till en kolumn till en existerande innehållstyp för en lista/bibliotek på två sätt:
  • Genom att välja en redigerbara kolumn som tillhör listan/biblioteket (som inte redan används av innehållstypen)
  • Genom att välja en webbplatskolumn
Väljer man en webbplatskolumn så skapas först en vanlig kolumn med webbplatskolumnen som mall till listan. Därefter läggs denna kolumn till den aktuella innehållstypen (en innehållstyp för en lista kan alltså bara innehålla "vanliga" kolumner - inte webbplatskolumner som ju bara är mallar för kolumner).

För att lägga till kolumner, tryck på "Lägg till från befintliga webbplats- eller listkolumner" från innehållstypens sida:

I "Välj kolumner från" hittar du alla grupper som finns för webbplatsens webbplatskolumner. Tillgängliga kolumner visar alla webbplatskolumner för gruppen du har valt. Om listan har redigerbara kolumner som inte redan används av innehållstypen så finns det ytterligare ett alternativ i "Välj kolumner från" och det är "Listkolumner". "Tillgängliga kolumner" visar då redigerbara listkolumner som inte redan används.

För att ta bort en kolumn från en innehållstyp i en lista klickar du bara på kolumnen på innehållstypens sida och väljer "Ta bort". Vissa kolumner kan inte tas bort från en innehållstyp, exempelvis "Rubrik", men då kan man sätta kolumninställning till "Dold" så visas den inte i formulär för nya objekt eller vid redigering av objekt.

Ny lista/bibliotek
När du skapar en ny lista/bibliotek så skapas automatiskt en eller flera innehållstyper som läggs till listan. Några exempel:
  • Listor baserade på mallen "Meddelanden" får innehållstypen"Tillkännagivande" (Announcement)
  • Listor baserade på mallen "Anpassad lista" får innehållstypen "Objekt" (Item)
  • Listor baserade på mallen "Uppgifter" får innehållstyperna "Uppgift" (Task) och "Sammanfattningsaktivitet" (Summary Task).
  • Bibliotek baserade på mallen "Dokumentbibliotek" får innehållstypen "Dokument".
Standardinnehållstypen för en ny lista använder alltid alla listan/bibliotekets redigerbara kolumner vilket betyder att du kan fylla i information i alla dessa användarkolumner när du skapar ett nytt objekt.

Om du skapar en ny kolumn till en lista och listan inte tillåter innehållstyper så lägger SharePoint automatiskt till kolumnen till alla innehållstyper för listan. Som du ser går det därför att arbeta med listor/bibliotek utan att tillåta innehållstyper - så länge alla kolumner är meningsfulla för alla objekt i listan.

Om du skapar en ny kolumn till en lista och listan tillåter innehållstyper så får du i avsnittet "Ytterligare kolumninställningar" frågan "Lägg till i alla innehållstyper". Du kan ju alltid senare lägga till kolumnen eller ta bort kolumnen från enskilda innehållstyper.

Webbplatsinnehållstyper
En webbplatsinnehållstyp fungerar som en mall för en "vanlig" innehållstyp på samma samma sätt som en webbplatskolumn fungerar som en mall för en "vanlig" kolumn. När du skapar en ny kolumn från en webbplatskolumn så skapas kolumnen med precis de inställningar som gäller för webbplatskolumnen. Samma princip gäller för innehållstyper. För att undvika missförstånd så kallas "vanliga" innehållstyper och "vanliga" kolumner, alltså de som är kopplade till listor och bibliotek, för listinnehållstyper och listkolumner.

Webbplatsinnehållstyper kan endast använda webbplatskolumner (medan listinnehållstyper endast kan använda listkolumner). Precis som för listkolumner så kan webbplatskolumer användas i flera webbplatsinnehållstyper. Och som för listinnehållstyper så innehåller webbplatsinnehållstyper endast referenser till webbplatskolumer, inte egna kopior.

Säg att du har en webbplatsinnehållstyp med namnet IT1 och att den använder webbplatskolumerna K1 och K2. Om du nu skapar en ny listinnehållstyp i en lista från IT1 så händer följande:
  • Två listkolumner (med namnen K1 och K2) skapas med webbplatskolumnerna K1 och K2 som mall och läggs till listan
  • En listinnehållstyp (med namnet IT1) skapas med webbplatsinnehållstypen IT1 som mall och läggs till listan
  • Listkolumner K1 och K2 läggs till listinnehållstypen IT.
Man kan använda en analogi från objektorienteringsspråk. Webbplatsinnehållstyper och webbplatskolumner är då "klasser" medan listinnehållstyper och listkolumner är "objekt". Det finns en avvikelse i denna analogi: listkolumner kan skapas direkt utan att man använder en webbplatskolumn som mall medan en listinnehållstyp måste skapas från en webbplatsinnehållstyp.

Webbplatsinnehållstyper och webbplatser
Webbplatsinnehållstypers relation med en webbplatssamling är samma som för webbplatskolumner:
  • Webbplatsinnehållstyper är tillgängliga på den webbplats de har skapats och på alla webbplatser längre ner i hierarkin (däremot inte längre upp). 
  • En webbplatsinnehållstyp som är skapad på den översta webbplatsen i en webbplatssamlingen är alltså tillgänglig i hela samlingen. 
  • Du kan endast redigera en webbplatsinnehållstyp på den webbplats den är skapad (webbplatsinnehållstypens "källa").
  • En webbplatsinnehållstyp skapad i en webbplatssamling är aldrig tillgänglig i andra samlingar.
Innehållstyper och arv
En webbplatsinnehållstyp måste alltid skapas från en existerande webbplatsinnehållstyp. Säg exempelvis att du har en webbplatsinnehållstyp "Personal" med webbplatskolumnerna "Förnamn" och "Efternamn". Från denna kan du skapa en ny webbplatsinnehållstyp "Lärare" där du lägger till webbplatskolumn "Undervisningsämne". Man säger att "Lärare" ärver från (inherits from) "Personal" och att "Personal" är överordnad (parent to) "Lärare". "Lärare" kan sen agera överordnad till andra webbplatsinnehållstyper.

När du skapar en ny webbplatsinnehållstyp från en existerande webbplatsinnehållstyp så kopieras alla referenser till webbplatskolumner från den existerande till den nya. Du kan därefter lägga till och ta bort webbplatskolumner till din nya webbplatsinnehållstyp. Minns att alla innehållstyper bara innehåller referenser till kolumner, inte kopior av kolumner. Ändrar du en kolumn så påverkas alla innehållstyper som använder kolumnen och det kan du inte förhindra.

När du skapar en listinnehållstyp från en webbplatsinnehållstyp så används samma terminologi: vi säger att listinnehållstypen ärver från webbplatsinnehållstypen och att den senare är överordnad den föregående. Listinnehållstyper får som standard samma namn som den webbplatsinnehållstyp den ärver ifrån och det förklarar varför innehållstypen i första bilden i avsnittet "Hantera innehållstyper i lista/bibliotek" ovan har samma titel som överordnad.

Hantera webbplatsinnehållstyper
För att hantera en webbplats innehållstyper väljer du "Webbplatsinnehållstyper" under rubriken "Gallerier" på "Webbplatsinställningar".


I listan ser du webbplatsinnehållstypernas namn, dess överordnad och källa (var den är skapad). Är den länkad så kan du redigera den genom att klicka på den. Är den inte länkad så är den skapad på en webbplats längre upp och du kan redigera den genom att klicka på dess källa. Webbplatsinnehållstyper är grupperade i en nivå av grupper (du kan skapa nya grupper men inte grupper i grupper) och det finns dolda webbplatsinnehållstyper som inte visas i listan. Notera att det finns en grupp som heter "Listinnehållstyper". Alla innehållstyper i denna grupp är webbplatsinnehållstyper och inte listinnehållstyper med de används för att skapa listinnehållstyper.

Hantera en webbplatsinnehållstyp
För att hantera en enskild webbplatsinnehållstyp så går du till den webbplats den är skapad och till dess "Webbplatsinnehållstyper" och klickar på namnet. I nedan exempel visas webbplatsinnehållstypen "Objekt".


Sidan för att hantera en webbplatsinnehållstyp är mycket snarlik sidan för att hantera en listinnehållstyp men det finns några skillnader. Några kommentarer
  • Webbplatsinnehållstyper kan sorteras i grupper, det kan inte listinnehållstyper
  • "Avancerade inställningar": 
    • "Skrivskydd". Ange om innehållstypen kan ändras
    • "Uppdatera webbplatser och listor". Ange om alla underordnade webbplats- och listinnehållstyper som använder denna typ ska uppdateras med inställningarna på den här sidan.
    •  "Dokumentmall". Här anger man en mall som skall användas när ett nytt dokument skapas med denna innehållstyp. Gäller endast webbplatsinnehållstyp "Dokument" och alla som ärver från "Dokument".
  • "Arbetsflödesinställningar" (Workflow settings) behandlas i ett annat inlägg.
  • "Ta bort den här webbplatsinnehållstypen". Du kan inte ta bort en innehållstyp som är överordnad en annan webbplats- eller listinnehållstyp.
  • "Inställningar för informationshanteringsprincip" (Information management policy settings) är ett avancerat alternativ som behandlas i ett annat inlägg.
  • "Inställningar för dokumentinformationspanelen" (Document Information Panel settings) är också ett avancerat alternativ som behandlas i ett annat inlägg i samband med InfoPath. Gäller endast webbplatsinnehållstyp "Dokument" och alla som ärver från "Dokument".
  • "Hantera dokumentkonvertering för den här innehållstypen" (Manage document conversion for this content type). SharePoint har inbyggda konverterare från exempelvis Word till webbsida. Här anger man vilka som tillåts och hur konvertering skall ske. Gäller endast webbplatsinnehållstyp "Dokument" och alla som ärver från "Dokument".
  • "Kolumner" visar alla webbplatskolumner som webbplatsinnehållstypen använder och från vilken källa (webbplatsinnehållstyp) de härstammar (saknas källa så har webbplatskolumnen lagts till den aktuella webbplatsinnehållstypen direkt).
  • "Lägg till från befintliga webbplatskolumner" fungerar precis som "Lägg till från befintliga webbplats- eller listkolumner" för en listinnehållstyp (förutom att man så klart inte kan lägga till listkolumner)
  • "Lägg till från ny webbplatskolumn" skapar och lägger till en webbplatskolumn i ett steg. När du lägger till en ny webbplatskolumn måste du bestämma om kolumnen skall läggas till alla underordnade  innehållstyper.
  • "Kolumnordning" låter dig välja ordning för kolumnerna.
I bilden ovan ser du exempelvis att webbplatsinnehållstypen "Objekt" ärver från "System" som är den översta webbplatsinnehållstypen (den har ingen överordnad). Alla webbplatsinnehållstypen kommer ursprungligen från "System" som du dock inte hittar i listan eftersom den är dold (du kan därför inte skapa en listinnehållstyp baserad på System).

Webbplatsinnehållstypens kolumner
Om du från webbplatsinnehållstypens sida klickar på en kolumn kommer du till "Ändra innehållstypkolumn". Exemplet nedan visar kolumnen "Rubrik" för webbplatsinnehållstypen "Objekt" som är dess enda kolumn.

Det finns en länk för dig om du vill redigera webbplatskolumnen men tänk på att du då redigerar orginalet vilket påverkar alla innehållstyper. Kolumninställningen Obligatorisk (måste innehålla information), Valfri (kan innehålla information) eller Dold (visas inte i formulär) har ingen direkt funktion för webbplatsinnehållstypen. Den blir meningsfull först för listinnehållstypen som hämtar värdet för kolumninställning från sin överordnade webbplatsinnehållstyp.


Skapa en ny webbplatsinnehållstyp
Att skapa en ny webbplatsinnehållstyp är enkelt. Gå till "Webbplatsinnehållstyper" för den webbplats där du vill skapa webbplatsinnehållstypen (minns att den blir tillgänglig på denna webbplats och alla underordnade webbplatser). Tryck på Skapa:

När du trycker på OK kommer du till webbplatsinnehållstypens sida och du kan lägga till fler webbplatskolumner.

Skapa en ny listinnehållstyp
Utöver den eller de listinnehållstyper som du får automatiskt när du skapar en lista eller ett bibliotek så kan du skapa nya och lägga till listan. Gå till "Inställningar för lista" och se till att listan tillåter hantering av innehållstyper. Klicka på "Lägg till från befintliga webbplatsinnehållstyper" under rubriken "Innehållstyper":

Välj bland existerande webbplatsinnehållstyper och tryck på OK. Inte alla webbplatsinnehållstyper är tillgängliga för alla listor och bibliotek. Exempelvis kan du inte lägga till en webbplatsinnehållstyp som ärver från "Dokument" till en lista vilket du kan göra till ett bibliotek. För att du skall kunna lägga till en webbplatsinnehållstyp till ett bibliotek måste den ha kolumnen "Fil" vilket alla som ärver från dokument har.

Visa objektets innehållstyp i listan
Alla listor och bibliotek har en kolumn "Innehållstyp" som innehåller titeln på den innehållstyp som objektet är av. Denna kolumn är inte redigerbar och inte dold (även om du inte tillåter innehållstyper). För att experimentera med objektets innehållstyp,
  • Skapa en ny lista baserad på mallen "Anpassad lista"
  • Tillåt hantering av innehållstyper för listan
  • Lägg till innehållstypen meddelande till listan. 
  • Ändra så att kolumnen "Rubrik" är obligatorisk även för "Meddelande". 
  • Ändra standardvyn och lägg till kolumnerna "Brödtext" och "Innehållstyp".
  • Skapa ett objekt av varje innehållstyp:

Om du redigerar den första posten (som är av typen objekt) så kan du inte skriva in någon brödtext. Du kan däremot ändra innehållstypen för ett objekt.


Väljer du istället innehållstyp "Meddelande" så ändras formuläret och du kan lägga till brödtext.


Mappar
Avslutningsvis bör det nämnas att SharePoint internt hanterar mappar som en speciell innehållstyp. I listans avancerade inställningar kan du ange om "kommandot Ny mapp ska visas" i listan/biblioteket (standardinställning är Nej). När du skapar en ny mapp så skapas helt enkelt ett nytt objekt av innehållstypen "Mapp":


Innehållstypen "Mapp" är dock något speciell. Du kan exempelvis inte ändra en mapp till en annan innehållstyp och vice versa. Mappar finns inte heller med i listans innehållstyper i "inställningar för lista" och du kan inte lägga till kolumner till denna innehållstyp.


-- Peter Jochumzen

1 kommentar:

  1. Läs mer om innehållstyper: http://msdn.microsoft.com/en-us/library/ms479905.aspx

    SvaraRadera