Tematický týden: SharePoint technologie – díl 3.

Typy obsahu pro řízenou tvorbu informací a bez nich ani krok (nebo jen pár)

Třetí díl TechNet miniseriálu věnovaného platformě Microsoft SharePoint pojednává o základním stavebním kamenu řízené tvorby informací, tedy o „typech obsahu“, tzv. Content Types.

Podobně jako jsem velkým zastáncem využívání kolekcí webů, viz. minulý článek, tak i k typům obsahu mám, řekněme, vřelý vztah. :) Škoda jen, že standardně nefungují zcela tak, jak bychom chtěli, ale nevadí, téměř vše se dá vyřešit. Takže vzhůru do toho!

K čemu je to dobré?

Představme si následující scénáře: pracovníci obchodního oddělení ukládají do dokumentových knihoven obchodní nabídky, podklady pro výběrová řízení, členové projektových týmů sdílí projektovou dokumentaci, zápisy z porad, výrobní firma na produktových webech pracuje na specifikacích návrhů produktů, atd. Všechny tyto činnosti si přímo říkají o vytvoření opakovatelně využitelných typů obsahu, s definovanými šablonami dokumentů, metadaty, s panely informací pro editaci metadat a nastavenými sledy prací (říkejme raději workflow) pro opakované využití v různých částech portálu a pro řízené schvalování takto strukturovaně vytvářeného obsahu. No a o to právě jde. Jednou vytvořený typ obsahu opakovaně používáme v různých částech portálu a také v jednom seznamu (např. dokumentové knihovně) používáme různé typy obsahu. Pojďme to ale vzít hezky od začátku.

Typ obsahu je opakovaně využitelná kolekce nastavení, vlastností a činností, které přiřazujete jistému druhu záznamů.

S využitím typů obsahu můžete definovat schéma pro jednotlivé druhy záznamů. Toto schéma však není vázáno na jeden konkrétní seznam a jeho „datovou strukturu“. U WSS 2.0 jsme schéma definovali vždy v rámci konkrétních seznamů pomocí jejich sloupců. S WSS 3.0 a samozřejmě tedy i u MOSS 2007 a MOFS 2007 toto omezení padá. Schéma tedy může být opakově použito u různých seznamů (pod pojmem seznamem myslím dokumentové knihovny, knihovny formulářů, nebo klasické seznamy typu kalendář, kontakty, úkoly atd.). Jeden typ obsahu stylu dokument tedy může být přiřazen více dokumentovým knihovnám, typ obsahu stylu událost může být přiřazen více seznamům typu kalendář apod.

A také naopak – seznamy služby SharePoint již nejsou omezeny pouze na jedno datové schéma, kterému by musely všechny ukládané záznamy vyhovět, neboť jednomu seznamu je možné přiřadit více typů obsahu, z nichž každý může mít jedinečné datové schéma definované pomocí metadat.

Typy obsahu tedy v zásadě umožňují:

  • ukládat jeden typ obsahu (s definovanou strukturou metadat) do více seznamů
  • ukládat více typů obsahu (s rozličnými strukturami metadat) do jednoho seznamu

Typ obsahu může obsahovat:

  • Strukturu metadat definovaných pomocí tzv. sloupců webu („Site Columns“). Sloupce webu přiřazené k typu obsahu rozšíří strukturu sloupců definovaných u konkrétního seznamu, kterému je typ obsahu přiřazen. Samotné sloupce webu jsou opakovaně použitelné definice či šablony sloupců, které lze přiřazovat seznamům a typům obsahu v rámci jednotlivých kolekcí webů.
  • Vlastní formuláře pro vytvoření, editaci či zobrazení typu obsahu.
  • Přiřazená workflow, využitelná např. pro schvalování záznamů, připojení komentářů či téměř cokoliv jiného. Akce workflow mohou být spouštěny automaticky při vytvoření záznamu dle definovaného typu obsahu či při jeho změně.
  • U typů obsahu stylu dokument nastavitelnou šablonu dokumentu, na základě které bude výsledný dokument vytvořen.
  • U typů obsahu stylu dokument vlastní šablonu panelu informací pro přímou editaci metadat v rámci prostředí aplikací Microsoft Office 2007. Tento panel informací je de-facto formulářem aplikace Microsoft Office InfoPath 2007, máte-li tedy tuto mocnou aplikaci nainstalovanou, pak editaci formulářů nic nebrání.
  • Libovolné další informace potřebné pro vlastní řešení přidružené k typu obsahu s využitím XML schématu. Programátoři jistě uvítají web https://msdn.microsoft.com/en-us/library/ms463449.aspx s detailními informacemi.
Druhy typů obsahu

Ikdyž to možná není zcela podstatné, neodpustím si informaci o typech obsahu – rozeznáváme dva druhy typů obsahu: typy obsahu na úrovni webů a typy obsahu na úrovni seznamů. Typy obsahu na úrovni webů chápejte jako opakovaně využitelné šablony a typy obsahu na úrovni seznamů jako instance těchto šablon.

