FlexiBee a Integromat - Hlídač stavu skladu pod minimem

Používáte ve FlexiBee minimální stavy skladových karet? Chcete být informováni v případě, že se nějaká skladová karta dostává pod tento minimální stav a bude tedy potřeba zboží objednat nebo vyrobit? Integromat nabízí velmi jednoduché a elegantní řešení, jak si seznam skladových karet, které jsou pod minimální skladovou zásobou, poslat například na e-mail.

Uživatelský dotaz ve FlexiBee

Získání skladových karet pod minimální zásobou z FlexiBee Nejjednodušší a nejefektivnější možností je uživatelský dotaz. Ve FlexiBee tedy vytvoříme uživatelský dotaz

select c.kod as cenik_kod,
    c.nazev as cenik_nazev,
    s.kod as sklad_kod,
    k.stavmjspozadavky,
    k.minmj
  from skarty k
  join nucetobdobi uo on k.iducetobdobi = uo.iducetobdobi
  left join ccenik c on k.idcenik = c.idcenik
  left join dbsp s on k.idskladu = s.idbsp
  where uo.platioddata <= now() and uo.platidodata >= now()
    and k.stavmjspozadavky < k.minmj


Tento dotaz vrací zkratku a název ceníku, zkratku skladu, nastavený minimální stav skladu a aktuální stav skladu dané karty. Vrací jen záznamy, které se dostávají pod minimální stav. Ostatní záznamy nás nezajímají, takže není potřeba je do Integromatu posílat (šetří se operace).

Připravený uživatelský dotaz si můžete stáhnout ve formátu XML.

Stažení uživatelského dotazu

Tento XML soubor pak jen naimportujete do FlexiBee pomocí menu Nástroje – Import – Import z XML.

Uživatelský dotaz bude Integromat spouštět pomocí FlexiBee REST-API. Můžeme si tedy ještě vyzkoušet, zda vše funguje tak jak má.

Spuštění uživatelského dotazu přes API se provádí GET požadavkem na adresu
server:port/c/indetifikátor_firmy/uzivatelsky-dotaz/id_dotazu/call.json?limit=0
např. https://demo.flexibee.eu/c/demo/uzivatelsky-dotaz/45/call.json?limit=0

Jakmile máme dotaz ve FlexiBee, máme již v podstatě vše připraveno a můžeme se pustit do klikání v Integromatu.

Zpracování výsledku a odeslání mailu v Integromatu

Na celý scénář stačí FREE tarif Integromatu. Po úspěšné a rychlé registraci můžeme tedy začít klikat scénář.

Integromat scenar


Modul HTTP

Integromat http nacteni dat z flexibee


První „bublina“ načítá data z FlexiBee API. Musíme zadat jen adresu, na které si Integromat má načíst data a přihlašovací údaje. Nejlepší je používat data, ve formátu JSON, protože se s nimi jednoduše pracuje.

JSON Modul

Další modul ve scénáři pak bude JSON, s nastavením Rozparsovat JSON. Do tohoto modulu přitékají data z HTTP modulu a vytváří se z nich struktura pro další zpracování.

Integromat json parser


V tomto modulu je potřeba nadefinovat, jakou strukturu budou mít data, která přitečou. To je asi nejobtížnější úkol, který jsem v celém scénáři našel. Naštěstí je dostupný Generátor, do kterého se zadá úryvek dat a Integromat si Datovou strukturu vymyslí sám :-).

Modul Iterátor

Pokud má být email, který nakonec scénář vyprodukuje, hezky naformátovaný, je potřeba jako další modul vložit Iterátor. Tento modul bude postupně pocházet jednotlivé řádky výsledku a posílat je dál samostatně.

Integromat iterator



Nástroje Sestavit řetězec

Jakmile máme výsledek naparsován a rozdělen na jednotlivé řádky, můžeme začít se sestavováním výsledku. Aby výsledný email měl patřičnou strukturu, využijeme modul pro sestavování řetězců. V něm si můžeme výsledek pěkně naformátovat. Při skládání výsledku můžeme použít i HTML značky (<br />, <b>, <i>, ...).

Integromat sestavit retezec


Jak bude výsledek naformátován je na fantazii každého tvůrce :-).

Nástroje Textový agregátor

Předposledním modulem scénáře je Textový agregátor, který zajistí, že ze scénáře bude odeslán jen jeden email a ne email pro každou řádku.

Integromat textovy agregator



Odeslání mailu s výsledkem

Tělo mailu máme seskládané a tak zbývá ho už jen poslat mailem. K tomu se dají použít minimálně dva moduly. Já jsem použil modul Gmail a jeho funkci Odeslat e-mail.

Integromat gmail



Zvolíme si Spojení na Gmail, zadáme na jakou e-mailovou adresu budeme maily posílat, vyplníme předmět a jako obsah dáme výstup z předchozích modulů.

Filtrování a neodeslání mailu v případě, že je všechno v pořádku

Mailová notifikace se má samozřejmě posílat jen tehdy, existují-li skladové karty, jejichž stav je pod minimálním stavem. To je možné zajistit filtrací. Nejlepší je vložit ji mezi moduly JSON a Iterátor a nastavit tak, že v poli winstrom: DotazView[] (což je výsledek JSON parseru), musí být více než 0 záznamů.

Integromat filtrace



Závěr

Naklikání celé integrace je otázkou několika minut. Automatické spouštění scénáře stačí jednou denně. Není potřeba ho spouštět vícekrát. Dokonce většinou bude stačit FREE tarif Integromatu :-).

Pokud mají být notifikace správné a použitelné, je potřeba mít ve skladu ve FlexiBee pořádek. Minimální stavy zásob nastaveny jen tam, kde nás zajímají a také správně a rychle naskladňovat zboží. Myslím si, že takovéto řešení je mnohem použitelnější, než například notifikace při ukládání položky přímo ve FlexiBee. Tato notifikace by totiž zdržovala při práci a přečíst si jednou za den e-mail, ve kterém mám rozepsáno, které zboží musím objednat, není problém.

Místo formátovaného emailu, si ale můžu nechat poslat například EDI objednávku pro mého dodavatele a po zkontrolování ji rovnou odeslat :-).

ABRA FlexiBee, Integromat, REST API, E-Mailové upozornění

- (15. 9. 2017)
Kája z Norska
Kája z Norska

Jsem programátor, horolezec a tak trochu FlexiBee fanatik :-).
Na CharlieBlogu sepisuji své nápady a poznatky už od roku 2006.