Blending Bull NÁPADY NA FUNKCE (původní)

Pište prosím nápady, co by se Vám líbilo, aby blending-bull uměl. Bude-li nápad obsahovat hlasování a Vám by se funkce hodila, klikněte do hlasování ať víme, jaké funkce tvořit dříve a jaké počkají.

Děkuji.

Nápad č. 1

:lemon: Podpora Mime type

Situace

Nyní Blending Bull mime type nepodporuje. Příčinou bylo složité nasazení, resp. jsem nechtěl měnit URL souboru. Pro nasazení podpory mime type je přitom podstatné, aby soubor měl příponu. Např. nazevsouboru.xml aj.

Řešení

Do průvodce tvorbou souboru a do nastavení doplnit volbu formátu souboru. vypadat by to mohlo viz náhled. V prvním kroku průvodce vytvořením souboru (a stránce nastavení) by byl select. Ten by nabízel možnosti: NEUVEDENO (výchozí možnost), XML, CSV, JSON, TXT, TSV. Výchozí by bylo neuvedeno a chovalo by se jako nyní. Pokud by uživatel vybral jinou variantu, na konec názvu souboru by se doplnila tečka a přípona. Např. .xml atp.

Užitek

Pokud by nějaký cílový systém měl problémy bez korektního mime type soubor stahovat, toto by se vyřešilo.

  • :white_check_mark: ANO, tahle funkce by se mi hodila
  • :heavy_minus_sign: nápad jsem četl, ale nepotřebuji ho
0 hlasující

Nápad č. 2

:eye: Náhled konce souboru

Situace

Uživatel edituje např. JSON. Chce si zkontrolovat, zda má na konci souboru správné znaky.

Možné řešení

Např. do náhledu doplnit přepínač, který by přepnul, zda se zobrazuje začátek nebo konec souboru. Asi to bude technicky složitější - půjde o dva náhledy a nevím, jak pracné je náhled konce implementovat. Nicméně jako návrh toto vzít můžeme.

Užitek

Možnost kontroly konce souboru.

  • :white_check_mark: ANO, tahle funkce by se mi hodila
  • :heavy_minus_sign: nápad jsem četl, ale nepotřebuji ho
0 hlasující

Nápad č. 3

:ladder: Vlastní URL podstránek aplikace

Situace

Nyní jsou všechny podstránky aplikace na společné URL viz př.: https://app.mergado.com/eshops/1235/applications/view/?app=blendingbull kde 12345 je ID e-shopu v Mergadu. Pokud tak pošlete odkaz např. e-mailem, zobrazí se vždy hlavní stránka Bulla.

Možné řešení

Nasadit podporu vlastních URL. MERGADO pro toto poskytuje speciální framework.

  • :white_check_mark: ANO, tahle funkce by se mi hodila
  • :heavy_minus_sign: nápad jsem četl, ale nepotřebuji ho
0 hlasující

Nápad č. 4

:calendar: Proměnná DATUM

Situace

Někdy je třeba opravit dostupnostní feed. Do něj vložit datum. To nyní neumíme.

Řešení

Zavést “systémovou” proměnnou (proměnné) pro datum. Ta by vracela hodnotu ve tvaru např. 2021-12-31. Tedy dnešní datum. To by bylo fajn stanovit jednou, a pak v celém pravidle zapsat stejnou hodnotu. Případně pro více pravidel dohromady, pokud by to nebylo složité. Pozor totiž na zpracování dat kolem půlnoci, kdy se datum může během zpracování souboru změnit a hodnota by v jednom souboru mohla být různá.

Hodně sexy by bylo, kdyby uměl Bull s proměnnou datum počítat. Tedy něco jako “dnešní datum + 2 dny” by dne 31. 12. 2021 vracelo 2022-01-02. Je otázka, zda by to bylo programátorsky složité, případně jak stanovit syntax, aby byla pro uživatele srozumitelná.

Upřesnění

Je otázka. jak systémové proměnné pojmenovávat. Mohli bychom zavést systém. Např. pojmenovávat velkými písmeny s BB_ na začátku. BB jako Blending Bull :wink: Alternativně by to mohlo být BBULL_. Ale přijde mi to dlouhé. Mohly by tak vzniknout proměnné:

  • BB_DATE příklad: 2022-04-24
  • BB_YEAR příklad: 2022
  • BB_MONTH příklad: 04
  • BB_DAY příklad: 24

