z230
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
# vtmf_pipeline_v1.0 — Kompletní V-TMF workflow (report → Mongo → download)
|
||||
|
||||
**Verze:** 1.0 · **Datum:** 2026-06-12
|
||||
|
||||
Jeden běh skriptu udělá celé workflow pro studii 77242113UCO3001:
|
||||
|
||||
1. **Login** do vtmf.veevavault.com (persistentní profil
|
||||
`vault_profile/`, J&J SSO, případné 2FA potvrdíte na telefonu
|
||||
+ ENTER; údaje z `.env` v rootu projektu).
|
||||
2. **Export reportu** „Document Inventory Report - Study Level"
|
||||
(přímá URL s ID reportu `0RP000000000182` a filtrem studie
|
||||
`0ST000000137008`) → menu ⋯ → Export to Excel → Data Only →
|
||||
uloží se s timestampem do `WhatToDownload/`, po zpracování se
|
||||
přesune do `WhatToDownload/Zpracovano/`.
|
||||
3. **Parse + sync do MongoDB** — Tower `mongodb://192.168.1.76:27017`,
|
||||
db **VTMF**, kolekce **documents**, klíč `_id = "VTMF-xxx|vY.Z"`
|
||||
(VTMF číslo + verze, unikátní index na dvojici):
|
||||
- nový dokument → založí se (first_seen, deleted=False,
|
||||
downloaded=False),
|
||||
- změna sledovaných polí (name, status, type, subtype, desc,
|
||||
date, url, studies) → promítne se + záznam do `history[]`
|
||||
(timestamp + old/new),
|
||||
- dokument chybí v reportu → `deleted=True, deleted_at` a stažený
|
||||
soubor se přejmenuje s ` [D]` před příponou,
|
||||
- dokument se vrátí do reportu → `deleted=False` a ` [D]`
|
||||
se ze souboru zase odebere.
|
||||
Výsledná sada = záznamy s `deleted=False`.
|
||||
4. **Stažení chybějících** — všechny `deleted=False, downloaded≠True`:
|
||||
doc URL → Source File → uložení do
|
||||
`U:\Dropbox\!!!Days\Downloads Z230\VTMF-77242113UCO3001\<Type>\<Subtype>\`
|
||||
jako `YYYY-MM-DD Description [VTMF-xxx] [vY.Z].<skutečná přípona>`.
|
||||
Výsledek (cesta, čas, případně chyba) se ihned zapisuje do Mongo —
|
||||
běh jde kdykoli přerušit a příště naváže.
|
||||
|
||||
## Mongo schéma (kolekce documents)
|
||||
|
||||
```
|
||||
_id: "VTMF-19077748|v1.0"
|
||||
vtmf, version, url, name, status, type, subtype, desc, date, studies
|
||||
first_seen, last_seen # kdy poprvé/naposledy v reportu
|
||||
deleted, deleted_at # není ve výsledné sadě reportu
|
||||
downloaded, file, downloaded_at
|
||||
last_error, error_at # poslední chyba stahování
|
||||
history: [{ts, changes: {pole: {old, new}}}]
|
||||
```
|
||||
|
||||
## Migrace starého stavu
|
||||
|
||||
Při prvním běhu se `download_state.csv` (z download_vault v2.x)
|
||||
jednorázově namigruje: záznamy `ok` se k odpovídajícímu VTMF zapíší
|
||||
jako `downloaded=True` + cesta. CSV se přejmenuje na
|
||||
`download_state.csv.imported`.
|
||||
|
||||
## Konfigurace (konstanty nahoře)
|
||||
|
||||
- `REPORT_URL` — ID reportu + filtr studie (pro jinou studii se mění
|
||||
jen tato dvě ID)
|
||||
- `LIMIT` — None = stáhnout vše zbývající; číslo = dávka na běh
|
||||
- `MONGO_URI/DB/COLL`, `DOWNLOAD_ROOT`, `EXCEL_DIR`
|
||||
- `TRACKED_FIELDS`, `MAX_ATTEMPTS`, `RETRY_PAUSE_MS`, `BETWEEN_DOCS_MS`
|
||||
|
||||
## Ověřené technické detaily (nesahat bez ověření)
|
||||
|
||||
- Maintenance dialog: zavírat POUZE přes `.ui-dialog a.ok.vv_button`
|
||||
(křížek `.ui-dialog-titlebar-close` je display:none); objevuje se
|
||||
se zpožděním → wait_for visible 8 s (home) / 2-4 s (jinde).
|
||||
- Report Excel má rozbité deklarované rozměry → přímá iterace řádků.
|
||||
- Document Name/Number/Status jsou =HYPERLINK vzorce → regex.
|
||||
- Export kliknout právě jednou; 503/redirecty v network logu
|
||||
ignorovat, rozhoduje expect_download.
|
||||
|
||||
## Spuštění
|
||||
|
||||
```powershell
|
||||
& "U:\PythonProject\Janssen\.venv\Scripts\python.exe" "U:\PythonProject\Janssen\VTMFDownloadFiles\vtmf_pipeline_v1.0.py"
|
||||
```
|
||||
|
||||
Předchůdce: download_vault v1.x–v2.1 (TRASH/).
|
||||
Reference in New Issue
Block a user