Typy obsahu vytváříme na úrovni webů (v praxi spíše na úrovni kolekcí webů), odtud tedy onen název. Kolekce webů či web, v jehož rámci je typ obsahu (a příslušné sloupce webů) vytvořen, zároveň určuje rozsah využitelnosti daného typu obsahu.

Typy obsahu na úrovni seznamů jsou vlastně něco jako instance typů obsahu na úrovni webů, přiřazené konkrétnímu seznamu. Po přiřazení typu obsahu danému seznamu je do něj typ obsahu zkopírován, včleněn a stává se z něj typ obsahu na úrovni seznamu. Typ obsahu na úrovni seznamu můžete následně upravit tak, aby byl odlišný od rodičovského typu obsahu na úrovni webu, což ovšem neznamená, že tím automaticky ztrácí vazbu na svůj rodičovský typ obsahu uložený na úrovni webu.

Typy obsahu je možné vytvářet na základě jiných typů obsahu, mezi typy obsahu tedy může vzájemně fungovat dědičnost. Ta také funguje, jak jsem již naznačil, mezi šablonou typu obsahu uloženou na úrovni webu a typem obsahu na úrovni seznamu. Při změně typu obsahu vytvořeného na úrovni webu je změna definice promítnuta do všech seznamů v rámci kterých je daný typ obsahu přiřazen. Velmi užitečné!

A další věc – užitečné je vytvořit i typy obsahů druhu složka. I to je typ obsahu s přidruženými metadaty, který, jak již název napovídá, umožňuje na úrovni seznamů vytvářet složky s vlastní sadou metadat.

S využitím typů obsahů a jejich metadat můžete následně vytvářet v rámci seznamů vlastní zobrazení (view) a filtrovat tak např. zobrazované záznamy dle vlastních kritérií.

Typy obsahu a rozsah jejich dostupnosti

Rozsah využitelnosti typů obsahu v závislosti na místě jejich vytvoření je hezky popsán na MSDN webu zde https://msdn.microsoft.com/en-us/library/ms441146.aspx a věřím, že toto samotné téma není třeba příliš rozvádět. Jednoduše řečeno: web či kolekce webů, v jejímž rámci typ obsahu vytvoříte, vymezuje oblast jeho využití, jeho dostupnosti. Může to v praxi však znamenat jeden problém – chceme-li napříč více kolekcemi webů využívat jednotná metadata (sloupce webů) a typy obsahu, tak to standardně prostě nejde. :( Někteří z mých klientů právě kvůli tomuto faktu nevyužívají kolekce webů, což přináší zase jiné nevýhody popsané v minulém článku.

Jak z toho ven? Buď najměte schopného programátora, nebo kupte hotové řešení. Jedno z nich, téměř dokonalé s názvem SharePartXXL Taxonomy Extension, nabízí firma SharePartXXL International GmbH, více informací najdete na jejich webu https://www.sharepartxxl.com.

Typy obsahu, sloupce webu a BDC