Do textu pravidla by se zapisovaly asi jako \<BB_DAY>. Tedy jako běžné proměnné, které si uživatel pojmenoval.

  • :white_check_mark: ANO, tahle funkce by se mi hodila
  • :heavy_minus_sign: nápad jsem četl, ale nepotřebuji ho
0 hlasující

Nápad č. 5

:card_index_dividers: Makra

Situace

Uživatel dělá jedno nastavení vícekrát na různých souborech.

Cíl ušetřit mu práci

Řešení

Umožnit uživateli export pravidel do souboru. To by mohl být např. zazipovaný JSON. Obsahoval by název a nastavení pravidel. Po nahrání by vytvořil pravidla. Ta by si následně uživatel upravil dle potřeby. Jinou část než pravidla bych neexportoval.

Využití

Např. uživatel konvertuje Heureka dostupnostní XML feed ja Mall dostupnostní. Nebo jiné opakované činnosti.

  • :white_check_mark: ANO, tahle funkce by se mi hodila
  • :heavy_minus_sign: nápad jsem četl, ale nepotřebuji ho
0 hlasující

Nápad č. 6

:softball: Vylepšení stránky Datové zdroje

Cíle

  • Dát uživateli informaci který datový zdroj není používán.
  • Dát informaci který datový zdroj používaný je.
  • Ukázat stav datového zdroje - zda daná URL poskytuje data.

Řešení

Viz náhled. Znamenalo by to k datovým zdrojům zavést ukládání jak dopadl pokus o stažení souboru. Zda zdrojový server vrátil http hlavičku 200 a soubor byl stažen, nebo zda došlo k chybě. Podle toho by se mohli i filtrovat. Dále by mohlo být fajn uživateli ukázat, zda konkrétní datový zdroj používá pro generování nějakého výstupního souboru. Zejména po delším čase se může stát, že výstupní soubor uživatel smaže, datové zdroje ponechá a ty Bull stahuje, i když nejsou potřeba.

  • :white_check_mark: ANO, tahle funkce by se mi hodila
  • :heavy_minus_sign: nápad jsem četl, ale nepotřebuji ho
0 hlasující

Sběr nápadů na funkce a hlasování o nich

@group_blendingbull prosím o pomoc. Přišly ke mě nápady na nové funkce Blending Bulla. K tomu jsem přidal některé nápady ze svého “notýsku”. A uvedl jsem je do příspěvků výše. Je otázka, zda nastal čas sestavit zadání na další verzi Bulla a pokud ano, co má prioritu.

Prosím o tuto pomoc:

  • :bulb: Nápady
    Máš nápad na funkci, která v přehledu není? Napiš ji sem do komentáře prosím.
  • :raised_hand: Hlasování
    Mrkni na nápady a klikni svůj hlas funkcím, které bys využil/a. Nehlasuj prosím pro všechno. Jen pro to, co ti přijde opravdu užitečné a použil/a bys. Ať nemáme všude (přibližně) stejný počet hlasů.

Další postup

Dáme tomu pár dní. Já pak hlasy spočtu. Když jich bude hodně, rozhodnu podle nic, které funkce Bulla naučíme a kdy.

Za pomoc moc děkuji.

@group_feedmarketing rád bych požádal o pomoc. V tomto vlákně jsem sepsal některé nápady na vylepšení blending-bull. Chtěl bych požádat o kliknutí hlasu funkcím, které vám přijdou cenné. Je možné, že podstatná není žádná. Ale kdyby byla, tak ať to víme a případně dodáme. Víc jsem se rozepisoval v komentáři výše.

Za pomoc děkuji.

1 Like

Nápad č. 7

:softball: Nový typ pravidla: Smazat řádek obsahující text

Volně navazuje na pravidla pro mazaní textů, bílých znaků, prázdných řádků…

Cíle

Uživatel snadno odstraní celý řádek (např. jednu shopitem) s určitým textem (např. XML elementem určité hodnoty). Mám na mysli celý řádek, včetně řádkového zlomu na konci. Využití předpokládám např. společně po pravidlu “Zarovnat XML do tabulky”.

Řešení

Vyřešit toto lze pomocí regulárního výrazu. Např. smazáním .*KONKRÉTNÍTEXT.*\n
Sestavit regulární výraz je pro některé uživatele obtížné. Toto pravidlo by situaci zjednodušilo. Předpokládám, že uživatel bude do pravidla zadávat text. Pokud by mohl vložit i regulární výraz, bylo by to bezva.

  • :white_check_mark: ANO, tahle funkce by se mi hodila
  • :heavy_minus_sign: nápad jsem četl, ale nepotřebuji ho
