Omniture SiteCatalyst Excel Client: Timeout Error?
Warning: Trying to access array offset on value of type null in /data/web/virtuals/1904/virtual/www/domains/blog.web-future.cz/wp-content/themes/sweet-dreams/functions.php on line 44
17. 9. 2009 v 9:53 pm
Omniture SiteCatalyst je zajisté vynikající analytická platforma. Kromě webového rozhraní máte k dispozici i Omniture ExcelClient – plugin pro Microsoft Excel. Díky němu můžete data z Omniture vkládat a aktualizovat přímo v Excelu. Bohužel excel plugin je takové trošku zanedbané dítko, které trpí mnoha neduhy. Jedním z nich je problém s aktualizací (refresh) vložených data bloků, která často končí hláškou o timeoutu.
Řešení 1: Manuální obnova jednotlivých Omniture data bloků v Excelu
Nesmysl, kdo by se s tím dělal. Takže můžeme postoupit k dalšímu řešení…
Výhody: 100% spolehlivé řešení problému se SiteCatalyst Excel pluginem
Nevýhody: Tak zdlouhavé a pracné, že o tom nemá cenu ani uvažovat.
Řešení 2: Rozdělit data bloky do více listů
Když používáte v sešitu například 20 data bloků, rozdělte je do více listů. Např. list Omniture_1 s 10 data bloky, list Omniture_2 s dalšími 10 data bloky atd.
Pak stačí v Excelu zvolit jeden z listů, záložku Add-ins (používám anglický MS Excel, ale jistě snadno najdete českou alternativu) a zde tlačítko „Refresh Worksheet". Tímto se aktualizují data pouze ve zvoleném listu. Díky tomu je menší šance, že refresh skončí chybovou hláškou. Samozřejmě je nutné aktualizovat postupně všechny listy.
Bohužel tato metoda není vždy spolehlivá, záleží na tom, jak se Omniture SiteCatalyst zrovna „vyspí" (resp. asi jak jsou zrovna zatížené servery). Může fungovat měsíc bez problémů, ale pak třeba několik dnů nedostanete z Omniture ExcelClientu nic jiného než Timeout Error.
Výhody: Snadná realizace, prakticky žádná práce navíc.
Nevýhody: Nespolehlivost – někdy funguje, jindy zase ne, přestože jste v Excelu nic neměnili, aktualizujete data z Omniture SiteCatalyst ve stejnou dobu.
Řešení 3: Excel makro pro obnovu SiteCatalyst data bloků
Výše uvedené problémy jsem vyřešil vytvořením makra, které bloky aktualizuje postupně po jednom (výhoda spolehlivosti řešení 1), ale vše se provede jedním kliknutím (výhoda řešení 2).
Co potřebujete:
První podmínkou je mít povolené spouštění maker.
Pokud v Excelu nevidíte záložku Developer, zapněte si ji.
Soubor s data bloky z Omniture SiteCatalyst uložte jako Macro-enabled sešit (přípona XLSM).
První varianta makra pro Omniture SiteCatalyst ExcelClient
Data blok Omniture se určí pomocí jedné z jeho buněk.
Sheets("Omniture").Range("B4").QueryTable.Refresh BackgroundQuery:=False
Sheets("Omniture").Range("I4").QueryTable.Refresh BackgroundQuery:=False
Ukázka makra:
Druhá varianta makra pro Omniture SiteCatalyst ExcelClient
Pro definici databloků se používají jejich názvy. Osvědčila se mi více, přijde mi flexibilnější.
Klikněte pravým tlačítkem na data blok, „Data Range Properties".
Zde vás zajímá hodnota pole Name, kterou pak použijte v makru:
ActiveWorkbook.Sheets("Omniture").QueryTables("ExterníData_1").Refresh BackgroundQuery:=False
ActiveWorkbook.Sheets("Omniture").QueryTables("ExterníData_2").Refresh BackgroundQuery:=False
Ukázka makra:
Výhody: Vysoká spolehlivost, po nastavení prakticky nulová pracnost aktualizace dat
Nevýhody: Během aktualizace Excel vytuhne a nedá se s ním pracovat. Nutné povolit v Excelu makra. Pracnost s definováním data bloků v makru, ale dlouhodobě se vyplatí, viz výhody výše.
Upozorňuji, že nejsem žádný specialista na makra v Excelu (spíš naopak). Pokud máte případné náměty na zlepšení fungování makra pro obnovení dat z Omnitre SiteCatalyst Excel Clientu, uvítám je v komentářích pod článkem.