Governor limits v Salesforce

Governor limity v Salesforce

Jedna z důležitých věcí, kterou musíte při programování v Salesforce vést v patrnosti, jsou Governor limity. Typicky se jedná o to, jak dlouho může kód běžet, kolik dotazů do databáze v něm může být a kolika řádků se takové dotazy mohou maximálně týkat. Většinou to i dává smysl a celkem chápete, proč to mají. Občas vám to ale smysl úplně nedává.

Maximálně 100 dotazů na databázi

Napsat dotaz, který například v cyklu prochází jednotlivé záznamy firem a k nim dohledává osoby, se nedělá. Udělá se to hezky tak, že nejdřív v jednom cyklu si do proměnné přiřadíte ID všech firem, které vás zajímají, pak spustíte SOQL dotaz a pak v dalším cyklu projedete výsledky. Pokud na základě výsledků chcete spustit ještě další dotaz (třeba proto, že JOIN v SOQL vlastně neexistuje), tak máte další cyklus a pak ještě jeden hromadný dotaz do databáze.

Což asi dává smysl, než zahltit databázi kupou dotazů je lepší spotřebovat trochu víc paměti na držení těch proměnných, které se poté použijí pro hledání.

Maximálně 50 000 vrácených záznamů

Máte v databázi statisíce záznamů a chcete je všechny projet a něco s nimi udělat? Vytvořte si batch, díky kterému SF hezky rozkouskuje volání do databáze standardně po 200 záznamech, maximálně po 2000.

To dává z hlediska SF velký smysl, vznikne mu sice ohromné množství jednotlivých úloh, ale ty může v rámci zatížení různě pozastavit a servery mu nekleknou.

Srovnejte se s průměrem

Pokud ty předchozí body dávaly smysl, tak dojdete do okamžiku, kdy vám to smysl dávat nebude. Typicky když vás třeba zajímá, jaká je celková průměrná výše daru osob a zda jednotlivé kontakty dávají více nebo méně.

V SQL je to jeden UPDATE s vnořeným SELECT příkazem, něco jako

UPDATE Contact SET AvgPos = (SELECT AVG( Amount)FROM Transactions GROUP BY ContactId) WHERE Contact.Id = Transactions.ContactId)

(znalci SQL mě opraví, ale nemělo by to být nic komplikovaného).

V Salesforce vám začne legrace, při které se vůbec nesmíte spolehnout na sílu a rychlost databáze.

Nejdřív první batch, u kterého nesmíte zapomenout na parametr Database.Stateful, protože normálně ty jednotlivé batche, které SF spouští, o sobě vzájemně neví.

V rámci této dávky si hezky v cyklu projedete všechny záznamy a sami si spočtete, kolik je tedy ta průměrná výše daru.

Až doběhne poslední batch, tak v rámci finish metody spustíte další dávku s parametrem udávajícím to číslo, které jste právě zjistili. A tahle dávka se zase rozprskne do tisíců malých dávek a v dalším cyklu aktualizuje jednotlivé osoby.

SELECT * FROM Contact

Ještě jedna věc v Salesforce vlastně nejde – vrátit hodnotu všech polí. Na začátku vám přijde, že SF je geniální, protože objekt si načtete voláním SOQL příkazu:

Contact[] kontakt = [ SELECT Id, FirstName, LastName from Contact WHERE MailingCity=’Praha‘]

Tohle je prostě super, v Lotus Notes jsme si nejdřív museli nastavovat session, pak databázi, pohled, pak kolekci dokumentů a pak to projíždět, tady to mám v jednom.

Hloupé ovšem je, že ten kontakt, který se vám vrátí, má k dispozici jenom ta pole, na která jste se zeptali. Chcete nastavit jiné? Musíte upravit SOQL dotaz. Chcete záznam zduplikovat a mít v něm všechna pole? Musíte je hezky ručně vypsat (a nezapomenout dotaz upravit, pokud stvoříte pole nová). Jasně, existují na to udělátka, jak projít definici objektu a dotaz seskládat automaticky tak, aby zahrnoval všechna pole, ale to už je ohýbání stavu věcí.

Občas je to programování v Salesforce fakt neskutečná pruda, občas velmi radost záležitost. Co bude převládat? A podle článku Brada Edgerlyho je nutné na tyto limity myslet i při návrhu Flow (vizuálním „programování“)

Napiš komentář, díky!
Čtyři Jankovic holky

Nám, nám, narodila se …

