2.8 KiB
download_vault_v2.1 — Dávkové stažení source files z Veeva Vault (J&J V-TMF)
Verze: 2.1 · Datum: 2026-06-12
Playwright skript pro dávkové stažení source-file dokumentů z Veeva Vault (vtmf.veevavault.com) podle Excelu, s perzistentní session, ručním potvrzením 2FA, průběžným stavem (resume) a ukládáním do adresářového stromu Type\Subtype s pojmenováním podle Description.
Změny v2.1 oproti v2.0 (starší verze v TRASH/):
- cílová složka
U:\Dropbox\!!!Days\Downloads Z230\VTMF-77242113UCO3001\<Type>\<Subtype>\ - jméno souboru:
YYYY-MM-DD Description [VTMF-xxxxxxxx] [v1.0].<přípona>- datum z
Document Date(165 řádků ho nemá → bez prefixu) - Description sanitizovaný na platné jméno (nepovolené znaky →
_, sjednocené mezery/podtržítka, ořezané okraje); 16 prázdných Description → fallback na Document Name bez koncové verze - verze z konce
Document Name(vX.Y)→[vX.Y](u všech 1959) - přípona skutečná ze staženého souboru
- datum z
LIMIT = 10— počet dokumentů na jeden běh (None = všechny zbývající); kombinuje se s resume: další běh navazuje na download_state.csv- všech 1959 cílových cest ověřeno jako unikátní (suchý test)
Vstupní Excel
Nejnovější .xlsx ze WhatToDownload/ („Document Inventory Report -
Study Level.xlsx" z Vaultu). Potřebné sloupce: Document Name, Document
Number, Document Status, Type, Subtype, Description, Document Date.
Document Name/Number/Status jsou =HYPERLINK(...) vzorce — URL
(/ui/#doc_info/<id>/<maj>/<min>) a zobrazený text se berou regexem.
Pozor: report má rozbité deklarované rozměry listu — čte se přímou
iterací řádků, ne přes max_row/max_column.
Běh
- Údaje z
.envv rootu projektu (VAULT_USER/VAULT_PASS); chybí-li, skript šablonu založí/doplní, vyzve a skončí. - Načte Excel, odečte hotové z
download_state.csv, vezme prvníchLIMITzbývajících. - Chromium s perzistentním profilem (
vault_profile/), J&J SSO login, 2FA potvrdíte na telefonu + ENTER. - Maintenance dialog zavírá přes viditelné OK
(
.ui-dialog a.ok.vv_button— křížek je display:none!), čeká se na něj 8 s na home, 2 s na doc stránkách. - Každý dokument: doc URL → ikona Source File → uložení do stromu
pod novým jménem. Retry 2× po 5 s, výsledek ihned do
download_state.csv(vtmf,result,file,timestamp). - Souhrn a ENTER pro zavření.
Pro úplně nový běh od nuly smazat/odsunout download_state.csv.
Konfigurace (konstanty nahoře)
DOWNLOAD_ROOT, LIMIT (10), STATUS_FILTER (None = vše),
MAX_ATTEMPTS/RETRY_PAUSE_MS/BETWEEN_DOCS_MS, EXCEL_DIR,
STATE_FILE.
Spuštění
& "U:\PythonProject\Janssen\.venv\Scripts\python.exe" "U:\PythonProject\Janssen\VTMFDownloadFiles\download_vault_v2.1.py"