ArcaGesan · Runbook di distribuzione
Cosa preparare, cosa copiare (e cosa no), come collegare Arca Evolution via ODBC e come mandare aggiornamenti futuri a un PC fuori dalla tua rete.
git pull invece che a mano: installarlo già ora evita un secondo giro sul PC del clienteW:\Esolver per quel cliente (dove Web Hospital/Gesan deposita i TXT)| Python 3.13.15 (64 bit) | python-3.13.15-amd64.exe |
|---|---|
| Git 2.55.0 windows.5 (64 bit) | Git-2.55.0.5-64-bit.exe |
| ODBC Driver 17 for SQL Server (x64) | link ufficiale Microsoft — quello già usato di default (.env.example) |
| ODBC Driver 18 for SQL Server (x64) | link ufficiale Microsoft — più recente, va bene in alternativa |
Verificati sui siti ufficiali (python.org, le release GitHub di Git for Windows e la pagina download Microsoft Learn per ODBC) il 2026-09-22 — se sul PC nuovo risultasse uscita una versione più recente va bene comunque, basta restare sulla 3.13.x per Python. I due link Microsoft sono permalink ufficiali (go.microsoft.com/fwlink): puntano sempre all'ultima versione disponibile, non a una build fissa.
Se Access è a 32 bit (probabile, anche su Windows 64 bit) ma installi solo il driver ODBC a 64 bit, Access non lo vedrà. Verifica la bitness di Access (File → Account → Informazioni su Access) e installa il pacchetto ODBC Driver (17 o 18) della stessa bitness — meglio installare entrambe le versioni (32 e 64 bit) se hai dubbi, coesistono senza problemi.
Il backup "di tutto il programma" da portare sul PC nuovo non è una copia 1:1 della cartella C:\ArcaGesan: quella del PC attuale contiene anche l'ambiente Python già compilato per questa macchina e, soprattutto, i dati reali dei pazienti di Sanna — nessuno dei due va sul PC di un altro cliente.
app/ — tutto il codice Pythonrequirements.txtavvia.bat.env.example (template, senza credenziali vere)Gesan_Fatture.accdb — tabelle dati vuote, query/maschere/moduli VBA intatti (vedi nota sotto).venv/ — si ricrea sul posto, non è portabile tra PC.env — contiene le credenziali di Sannadata/*.txt, data/Gesan/, data/Backup/, registro_clienti.db — dati reali di pazientidata/Revisioni/ — copie di lavoro storiche, non un template pulitoHo controllato data/Revisioni/Gesan_Fatture - Originale.accdb sperando fosse un template vuoto: contiene invece 192 righe in DOTes e 185 in Anagrafica — dati reali di test, non va bene come base per un cliente nuovo. Prima di impacchettare, apri una copia in Access e svuota le tabelle DOTes, DORig, DORigSpesa, Anagrafica, ImportCompleto, CF, CFContatto (e le loro _Union) — lasciando query, maschere e moduli com'erano.
Incolla il pacchetto (punto 2) in C:\ArcaGesan sul PC nuovo — stesso percorso, per evitare di dover toccare i path dentro .env oltre al necessario.
Da un terminale in C:\ArcaGesan:
python -m venv .venv .venv\Scripts\python.exe -m pip install --upgrade pip .venv\Scripts\python.exe -m pip install -r requirements.txt
Copia la versione pulita di Gesan_Fatture.accdb in C:\ArcaGesan\data\. Le sottocartelle Gesan e Backup le crea da sola l'app al primo prelievo, non serve prepararle a mano.
.envCopia .env.example in .env e compilalo per questo cliente — dettagli nella sezione 5.
Il pezzo più delicato: sezione 4, non saltarla.
Qui ci sono due collegamenti separati e diversi allo stesso database SQL Server di Arca — è la domanda che facevi, e la risposta è "dipende da quale dei due":
Le query salvate che scrivono davvero DOTes/DORig (eseguite via COM da ArcaGesan) leggono da tabelle collegate dentro Access stesso — dbo_AR, dbo_CFCli, ecc. Queste sì, vanno impostate in Access, con un DSN ODBC.
Il confronto "cliente già in Arca" nell'anteprima di ArcaGesan si collega invece direttamente da Python (via pyodbc), con la stringa di connessione che costruisce da .env — qui non serve creare nessun DSN in Windows.
Ho aperto Gesan_Fatture.accdb via automazione COM e ispezionato la proprietà Connect delle tabelle collegate. Questo è il DSN che le alimenta oggi, da replicare (con i valori del cliente nuovo) sul PC nuovo:
| Nome DSN | SANNA |
|---|---|
| Tipo | DSN Utente (HKEY_CURRENT_USER) — legato all'utente Windows che apre Access |
| Driver | SQL Server (il driver nativo incluso in Windows, non "ODBC Driver 17") |
| Server | NOTEBOOK-HP\ARCA ← sarà diverso per il cliente nuovo |
| Database | ADB_SANNA ← idem |
| Autenticazione | Trusted_Connection=Yes (Windows, non utente/password SQL) |
Sul PC di Sanna è un DSN Utente: funziona solo per l'account Windows con cui è stato creato. Su un'installazione nuova conviene crearlo come DSN di Sistema, così funziona per qualsiasi utente Windows apra Access su quel PC, senza doverlo ricreare per ognuno.
Cerca "Origine dati ODBC" nel menu Start — se Access è a 32 bit apri esplicitamente C:\Windows\SysWOW64\odbcad32.exe, altrimenti quello a 64 bit non basta (Access non vedrà il DSN).
Scheda DSN di sistema → Aggiungi → driver SQL Server → Nome: SANNA (stesso nome che le query di Access si aspettano — non cambiarlo) → Server: quello del cliente nuovo.
Windows Integrata (come sul file originale) se il nuovo cliente usa lo stesso schema — altrimenti concordalo con chi amministra il loro SQL Server. Imposta il database predefinito su quello del cliente nuovo.
Apri Gesan_Fatture.accdb, Strumenti database → Gestione tabelle collegate, seleziona tutte le tabelle dbo_*, spunta "Chiedi sempre nuovo percorso" solo se serve, e ricollega: Access chiederà il DSN, scegli SANNA.
Copia .env.example in .env e compila i valori reali del cliente nuovo — questo file non va mai incluso nel pacchetto di trasferimento, va scritto a mano su ogni PC.
# Percorsi locali a questo PC ESOLVER_DIR=W:\Esolver GESAN_DIR=C:\ArcaGesan\data\Gesan BACKUP_DIR=C:\ArcaGesan\data\Backup TARGET_DIR=C:\ArcaGesan\data ARCA_BRIDGE_ACCDB=C:\ArcaGesan\data\Gesan_Fatture.accdb # Connessione diretta Python -> SQL Server del cliente nuovo # (facoltativa: vuota = l'anteprima funziona, senza il confronto con Arca) ARCA_DB_SERVER=NOMEPC\ISTANZA ARCA_DB_NAME=adb_NomeCliente ARCA_DB_USER=sa ARCA_DB_PASSWORD=•••••••••• ARCA_DB_DRIVER=ODBC Driver 17 for SQL Server ARCA_DB_TRUST_CERT=yes
ARCA_DB_USER/PASSWORD qui sono credenziali SQL (utente/password), separate dal Windows Integrated del DSN di Access — il nuovo cliente potrebbe avere un login SQL diverso da sa, chiedilo a chi gestisce il loro Arca.
avvia.bat → si apre una finestra "ArcaGesan - server" e poi il browser da soloARCA_DB_* in .env è configuratoIl PC del cliente non è sulla tua rete: ogni modifica alla procedura la impacchetti e la mandi (email, chiavetta, assistenza remota — quello che usi per raggiungerlo) e qualcuno la applica sul posto.
.py/.html cambiati sotto app/ (di solito bastano questi)requirements.txt, solo se hai aggiunto/aggiornato una libreria.env del clientedata/ del cliente (batch, backup, registro codici)Gesan_Fatture.accdb, a meno che l'aggiornamento le riguardi esplicitamenteSostituire i file copiati dentro C:\ArcaGesan\app\, poi chiudere la finestra "ArcaGesan - server" (o rilanciare avvia.bat, che ora chiude da solo una sessione precedente prima di ripartire) — le modifiche ai file .py richiedono il riavvio del server, quelle al solo .html si vedono anche solo ricaricando la pagina.
Se gli aggiornamenti diventano frequenti, vale la pena valutare un repository Git privato (es. su GitHub) da cui il PC del cliente fa git pull lui stesso — oggi il progetto è un repository locale senza remoto, quindi per ora resta il trasferimento manuale.