Velká tipovací soutěž o okamžik narození prcka a jeho „parametry“ skončila v pátek v noci, takže v sobotu ráno mohl jít klidně ven. Tedy mohla. Klára, naše nejmladší.

Čas ji zapít

Zapomeňte na to, že bych vás pozval do hospody a zaplatil za vás panáky. Naopak – podívejte se ve své oblíbené nálevně kolik stojí váš oblíbený panák a zapřemýšlejte, kolik jich vypijete.

Ceny alkoholu

Máte?

Super, tuhle částku vezměte a pošlete přesně sem – na asistenty pedagogů (tajný kód oslavy je 191771, budete ho potřebovat při zasílání peněz), které vzdělává Člověk v tísni. Vaše játra vám poděkují také.

Asistentů pedagoga je v českých školách stále nedostatek. Na některých již působí, další se je chystají zapojit do výuky v nejbližších letech (mimo jiné i díky novele školského zákona, která vejde v platnost v roce 2016). Tam, kde již pracují kvalifikovaní asistenti a kde vedení školy jejich roli rozumí, dosahují skvělých výsledků.

Ať neříkáte, že jsem škrt, tak na konci května vybranou částku zdvojnásobím (maximálně ale zaplatím 40 000Kč). Pojďte na to!

Vyhodnocení soutěže

Dva lidé tipnuli správně datum, dva se vešli do půlhodinové odchylky od hodiny narození, jeden se přiblížil porodní váze (a pořád mu půl kila chybělo), jediný trefil porodní délku.

23. dubna 4:13 ráno, 4 200g a 50cm délky jsou ty správné vítězné hodnoty. Nejblíže se – s pouhými 11 trestnými body – přiblížil Michal N. (hned první tipující) a Zuzka T.

Na zdraví!

Dary a daně

Pokud nevíte, tak od základu daně si můžete odečíst dary do maximální výše 15 % daňového základu. Minimální částka daru musí činit 1 000Kč případně 2 % základu (podle toho, která částka je nižší). Takže nejenom že nám uděláte radost, pomůžete dobré věci, ale ještě si to odečtete z daní a stát vám příští duben něco vrátí. A to se vám bude určitě hodit 😉

Napiš komentář, díky!
Autotým - naše zkušenost s jejich službami

Autotým – ušetříme vám práci s hledáním ojetého auta. Nebo taky ne.

Bude nás doma víc, což mimo jiné znamená, že potřebujeme auto. Větší auto. Naštěstí je tady SAutoTipCars, na kterých najdeme auta snad ze všech bazarů a ještě spoustu soukromých inzerátů. Jenže kdo se tím má probírat, ověřovat a přemýšlet, co ty zkratky znamenají a které opravdu potřebuje.

Naštěstí je tady Autotým, který (i podle Forbesu) vás těchto starostí zbaví a během pár dnů až týdnů máte své vysněné auto bez práce a starostí.

Autotým - najdeme vám auto

Jenom u nás to s nimi nějak neklaplo.

Najdeme vám auto

Začneme tím, že si vyslechneme, co od nového auta očekáváte a pomůžeme vám upřesnit konkrétní detaily. Následně se pustíme do hledání a najdeme vám přesně ta auta, která nejlépe odpovídají vaší představě.

My jsme se bohužel prořekli, že už asi máme konkrétní model vybraný, takže o možných variantách jsme se nic nedozvěděli. Dotazník s námi konzultant proběhl bleskem, takže jsme ho i zapomněli informovat, že kožené sedačky opravdu nechceme. Základ jsme mu naštěstí říct stačili.

Za pár dní máme první nabídku, kde je šest aut. Jedno s koženými sedačkami, druhé s automatem (ano, striktně jsme chtěli manuální převodovku), třetí má najeto 190 000km (chtěli jsme do 180 000km). Ještě nám stačí vyměnit konzultanta, takže toho nového se ptáme, zda pořadí aut v nabídce něco znamená. U toho nového by to znamenalo, v jakém pořadí by o nich uvažoval, ale jestli to ten původní dělal stejně, kdo ví.

Ok, přes víkend vybíráme a v pondělí dáváme konzultantovi vědět, které se nám líbí.

Kontaktoval jsem prodejce. Vozidlo má již 14dní prodané. Zapomněl ho smazat z nabídky.

Aha, takže bod 4.1.2 obchodních podmínek v praxi zjevně nedělají. „Naštěstí“ máme v rámci balíčku nárok na druhou nabídku aut zdarma a tak o ni žádáme.

Autotým - prověříme, zda vozidlo existuje