0 hlasující

Nápad č. 9

:softball: Pořadí pravidel změnit tažením myši

Cíle

Změna pořadí pravidel na méně kliknutí.

Řešení

Jde o toto viz náhled níže. Pořadí pravidel se definuje kliknutím na ikonu šipky. Pokud je pravidel více, může být stanovení pracné. MERGADO toto umožňuje tažením myší. Zdá se mi to méně pracné. Uživatel uchopí pravidlo za ikonu a posune. Po umístění do tabulky se nové pořadí uloží.

Peek 2022-04-27 14-59

  • :white_check_mark: ANO, tahle funkce by se mi hodila
  • :heavy_minus_sign: nápad jsem četl, ale nepotřebuji ho
0 hlasující
1 Like

Nápad č. 10

:softball: Drobná vylepšení stránky Nastavení souboru

Na stránku Nastavení souboru navrhuji doplnit jednak ikonu pro zkopírování výstupní URL souboru, jednak doplnit možnost smazat soubor. Umístění viz náhledy. Ikona pro kopírování je de facto stejná jako na stránce Soubory. Umístil bych ji vlevo od ikony pro přegenerování nové URL. Dospod stránky bych dal nabídku “Smazat soubor”. To by mohlo být červené tlačítko. Po stisknutý by bylo nutno volbu potvrdit. Např. napsáním nějakého textu (např. DELETE). Po smazání by byl uživatel odeslán na stránku Soubory.

  • :white_check_mark: ANO, tahle funkce by se mi hodila
  • :heavy_minus_sign: nápad jsem četl, ale nepotřebuji ho
0 hlasující

Nápad č. 11

:softball: Nový typ pravidla: Smazat řádek NEobsahující text

Navazuje na pravidlo které smaže řádky obsahující text.

Cíle

Uživatel chce z feedu odstranit všechny řádky, které např. neobsahují text <DELIVERY_DATE>0</DELIVERY_DATE>. A to včetně zalomení na konci řádku tak, aby nezůstaly po smazání v souboru prázdné řádky. Nyní to zapsat jde pomocí regulárního výrazu. Cílem je snazší zadávání.

Řešení

Vyřešit toto lze (snad) pomocí regulárního výrazu.

  • :white_check_mark: ANO, tahle funkce by se mi hodila
  • :heavy_minus_sign: nápad jsem četl, ale nepotřebuji ho
0 hlasující

Nápad č. 12

:abacus: Počítadlo

Řekněme, že jsem XML soubor s informacemi o zboží převedl v Bullovi pravidlem na “tabulku” tak, že na každém řádku je jedna položka zboží. Položky zboží obsahují označení výrobce. Např. <brand>Nike</brand> pro zboží značky “Nike”. Já bych potřeboval počítadlo. Toto počítadlo bude sledovat hodnoty v proměnné. Když najde hodnotu poprvé, zapíše do počítadla “1”. Když už hodnotu zná, navýší stav počítadla vždy o 1. Hodnotu počítadla může zapsat do souboru pomocí systémové proměnné.

Příklad vstupních dat:

<item><name>Tenisky A</name><brand>Nike</brand></item>
<item><name>Tenisky B</name><brand>Nike</brand></item>
<item><name>Tenisky C</name><brand>Adidas</brand></item>
<item><name>Tenisky D</name><brand>Botas</brand></item>
<item><name>Tenisky E</name><brand>Nike</brand></item>

Nyní zapnu počítadlo. jako proměnnou stanovím <brand>(.*)</brand>. Odtud budu čerpat hodnoty proměnné. Výstup zapíši do: <brand>\g<1></brand><counter>%BB_COUNT%</couter>[1]. Tedy do elemnu brand zapíši původní nalezenou hodnotu \g<1>. A za něj zapíši element counter do kterého zapíši proměnnou s hodnotou počítadla. Pro tento příklad jsem ji pojmenoval BB_COUNT. Pojmenování je pracovní. Jmenovat se může jinak. Výstup by pak vypadal takto:

<item><name>Tenisky A</name><brand>Nike</brand><counter>1</counter></item>
<item><name>Tenisky B</name><brand>Nike</brand><counter>2</counter></item>
<item><name>Tenisky C</name><brand>Adidas</brand><counter>1</counter></item>
<item><name>Tenisky D</name><brand>Botas</brand><counter>1</counter></item>
<item><name>Tenisky E</name><brand>Nike</brand><counter>3</counter></item>

