3.4 KiB
download_vault_v2.0 — Dávkové stažení source files z Veeva Vault (J&J V-TMF)
Verze: 2.0 · 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 přejmenováním souborů podle VTMF čísla.
Změny v2.0 oproti v1.x (jednodokumentové verze v TRASH/):
seznam dokumentů se čte z Excelu ve WhatToDownload/, průběžný stav
v download_state.csv (přerušený běh naváže, hotové se přeskakují),
retry 2× na dokument, volitelný filtr Document Status.
Vstupní Excel
Skript vezme nejnovější .xlsx ze složky WhatToDownload/
(typicky „Document Inventory Report - Study Level.xlsx" z Vaultu).
Očekávané sloupce: Document Name, Document Number,
Document Status. Sloupec Document Number obsahuje vzorec
=HYPERLINK("https://vtmf.veevavault.com/ui/#doc_info/<id>/<maj>/<min>", "VTMF-XXXXXXXX")
— skript z něj regexem bere přímou doc URL i VTMF číslo (ošetřen je
i „pravý" hyperlink přes cell.hyperlink a oříznutí rozbité URL).
Pozor: report z Vaultu má rozbité deklarované rozměry listu (tváří se jako 1×1) — skript proto iteruje řádky přímo a nespoléhá na max_row/max_column.
Co skript dělá
- Načte přihlašovací údaje z
.envv rootu projektu (VAULT_USER/VAULT_PASS); když chybí, založí/doplní šablonu v.env, vyzve k doplnění a skončí. - Načte dokumenty z Excelu, odečte už stažené podle
download_state.csv. - Otevře viditelný maximalizovaný Chromium s perzistentním profilem
(
vault_profile/), přihlásí se přes J&J SSO; případné 2FA potvrdíte na telefonu a stisknete ENTER. - Zavře maintenance/login dialog — kliká na viditelné OK
(
.ui-dialog a.ok.vv_button; křížek v titulku je display:none a nejde na něj klikat). Dialog se objevuje se zpožděním, čeká se na něj 8 s na home, 2 s na stránkách dokumentů. - Pro každý dokument: otevře doc URL, klikne na ikonu Source
File, stažený soubor uloží do
U:\Dropbox\!!!Days\Downloads Z230\jakopůvodní název [VTMF-XXXXXXXX].přípona. Při chybě 1 retry po 5 s; výsledek se ihned zapíše dodownload_state.csv. - Na konci vypíše souhrn (staženo/chyb) a čeká na ENTER.
Průběžný stav a navázání
download_state.csv (vedle skriptu): sloupce vtmf, result, file, timestamp. Dokumenty s result=ok se při dalším běhu přeskakují;
chybové se zkusí znovu. Běh jde kdykoli přerušit (Ctrl+C nebo
zavření okna) — stav se zapisuje po každém dokumentu.
Pro úplně nový běh od nuly soubor smažte (resp. přesuňte do TRASH/).
Konfigurace (konstanty nahoře ve skriptu)
EXCEL_DIR—WhatToDownload/(bere se nejnovější .xlsx)STATE_FILE—download_state.csvDOWNLOAD_DIR—U:\Dropbox\!!!Days\Downloads Z230STATUS_FILTER—None= stahovat vše; např.{"Approved"}pro jen schválené dokumentyMAX_ATTEMPTS/RETRY_PAUSE_MS/BETWEEN_DOCS_MS— retry a pauzy
Spuštění
& "U:\PythonProject\Janssen\.venv\Scripts\python.exe" "U:\PythonProject\Janssen\VTMFDownloadFiles\download_vault_v2.0.py"
Společný venv projektu už obsahuje playwright i Chromium; jinak
pip install -r requirements.txt a playwright install chromium.