Jestli se mi na SharePointu něco líbí, tak je to existence business data catalogu (BDC). V podstatě je to taková obdoba LEI od IBM, asi o kousek méně mocná, ale k mým účelům naprosto dostačující.
Ta věc umožňuje napojení SharePointu na externí data, která umí získat přímo z SQL databáze (nejenom MS SQL), přes WebService, ODBC či Accessu. Pro mě tedy možností napojení více než dost. A takto získaná data je možno použít ve vlastních polích, která vytvoříme v seznamech; v rámci metadat v dokumentech (a jdou pak vyplnit přímo z MS Office, minimálně verze 2007); přímo zobrazit v rámci předpřipravených webpartů jako seznamy; vyhledávat v nich pomocí integrovaného vyhledávání nebo dokonce zadávat nové údaje či měnit existující. Zkrátka a prostě možnosti více než široké.
Celá ta věc je navíc relativně dost jednoduchá na konfiguraci – vlastní nastavení se provádí pomocí XML dokumentu, jehož struktura je popsaná (takže se dá napsat ručně). Pro nějaké jednodušší vygenerování souboru se dá použít ať už speciální program od Microsoftu (který je velký a úplně jsem jeho ovládání nepochopil) nebo pomocí BDC Meta Man prográmku, který se dokonce dodává v trial verzi, umožňující si to osahat.
Vlastní připojení zdrojů je jednoduché, pak už si člověk jenom natahá tabulky, které chce používat, prováže jejich primární klíče (a díky tomu je pak schopen v SharePointu udělat provázání seznamů a zobrazování souvisejících dat), nastavit filtry, podle kterých bude uživatel moci vyhledávat a pár dalších věcí. Na závěr toho celého vygeneruje XML dokument a je to.
Tady je ta první část, v rámci druhé části ještě musí (alespoň v případě BDC Meta Man) ten soubor trochu poladit – konkrétně nastavení bezpečnosti. Standardní část o připojení k systému se nahradí něčím podobným tomuto:
<LobSystemInstances>
<LobSystemInstance Name=“K2_QGIRInstance“>
<Properties>
<Property Name=“DatabaseAccessProvider“ Type=“System.String“>SqlServer</Property>
<Property Name=“AuthenticationMode“ Type=“System.String“>RdbCredentials</Property>
<Property Name=“RdbConnection Data Source“ Type=“System.String“>Jméno serveru</Property>
<Property Name=“RdbConnection Initial Catalog“ Type=“System.String“>Jméno databáze</Property>
<Property Name=“RdbConnection Integrated Security“ Type=“System.String“>false</Property>
<Property Name=“RdbConnection Pooling“ Type=“System.String“>true</Property>
<Property Name=“SsoApplicationId“ Type=“System.String“>Jméno SSO</Property>
<Property Name=“SsoProviderImplementation“ Type=“System.String“>Microsoft.SharePoint.Portal.SingleSignon.SpsSsoProvider, Microsoft.SharePoint.Portal.SingleSignon, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Property>
</Properties>
</LobSystemInstance>
</LobSystemInstances>
V tomto případě jsem nastavil přístup, který bude používat SSO nastavené v rámci SharePointu a jak jsem pochopil, tak je to jediná šance, jak se spojit s databází běžící na jiném serveru. Druhou možností (pokud vše běží na jednom serveru) je v položce AuthenticationMode uvést RevertToSelf.
XML soubor připraven a nyní chybí jediné – naimportovat ho do SharePointu. Jednodušší už to opravdu být nemůže (a trochu mě až překvapuje, že je to tak jednoduché, když vidím tu složitou nasazení třeba nově vyvinutého řešení v SharePointu) – na příslušné stránce se zvolí import, vybere se soubor a počká na výsledek.
Hezké je následné nastavení bezpečnosti – ta jde totiž nastavit jak na celou naimportovanou „aplikaci“ tak na její jednotlivé části – tabulky, ze kterých je složená.
A úplný závěr je krásný – na stránku se přidá webpart zobrazující business data, vybere se aplikace, ze které čerpá data, nastaví zobrazení a je hotovo. Případně se dodá druhý webpart zobrazující související data (filtrovaný na základě výběru v předchozím webpartu) a celé to krásně funguje. Vlastně má to jedinou vadu – není tam žádná podpora AJAXu, takže se vždy překresluje stránka a to je trochu otrava.
Takže my máme třeba na našem intranetu seznam partnerů, k nim souvisejících osob a aktivit, to celé natažené z K2.
K jednotlivým tabulkám se navíc dají přidat akce – tedy třeba zobrazit adresu na mapě, vytočit telefonní číslo a další, které vás napadnou.
Další možností je použít business data jako hodnotu v rámci jiného seznamu – třeba seznamu odeslané pošty. Celé je to zase jednoduché – při definici pole se vybere jako typ business data, určí se tabulka a pole a ještě se může určit dodatečné pole, které se automaticky dotáhne – takže vyberu firmu a k ní se mi automaticky dotáhne adresa. Opravdu hodně pěkné.
Hodně pěkné povídání o tomto nyní vychází na SharePoint Magazine, první díl { Link } je jenom úvodní , druhý { Link } dost detailně popisuje vygenerovaný XML soubor.