z230
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
# 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"
|
||||
```
|
||||
Reference in New Issue
Block a user