From 95cf54e4479085fcb1bb438ea93f34ead990cfdd Mon Sep 17 00:00:00 2001 From: Marius Mutu Date: Mon, 27 Jul 2026 16:25:02 +0300 Subject: [PATCH] Verificare ANAF: raspunsul 404 citit, intrerupator cand serviciul nu raspunde Serviciul ANAF intoarce HTTP 404 cu corp complet pentru codurile inexistente ({"found":[],"notFound":[...]}), iar wrapper-ul citea corpul doar pe 200 - deci verdictul "cod inexistent" nu aparea niciodata. Corpul se citeste acum la orice status, iar verdictul se da doar cand notFound contine chiar codul interogat; orice alt corp neinteles inseamna "nu a raspuns", nu acuzatie. Timeout-uri reale pe apelurile web (2/2/3/3): garda Pemstatus din jurul lui SetTimeouts intoarce .F. pe obiectul COM legat tarziu, deci timeout-urile nu se aplicau, iar o gazda care inghite pachetele bloca interfata ~21 s per rand. Aceleasi timeout-uri si pe drumul batch. Fallback-ul Microsoft.XMLHTTP, fara timeout, a fost scos de pe calea single. Cand serviciul nu raspunde, verificarile se opresc 10 minute si banda arata ca au fost sarite, in loc sa taca. La deschiderea formularului pleaca o sonda asincrona de disponibilitate, cu termen de viata, guard de reintrare si Abort() la inchidere; randul care asteapta verdictul nu face apel propriu. Cache doar pe rezultate pozitive. Codul fiscal nenumeric primeste mesaj propriu, in banda si in detaliile F4. ParseJsonANAFv8 restaureaza formatul datei si pe calea de eroare (o exceptie lasa toata sesiunea pe YMD). Teste: suita headless 70/70, cu sonda si clasele de esec mock-uite (fara retea) si fixture peste corpurile 404 masurate pe serviciul real. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01DhJwsrFFe1ZNAAtS8Twuti --- .gitignore | 5 + docs/depanare_testare_vfp.md | 4 + docs/reguli_lucru.md | 13 +- programe/ocautare.prg | 262 ++++++- programe/validare.prg | 224 ++++-- .../partener_anaf/mock_anaf_verificare.prg | 63 +- .../test_verif_partener_anaf_v2_ui.prg | 713 +++++++++++++++++- 7 files changed, 1160 insertions(+), 124 deletions(-) diff --git a/.gitignore b/.gitignore index 55e4dc8..cd6364a 100644 --- a/.gitignore +++ b/.gitignore @@ -124,3 +124,8 @@ Thumbs.db Desktop.ini bash.exe.stackdump .claude/ + +# --- artefacte generate de rularile de test headless --- +utile/Teste/**/screenshots/ +utile/Teste/**/uisync/ +utile/Teste/**/*_log.txt diff --git a/docs/depanare_testare_vfp.md b/docs/depanare_testare_vfp.md index 5356d13..575dbde 100644 --- a/docs/depanare_testare_vfp.md +++ b/docs/depanare_testare_vfp.md @@ -111,6 +111,10 @@ Cand un bug apare "de azi", compara cu clasa veche fara a atinge SVN: ## 7. Capcane la SCRIEREA scriptului de test +- **`SET SAFETY OFF` in primele linii, INAINTE de orice `STRTOFILE`/`CREATE CURSOR`** (plus + `SET TALK OFF`). Fara el VFP deschide dialogul de confirmare la suprascrierea fisierului de + log, iar headless dialogul blocheaza procesul pana la timeout. Suitele existente il au deja - + capcana apare la scripturile ad-hoc, scrise repede pentru o masuratoare. - **`DEFINE CLASS ... ENDDEFINE` nu poate sta la mijlocul programului principal.** Toate liniile de DUPA `ENDDEFINE` dau "Statement is not in a procedure" (vezi `