ArcaGesan · Runbook di distribuzione

Setup su un nuovo cliente Windows

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.

1

Cosa deve avere il PC prima di iniziare

Software

  • Microsoft Access (installazione completa, con licenza — non basta il solo runtime: l'app pilota Access via automazione COM per rieseguire le query salvate)
  • Python 3.13 a 64 bit (stessa major version usata in sviluppo) — dalla spunta "Add python.exe to PATH" durante l'installazione
  • Git a 64 bit — non serve per far funzionare l'app oggi (il trasferimento resta manuale, sezione 7), ma torna utile appena si passa a distribuire gli aggiornamenti con git pull invece che a mano: installarlo già ora evita un secondo giro sul PC del cliente
  • Microsoft ODBC Driver 17 (o 18) for SQL Server — non è incluso in Windows di default, va scaricato da Microsoft (link diretti qui sotto, versione a 64 bit)

Rete

  • Il PC deve raggiungere il server SQL di Arca del cliente nuovo (non il tuo) — nome server/istanza da farsi dare da chi gestisce quel SQL Server
  • Deve raggiungere la cartella di rete equivalente a W:\Esolver per quel cliente (dove Web Hospital/Gesan deposita i TXT)

Link diretti agli installer (versioni che hai già)

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.

Attenzione bitness

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.

2

Cosa mettere nel pacchetto da trasferire

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.

Da includere

  • app/ — tutto il codice Python
  • requirements.txt
  • avvia.bat
  • .env.example (template, senza credenziali vere)
  • Una copia pulita di Gesan_Fatture.accdb — tabelle dati vuote, query/maschere/moduli VBA intatti (vedi nota sotto)

Da escludere

  • .venv/ — si ricrea sul posto, non è portabile tra PC
  • .env — contiene le credenziali di Sanna
  • data/*.txt, data/Gesan/, data/Backup/, registro_clienti.db — dati reali di pazienti
  • data/Revisioni/ — copie di lavoro storiche, non un template pulito
Nessuna copia risulta pulita

Ho 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.

3

Installazione sul PC nuovo

1

Copia la cartella

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.

2

Crea l'ambiente Python

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
3

Prepara la cartella dati

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.

4

Configura .env

Copia .env.example in .env e compilalo per questo cliente — dettagli nella sezione 5.

5

Collega Arca via ODBC

Il pezzo più delicato: sezione 4, non saltarla.

4

Driver ODBC e collegamento ad Arca

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":

tabelle collegate in Access

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.

app/db_arca.py

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.

Il DSN per Access — cosa ho trovato sul file di Sanna

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 DSNSANNA
TipoDSN Utente (HKEY_CURRENT_USER) — legato all'utente Windows che apre Access
DriverSQL Server (il driver nativo incluso in Windows, non "ODBC Driver 17")
ServerNOTEBOOK-HP\ARCA ← sarà diverso per il cliente nuovo
DatabaseADB_SANNA ← idem
AutenticazioneTrusted_Connection=Yes (Windows, non utente/password SQL)
Consiglio per il cliente nuovo

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.

1

Apri l'amministratore ODBC giusto

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).

2

Crea 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.

3

Autenticazione

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.

4

Verifica i collegamenti in Access

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.

5

File .env per il cliente nuovo

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
Nota

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.

6

Primo avvio

  • Doppio click su avvia.bat → si apre una finestra "ArcaGesan - server" e poi il browser da solo
  • La pagina mostra la sidebar con Gesan / Arca Evolution / Importazione Diretta senza errori a video
  • In Gesan → Import, il pulsante Preleva da Esolver trova (o segnala correttamente vuota) la cartella di rete del cliente
  • Un Preleva → Analizza di prova non dà errori Python in console
  • In Arca Evolution → Import, un Importa Fatture di prova (su un batch di test, non dati veri) completa senza errori COM/Access — qui si vede subito se il DSN non è collegato bene
  • La Verifica (DOTes/DORig) mostra dati coerenti se ARCA_DB_* in .env è configurato
7

Aggiornamenti futuri, a distanza

Il 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.

Cosa mandare di solito

  • I soli file .py/.html cambiati sotto app/ (di solito bastano questi)
  • requirements.txt, solo se hai aggiunto/aggiornato una libreria

Da non toccare mai in un aggiornamento

  • .env del cliente
  • data/ del cliente (batch, backup, registro codici)
  • Query/maschere dentro il loro Gesan_Fatture.accdb, a meno che l'aggiornamento le riguardi esplicitamente
Applicare l'aggiornamento sul posto

Sostituire 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.

Preparato per il progetto ArcaGesan (C:\ArcaGesan) — riferimento interno, non condividerlo con il cliente.