Formát souboru pro import objednávek do TracePRO¶
Tento dokument popisuje generický JSON formát pro import výrobních objednávek a veškerých jejich dat (hlavička, výrobní postup, parametry, kusovník) z ERP do TracePRO. Import číselníků (pracovníci, pracoviště, úkony, nástroje, materiál) popisuje Formát souboru pro import číselníků do TracePRO.
Poznámka
Toto je návrh (v1), zatím neimplementováno. Otevřené otázky jsou shrnuty na konci dokumentu.
Zásady¶
Sémantika TracePRO, ne ERP. Mapování polí ERP na pojmy TracePRO je úkolem exportéru na straně ERP (tak, jako to dnes dělá import z Heliosu nebo QAD). JSON už nese hotové hodnoty ve významu TracePRO.
Symbolické enumy jako řetězce, ne čísla (
"active", ne1) - kvůli čitelnosti a stabilitě formátu.Každá objednávka v souboru je kompletní snapshot. Import provede sloučení: operace, řádek kusovníku nebo parametr, který v JSON není, se smaže. Ochrany proti nechtěnému přepsání (rozběhnutá objednávka, příznak
NO_ERP_UPDATE, koncové stavy) zůstávají v importeru, stejně jako v QAD importu (CanUpdateOrder).Data se strukturovaným významem mají dedikovaná pole (časy, programy). Vše ostatní jde do volných
params(klíč/hodnota), které se mapují 1:1 naOperationParam.
Příklad¶
{
"format": "tracepro-order",
"version": 1,
"source": "HELIOS",
"generated": "2026-07-09T10:30:00",
"operation": "update",
"entities": [
{
"erp_ref": "VP-2026-00123",
"item": "778-3283-001",
"item_name": "Řídicí deska XYZ",
"amount": 1200,
"customer": "COMAP",
"status": "notstarted",
"vd": "B.2",
"cat1": "A",
"cat2": "",
"cat3": "",
"flags": ["loose_ops", "limit_amount"],
"mptp": "mp_pcb",
"mpcount": 8,
"barcode_mp": "^MP[0-9]{8}$",
"barcode_pcb": "^52-01[0-9]{6}$",
"params": {
"INFO": "Poznámka z ERP...",
"CUSTOMER_ORDER_ID": "OBJ-556677",
"CLIENT_WARNINGS": "IPC610_CLASS3",
"SW_VER": "1.4.2",
"DOKUMENTACE": "https://dms/..."
},
"operations": [
{
"op": 10,
"act": 2523,
"name": "Osazování SMD TOP",
"workplace": "SMT1-01",
"desc": "Text návodky...",
"flags": ["parallel"],
"times": {
"prep": 1800,
"run": 54.5,
"end": 0,
"between_ops": 0
},
"program": "778-3283-001_top",
"programs": {
"SMD": "778-3283-001_top",
"SPI": "778-3283-001_spi"
},
"docs": "https://dms/op10",
"box_size": null,
"params": {}
},
{
"op": 90,
"act": 3761,
"name": "Dělení panelu",
"workplace": "CUT-01",
"desc": "",
"flags": ["splitpanel"],
"times": {"run": 12},
"params": {}
},
{
"op": 100,
"act": 5000,
"name": "Balení",
"workplace": "PACK-01",
"desc": "",
"flags": [],
"box_size": 20,
"params": {}
}
],
"bom": [
{"op": 10, "type": "mat",
"item": "R0603-10K", "amount": 74, "comment": "R1-R74"},
{"op": 10, "type": "mat_prep",
"item": "PASTE-SAC3", "amount": 0.1, "comment": ""},
{"op": 10, "type": "tool",
"item": "SITO-778", "amount": 1, "comment": ""},
{"op": 100, "type": "mat",
"item": "BOX-200", "amount": 0.05, "comment": ""}
]
}
]
}
Obálka souboru¶
Pole |
Popis |
|---|---|
|
Vždy |
|
Verze formátu, aktuálně |
|
Identifikace zdrojového ERP (volný text, např. |
|
Datum a čas vygenerování souboru (ISO 8601, lokální čas). |
|
|
|
Seznam objednávek. |
Objednávka¶
Pole bez hodnoty ve sloupci Povinné/Default jsou volitelná s defaultem (prázdný řetězec / 0 / prázdný seznam).
Pole |
Cíl v TracePRO |
Povinné/Default |
Popis |
|---|---|---|---|
|
|
ano |
Jedinečný identifikátor objednávky v ERP. Klíč pro sloučení. |
|
|
ano |
Označení vyráběné položky. |
|
|
Název / popis vyráběné položky. |
|
|
|
ano |
Objednané množství. |
|
|
Název zákazníka. |
|
|
|
ano |
|
|
|
Verze dokumentace. |
|
|
|
Kategorie (např. |
|
|
|
Seznam symbolických příznaků, viz níže. |
|
|
|
|
Typ panelizace a značení, viz níže. |
|
|
|
Počet PCB v multipanelu. |
|
|
Regulární výraz pro barkód multipanelu. |
|
|
|
Regulární výraz pro barkód PCB. |
|
|
|
Volné parametry objednávky, klíč/hodnota. |
|
|
|
ano |
Výrobní postup. |
|
|
Kusovník. |
Příznaky objednávky (flags):
JSON |
defs.py |
|---|---|
|
|
|
|
|
|
Pole dt0 / dt1 v JSON nejsou - nastavuje je TracePRO při přechodech
stavů objednávky.
Hodnoty mptp:
JSON |
defs.py |
Popis |
|---|---|---|
|
|
Jednotlivé PCB s barkódy. |
|
|
Multipanel i PCB s barkódy (nejběžnější). |
|
|
Multipanel s barkódem, PCB bez. |
|
|
Multipanel bez barkódu, barkódy jen na PCB. |
|
|
Bez barkódů. |
|
|
Nejprve multipanel, později v procesu i PCB. |
Operace¶
Přirozený klíč pro sloučení je op.
Pole |
Cíl v TracePRO |
Povinné/Default |
Popis |
|---|---|---|---|
|
|
ano, číslo větší než 0 |
Číslo operace. |
|
|
ano, číslo |
Číslo úkonu. |
|
|
Název operace. |
|
|
|
|
|
|
|
Text operace - návodka - prostý text. |
|
|
|
Seznam symbolických příznaků, viz níže. |
|
|
parametry |
Výrobní časy, viz níže. |
|
|
param |
Název hlavního programu operace. |
|
|
param |
Další programy; klíč objektu je přípona parametru. |
|
|
param |
Odkaz na dokumentaci operace. |
|
|
param |
Počet kusů v krabici, pokud je operace balení. Hodnota > 0
zároveň nastaví |
|
|
|
Volné parametry operace, klíč/hodnota. |
Příznaky operace (flags):
JSON |
defs.py |
Popis |
|---|---|---|
|
|
Operace nemusí být načtena. |
|
|
Nekontrolovat předchozí operace. |
|
|
Na této operaci se panel dělí na jednotlivá PCB. |
|
|
Upozornit uživatele při prvním odvedení operace. |
Úkon¶
Co je Úkon? Některá ERP (např. Infor) mají zabudovaný koncept úkonu. Je to typové označení operace, které má fixní číslo a fixní jméno (titulek, text). Pokud úkon v ERP není, zpravidla se místo něj používá pracoviště. Vztah mezi úkonem a pracovištěm ale nemusí být 1:1. Např. pokud jsou pracoviště v ERP detailně specifikována, např. jako SMD linka 1, SMD linka 2, SMD linka 3, tak úkon, který se dělá na kterékoliv lince může být SMD osazování.
TracePRO podle čísla úkonu rozhoduje, jakým způsobem se pro operaci počítají statistiky. TracePRO podporuje také sadu speciálních úkonů, pro operace, které nejsou v technologickém postupu. Např. Kontrola 1.ks, Oprava, Poznámka.
Pokud v ERP koncept úkonu není, použije se míst něj nějaká forma pracoviště.
Sekce times¶
Všechny časy jsou v sekundách, desetinná čísla jsou povolena.
Chybějící klíč znamená 0. Klíče odpovídají parametrům tm_*
(viz Integrace s ERP - detaily importu), jen bez prefixu tm_:
prep, run, end, between_ops.
Pozn.: v dřívějších verzích TracePRO se rozlišovalo mezi časem operátora a časem stroje. Skutečnost ale je taková, že při sledování výroby se prostě sleduje čas na výrobu jednoho kusu, a nezáleží na tom, na kolika strojích nebo kolik lidí vyrábělo. Pokud bylo na operaci nahlášeno více pracovníků, odvede se jim všem celý čas. A to je všechno.
TracePRO čas potřebuje jen pro to zobrazování normy na pracovišti - tam chceme znát takt - a na výpočet OEE, využitelnosti, nebo dalších přehledů.
Kusovník (bom)¶
Pole |
Cíl v TracePRO |
Povinné/Default |
Popis |
|---|---|---|---|
|
|
Číslo operace, ke které materiál patří. |
|
|
|
ano |
Typ řádku, viz níže. |
|
|
ano |
Artikl. |
|
|
Množství na 1 kus výrobku. |
|
|
|
Poznámka / reference. |
Typy řádků (type):
JSON |
defs.py |
Popis |
|---|---|---|
|
|
Materiál bez zvláštního zacházení (nenačítá se). |
|
|
Materiál, který se musí načíst v rámci přípravy. |
|
|
Nástroj / přípravek. |
|
|
Díl - vyráběná položka použitá na této pozici. |
Otevřené otázky¶
Barkódy: jen hotové regexy, nebo i masky/prefixy? Návrh počítá s tím, že ERP dodá rovnou regexy
barcode_mp/barcode_pcb. QAD ale posílá prefixy a masky (pre_desk,mask_dps, …) a regexy se generují zákaznickou logikou. Má formát podporovat i sekcibarcode_hints(prefix/suffix/maska/min/max pro panel i PCB) s tím, že generování regexů zůstane na straně TracePRO?Identita řádků při sloučení. Operace mají přirozený klíč
op, kusovník ale ne - QAD to řeší přes externí id (NVGQADIds). Stačí klíčovat kusovník přes(op, type, item), nebo přidat volitelné poleerp_idna operaci / řádek kusovníku?Transport a potvrzení. Soubory v adresáři (drop dir + periodické čtení, jako QAD), nebo JSON-RPC/HTTP endpoint s okamžitou odpovědí s validačními chybami? Ovlivňuje, zda je potřeba navrhnout i formát odpovědi / error reportu.