Tentokrát dostáváme seznam osmi vozidel. První z nich jsme dostali už v té předchozí nabídce, druhé má najeto víc, třetí má najeto až podivně málo. Skvělé je, že u všech máme od rádce komentář – dovozové vozidlo. Nějak jsem doufal, že na stránkách uvedené „včetně komentářů, v nichž vás upozorníme na jejich výhody či možná rizika“ znamená něco jiného. Třeba to, že normálně ta auta mívají najeto 150 – 180 000km a tak něco se 70 000km je prostě divné. A že to prověřil (bod 4.1.2, že).

Nevadí, vybíráme vozidlo a … zkuste hádat. Oni ho prodali. Ale naštěstí prý budou mít další, tak vám pošlu detaily.

Vsuvka – auta z áček nebo esa do nabídek nedávají, protože vědí, že typicky neexistují. No, když jsme se v áčkách zastavili, tak tam těch, která nás zajímaly, stálo celkem dost.

Jdeme do servisu

Další den máme v emailu detaily o dalším voze a vypadá dobře. O den později přijdou první fotky. Vypadá to dobře, prověřte to v servisu.

Po prověření přijdou fotky a protokol. Poprvé se dozvídáme o prasklém čelním sklu (ale to prodejce vymění, jenom jsme to tam nikam nenapsali), chybí zmínka o tažném zařízení, které bylo na prvních fotkách vidět („Myslím, že odnímatelné má“ reaguje konzultant, když se ho na ten rozpor ptám).

Nafocená servisní knížka, podle které auto ujelo od května 2012 do ledna 2015 každého čtvrt roku 20 000km a od té doby do dneška jenom 20 000km. Dohromady s ohmataným volantem a řadicí pákou to nepůsobí úplně dobře.

Radíme se s kamarádem mechanikem, auto podle něj vypadá spíš hůř než líp na daný nájezd a rok výroby, takže z toho raději couváme.

Co by bylo dál

Nicméně než vycouváme mě zajímá, jak by to probíhalo dál.

S prodejcem jsme domluvili slevu 5 000Kč (o tu se v souladu s VOP rozdělíme), tak mu zavolejte, že to berete a vyřiďte si to s ním.

Člověk by doufal, že když už si najme firmu na vyhledání auta, tak mu pomohou i v té finální fázi. Přehlášení auta zmiňují i na svém webu, ale ve skutečnosti ho nedělají. Se smlouvou také neradí a ani nemají šablonu. Což chápu, není nad to mít vlastního právníka, ale přeci jenom … Ale kdybychom chtěli financování nebo pojištění, to už zase dělají.

Autotým - rádi pro vás auto přehlásíme. Tedy, tohle neděláme

Kolik to stojí

Podle Forbesu 1 999,- ale to už asi dlouho není pravda. Za vyhledání + prověření zaplatíte minimálně 3 990,- a navíc jim jde velmi dobře up-sell. Takže třeba takovou laserovou geometrii jen těžko odmítnete (za směšných 590,-) a další věci určitě také vymyslí.

Pokud je auto dál než 10km od některé z jejich poboček, tak si zaplatíte ještě cestovné. Což znamená, že v zásadě i po Praze.

Příště hledám sám

Zkušenost to byla dobrá. Jak jsme předtím měli pocit, že těch aut je hrozně moc a nevíme jak si vybrat, tak teď už nám to jde celkem snadno. Navíc jsme se také dozvěděli, že se nemusíme vázat na to, zda prodejce jako výbavu uvedl ISOFIX, protože ten už je povinný vždy. A spoustu dalších drobností.

Jako laici bychom nicméně ocenili větší vedení ze strany konzultanta, co máme chtít, na co se ptát, na co dát pozor. Dostali jsme fotky a protokoly a ptejte se, na co chcete. Což možná bylo tím, že jsem s nimi jednal já jako chlap, nebo tím, že toho měli moc a konzultant si viditelně už druhý den měl trochu problém vzpomenout, jak to auto vlastně vypadalo. Což je jasné, když jsem ho chytil někde v zácpě a následně se dozvěděl, že v ní stál už s dalším klientem.

Možná by stálo za to vyzkoušet kurz Chytrý výběr a nákup ojetého vozu na Naučme se, který nabízí podobné věci jako Autotým.

Ale já už asi proseji těch pár nabídek, co nám zbývá, sám a kamarád, který se o auto stejně bude do budoucna starat, si ho zkontroluje. Budeme mít vyřešeno. Držte palce.

Vyjádření Autotýmu

