Publikoval Michal Kočí dňa 27.4.2007 o 03:19 v kategórii InfoPath
Tento príspevok sa jednak pozrie na možnosti odoslania InfoPath formulára a jednak na UDC. V minulom príspevku (Webové InfoPath formuláre ) som spomenul, že sa pozriem na dátové spojenia (Universal Data Connection, UDC) a že objasním čo to je, na čo sa to používa a ké dva základné typy poznáme. Ak vyvýjate InfoPath formuláre a najmä tie webové, potom vedzte že o UDC musíte vedieť aspoň to, čo popíšem v tomto príspevku.
Isto ste si všimli, alebo ste pochopili, alebo jednoducho viete, že zmyslom InfoPath formulára je zber údajov od používateľa. To, že informácie od užívateľa získate je však len jedna časť práce. Druhá, ktorá musí logicky nasledovať je odoslanie dát na ďaľšie spracovanie.
Odoslanie formulára (Submit) je možné na jedným alebo viacerými z nasledovných spôsobov:
Keď sa teraz nad tým zamyslíte, tak je síce príjemné, že môžete využiť jeden z uvedených spôsobov. Ale čo v prípade, že sa napríklad zmení URL webovej služby? Alebo ak vyvýjate univerzálny formulár, ktorý má byť prístupný z viacerých site collections a v každej je cieľ trochu iný? Ak je URL pevne zakomponované vo formulári, potom s každou zmenou by ste museli modifkovať formulár. Ak by ste navyše formulár vypublikovali na farmu a aktivovali ho pre viacero site collections, všetky by používali tú natvrdo nastavenú URL, čo nie je vždy dobré. Odpoveďou na tieto problémy sú dátové spojenia - Universal Data Connections, UDC.
Pri použití UDC vlastne pridáte ďaľší článok. Váš formulár nebude vedieť kde presne má dáta odoslať, ale bude vedieť, kde tieto informácie zistiť. Bude v sebe totiž odkazovať na UDC. Bude teda vedieť aký spôsob spojenia sa bude realizovať (email, webová služba, ...) a bude si vedieť zistiť presnú destináciu.
Kde sú teda UDC uložené? No, to záleží na tom, aký typ UDC použijete. Sú dva typy a každý má svôj spôsob použitia:
Ako teda vo vnútri vyzerá UDC súbor? Jedná sa o XML súbor, teda raz keď ho máte vytvorený, tak zmena URL sa rovná jeho otvoreniu v ľubovoľnom textovom editore, napríklad v Notepade a prepis hodnoty jedného elementu. Príklad UDC:
<?xml version="1.0" encoding="UTF-8"?> <?MicrosoftWindowsSharePointServices ContentTypeID="0x010100B4CBD48E029A4ad8B62CB0E41868F2B0"?> <udc:DataSource MajorVersion="2" MinorVersion="0" xmlns:udc="http://schemas.microsoft.com/office/infopath/2006/udc"> <udc:Name>BackupNodeConfiguration_saveSupportRequest</udc:Name> <udc:Description>Format: UDC V2; ...</udc:Description> <udc:Type MajorVersion="2" MinorVersion="0" Type="WebService"> <udc:SubType MajorVersion="0" MinorVersion="0" Type=""/> </udc:Type> <udc:ConnectionInfo Purpose="WriteOnly" AltDataSource=""> <udc:WsdlUrl>http://localhost/SimpleService.aspx?wsdl</udc:WsdlUrl> <udc:SelectCommand> <udc:ListId/> <udc:WebUrl/> <udc:ConnectionString/> <udc:ServiceUrl UseFormsServiceProxy="false"/> <udc:SoapAction/> <udc:Query/> </udc:SelectCommand> <udc:UpdateCommand> <udc:ServiceUrl UseFormsServiceProxy="false"> http://localhost/SimpleService.asmx </udc:ServiceUrl> <udc:SoapAction/> <udc:Submit/> <udc:FileName/> <udc:FolderName AllowOverwrite=""/> </udc:UpdateCommand> <!--udc:Authentication> <udc:SSO AppId='' CredentialType='' /> </udc:Authentication--> </udc:ConnectionInfo> </udc:DataSource>
Na príklade vidieť, že je vyplnený iba Update Command, t.j. sa jedná o submit spojenie (ešte môže byť aj retrieve, kedy načítavate nejaké dáta, napríklad hodnoty pre číselník na formulári). Tiež je vidno, že sa jedná o volanie webovej služby, vidieť URL služby a URL WSDL, čiže popisu služby. Zakomentovaný je element Authentication. Tento je možné použiť ak sa potrebujete voči cieľu autentifikovať a chcete použiť SSO (Single SignOn).
Ak sa Vám UDC nechce vytvárať ručne, čo sa Vám asi nechce, existuje aj jednoduchší a praktickejší spôsob, necháte si ho jednoducho vygenerovať InfoPath-om. Keď máte vytvorené dátové spojenie, potom v menu Tools / Data Connections si vyberiete dátové spojenie a kliknete na tlačidlo Convert:
V sprievodcovi si vyberiete ktorý spôsob publikovania chcete použiť, či centrálny alebo relatívny:
Ak použijete relatívny, musíte UDC publikovať do knižnice dátových spojení (Data Connection Library), ktorú si vopred musíte vytvoriť.
V knižnici ho potom povoľte (z menu súboru vyberte Approve/Reject a v nasledujúcom okne potvrďte Approve).
Ak aj použijete centrálny, najskôr si musíte UDC vypublikovať do nejakej knižnice, takže si knižnicu spojení vytvorte tak či tak. Pri centrálnom spôsobe si potom súbor z knižnice stiahnite na disk, upravte ak je to treba a vypublikujte ho v centrálnej administrácii: Central Administration / Application Management / Manage data connection files:
Kedykoľvek potom potrebujete zmeniť URL, stačí si z príslušnej knižnice dátových spojení stiahnuť UDC, prepísať URL a UDC znovu nahrať do príslušnej dátovej knižnice.
Ak nechceš premeškať príspevky ako je tento, sleduj ma na Twitteri, alebo ak máš RSS čítačku, môžeš sledovať môj RSS kanál.