Formát souborů pro odvádění práce do ERP

Tento dokument popisuje generický JSON formát pro odvádění (reporting) výroby z TracePRO do ERP: hlášení práce na operacích, spotřeby materiálu a hlášení hotových kusů (příjem z výroby) včetně krabic. Jde o opačný směr než Formát souboru pro import objednávek do TracePRO (import objednávek) a Formát souboru pro import číselníků do TracePRO (import číselníků).

Poznámka

Toto je návrh (v1), zatím neimplementováno. Otevřené otázky jsou shrnuty na konci dokumentu.

Zásady

  1. Jeden soubor = sada odvedení pro jednu objednávku. Sekce work a pieces jsou volitelné - hlášení práce (včetně spotřeby materiálu, která je jeho součástí) se typicky odvádí v jiném okamžiku než hotové kusy, takže soubor obvykle obsahuje buď work, nebo pieces. Ale může obsahovat i obě sekce.

  2. Odvedení je událost, ne snapshot. Na rozdíl od importu objednávek se nic neslučuje - každý soubor nese přírůstek, který má ERP zaúčtovat právě jednou.

  3. Pracovník a pracoviště se posílají jako objekty, ne jen jako id. Kromě id TracePRO se posílá i erp_ref, u pracovníka přihlašovací jméno, u pracoviště název. ERP si tak může vybrat klíč, který zná.

  4. Množství a časy jsou čísla, datum YYYY-MM-DD, časové značky ISO 8601 v lokálním čase. Časy trvání jsou v sekundách.

  5. Export probíhá v pravidelných časových intervalech. Export provádí naplánovaná úloha, rozumný interval mezi spuštěními je 20 minut.

  6. Jméno souboru začíná polem ERP_REF objednávky. a pokud je seřadíte abecedně, budou také seřazeny podle datumu a času generování (v rámci jedné objednávky).

Příklad

{
    "format": "tracepro-report",
    "version": 1,
    "source": "TRACEPRO",
    "generated": "2026-07-09T12:30:00",
    "report_id": "20260709123000123456",
    "order": {
        "erp_ref": "10038526",
        "id": 4521,
        "item": "01030749053"
    },
    "work": [
        {
            "op": 20,
            "time": "2026-07-08T14:12:33",
            "workplace": {
                "id": 17,
                "erp_ref": "3800-0001",
                "name": "SMT Linka 3"
            },
            "workers": [
                {"id": 318, "erp_ref": "0318", "login_name": "epobonkova"}
            ],
            "amount": 100,
            "amount_scrap": 10,
            "amount_repair": 0,
            "seconds": 664,
            "material": [
                {
                    "item": "SX000000016",
                    "lots": ["RUT21I000002"],
                    "amount": 60.0
                },
                {
                    "item": "SX000007463",
                    "lots": ["A111111", "A222222", "A333333"],
                    "amount": 30.0
                }
            ]
        }
    ],
    "pieces": [
        {
            "time": "2026-07-09T11:28:53",
            "amount": 1,
            "barcode": "3021012500001RGB",
            "barcode2": "",
            "master_barcode": "X0001",
            "box": {"id": 8812, "label": "KU541206"},
            "worker": {"id": 1390, "erp_ref": "1390", "login_name": "jnovak"}
        }
    ]
}

Obálka souboru

Pole

Popis

format

Vždy "tracepro-report".

version

Verze formátu, aktuálně 1.

source

Identifikace zdroje, typicky "TRACEPRO" (příp. jméno instance).

generated

Datum a čas vygenerování souboru (ISO 8601, lokální čas).

report_id

Jedinečný identifikátor odvedení (teď je to timestamp+pořadové číslo, ale to se může změnit). ERP jej může použít k ochraně proti dvojímu zaúčtování téhož souboru.

order

Objednávka, které se odvedení týká, viz níže.

work

Seznam záznamů hlášení práce, včetně spotřeby materiálu. Volitelné.

pieces

Seznam hotových kusů. Volitelné.

Objednávka (order):

Pole

Zdroj v TracePRO

Popis

erp_ref

ProductionOrder.erp_ref

Číslo výrobního příkazu v ERP. Klíč pro zaúčtování.

id

ProductionOrder.id

Id objednávky v TracePRO (informativní).

item

