Federated Search

V únoru jsem měl na konferenci London’s Calling prezentaci na téma Federated Search, což mi přijde jako úžasná věc, kterou jsem ale zatím v praxi neviděl nikde používat. Přitom to velmi snadno umožňuje integrovat externí systémy, je to dostupné již v edici Professional a má to slušnou paletu funkcí. Chcete příklad?

ARES

Snad v každé implementaci, kterou dělám, to chtějí – napojení na ARES případně Merk. Existují aplikace, které to řeší (ta na ARES se již neaktualizuje) a jsou skvělé, ale díky Federated Search můžeme něčeho podobného dosáhnout také. Některé věci fungují lépe, jiné hůře.

Věc, která mi přijde naprosto geniální je ta, že se ta věc napojuje přímo do vyhledávání. Mohu definovat sloupce, které jsou ve vyhledávání vidět, měnit page layout, přidávat nová tlačítka. No dobrá, narážíme hned na několik limitací:

  • ARES podporuje omezený počet volání denně (což v normální firmě nebude tak velký problém) a vy se nedozvíte, zda už se neblížíte k jejich vyčerpání;
  • ARES umožňuje vrátit maximálně 200 záznamů, kdyby jich měl vrátit víc tak raději vrátí chybu – kterou nejste schopni uživateli zobrazit – než aby vrátil alespoň něco;
  • externí objekty, kterými se to hledání řeší, umožňují jenom některou funkcionalitu – třeba je nepoužijete ve Flow nebo Process Builderu, abyste mohli nalezenou firmu rychle uložit mezi ty vaše. Takže musíte programovat Visualforce stránku, která by to zkonvertovala.

Jak na to

Pokud budete věřit mé bezplatné instanci Heroku, tak půjdete do nastavení, dáte External Data Sources, zvolíte Federated Search a jako adresu zadáte https://mhumpolec.herokuapp.com/resources/ares.xml. Uložit, zvolit Validate and Sync a už to jede.

Pokud nevěříte, tak si můžete spustit vlastní Heroku (nebo to hostovat kdekoliv jinde, kde běží https). Celá ta věc je postavena na node.js a Mustache.

Vlastní kód si odchytí váš požadavek, dotáže se webu ministerstva, XML zkonvertuje do JSON a ten prožene Mustache šablonou, která vrátí finální XML, které umí Salesforce zpracovat.

Žádný složitý kód, až vám bude vývojář říkat, že to je týden práce, tak to vidíte na vlastní oči, kolik toho asi tak musí napsat.

Mustache projde předaný JSON a zformátuje ho jak potřebujete. Tahle věc se mi hodně líbí, je jednoduchá a jdou s ní dělat kouzla. Pozor na to, že ve výsledném souboru nesmí být žádné prázdné řádky. Drobnost, kvůli které mi to dvě hodiny nefungovalo. Developer Guide také zmiňuje, že některé z položek jsou povinné, ale není to tak horké.

Poslední co potřebujete je definice OpenSearchDescription souboru, kde specifikujete jaká všechna pole jsou ve výsledném souboru. I u něj jsem měl zásek, neboť jsem ho odněkud zkopíroval a přitom zkopíroval i skrytý znak na začátku souboru, díky kterému to celé nefungovalo. Takže kopírujte opatrně.

Heroku

Když jsem si prezentaci připravoval, tak jsem se naučil víc nejenom o Federated Search, ale také jsem se naučil základy node.js, pronikl trochu do Mustache a (znovu) objevil Heroku. Virtuální servery normálně hostuji jinde, ale nebyl jsem tam schopen nakonfigurovat node.js a https dohromady (holt Linux není moje silná stránka). Heroku jede na https automaticky, zbývalo se naučit, jak tam dostat souboru. Heroku CLI, Git a spousta dalších věcí, ze kterých mi vstávaly vlasy hrůzou na hlavě.

A pak jsem zjistil, že Heroku je možné spojit s Dropboxem a cokoliv nahraju na Dropbox tak pak mohu uživatelsky nasadit na Heroku. Voilá, hnedle jsme byli kamarádi a během chvíle mi ty věci běžely.

Prezentace na různých konferencí vás donutí se učit nové věci. A to je super. Jaké použití byste pro tuhle věc měli vy?

Zajímá mě tvůj názor