Před publikováním jsem Autotýmu nabídl, aby se k článku vyjádřili. Strávil jsem s nimi následně hezkých pár minut na telefonu, abychom ho probrali, dobrali se k tomu, že od nich nic nechci a ujistil je, že článek na blogu zůstane, protože je to prostě moje shrnutí dojmů a zkušeností.

Vyjádření paní Kowolowské, ředitelky společnosti

Toto se dá okomentovat leda náhledem na ceník AutotýmuUznáváme, že jsme Vás neobsloužili v souladu s našimi obchodními podmínkami, tedy že jsme neprověřili dostupnost vozidel před odesláním nabídky. Snažili jsme se Vám situaci vykompenzovat tím, že jsme v zájmu urychlení kontroly vybraného vozu na jeho kontrolu do Brna poslali technika z Prahy, aniž bychom si za to účtovali kilometrovné. Z našeho dnešního telefonátu vyplynulo, že po nás nic dalšího nežádáte a že si vůz budete hledat sám. Budete-li chtít vůz prověřit, až ho naleznete, rádi to pro Vás uděláme.

Je nám upřímně líto, že jste s našimi službami nebyl spokojen a to obzvláště proto, že náš konzultant řešil kontrolu Vašeho vozu ještě ve 21:00, aby Vám vyšel vstříc a vůz mohl být další den zkontrolován.

 

Napiš komentář, díky!
Náhled do Google Analytics

Rozdíly mezi čísly v Google Analytics a Adwords

Není nad to inzerovat v Adwords, vyhodnocovat návštěvnost webu v Analytics a mít relativně malý počet konverzí, takže u každé opravdu chcete vědět, kdo za ní může (direct, vyhledávání, reklama, referral a další).

Že bude rozdíl mezi čísly Adwords a Analytics jsem věděl – jednak je na to spousta článků, druhak to dává smysl, když to každý měří trochu jinak. U nás se to bohužel liší o 100 % a to už je dost na to, abychom nad tím jenom mávli rukou. Zvláště když se šéf ptá a chce vidět konkrétní konverze, abychom mohli opravdu správně vyhodnotit co má smysl a co vypnout.

Konverzní trasy

Google Analytics nabízí přehled, který ukazuje nejčastější konverzní trasy. Důležité je jednak slovíčko „nejčastější“ druhak fakt, že přes to asi nedostanete jednotlivé konverze, abyste si je opravdu mohli odškrtat v interním systému a správně napárovat ke zdroji jejich získání.

Tak jak to děláš?

Úplně hloupě a pořádně manuálně. Otevřu si v Analytics report veškeré návštěvnosti seřazený přes zdroj a médium a přidám si jako druhou dimenzi hodinu dne. Seřadím podle konverzí a hnedle vím ve které dny a hodiny ke konverzím došlo, takže se v interní databázi snažím dohledat, které záznamy v té době vznikly a který z nich to tak asi mohl být.

Náhled do Google Analytics

Tím mám první část pravdy – tu, co tvrdí Analytics na základě posledního kliku. Teď ještě Adwords. Tam jde naštěstí (jak jsem zjistil až časem) také zjistit, kdy došlo ke konverzím, které si nárokuje Adwords. Přes web je to ale pořádná pruda, takže je lepší si vyexportovat data.

Tlačítko download report a v reportu nezapomenout přidat další segmenty – den a hodinu. A pokud chcete report zpracovávat v Rku, tak ještě nastavit formát .csv.

Stažení reportu z Google Adwords

Stáhnout, odmazat první řádek, otevřít v Rku (když už jsem se ho trochu naučil), vyfiltrovat řádky, které mají konverzi a zase kombinací dne a hodiny hledat, které záznamy to v tom interním systému asi jsou.

Ošklivá manuální práce, která by šla určitě nějak zautomatizovat. Jenom vědět jak a případně na to mít programátora, který by těch – určitě jenom pár řádků – nakódoval. Nevíte o někom, kdo zná PHP, poradí si se Zend a nebojí se aplikace, která je prý zprasená? Pár dní práce bychom pro něj měli.

 

Napiš komentář, díky!

Jídlo na prvním místě, Hartwigovi

Jídlo na prvním místě, obálka knihyPaleo, paleo, paleo. Už to dohnalo i mě. Když jsme naposledy odcházeli z knihovny, tak tam tuhle knížku zrovna někdo vrátil, takže jsem si ji odnesl hezky napnutý domů a pustil se do čtení.

