Rivile ERP — asinchroninis duomenų eksportas ir ataskaitos

Rivile ERP — asinchroninis duomenų eksportas ir ataskaitos

Šiame dokumente aprašomas fono vykdymo srautas: vartotojas paleidžia eksportą arba ataskaitą su filtrais, sistema sukuria užduotį, generavimas vyksta atskirai (eilė per pranešimų brokerį), o paruoštą failą galima atsiųsti per vartotojo užduotis pagal failo nuorodą.

Originali diagrama (sekų / swimlane):

Asinchroninis duomenų eksporto srautas

Susiję: automatizavimo scenarijuose — DataExport API ir failai — rivile-erp-automatizavimo-api.html (§4 DataExport, §5 failai). GraphQL šablonai pagal vietą — dataExportTemplatesByActivePlacerivile-erp-graphql-overview.html. Keliai pagal duomenų kiekį ir trukmę (Reporting / Automation / Data Export / BI) — rivile-erp-duomenu-istraukimas-keliai-ribos.html. Infrastruktūra ir ribos — rivile-erp-infrastruktura-ribos-greitaveika.html. Bendra architektūra (Artemis, servisai) — rivile-erp-architektura-bendra.html.


Santrauka mokymams

Aspektas Kas svarbu
Asinchroniškumas Naršyklė nelaukia failo generavimo pabaigos: grąžinamas užduoties ID, UI cikliškai tikrina būseną.
Atskyrimas (decoupling) Artemis (pranešimų brokeris) skiria užklausą (ataskaitos paruošimas) nuo vykdymo (Data Export tarnyba).
Data Mobility Centrinė vieta vartotojo užduočių būsenoms ir rezultatui (įskaitant nuorodą į failą).
File Management Atskira paslauga failų saugojimui; rezultatas adresuojamas File Ref, ne tiesioginiu keliu į DB.

1. Fazė: „Start Data Export“ (užklausa ir užduotis)

Dalyviai: Vartotojas, ERP FE, Report Preparation, Data Mobility, Artemis.

  1. Vartotojas ERP sąsajoje pasirenka ataskaitą / eksportą.
  2. ERP FE per Report Preparation parodo filtrų formą; vartotojas įveda filtrus.
  3. FE kviečia INIT User Task (grąžinamas Task ID).
  4. Report Preparation prašo Data Mobility sukurti User Task.
  5. Data Mobility publikuoja į Artemis pranešimą Data Export Preparation Message (eilėje laukia Data Export tarnybos).
  6. Atsakas į FE: Response With Task ID.
  7. ERP FE cikle kviečia Get User Task STATUS & Result, kol užduotis baigta arba klaida.
  8. Galiausiai naudotojui rodoma žinutė su užduoties rezultatu (įskaitant nuorodą į failą, jei sėkmė).

2. Fazė: „Generate Export File“ (foninis vykdymas)

Dalyviai: Artemis, Data Export, DataBase, File Management, Data Mobility.

  1. Data Export gauna pranešimą iš Artemis.
  2. Atnaujinti būseną: per Data Mobility nustatoma būsena In Progress.
  3. Duomenys: SQL užklausos į DataBase (SELECT … WHERE … pagal filtrus / šabloną).
  4. Generavimas: duomenys suformuojami į failą (formatas priklauso nuo konfigūracijos).
  5. Įrašymas: failas perduodamas File Management (Save file).
  6. Užbaigimas: Data Mobility gauna būseną Completed kartu su nuoroda į failą (File Reference).

3. Fazė: „Get Export File“ (atsisiuntimas)

Dalyviai: Vartotojas, ERP, User Tasks, File Management.

  1. Vartotojas eina į Vartotojo užduotis (User Tasks) ERP sąsajoje.
  2. Pasirinkus užduotį / atsisiuntimą, ERP per User Tasks inicijuoja Download File by File Ref.
  3. User TasksFile Management gauna Get File Content ir perduoda failą vartotojui.

Supaprastinta seka (Mermaid)

Žemiau — tas pats srautas be swimlane detalių, patogus skaidrėms arba antrai mokymų dienai.

sequenceDiagram
    participant V as Vartotojas
    participant FE as ERP FE
    participant RP as Report Preparation
    participant DM as Data Mobility
    participant A as Artemis
    participant DE as Data Export
    participant DB as Database
    participant FM as File Management

    rect rgb(245, 248, 252)
    Note over V,A: 1. Paleidimas ir užduotis
    V->>FE: Filtrai, paleisti eksportą
    FE->>RP: INIT User Task
    RP->>DM: Create User Task
    DM->>A: Publish Data Export Preparation
    RP-->>FE: Task ID
    loop Būsenos tikrinimas
        FE->>DM: Get Task STATUS and Result
    end
    end

    rect rgb(252, 248, 245)
    Note over A,FM: 2. Foninis generavimas
    A->>DE: Data Export Preparation Message
    DE->>DM: STATUS In Progress
    DE->>DB: SELECT duomenys
    DE->>FM: Save file
    DE->>DM: Completed + File Reference
    end

    rect rgb(245, 252, 248)
    Note over V,FM: 3. Atsisiuntimas
    V->>FE: Vartotojo užduotys
    FE->>DM: Download by File Ref
    DM->>FM: Get File Content
    FM-->>V: Failas
    end

Pastabos

  • Polling (ciklas FE → Data Mobility) yra tipinis modelis, kol užduotis vyksta ilgiau nei HTTP užklausos timeout; alternatyvos (WebSocket, server-push) priklauso nuo konkretaus diegimo.
  • Automatizavimo scenarijuose sinchroninis duomenų gavimas gali naudoti fetchExportData — tai kitas kelias nei UI „User Task + failas“; abu tenkina skirtingus naudojimo atvejus.