Jedním ze scénářů, o který si typy obsahu, přesněji řečeno tedy sloupce webů, přímo říkají, je propojení s nástrojem „správce obchodních dat“, alias Business Data Catalog. Co to je? BDC umožňuje propojovat (pomocí XML definičních souborů aplikací) seznamy serveru SharePoint s externími datovými zdroji. Při vkládání nové obchodní nabídky do dokumentové knihovny tedy můžeme pomocí BDC sloupců k danému dokumentu přímo vkládat informace z externího systému, který ony informace sdružuje, řekněme CRM systému apod. Fajn, tohle je „jednoduché“ (možná by o BDC mohl být jeden z dalších článků), ovšem opět je zde ve spojení se sloupci webů jeden „malý“ problém – sloupce webů standardně neumí být typem BDC. :( Na jednom z obrázků na konci tohoto článku uvidíte, které datové typy se pro sloupce webů nabízí, BDC mezi nimi bohužel není.

No ale nevadí, SharePoint 2007 již nějakou dobu na trhu je a tato skutečnost samozřejmě nevadí jen nám. Existuje tedy opět řešení a opět je od třetí strany – zdarma si od Aarona Robertsona můžete stáhnout a upravit jeho řešení zde: https://www.sharepointblogs.com/aaronrh/archive/2007/12/21/free-sharepoint-business-data-catalog-column.aspx. Znáte-li lepší, ozvěte se, uvítám to. :)

A nyní obrázková dokumentace, hezky krok za krokem:

Dokumentová knihovna nabízí po svém vytvoření standardně dva typy obsahu – nový dokument a nová složka.

ct01

Použití vlastních typů obsahu je nutné u seznamů nejprve zapnout v upřesňujícím nastavení.

ct02Na stránce Nastavení daného seznamu je poté možné v oddílu „Typy obsahu“ přidávat nové typy obsahu a měnit jejich nastavení.

ct03

Na stránce Nastavení webu definujeme nové sloupce webu (metadata) a vlastní typy obsahů.

ct04

Při tvorbě nového sloupce webu můžeme využít celou řadu datových typů, bohužel ne typ BDC. Na ukázce použitý typ vyhledávacího sloupce slouží k vrácení dat z jiného zvoleného sloupce jiného seznamu.

ct05

V tomto případě budeme získávat hodnoty ze sloupce Nadpis seznamu Produktové skupiny.

ct06

Nově vytvořené sloupce webů doporučuji ukládat s využitím vlastních skupin sloupců webu. Usnadníte si tak jejich třídění.

ct07 

V galerii typů obsahu vidíte standardní typy obsahu dostupné po instalaci serveru SharePoint. Všimněte si např. typů obsahu dokument, kontakt apod., ty jsou využity ve výchozím nastavení u dokumentové knihovny a seznamu kontaktů jako výchozí položky pro tvorbu nového záznamu.

ct08

Tvorba nového typu obsahu – určujeme název, nadřazený typ obsahu a skupinu.

ct09

Stránka s nastavením typu obsahu.

ct10

Přidání sloupců webu k novému typu obsahu.

ct11

Přidání vlastní šablony dokumentu k novému typu obsahu.

ct12

Pro vytvoření vlastního panelu informací pro daný typ obsahu klikněte na volbu „vytvořit novou vlastní šablonu“, ne na volbu „upravit tuto šablonu“.

ct13

Aplikace Microsoft Office InfoPath 2007 s upraveným formulářem, který bude po opublikování (všimněte si odkazu v pravém dolním rohu aplikace) tvořit nový panel informací u typu obsahu.

ct14

Po opublikování formuláře zavřete aplikaci InfoPath, vraťte se na stánku s nastavením panelu informací, zaškrtněte volbu pro zobrazování panelu informací při otevření dokumentu a vše potvrďte tlačítkem OK.

ct15

A jsme zpátky v nastavení dokumentové knihovny, kde přidáváme nový typ obahu.

ct16

V nastavení dokumentové knihovny je následně v oddílu Typy obsahu možné upravit pořadí typů obsahu (do nabídky Nový). První typ obsahu v pořadí je zároveň výchozím typem obsahu u daného seznamu.

ct17

A zde již nabídka Nový s novým typem obsahu „Projektová dokumentace“. Typy obsahu Dokument a Složka jsem tam nechal záměrně pro orientaci, je však samozřejmě možné je následně z daného seznamu smazat.

ct18

Ukázka šablony dokumentu u našeho typu obsahu Projektová dokumentace. Všimněte si panelu informací (formulář aplikace InfoPath) s našimi metadaty (sloupci webů) a použitými datovými poli přímo v dokumentu.

ct19

Vybíráme hodnoty v informačním panelu. Stejné hodnoty se zároveň pomocí datových polí vkládají i do dokumentu.

ct20

Při pokusu o uložení dokumentu Word automaticky nabídne jako výchozí místo knihovnu dokumentů, ze které jsme šablonu typu obsahu otevřeli. Nebude-li některé z povinných polí na panelu informací vyplněno, dokument nebude možné uložit.

ct21

U dané dokumentové knihovny následně jednoduchou úpravou zobrazení přidáme např. do výchozího zobrazení „všechny dokumenty“ naše dva vlastní sloupce webu (spolu s typem obsahu se staly součástí definice schématu sloupců tohoto seznamu).

ct22

A jsme ve finále – v dokumentové knihovně je uložen nový dokument vytvořený na základě vlastního typu obsahu, dokument má vyplněná metadata. Zároveň vidíte i seznam „Produktové skupiny“, ze kterého sloupec webu „Produktová skupina“ dotahuje data.

ct23

Metadata můžeme editovat i ve webovém prohlížeči.

ct24

Nová složka vtvořená na základě vlastního typu obsahu stylu „složka“ s vlastními metadaty.

ct25

A zde nabídka „Nový“ s vlastními typy obsahu „Produktová dokumentace“ stylu dokument a „Rok 2009“ stylu složka. Pro orientaci jsem u této dokumentové knihovny ponechal i původní typy obsahu „Dokument“ a „Složka“, ty je samozřejmě možné jednoduše smazat.

ct26

Dámy a pánové, tolik k povídání o základním stavebním kamenu strukturované a řízené tvorby informací na platformě Microsoft SharePoint – typech obsahu. Vaše dotazy opět uvítám na TechNet blogu či mém osobním blogu. Zítra náš SharePoint miniseriál zakončíme vydatným povídáním o licencování produktů z rodiny SharePoint a souvisejících technologií.

- Kamil Juřík
IT konzultant, vedoucí lektor, Gopas a.s., Microsoft MVP, MCT, MCITP, MCTS

Kamil Juřík, kromě vedení lektorského sboru v Počítačové škole Gopas, vede odborná školení, semináře a konzultace na téma Microsoft SharePoint a Office System. Je nadšeným propagátorem těchto technologií, konzultantem s jasnou vizí a zdravým přístupem k věci. Jako pravděpodobně jediný lektor v Evropě se rovněž profesionálně a s neutuchajícím zájmem noří do tajů licencování a Software Asset Managementu. Tato témata rovněž přednáší na partnerských konferencích a seminářích společnosti Microsoft, je spoluautorem licenčního webu společnosti Microsoft a řady oficiálních licenčních webcastů a dokumentů.