Celkem by přitom počítadlo našlo proměnné:

Hodnota proměnné Počet
Nike 3
Adidas 1
Botas 1

Z příkladu je vidět, že u nalezených výskytů obsahu proměnné, se hodnota počítadla postupně navyšuje. Tak jak pravidlo prochází data. Pokud bych ze vstupního příkladu vyfiltroval pouze řádky, kde proměnná \g<1> nabývá hodnoty Nike, vypadaly by tyto řádky po zpracování pravidlem s počítadlem následovně:

<item><name>Tenisky A</name><brand>Nike</brand><counter>1</counter></item>
<item><name>Tenisky B</name><brand>Nike</brand><counter>2</counter></item>
<item><name>Tenisky E</name><brand>Nike</brand><counter>3</counter></item>

Zde je vidě, že hodnota počítadla postupně roste: 1 - 2- 3…

K čemu je to dobré

Jiné aplikace zpracování dat paralelizují. Je tedy komplikované v práci zohlednit vztahy mezi shopitems. Např. zda je zboží daného názvu v nabídce unikátní, zda se název zboží opakuje (má varianty, kolik těch variant je atp.) atp. Bull pracuje lineárně. Toho bychom mohli využít a práci s vícenásobnými výskyty zavést.

Řešení

Nastíním laicky. Mohlo by jít o speciální typ pravidla. Něco jako “Najít a nahradit s počítadlem”. Nebo by se počítadlo volitelně mohlo zapnout u stávajícího pravidla Najít a nahradit. Pravidlo by v textu hledalo text který splní zadání uživatele a z něj vyparsuje proměnnou. Novinkou by byl “dočasný zásobník”. Do něj by pravidlo nalezené hodnoty “házelo”. Vždy zkontrolovalo zda tam hodnota už je. Pokud není, zapíše nově. Pokud je, číslo počítadla navýší o jedničku. Po ukončení práce pravidla by se zásobník vyprázdnil. Hodnota počítadla pro danou proměnnou by byla uživateli přístupná v (nějaké) systémové proměnné. Podobně jako např. datum.

Řešení v UI

Viz výše, napadají mne dvě možnosti:

  1. Nový typ pravidla “Najít a nahradit s počítadlem”. To by se chovalo stejně jako pravidlo Najít a nahradit. Navíc by první proměnnou v regulárním výrazu zpracovalo jako viz výše.
  2. Možnost zapnout počítadlo jako “doplněk” stávajícího pravidla Najít a nahradit. V UI by mohlo jít o checkbox pod stávajícím checkboxem Zpracovat jako regulární výraz. Oři zapnutí by Bull musel zkontrolovat, zda je zapnuté zpracování regulárním výrazem. Bez něj by počítadlo nemělo kde číst data.
  • :white_check_mark: ANO, tahle funkce by se mi hodila
  • :heavy_minus_sign: nápad jsem četl, ale nepotřebuji ho
0 hlasující

  1. Syntaxi zápisu proměnné jsem převzal z proměnné datum. ↩︎

:white_check_mark: Hotové nápady

Nápady č. 1, 3, 4, 6, 7, 9 a 10 byly zrealizovány ve verzi 5. V seznamu výše jsem je označil zaškrtnutým checkboxem a barevně. Nápady nepodbarvené nevzbudily (zatím) takový zájem, abychom je realizovali.

Případné další nápady prosím pište. Nebo posílejte na support.

Děkuji.

1 Like

:white_check_mark: Hotové nápady

Nápady č. 11 a 12 budou nasazeny ve verzi 6.

Nápad č. 13

:softball: Smazat všechny XML značky kromě uvedené

Svým způsobem protiklad stávajícího pravidla Smazat XML značku i s obsahem

Cíle

Uživatel chce v souboru ponechat pouze jedinou XML značku i s hodnotami. Nyní toto může řešit regulárním výrazem. Nově by se mu zadávání zjednodušilo. Využije např. při generování produktových skupin z názvů produktů.

Příklad

Vstupní data:

<SHOPITEM>
    <ITEM_ID>123</ITEM_ID>
    <PRODUCTNAME>Velký poklad</PRODUCTNAME>
    <DESCRIPTION>Lorem ipsum. Možná i s HTML...</DESCRIPTION>
    <URL>https://www.blendingbull.com/velky-poklad/</URL>
    <PARAM>
        <PARAM_NAME>Barva</PARAM_NAME>
        <VAL>červená</VAL>
