PROBLEMA


A causa di un recente aggiornamento di FreeTDS (freetds-1.1.11-1.el7.x86_64), è emerso un problema che riguarda gli script personalizzati per la rubrica centralizzata che accedono a database MSSQL.


Nello specifico, è un problema riguardante query che utilizzano alias per i campi del database.

L'effetto concreto è che tutti i dati nei campi con alias non vengono visualizzati sulla centralizzata.


Per maggiori dettagli tecnici consultare: https://github.com/nethesis/dev/issues/5690




SOLUZIONE


Le query devono essere adattate per non utilizzare gli alias: esistono però workaround qualora gli alias non possano essere eliminati.

Il workaround più semplice è il seguente:

(N.B.: non garantisce al 100% di sanare la situazione. Nel caso i problemi rimanessero, lo script personalizzato va modificato in modo più approfondito).



1. specificare il nome dello script personalizzato: per farlo, dare il comando seguente, sostituendo a filename il nome esatto dello script: 

export FILE=filename

ESEMPIO: se lo script si chiama business_nts.php, il comando sarà:

export FILE=business_nts.php



2. dare il comando seguente, che prima crea una copia di backup dello script originario (il nome sarà lo stesso, seguito dall'estensione .old) e quindi applica un fix sullo script vero e proprio:

cp /usr/share/phonebooks/scripts/$FILE /usr/share/phonebooks/scripts/$FILE.old; chmod a-x /usr/share/phonebooks/scripts/$FILE.old; sed -i 's/\$query="/\$query="DECLARE @ignore TINYINT;/g' /usr/share/phonebooks/scripts/$FILE



3. Da ultimo, poiché si è applicato il fix, bisogna lanciare la sincronizzazione della centralizzata con questo comando:

/usr/share/phonebooks/phonebook