4.1 KiB
download_vault_v1.4 — Stažení source file z Veeva Vault (J&J V-TMF)
Verze: 1.4 · Datum: 2026-06-12
Změny v1.1: přihlašovací údaje se čtou ze souboru .env v rootu
projektu Janssen (U:\PythonProject\Janssen\.env, sekce Veeva Vault).
Změny v1.2: když údaje chybí (typicky nový počítač — .env se přes
Giteu nepřenáší), skript .env sám založí, případně do něj doplní
chybějící řádky VAULT_USER=/VAULT_PASS=, vyzve k doplnění a skončí.
Změny v1.3: robustnější odeslání login formuláře (Sign On / Login /
submit input / Enter v poli hesla jako poslední fallback).
Změny v1.4: opravené zavírání maintenance okna. Je to jQuery UI
dialog (.vv_login_msg_dialog) a jeho modré „OK" v patičce je
nefunkční — jediné funkční zavření je křížek
.ui-dialog-titlebar-close v titulku. Zavírá se ve smyčce (dialogy
umí být ve frontě), kontrola se opakuje 3× po 1 s (okno se objevuje
se zpožděním), záloha je klávesa Escape.
Playwright skript pro stažení source-file dokumentů z Veeva Vault (vtmf.veevavault.com) s perzistentní session, ručním potvrzením 2FA na telefonu a přejmenováním staženého souboru podle VTMF čísla.
Co skript dělá
- Otevře viditelný maximalizovaný Chromium s perzistentním profilem
(
vault_profile/vedle skriptu) — session přežije běhy, takže po prvním přihlášení už se obvykle přihlašovat nemusí. - Otevře J&J SSO login URL a vyplní jméno + heslo.
- Pokud SSO vyžaduje mobilní ověření (2FA), skript se zastaví a čeká, až ho potvrdíte v mobilní aplikaci a stisknete ENTER.
- Ověří, že jsme uvnitř Vaultu (URL
vtmf.veevavault.com/ui), a zavře případné informační okno o údržbě. - Otevře stránku dokumentu, klikne na ikonu Source File (vpravo
nahoře, list papíru se šipkou dolů) a stažený soubor uloží do
U:\Dropbox\!!!Days\Downloads Z230\pod názvempůvodní název [VTMF-XXXXXXXX].přípona, např.42847922MDD3003---Ongoing Third Party Oversight-31 May 2026 [VTMF-25690359].zip
Instalace
pip install -r requirements.txt
playwright install chromium
Přihlašovací údaje
Heslo není ve skriptu. Údaje se čtou v tomto pořadí:
-
.envv rootu projektu —U:\PythonProject\Janssen\.env, sekce Veeva Vault (doplňte hodnoty za=):VAULT_USER=vbuzalka VAULT_PASS=vaše-hesloSoubor je v
.gitignore, do gitu se nedostane. -
Env proměnné
VAULT_USER/VAULT_PASS(mají přednost před.env).
Pokud údaje chybí, skript .env založí / doplní v něm prázdné řádky
VAULT_USER= a VAULT_PASS=, vypíše výzvu k doplnění a skončí —
doplňte hodnoty a spusťte skript znovu.
Spuštění
& "U:\PythonProject\Janssen\.venv\Scripts\python.exe" "U:\PythonProject\Janssen\VTMFDownloadFiles\download_vault_v1.4.py"
První běh: zobrazí se login formulář, skript vyplní údaje, vy
potvrdíte 2FA na telefonu a stisknete ENTER. Profil se uloží do
vault_profile/, takže další běhy by měly jet rovnou bez
přihlášení (dokud session nevyprší — pak se login + 2FA zopakuje).
Na konci běhu skript čeká na ENTER, teprve pak zavře prohlížeč (abyste si mohli stav zkontrolovat).
Konfigurace (konstanty nahoře ve skriptu)
LOGIN_URL— J&J SSO startSSO.ping URL cílící na vtmf.veevavault.comPROFILE_DIR— perzistentní Chromium profil (vault_profile/)DOWNLOAD_DIR—U:\Dropbox\!!!Days\Downloads Z230DOCUMENTS— seznam dvojic(url_dokumentu, vtmf_cislo); zatím jeden testovací dokument, připraveno na fázi 2 (načítání seznamu z Excelu)
Známé body k dořešení (fáze 2)
- Ověřit selektor
[title='Source File']na různých typech dokumentů. - Dokumenty s dropdownem (Source File + Viewable Rendition) — základní
ošetření přes
menuitemje ve skriptu, chce ověřit na reálném případu. - Načítání seznamu URL + VTMF čísel z Excelu (
openpyxl) a smyčka přes všechny dokumenty (strukturaDOCUMENTSje na to připravená).