Na rovinu přiznám, že jsem jí tak půlku moc nevnímal. Sacharidy, bílkoviny, vláknina, leptin, glukagon, kortizol, inzulín, cholesterol, omega kyseliny, nasycené, nenasycené. Jakmile zahlédnu tato slovíčka, tak mi hlava vypíná, nevnímá a nepamatuje si to. Takže pořád nevím co za co může a co je dobře, co špatně a jak se to navzájem ovlivňuje. Stejně tak neumím číst etikety na potravinách, takže setrvalý stav.

Standardy dobrého jídla

Čtyři jednoduché standardy, které by podle Dallase a Melissy mělo splňovat každé jídlo:

  • zdravá psychologická reakce aneb neovlivňuje mozek (podobně třeba jako to dělají drogy);
  • zdravá hormonální reakce aneb něco o leptinové a inzulinové rezistenci (tuším to má něco společného s pocity nasycení a hladu);
  • podpora zdravého trávení, tedy nezvyšují propustnost střevní stěny (tušili jste, že střeva jsou největší plochou, kterou vnímáme okolní svět, a že plocha tenkého střeva je podobná jako plocha tenisového kurtu?);
  • podpora fungování imunitního systému aneb záněty a autoimunitní onemocnění.

Jídlo jako původce nemocí

Geny jsou prý fajn, ale případné nemoci musí někdo spustit. A to dělá jídlo. Až jsem byl překvapen tou spoustou nemocí, o kterých jsem (naštěstí) v životě neslyšel. Stejně jako těmi, o kterých jsem slyšel – Parkinson a Alzheiher – a které jsou prý způsobeny jídlem, napadlo by vás to někdy?

Nemoci způsobené jídlem

Před čtyřmi léty mi vyskákala vyrážka na rukou, doktor pokrčil rameny, prohlásil mě za pozdního atopika, takže se toho prý do konce života nezbavím a můžeme to zkusit udržet na uzdě různými mastičkami. Mazání trochu flákám, někdy je to výrazně horší a jindy zase výrazně lepší, ale zatím jsem si to nikdy nedal do souvislosti s konkrétním jídlem. Asi je čas to udělat.

První, druhé a třetí jídlo

Přestaňte používat tradiční termíny snídaně, oběd a večeře. Dá vám to mnohem větší svobodu dát si k jídlu, nač máte chuť, co zrovna mají v obchodě či na trhu.

Na první pohled těch povolených jídel moc nezůstane, takže by člověk – z jednoduchosti – asi opravdu sklouzl k těm vajíčkům ke každé snídani prvnímu jídlu. Steak si pořád nedokážu představit, ale třeba něco najdu.

Whole30

Třicet dní a během nich radikální změna jídelníčku, bez žádných podváděcích dní, výjimek a dalších „drobností“. Respektive pak ještě dalších deset pro opětovné zavedení některých vybraných potravin, aby se zjistilo, zda na ně člověk má nebo nemá alergii. Trochu mi uniká smysl, když podle Paleo stejně nesplňují nějaké ty standardy dobrého jídla, ale třeba to během toho měsíce pochopím.

To půjde. Dlaň masa a zbytek zeleniny bych mohl zvládnout, do ruky také poberu dost vajíček na to, abych se jich najedl. Jenom škoda té slaniny, která prý není úplně povolená. Leda by byla z nějakého super bio chovu – budu takový muset najít.

Začněte teď, neodkládejte to ani o den!

Ok, ok. Já se budu řídit radou z Paleo talku, že prý je důležité to dopředu pořádně nastudovat, aby pak člověk zbytečně netápal a neudělal nějakou neodpustitelnou chybu.

Navíc po přečtení této knihy pořád úplně přesně nevím, co si vlastně dávat k tomu prvnímu jídlu, tak si napíšu do Jana Melvila o knihu Whole30, která to snad vyjasní a pak se – ale HNED! – do toho pustím.

Jsem zvědav. Jdete do toho se mnou?

Kde tu knihu koupím?

U nakladatele Jana Melvila, případně na Martinusu. A určitě i na spoustě dalších míst.

Další odkazy k zapamatování/prostudování

  • Paleo snadno – tady je dokonce jídelníček na celý měsíc, jupí!
  • Delicious blog Lucie – lívance, muffiny a tuna dalších receptů. Sákryš, nepsali v té knize, že pouhým nahrazením surovin z toho lepší jídlo neuděláme?
  • Paleo Doupě blog
  • kurz Jak na Paleo dietu na Vím víc – pokud neradi čtete, tak tady to pro vás Michal Turna shrnul do hodinového kurzu
Napiš komentář, díky!