Po spoustě ladění, šťouchání a testování jsem na to konečně přišel. Ukázalo se, že mým problémem nebylo psaní do mongo, ale bylo to ve čtení zpět z mongo, jakmile bylo napsáno.
Zdá se, že dokumentace sitecore (jako obvykle) zcela postrádá poměrně zásadní část fungování tohoto. Asi třetina v dokumentech níže :
Dobře, to je velmi zavádějící. Co to je EnsureAttribute
Zdá se, že načte data pro aspekt do aktuální třídy z mongo. Pokud to neuděláte pro každou službu ve vašem aspektu pak nenastaví hodnotu z mongoDb! To byla moje chyba, neměl jsem "zajištěnou" každou vlastnost ve třídě.
Takže to, co se dělo, je
- Vložil jsem svá data do aspektu
- data fazety zůstávají v relaci a já je vidím, přistupuji k nim a měním je atd.
- Data jsou nakonec vyprázdněna do mongo (xDb, pokud musíte)
- uživatel se vrátí, systém ho správně rozpozná (uživatele není třeba identifikovat ,
SC_ANALYTICS_GLOBAL_COOKIE
dělá to za vás) - Ale nenačte data (mimo mongo a zpět do relace), pokud to „nezajistíte“.
Tedy EnsureAttribute
"nedeklaruje typ hodnoty" (toto je podle mého názoru úplně špatně) načte data z mongodb a do aktuální Session
.