ProductionOrder.item

Vyráběná položka (informativní).

Pracovník a pracoviště

Všude, kde se v záznamech objevuje pracovník nebo pracoviště, posílá se stejný objekt:

Pracovník (PWorker):

Pole

Zdroj v TracePRO

Popis

id

PWorker.id

Osobní číslo v TracePRO.

erp_ref

PWorker.erp_id

Číslo pracovníka v ERP. Prázdný řetězec, pokud není vyplněno (ERP si pak musí poradit s id, obdoba dnešního fallbacku v get_qad_workers).

login_name

PWorker.login_name

Přihlašovací jméno.

Pracoviště (PWorkplace):

Pole

Zdroj v TracePRO

Popis

id

PWorkplace.id

Id pracoviště v TracePRO.

erp_ref

PWorkplace.erp_ref

Označení pracoviště v ERP. Posílá se celé - případné dělení na středisko a stroj (dnes dept-machine v get_qad_workplace) je věcí konzumenta.

name

PWorkplace.name

Název pracoviště.

Hlášení práce (work)

Jeden záznam odpovídá agregaci práce na klíči (operace, čas začátku, pracoviště, pracovníci). Spotřeba materiálu je vnořená v poli material, viz níže.

Pole

Zdroj v TracePRO

Popis

op

ProductionOrder >> Operation.op

Číslo operace výrobního postupu.

time

Datum a čas začátku práce (ISO 8601).

workplace

PWorkplace

Pracoviště, viz výše.

workers

PWorker

Seznam pracovníků, kteří se na práci podíleli. Zpravidla zde bude jeden pracovník, ale může to být i skupina. V tom případě se předpokládá, že na té práci pracovali vyjmenovaní pracovníci společně.

amount

Dobré kusy (dokončené množství). Může být záporné při korekci - viz Otevřené otázky.

amount_scrap

Neopravitelné zmetky (odpad).

amount_repair

Neshodné kusy k posouzení (fronta zmetků). TracePRO zde vždy posílá 0.

seconds

Odpracovaný čas v sekundách.

material

Seznam spotřebovaného materiálu, viz níže. Může být prázdný.

Spotřeba materiálu (work[].material)

Záznam materiálu je v TracePRO potomkem záznamu práce, proto je i tady vnořený do záznamu work. Operaci, datum a směnu přebírá z nadřazeného záznamu práce.

Pole

Popis

item

Artikl komponenty.

lots

Seznam šarží (nakupované komponenty) nebo sériových čísel (polotovary). Běžně jedna položka; více položek u pracovišť, která neumí množství rozpočítat na šarže (dnes JUKI bez IFS). Pak je amount celkové množství přes všechny šarže a jejich rozpočítání je na ERP. Předpokládá se, že pokud je zde více šarží, ERP si je odebírá podle FIFO.

amount

Spotřebované množství.

Hotové kusy (pieces)

Jeden záznam na jeden kus (resp. jeden barkód). Které kusy se posílají, řídí typ panelizace objednávky (mptp); soubor už obsahuje jen výsledný výběr. Kusy se vyexportují až když jsou dokončené. Je možné, kusy z jedné krabice jsou exportovány v různých exportních souborech

Může se stát, že amount != 1. To je v případě, že výrobky vůbec nemají barkód, nebo v případě, že je barkód jen na panelu.

Pole

Zdroj v TracePRO

Popis

time

Datum a čas posledního operace. Tento údaj TracePRO běžně do exportu nevyplňuje, lze zapnout.

amount

PVItemRecord.get_amount

Počet kusů; 1, u multipanelu bez barkódů na PCB (mp_only) počet PCB v panelu.

barcode

Item.barcode

Hlavní barkód kusu.

barcode2

Item.barcode2

Druhý (zákaznický) barkód, prázdný řetězec pokud není.

master_barcode

master Item.barcode

Barkód multipanelu, prázdný řetězec pokud není.

box

WBox

Krabice, ve které kus je: objekt {"id": ..., "label": ...}. Pokud je krabice vnořená do krabice vyšší úrovně, posílá se ta vyšší. null, pokud kus v krabici není (polotovary).

worker

PWorker

Pracovník posledního testu, viz výše. Posílá se jeden (první ze skupiny, jako dnes v get_last_test_worker).