SCM - obecně
Obsah kapitoly:
SCM = Supply Chain Management. SCM je proces plánování, implementace a kontroly dodavatelského řetězce s cílem co nejefektivněji naplnit požadavky zákazníků. SCM zahrnuje veškeré skladování a přesuny materiálů z místa původu do místa spotřeby.
Modul SCM v systému představuje soubor nástrojů a procesů k optimalizaci řízení tohoto dodavatelského řetězce s ohledem na koncového zákazníka, tedy nástrojů pro analýzu dodavatelského řetězce (rozbor budoucích požadavků a sledování jejich pokrytí) a pro zajišťování dodávek (neboli zajišťování zdrojů pro tyto požadavky).
Pojmem Zdroje myslíme doklady příp. jiné záznamy, které dokáží zajistit přírůstek položek reprezentovaných
Pojmem Požadavky myslíme doklady, které naopak skladové položky požadují / spotřebovávají. Např. Objednávky přijaté, Spodní limity na
Stěžejní agendy, v nichž uživatel získává potřebné informace na základě dat z datových zdrojů, jsou Bilance, Vývoj, Pokrytí dokladu. V dalším textu je budeme označovat též jako Funkční agendy SCM.
Zásobovač v obchodní firmě má za úkol pravidelně, kontinuálně a včas zajišťovat dodávku zboží. Přitom řeší otázky: Co nakoupit, kdy to nakoupit, kolik a od koho. Jistě není třeba ručně procházet jednotlivé objednávky přijaté, jejich řádky třídit podle dodavatelů a pro každého vytvářet objednávku vydanou. Takový způsob by byl značně neefektivní. K tomu může využít Průvodce tvorbou požadavků na OV. Tím lze kumulovat požadavky na OV a tvořit výsledné OV za více OP kumulovaně. Lze vzít v potaz i již objednané množství na OV, lze zohlednit výběr dodavatele dle různých kritérií apod. V praxi však možností, jak zajistit zboží, může být více. Nemusí se např. pouze objednávat, někdy ho stačí pouze převést z jiného skladu. Lze si ho na určitou OP také "půjčit" z jiné nevyřízené OP, která má pozdější termín dodání nebo jí nelze vyřídit, protože na ní chybí i jiné zboží. K tomu je však třeba mít včasné a přesné informace, které nejsou a ani nemohou být v průvodci tvorbou požadavků na OV k dispozici. Není ani kontrola nad tím, kdy bude zboží na objednávce zajištěno a tedy, zda bude dodáno včas. Pokud takové informace chce mít k dispozici, využije modul SCM.
Uživatel si spustí agendu Bilance skladových položek a na záložce Omezení vybere definici sloupců, která určí, jaké informace se mu budou v bilanci zobrazovat. Poté si v omezení vybere
Na záložce Seznam uvidí pro vybrané
Označí si položky, které si přeje zajistit, a spustí Průvodce zajištěním zdrojů. V průvodci se mu zobrazí seznam položek. V tomto seznamu jsou u každé položky informace o tom, jakým dokladem se má položka zajistit, v jaké řadě se má doklad vytvořit apod. Tyto údaje může uživatel vyplnit ručně, nebo může využít pravidla pro předvyplnění, která umožní tuto úlohu automatizovat. Poté spustí generování dokladů a po jeho dokončení si může prohlédnout seznam vytvořených dokladů. Pro každý doklad může otevřít agendu a detailně si jej prohlédnout.
Uživatel zjistí v agendě Bilance, že u konkrétní položky je indikována krize – je vyplněný sloupec Datum krize a Doklad krize a celý řádek je podbarven červeně. Uživatel potřebuje vědět bližší informace, a proto vyvolá nad tímto záznamem agendu Vývoj skladové položky. V této agendě se mu zobrazí přehled budoucích pohybů, u každého pohybu je vidět průběžný stav položky. Na základě těchto informací se může rozhodnout, jak kritické místo vyřeší – pokud je např. krize pouze jeden den (dočasná krize), nebude potřeba žádná akce, naopak pokud bude trvat krize déle a hrozilo by zpoždění zakázky, bude muset krizi řešit.
Záznamy v agendě Bilance si lze zafiltrovat jen za krize resp. dočasné krize.
Uživatel si přidá do agendy objednávek přijatých definovatelný sloupec typu Objekt. Ve výrazu pro tento sloupec použije QuickReports funkce SCMDocumentCoverage, která vrátí míru pokrytí dokladu v procentech. Např. SCMDocumentCoverage ('Obchod', 'RO', ID, True, False). Případně si může i nastavit sloupec, aby zobrazoval procentuální hodnotu graficky v podobě sloupcového grafu (pak výraz vydělit ještě stem SCMDocumentCoverage ('Obchod', 'RO', ID, True, False)/100). Viz též editor sloupců - způsob zobrazení - procentní sloupec.
Když mu pak zavolá zákazník a přeje si vědět, jak to vypadá s jeho objednávkou, uživatel má okamžitě vizuální přehled.
Příklad využití funkcí SCM pro rychlé orientační zobrazení pokrytí objednávek
Pomocí 4. a 5. parametru lze nastavit, jak se procento pokrytí má vyčíslovat: 4. parametr - zda se procento pokrytí bude zobrazovat za zadaný sklad či za všechny sklady, 5. parametr - zda se procento pokrytí bude vyčíslovat z počtu zcela pokrytých řádků vzhledem k celkovému počtu řádků nebo průměrem z pokrytí jednotlivých řádků (tedy dle vzorce 1/n*x1/y1+1/n*x2/y2, kde n je počet řádků, y je požadovaný počet v daném řádku, x je počet, který je pokryt.
Zobrazované pokrytí dokladu je relevantní jedině tehdy, pokud zobrazovaný doklad splňuje podmínky pro načtení do vyrovnávací paměti a je v ní načten! (Viz dále Poskytovatel dat.)
Mějme objednávku přijatou (OP), na ní dva řádky na sklad 01:
- ř.1: karta K1 na 1ks ... (na skladě je víc než 1 ks ⇒ tj. řádek je 100%-ně pokryt
- ř.2: karta K2 na 3ks ... (na skladě 1 je 1ks, na skladě 2 v počtu 2ks ⇒ tj. za sklad 1 je pokryto 33%-ně, za všechny sklady pokryto 100%-ně).
Je-li sloupec definován jako SCMDocumentCoverage('Obchod', 'RO', ID, False, False)/100), bude pokrytí 50% (pokryt je jen 1 řádek ze dvou), je-li SCMDocumentCoverage('Obchod', 'RO', ID, False, True)/100), pak bude pokrytí 67% (=1/2*1/3+1/2*1/1).
Jedná se o využití doplňku SCM - Vývoj. Viz kap. Často kladené otázky k SCM - otázka Jak si zobrazit vývoj SCM rovnou i v jiných agendách?
Uživatel si otevře agendu objednávek přijatých a označí si doklady, pro které si přeje zajistit zboží. Poté spustí průvodce zajištěním zdrojů, ve kterém budou zobrazeny skladové položky z vybraných objednávek. Uživatel si vybere pravidlo pro zajištění, které používá pro vytváření objednávek vydaných, a spustí předvyplnění. U všech položek se mu nastaví jako typ dokladu objednávka vydaná a podle nastavení pravidel se mu vyplní ostatní položky.
Uživatel přejde na další krok průvodce a tím spustí generování dokladů, jejichž seznam se mu poté zobrazí. Pro libovolný doklad nebo pro všechny doklady současně si může otevřít agendu objednávek vydaných.
Z výše uvedeného plyne, že modul má využití i ve firmách obchodních.
Aby agendy Bilance, Vývoj, Pokrytí dokladu poskytly požadované informace, je třeba po jejich spuštění nejdříve určit, jaké informace si právě přejeme zobrazit a z jakých dat se mají načerpat. (Ne vždy a ne každý chce vidět data stejným způsobem. Někdy potřebujeme data pouze za jedno středisko, jindy chceme mít kompletní přehled. Jiná data potřebuje zásobovač, jiná obchodník atd.). To se děje zvolením požadované definice v dané agendě (definice sady datových zdrojů či definice sloupců bilance, viz dále), která toto specifikuje.
Datového zdroje - Všechna data pro SCM jsou získávána prostřednictvím definovaných SQL dotazů a jsou ukládána do tzv. vyrovnávací paměti a odtud se teprve čerpají do agend SCM, reportů či OLE (z důvodu rychlosti nejsou průběžně čerpána přímo z databáze). (To zajišťuje tzv. poskytovatel dat, viz dále, nicméně to se děje interně a uživatel se tím nemusí nijak zabývat). Tyto SQL dotazy se definují v rámci Datového zdroje v číselníku Datové zdroje. Datový zdroj tedy obsahuje SQL dotaz, který se použije pro získání dat, a seznam výstupních položek, které má vracet. SQL dotaz je definovaný pevně, nedoplňují se do něj dynamicky omezení apod. (jako je tomu např. u dynamických zdrojů dat (DynSQLs)). Existují různé druhy datových zdrojů. Každý druh je primárně určen pro něco jiného. Je možné si nejen definovat vlastní zdroje vracející informace o pohybech z dokladů, o stavech skladů apod., ale i definovat si vlastní zdroje pro seznam
Můžeme mít datový zdroj "OP", který bude nadefinován následovně: Bude načítat data z objednávek přijatých, které jsou vystaveny s určitým datem dodání, nejsou uzavřeny a ještě na jejich skladových řádcích zbývá nějaké nedodané zboží. Z těchto objednávek bude vracet položky odkaz na
Definice sloupců bilance - Jednotlivé datové zdroje vstupují do definic sloupců bilance. V agendě Bilance si lze totiž do značné míry definovat, jaké sloupce zde mají být a co mají zobrazovat. Je zde totiž několik typů sloupců a to jednak pevné sloupce bilance (např. kód a název
Definice sloupců bilance musí obsahovat alespoň jeden sloupec datový odkazující se do nějakého datového zdroje druhu "Dokladový" nebo "Stavový" (aby podle něj bylo možno načíst údaje do pevně daných sloupců bilance, tj.
Sady datových zdrojů - Z jednotlivých datových zdrojů lze dále sestavovat sady datových zdrojů v číselníku Sady datových zdrojů. Sad datových zdrojů může být více a to proto, že ne vždy a ne každý chce vidět data stejným způsobem, jak bylo zmíněno výše. Každá sada datových zdrojů se jednak odkazuje na jedno z nastavení SCM, kterých může být opět více a které určuje jednak nastavení zobrazení (tj. masky, barvy v případě krizí atd.) a dále určuje, jaké dat. zdroje se mají použít pro získání seznamu
Omezení by mohl uživatel zadat až ve funkčních agendách SCM, nicméně pokud si jej nadefinuje rovnou v definici sady, odezva bude rychlejší (do vyrovnávací paměti se bude načítat méně dat).
Mějme nadefinovánu sadu "Obchod", která obsahuje datové zdroje z předchozího příkladu OP, OV, Stav skladu. Pokud tuto sadu použijeme v agendě Vývoj, získáme k jednotlivým
Definice sady datových zdrojů musí obsahovat alespoň jeden datový zdroj druhu "Dokladový" (aby podle něj bylo možno načíst údaje do pevně daných sloupců, tj. sklady aj. ....) a neměla by obsahovat ostatní druhy. Výstupní položky StoreCard_ID a Store_ID obsahuje každý datový zdroj, viz povinné položky datového zdroje.
Výše uvedené dokresluje následující schématický obrázek:
Pokud jsou stanoveny datové zdroje a sestaveny z nich sady datových zdrojů a definice sloupců bilance, lze začít používat agendy, které zobrazují data z těchto dat. zdrojů: Vývoj, Pokrytí dokladu a Bilanci.
Agenda Vývoj položky nám přehledně zobrazí očekávaný vývoj stavu karty.
Vývoj položky určité
| Datum | Doklad | Sklad | Pohyb | Průb. stav skladu |
|---|---|---|---|---|
| 10.10. | Stav skladu | HL | +150 | +150 |
| 14.10. | OV-15 | HL | +20 | +170 |
| 18.10. | OP-21 | HL | -70 | +100 |
| 18.10. | OP-25 | HL | -120 | -20 |
První položkou je aktuální stav skladu a následuje seznam dokladů s počtem na dokladu a průběžným stavem skladu. Některé doklady průběžný stav zvyšují (zdroje), jiné snižují (požadavky). Pokud se v průběžném stavu někde objeví záporné číslo, znamená to nepokrytý stav, který vyžaduje zvláštní pozornost. Z pohledu obchodníka vyjadřuje riziko, že daná objednávka přijatá nebude včas vyřízena. Z pohledu zásobovače požadavek na zajištění.
Takový přehled je užitečný zejména v kombinaci s tím, že jej lze rychle spustit z místa, kde jej potřebujeme. Lze si tak např. na řádku OP rychle a jednoduše zkontrolovat, zda je zboží zajištěno (na skladě nebo již objednáno). Pokud bychom chtěli znát stejnou informaci o celé objednávce, není třeba postupně procházet její řádky a dělat si vývoj každé položky zvlášť, ale lze využít agendu Pokrytí dokladů, která si provede vývoj pro všechny položky dokladu a zobrazí souhrnnou informaci o procentu zajištění dokladu. Pro 100%-ně zajištěné doklady pak má význam provést příslušnou následnou akci, což např. u objednávek může být potvrzení data dodání odběrateli apod.
Agenda Bilance má význam především pro zásobovače. Slouží k celkovému pohledu na bilanci vybraných
Bilance může být např. následující:
| Skl. karta | Stav skladu | OP | OV | Limit | Celkem | Zajistit | Krize |
|---|---|---|---|---|---|---|---|
| A | +150 | -190 | +20 | -20 | +20 | Ano | |
| B | +100 | -50 | +40 | -150 | -60 | +60 | Ne |
| C | +130 | -60 | +30 | -50 | +50 | 0 | Ne |
| D | +150 | -190 | +70 | +30 | +20 | Ano |
Každý řádek Bilance přísluší
- Karta A: - 1. řádek odpovídá příkladu uvedeném výše na Vývoj položky. Vidíme, že dvě objednávky přijaté na 70 a 120 kusů jsou zaznamenány souhrnně jako 190 kusů. Stav skladu jde pod nulu, tedy nastal stav krize.
- Karta B: - Na 2. řádku stav krize nenastává, přesto je třeba nějak zajistit chybějící množství. Vidíme, že v bilanci se mohou objevit sloupce, které se ve Vývoji neobjevují. V tomto případě se jedná o spodní limit skladu. Druhý řádek pro kartu B vyjadřuje stav, kdy v žádné chvíli zboží na skladě nechybí, ale dostáváme se pod spodní limit skladu, a proto je záhodno zajistit chybějící množství 60 ks.
- Karta C: - 3. řádek vyjadřuje stav, kdy je vše v pořádku a nic není třeba zajišťovat.
- Karta D: - 4. řádek by odpovídal prvnímu řádku pro kartu A (příklad na Vývoj) v případě, kdyby ve vývoji po 18.10. existovala OV na 50 kusů. Tím bychom se celkově dostali do kladného čísla na 30 ks. Přesto by v určité fázi vývoje po 18.10. šel očekávaný stav skladu do minusu. Došlo by ke krizi a je potřeba jí nějak řešit. Řešení závisí na uživateli. Buď může zajistit objednávku aspoň 20 kusů, která dorazí do 18.10. nebo vykomunikovat, že OP-21 nebo OP-25 bude dodána později až po dodání zboží z OV na již zmíněných 50 ks.
K vlastnímu zajištění zdrojů je určena agenda Průvodce zajištěním zdrojů. Lze jí spouštět samostatně nebo z jiných agend (z dokladů požadavků (OP, POZ, ...), z agendy Bilance, ...), které jí předávají informace o kartách, které je potřeba zajistit a o požadovaném množství. V agendě lze pak ke každé kartě zvolit způsob zajištění (objednávkou, požadavkem na OV,...), další doplňující údaje (řada dokladů, firma, středisko,...) a nechat si příslušné doklady vygenerovat. Pokud je spuštěna z objednávek přijatých, lze vynechat krok počítání bilance a nechat si připravit k zajištění pouze karty z objednávky v množství na objednávce. Tím lze realizovat možnost "přímého" generování objednávek vydaných (OV) podle objednávek přijatých (OP).
Při zajišťování dokladů po jednom může dojít k následujícímu nežádoucímu efektu: Takto zajišťovaný doklad se bude nakonec stejně "tvářit" jako nepokrytý.
V systému je k dispozici i jiná možnost přímé tvorby OP podle OV, viz procesní tvorba dokladů OP → OV, ovšem s tím, že umožňuje vystavit jednu OP podle více vybraných OV, tedy neumožňuje automaticky vystavit více OP najednou podle vybraných OV (např. na různé dodavatele podle dodavatelů příslušných
Jak bylo řečeno výše, SCM obsahuje číselník datových zdrojů, které obsahují pevně definované SQL dotazy, které se použijí pro získání dat. Všechna data, se kterými se v SCM pracuje, jsou získávána pomocí interního objektu SCMDataProvider. Tento objekt slouží k získávání potřebných dat (tj. na požádání načítá data z databáze), dále k ukládání načtených dat do vyrovnávací paměti (tj. slouží i jako vyrovnávací paměť (cache)) a k vytváření pohledů na tato data pro funkční agendy SCM, QR funkce nebo OLE rozhraní.
Plnění vyrovnávací paměti:
Funkční agendy SCM, QR funkce nebo OLE rozhraní poskytovatele žádají o připravení dat pro konkrétní úlohu – bilanci, vývoj skladové položky, výpočet pokrytí dokladu apod. Přitom předají poskytovateli tyto informace:
- použité datové zdroje
- výstupní položky z datových zdrojů
- seznam položek, za které se budou data filtrovat (omezovat), a jejich hodnoty
Poznámka...Filtrování dat probíhá až nad načtenými daty a provádí jej poskytovatel dat, tedy nikoliv v rámci SQL dotazů do databáze. Podrobněji viz dále, příklad v části Možnosti omezování dat v agendách SCM.)
Sestavení výstupních dat z vyrovnávací paměti:
Na základě takového požadavku načte poskytovatel všechna potřebná data (která dosud načtená nemá, viz dále), uloží je do vyrovnávací paměti a připraví tzv. dataset (lze si představit jako tabulku připravených dat), který předá zpět tomu, kdo o data požádal (agendě SCM, QR funkci nebo OLE rozhraní). Při opakovaném vyvolání obdobného požadavku (např. vyvolání funkce Získat záznamy bez vyprázdnění vyrov. paměti s jiným omezením, vyvolání funkce Provést dotaz z jiné agendy či jen s jinou definicí sloupců resp. jinou sadou dat. zdrojů (s jinými datovými zdroji)) poskytovatel dat ví, které datové zdroje již má načtené a ty znovu nenačítá. Načítá jen ty, které dosud načtené nemá.
Výhoda tohoto chování je v rychlosti (v mnoha případech totiž postačí). Pozor! Nevýhoda je v tom, že pokud mezi dvěma dotazy došlo ke změně v datech, z nichž čerpá již dříve načtený datový zdroj, tato změna se neprojeví (do vyrovnávací paměti se automaticky nedostane). Pokud chcete, aby se projevila, je třeba vyrovnávací paměť vyprázdnit - pak se totiž při dalším načtení znovu načtou všechny dat. zdroje.
Možnosti vyprázdnění vyrovnávací paměti:
Vyprázdnit vyr. paměť lze různými způsoby:
- Z agend SCM - použitím funkce Aktualizovat v záložkách Seznam nebo pomocí funkce Získat záznamy s vyprázdněním vyrov. paměti ze záložky Omezení. (Vyprázdní se obsah původní a načte se nový).
- Z jiných agend než SCM - použitím funkce Vyprázdnit vyrovnávací paměť - Ve většině agend, ve kterých jsou k dispozici funkce SCM (např. v objednávkách přijatých), je k dispozici i funkce pro vyprázdnění vyrovnávací paměti poskytovatele dat. (Vyprázdní se celý obsah, nikoli jen selektivně data získaná z dané agendy, z níž byla funkce vyvolána a paměť zůstane prázdná).
Poznámka...Vyvoláním zmíněné funkce se vyprázdní jen dočasné tabulky, vlastní dočasný soubor na disku se maže při zavření IS FLORES.
Možnosti načtení vyrovnávací paměti:
Jak plyne z textu výše, data do vyrovnávací paměti se načítají vždy, když Funkční agendy SCM, QR funkce nebo OLE rozhraní žádají o příslušná data a ve vyrovnávací paměti není načten potřebný dat. zdroj. Tedy použitím funkce Aktualizovat v záložkách Seznam agend SCM nebo pomocí funkce Získat záznamy ze záložky Omezení, použitím QR funkce pro SCM např. ve sloupci v seznamu nějaké agendy, v definovatelném panelu, v tisk. sestavě apod., či voláním příslušných funkcí z OLE rozhraní.
V seznamu objednávek přijatých nechť je sloupec s QR funkcí SCMDocumentCoverage pro zobrazení pokrytí dokladu (viz Použití QuickReports funkce pro zjištění pokrytí dokladů) používající sadu datových zdrojů "Obchod". Zatím jsme žádnou agendu ani funkci SCM nevolali, vyrovnávací paměť je prázdná. Otevřeme agendu objednávek. V tu chvíli QR funkce potřebuje od poskytovatele dat příslušná data pro zobrazení pokrytí, tedy do vyrovnávací paměti se načtou dat. zdroje ze sady datových zdrojů "Obchod". Pokud vyrovnávací paměť vyprázdníme (viz možnosti vyprázdnění vyr. paměti), pak stačí pouhé
Z toho mj. plyne, že pokud si zobrazujete pokrytí objednávek pomocí zmíněné QR funkce a přidali jste novou objednávku, je třeba provést minimálně vyprázdnění paměti a
Vnitřní realizace poskytovatele dat:
Pro realizaci takovéto podoby centrálního objektu poskytovatele dat, který spravuje veškerá data SCM, se používá vestavěná open source databáze SQLite. Jedná se o dynamickou dll knihovnu, která implementuje jednoduchý relační databázový systém s dotazovacím jazykem SQL. Načtená data jsou uložena v dočasném souboru na disku (což je vlastně aktuální obsah SQLite databáze), a nad nimi poskytovatel dat sestavuje s využitím paměťových tabulek požadované řezy (různé pohledy na data), které pak vrací místu, které je požadovalo.
K pohledu na obsah SQLite je určena agenda Poskytovatel dat.
Poskytovatel dat existuje jeden pro jedno přihlášení uživatele.
V SCM jsou různé možnosti omezování dat, které lze použít. Lze využít jen některou z nich, nebo je vhodně kombinovat. Omezování dat má výhodu ve větší rychlosti (dotazy nad menší (omezenou) množinou dat jsou rychlejší). Dále omezování dat umožňuje různé pohledy na data. Někdy nás zajímá jen údaj celkový např. za všechny sklady a doklady, jindy naopak jen za vybrané sklady, doklady apod. Jindy chceme vidět údaje oboje a mít vedle sebe v bilanci např. sloupec s objednaným zbožím z OP za všechny sklady a vedle toho sloupce po skladech (pro přehled, modelování apod.)
Kde lze nějakým způsobem definovat omezení pro výsledná zobrazená data:
- omezení dané samotným SQL dotazem v dat. zdroji
- omezení datového zdroje zadané v záložce Omezení v sadě datových zdrojů
- omezení datového zdroje zadané v záložce Omezení v definici sloupců bilance
- omezení zadané v záložce Omezenífunkčních agend SCM
- použití dynamicky filtrovaných sloupců
Při běžné konfiguraci datového zdroje a jeho následném vyhodnocení (tedy při spuštění funkce Získat záznamy bez vyprázdnění vyrov. paměti/Získat záznamy s vyprázdněním vyrov. paměti na záložce Omezení), dojde k tomu, že se načtou všechna data týkající se definovaného datového zdroje (např. OP) do pomocné mezipaměti. Až nad touto mezipamětí dojde k omezení dat podmínkami zadanými v SCM bilanci. Je však možné využít speciální konfiguraci datového zdroje, která již při plnění mezipaměti vezme v potaz podmínky zadané uživatelem v SCM bilanci. To zajistí mnohem rychlejší plnění mezipaměti, neboť se plní jen data odpovídající podmínkám. Je třeba pak ale mít na paměti, že takto naplněná mezipaměť obsahuje JEN data odpovídající podmínkám. Při jejich změně je zapotřebí vždy vyvolat nové naplnění mezipaměti volbou Provést dotaz s vyprázdněním cache. Pro tuto speciální konfiguraci prosím kontaktujte zákaznickou podporu FLORES.
Možnosti jsou podobné, někdy lze téhož dosáhnout i více způsoby (které se buď vůbec neliší nebo se mohou lišit v rychlosti odezvy). Kterou možnost si vyberete, záleží na tom, čeho chcete docílit, zda lze předpokládat opakovanost takového požadavku nebo zda jde o řídký výskyt atd.
Mějme dva zásobovače, kteří nikdy nebudou pracovat s celým sortimentem najednou, ale zásobovač A pracuje se sortimentem A a zásobovač B se sortimentem B. Jelikož nebudou své sortimenty sdílet, lze toto řešit definicí dvou podobných datových zdrojů s omezením, jeden omezený za sortiment A, druhý za sortiment B. Každý ze zásobovačů by pak pracoval se "svou" definicí sloupců, která by se odkazovala jen na "jeho" datové zdroje. Pokud by ale zásobovač A pracoval občas i se sortimentem kolegy, pak by bylo vhodnější si "jeho" dat. zdroje nechat bez omezení, nechat si vytvářet paměťové tabulky (viz dále) pro celý sortiment a teprve až v záložce Omezení bilance omezovat za jeden nebo druhý sortiment.
Pokud bychom chtěli kromě zobrazených výsledků vidět údaje určitého sloupce nějak omezeny, např. požadavky z OP jen za vybranou řadu OP, můžeme to řešit přidáním dynamicky filtrovaného sloupce. Pokud bychom ale takové údaje chtěli zobrazovat opakovaně, pak by bylo výhodnější si sloupec přidat trvale rovnou do definice sloupců bilance.
Pokud bychom měli část sortimentu, se kterým nebudeme potřebovat v SCM pracovat (např. fiktivní
Odlišnosti v uplatnění omezení podrobněji objasníme na příkladu Bilance:
V Bilanci nechť je zvolena definice sloupců, nastaveno nějaké omezení a proveden dotaz. V ten moment je požadavek na načtení dat předán poskytovateli dat (jak bylo objasněno výše). Poskytovatel podle datových zdrojů obsažených ve zvolené definici (musí tam být alespoň jeden, jak bylo řečeno v kap. Definice sloupců bilance) a podle SQL dotazů v nich zadaných načte všechna data z databáze a uloží do vyrovnávací paměti. (Při tomto se žádné omezení zadané v záložkách Omezení neuplatňuje. Uplatní se jen "omezení" dané samotnými SQL dotazy - např. načítají se data "jen" z nevyřízených OP). Ve vyr. paměti jsou tedy "všechna" data načtená podle SQL dotazů z datových zdrojů ke všem
Nad těmito všemi daty poskytovatel pro každý nadefinovaný sloupec bilance vytváří v paměti dočasnou tabulku (např. jedna tabulka pro sloupec zobrazující množství (Quantity) z OP, druhá pro totéž z OV apod.). Při tvorbě této tabulky se již uplatní omezení datového zdroje zadané v záložce Omezení v definici sloupců bilance.
Pokud bychom v omezení dat. zdroje načítajícího data z OP zadali omezení jen za vybranou řadu objednávek, pak by se tabulka vytvořila jen z údajů OP z této řady.
Na závěr z těchto pomocných dočasných paměťových tabulek sestaví výsledný dataset (dočasná "tmp" tabulka pro danou agendu, přitom se uplatní omezení zadaná v záložce Omezení Bilance). (V agendě Poskytovatel dat by byl viditelný jako dočasná "tmp" tabulka.) Pokud by se poté otevřel např. Vývoj, obdobným způsobem by se nad daty ve vyrovnávací paměti sestavila další "tmp" tabulka.
Mějme dodávanou definici sloupců bilance Obchod, která obsahuje dat. zdroje OP, OV, Požadavky na OV, Stav skladu, Spodní limit). Tu zkopírujeme jako Obchod_x a zadáme v ní omezení u datového zdroje OP jen za řadu OPx). Dále mějme 3 nevyřízené objednávky přijaté v různých řadách, např. OP-1 (s kartami A, B, C v počtu 5 ks), OPx-1 (s kartami A, B v počtu 1,1ks) a OPy-1 (s kartami A, B v počtu 3,3ks). Pro jednoduchost žádné jiné OP neexistují.
V bilanci provedeme dotaz s vyprázdněním vyrovnávací paměti s definicí Obchod_x ⇒
Ve vyrovnávací paměti budou v jedné tabulce načteny všechny OP (tedy všechny
V Bilanci u karet A a B uvidíme ve sloupci OP pouze počty 1,1ks (tedy počty pouze z OPx, naopak počty z objednávek OP-1, OPy-1 v jiných řadách nebudou zahrnuty). (Přestože ve vyrovnávací paměti jsou načteny údaje ze všech nevyřízených objednávek přijatých).
Výsledná bilance nezobrazuje "jen"
Pokud bychom si poté takovou bilanci chtěli prohlížet po částech, např. zobrazit si ji jen pro
Nezbytnou podmínkou pro provoz SCM je, aby byla tato část systému nainstalována a licencována.
- SCM je součástí jádra systému, tudíž je instalováno v rámci instalace jádra
- SCM je licencováno rovněž v rámci instalace jádra
Dataset sestavený poskytovatelem dat pro danou agendu se interně předává i do tiskových sestav/def. exportů. Pro funkční agendy SCM totiž platí, že se pro ně nedefinují reportingová místa, jejich DynSQL a dílčí zdroje dat (datasety), jako je tomu u jiných dokladových a číselníkových agend IS FLORES. Dataset, který se nabízí v definici tisk. sestav/def. exportu v těchto agendách je vlastně interně předaný dataset sestavený poskytovatelem dat pro danou agendu. Viz výše Poskytovatel dat - Sestavení výstupních dat z vyrovnávací paměti. Tedy obsah tohoto datasetu je vlastně to, co uživatel v dané funkční agendě SCM právě vidí.