Files
janssen/VTMFDownloadFiles/TRASH/download_vault_v2.1.md
T
2026-06-12 15:29:57 +02:00

62 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
- `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
1. Údaje z `.env` v rootu projektu (`VAULT_USER`/`VAULT_PASS`);
chybí-li, skript šablonu založí/doplní, vyzve a skončí.
2. Načte Excel, odečte hotové z `download_state.csv`, vezme
prvních `LIMIT` zbývajících.
3. Chromium s perzistentním profilem (`vault_profile/`), J&J SSO
login, 2FA potvrdíte na telefonu + ENTER.
4. 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.
5. 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`).
6. 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í
```powershell
& "U:\PythonProject\Janssen\.venv\Scripts\python.exe" "U:\PythonProject\Janssen\VTMFDownloadFiles\download_vault_v2.1.py"
```