3.5 KiB
3.5 KiB
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:
- Login do vtmf.veevavault.com (persistentní profil
vault_profile/, J&J SSO, případné 2FA potvrdíte na telefonu- ENTER; údaje z
.envv rootu projektu).
- ENTER; údaje z
- Export reportu „Document Inventory Report - Study Level"
(přímá URL s ID reportu
0RP000000000182a filtrem studie0ST000000137008) → menu ⋯ → Export to Excel → Data Only → uloží se s timestampem doWhatToDownload/, po zpracování se přesune doWhatToDownload/Zpracovano/. - 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_ata stažený soubor se přejmenuje s[D]před příponou, - dokument se vrátí do reportu →
deleted=Falsea[D]se ze souboru zase odebere. Výsledná sada = záznamy sdeleted=False.
- Stažení chybějících — všechny
deleted=False, downloaded≠True: doc URL → Source File → uložení doU:\Dropbox\!!!Days\Downloads Z230\VTMF-77242113UCO3001\<Type>\<Subtype>\jakoYYYY-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ěhMONGO_URI/DB/COLL,DOWNLOAD_ROOT,EXCEL_DIRTRACKED_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-closeje 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í
& "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/).