Jak vyřešit duplicitní hodnoty ID v XML feedu pomocí Blending Bull

Před chvílí jsem narazil na zajímavý problém. Měli jsme XML feed, který v elementu <id> obsahoval hodnoty. Některé byly duplicitní. Tedy stejnou hodnotu id obsahovalo více položek zboží. Cílový systém ovšem vyžadoval hodnoty id unikátní. Bylo přitom jedno, zda se hodnoty budou od vstupních lišit.

Řešení pomocí Blending Bull

Použili jsme počítadlo. Nastavení pravidla vypadalo takhle:

Pravidlo Blending Bull :

  • Typ: Najít a nahradit
  • Nalézt v datovém zdroji text: <id>([^<]*)</id>
  • Nahradit za text: <id>\g<1>-%BB_COUNTER%</id>

Výstup z Blending Bull bude tento:

<id>staré_id-1</id>, <id>staré_id-2</id>… kde staré_id je vstupní hodnota ID a za pomlčku vloží číslo od jedničky výše. Číslo je jedna, poud je položka duplicitní, roste. Tento postup předpokládá, že shopitems mají ve feedu stejné pořadí. Pokud by se pořadí položek se stejným ID prohodila, prohodí se i jejich id. V našem případě to snad vadit nebude, protože jde o malý podíl shopitems. Jak se budou data v cílovém systému chovat přesně teprve uvidíme. Nicméně naimportovat půjdou.

Uvedený zdroj je příkladem. Vy si upravte hodnoty dle svého.

1 Like