</SHOPITEM>
<SHOPITEM>
    <ITEM_ID>456</ITEM_ID>
    <PRODUCTNAME>Ještě větší poklad</PRODUCTNAME>
    <DESCRIPTION>Lorem ipsum. Možná i s HTML...</DESCRIPTION>
    <URL>https://www.blendingbull.com/vetsi-poklad/</URL>
    <PARAM>
        <PARAM_NAME>Barva</PARAM_NAME>
        <VAL>zelená</VAL>
</SHOPITEM>

Uživatel zadá pravidlo Smazat všechny XML značky kromě uvedené s parametrem PRODUCTNAME.

Výstup:

<PRODUCTNAME>Velký poklad</PRODUCTNAME>
<PRODUCTNAME>Ještě větší poklad</PRODUCTNAME>
  • :white_check_mark: ANO, tahle funkce by se mi hodila
  • :heavy_minus_sign: nápad jsem četl, ale nepotřebuji ho
0 hlasující

Nápad č. 14

:softball: Pravidlo: Smazat řádky podle počtu znaků

Cíle

Uživatel čistí seznam klíčových slov. Na každém řádku má několik slov. Na výstupu chce ponechat pouze řádky, které mají např. méně nebo rovno 30 znaků.

Řešení

Laicky bych to napsal regulárním výrazem. Mazal bych např. .{30,}. Odborník by to asi navrhl lépe. Toto je příklad. Podle mne by pravidlo mohlo mít dvě vstupní políčka:

  • < = > (select)
  • čísla (textové políčko, validní hodnota je číslo)
  • :white_check_mark: ANO, tahle funkce by se mi hodila
  • :heavy_minus_sign: nápad jsem četl, ale nepotřebuji ho
0 hlasující

Nápad č. 15

:softball: Pravidlo: Smazat znaky

Cíle

Uživatel čistí seznam klíčových slov. V něm jsou např. číselná ID položek zboží. Ta chce smazat všechna. Neumí ale napsat regulární výraz. Pravidlo mu v tomto pomůže.

Řešení

Pravidlo. Uživatel kliknutím vybere skupinu, kterou chce smazat. Mohly by to být checkboxy a uživatel mohl vybrat více položek v jednom pravidle. Mazání by mohly obstarat regulární výrazy. Uvedu příklady.

  • čísla [0-9]* nebo \d*
  • velká písmena [A-Z]*
  • malá písmena [a-z]*
  • speciální znaky
  • bílé znaky - zde pozor, mám na mysli mezery, tabelátory… ale konce řádků nikoliv
  • bílé znaky na koncích řádků (pouze na koncích řádků, jinde nikoliv)
  • bílé znaky před znakem … (pozor, nemazat konce řádků, míří hlavně na mezery - i jeden ks tam kde nemá být)
  • bílé znaky za znakem … (viz předchozí bod)
  • slova která mají méně než … znaků (já bych laicky psal nějak takhle \W(\w{.....,.....})\W kde místo teček je číslo)
  • slova která mají více než … znaků (viz příklad výše)

Poznámka

Blending Bull nyní obsahuje pravidlo Smazat všechny bílé znaky v souboru". Toto pravidlo jej de facto rozšiřuje. Mohlo by ho tedy nahradit.

Je k zamyšlení, zda toto pravidlo nespojit i s pravidly Smazat bílé znaky na začátcích řádků a Smazat konce řádků.

  • :white_check_mark: ANO, tahle funkce by se mi hodila
  • :heavy_minus_sign: nápad jsem četl, ale nepotřebuji ho
0 hlasující

Nápad č. 16

:sauropod: Pravidlo: Deduplikovat mezery

Pokud uživatel z textu smaže některá slova, mohou zůstat mezery co byly např. před a za slovem. Tím pádem bude v textu více mezer po sobě. Příklad: Dámské hodinky typ 123 bílé po odstranění slov typ a 123 zůstane: Dámské hodinky bílé. Mezi slovy hodinky a bílé budou tři mezery. Cílem je, aby zůstala mezera jediná.

Řešení

Toto půjde zapsat regulárním výrazem. Např. mezera{2,} nahradit za mezeru jedinou.

  • :white_check_mark: ANO, tahle funkce by se mi hodila
  • :heavy_minus_sign: nápad jsem četl, ale nepotřebuji ho
0 hlasující