# Capcană: view-urile ROA depind de `PACK_SESIUNE` (luna de lucru) **Orice măsurătoare sau verificare făcută din `sqlplus` / DSN fără inițializarea lunii de lucru întoarce alte date decât aplicația — fără nicio eroare.** ## Ce se întâmplă Mai multe view-uri de bază nu sunt „pure": își calculează coloanele în funcție de starea de sesiune ținută în pachetul `PACK_SESIUNE`, pe care aplicația o setează la login (`setluna`, `setan`, `setanbal`, `setlunabal`, `set_data_init/final`, `set_id_util`, `setschema`). Exemplu — `AUTO_COMENZI_VALIDATE` (baza lui `AUTO_ISTORIC_COMENZI`): ```sql (case when extract(month from a.dataoravalid) + extract(year from a.dataoravalid) * 12 <= pack_sesiune.getluna() + pack_sesiune.getan() * 12 then 1 else 0 end) as validat ``` Într-o sesiune `sqlplus` proaspătă, `getluna()/getan()` nu sunt setate, comparația e falsă pentru toate rândurile, deci **`validat` iese 0 peste tot** — și la fel `dataoravalid`, `util_valid`, `dataorainchis`, `util_inchis`. Același tipar în `AUTO_VORDL_FACTURI` (alege coloanele RON vs ROL după `getan/getluna` față de `get_anron/get_lunaron`) și în omoloagele `DEVIZE_*`. ## Cât de mult minte Măsurat pe producția AUTOMOTIVE, 23.09.2026, ecranul „Vizualizare comenzi", luna 10/2025: | | rânduri întoarse | |---|---| | `sqlplus` fără `pack_sesiune` inițializat | **32 790** (din 2006 încoace) | | cu `setluna(10)/setan(2025)` | **195** (164 cu filtrul implicit „Active") | Diferența e ×168. Motivul: `gcCondLuna` (`Programe/ovariabile_globale.prg:16`) păstrează rândurile vechi doar dacă sunt **nevalidate sau nefacturate** — iar fără luna de lucru *totul* pare nevalidat. Din cele 33 704 comenzi ale clientului, 32 744 sunt de fapt validate. ## Ce se face Prima comandă din orice script de diagnostic pe o schemă ROA, imediat după conectare: ```sql begin .pack_sesiune.setluna(); .pack_sesiune.setan(); end; / ``` (`setluna/setan` sunt setări de sesiune, nu DML — nu încalcă regula „doar SELECT pe producție".) Verificare rapidă că sesiunea e inițializată corect, înainte de a crede orice cifră: ```sql select nvl(validat,0) validat, count(*) from .auto_comenzi_validate group by nvl(validat,0); ``` Dacă iese **totul pe 0**, sesiunea nu e inițializată — nu interpreta rezultatele. Vezi și: `roa-oracle-production-access` (lanțul tunel/TNS/DSN), `COMUN\docs\conexiuni-tunel-ssh-odbc.md`.