156 lines
5.7 KiB
Bash
156 lines
5.7 KiB
Bash
#
|
|
# Shell Script per caricamento dati utenze
|
|
# da DBSS
|
|
#
|
|
#!/usr/bin/ksh
|
|
#
|
|
THIS_PATH=`dirname $0`
|
|
. $THIS_PATH/setEnv.sh
|
|
|
|
$THIS_PATH/TestNodo.sh
|
|
|
|
if [ $? -eq 0 ]
|
|
then
|
|
# ESECUZIONE SCRIPT
|
|
|
|
# directory in cui sono presenti i files control (CTL)
|
|
CMD=${MNP_SCRIPT_CMD_HOME}
|
|
|
|
#directory in cui sono presenti i file dati
|
|
DAT=${MNP_GWMNP_HOME}/FILEIN
|
|
|
|
#directory in cui eseguire il backup dei file acquisiti correttamente
|
|
BACKUP_DBSS=${MNP_GWMNP_HOME}/backup/in/dbss
|
|
BACKUPCTR=${MNP_GWMNP_HOME}/backup/in/ctr
|
|
|
|
#directory in cui scrivere i files di Log
|
|
LOG=${MNP_LOG_SCRIPT_HOME}
|
|
APPLICATION_LOG=${MNP_LOG_APP_HOME}
|
|
|
|
#directory in cui scrivere i file con i dati scartati (BAD)
|
|
TMP=${MNP_SCRIPT_TMP_HOME}
|
|
#directory in cui scrivere i file sql
|
|
SQL=${MNP_SCRIPT_SQL_HOME}
|
|
|
|
file_di_log=load_utenze_dbss$(date '+20%y%m%d').log
|
|
|
|
echo ANPSA0001 N load_utenze_dbss $(date '+%d/%m/20%y %H:%M:%S') INIZIO PROCESSO__ versione 1.0 >> $APPLICATION_LOG/$file_di_log
|
|
|
|
#
|
|
# Decompressione del file di infasamento proveniente dal sistema esterno DBSS
|
|
#
|
|
DirLavoro=${MNP_GWMNP_HOME}/FILEIN
|
|
|
|
#per il momento la commento e uso gwmnp
|
|
FileLog=$LOG/storicizza_INF_DBSS.log
|
|
|
|
###decompressione file infasamento CRMB###
|
|
INF_DBSS=$(ls -1 $DirLavoro/DBSS_MNP_DONOR_*TXT.gz 2>/dev/null)
|
|
if [ -s "$INF_DBSS" ]; then
|
|
gunzip $INF_DBSS
|
|
echo "STORICIZZAZIONE FILE UTENZE DBSS - $(date) - Decompresso il file "$INF_DBSS >> $FileLog
|
|
else
|
|
echo "ATTENZIONE: il file di infasamento DBSS odierno potrebbe non essere pervenuto in formato compresso"
|
|
echo "STORICIZZAZIONE DBSS - $(date) - ATTENZIONE: il file di infasamento DBSS odierno potrebbe non essere pervenuto in formato compresso" >> $FileLog
|
|
fi
|
|
|
|
#
|
|
# Recupero file di input
|
|
#
|
|
FileFtpDBSS=xxx
|
|
FileFtpDBSSCTR=yyy
|
|
trovatoDBSS=f
|
|
for Nome_File in `ls -1 $DAT/DBSS_MNP_DONOR*.CTR`
|
|
do
|
|
Base_File=`basename $Nome_File .CTR`
|
|
FileFtpDBSS=$Base_File.TXT
|
|
FileFtpDBSSCTR=$Base_File.CTR
|
|
echo ANPSA6301 N load_utenze_dbss $(date '+%d/%m/20%y %H:%M:%S') RECUPERO FILE TXT_$FileFtpDBSS >> $APPLICATION_LOG/$file_di_log
|
|
done
|
|
#
|
|
# Se esiste un file .CTR allora carico il relativo file .TXT
|
|
#
|
|
err=f
|
|
if [ "$FileFtpDBSSCTR" != "yyy" ]
|
|
then
|
|
echo "->Creazione tabella appoggio MNP_APPO_TIPO_CLIENTE_DBSS"
|
|
#
|
|
# Creazione Tabella di appoggio
|
|
#
|
|
echo exit | $MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $SQL/01_dbss_create_table_mnp_appo.sql > $LOG/01_dbss_create_table_mnp_appo.log 2>&1
|
|
|
|
if [ $err = f -a "$FileFtpDBSS" != "xxx" ]
|
|
then
|
|
echo "->Caricamento DBSS..."
|
|
#imposto una variabile per capire se ho trovato il flusso di dbss
|
|
trovatoDbss=t
|
|
$MNP_SCRIPT_HOME/sqlExecutor.sh -sqlldr control=$CMD/DBSS_UTENZE_MNP.ctl log=$LOG/DBSS_UTENZE_MNP.log bad=$TMP/DBSS_UTENZE_MNP.bad data=$DAT/$FileFtpDBSS rows=100 errors=99999 >/dev/null 2>&1
|
|
echo "->Fine Caricamento DBSS"
|
|
# 0
|
|
# 0
|
|
# Controllo se il caricamento e' andato bene
|
|
#
|
|
ret=`grep " 0 Rows not loaded due to data errors" $LOG/DBSS_UTENZE_MNP.log`
|
|
ret1=`grep "System error" $LOG/DBSS_UTENZE_MNP.log`
|
|
ret2=`grep "ORA-" $LOG/DBSS_UTENZE_MNP.log | grep -v "ORA-00001" | wc -l`
|
|
ret2_num=`expr $ret2`
|
|
|
|
if [ "$ret" = "" ]
|
|
then
|
|
#se ci sono errori di caricamento controllo se sono esclusivamente errori di duplicate primary key
|
|
if [ ret2_num=0 ]
|
|
then
|
|
err=f
|
|
else
|
|
err=t
|
|
fi
|
|
fi
|
|
# in ogni caso setto a valle err=t se ho un "System error"
|
|
if [ "$ret1" != "" ]
|
|
then
|
|
err=t
|
|
fi
|
|
else
|
|
echo "->File Utenze DBSS non trovato!!!"
|
|
echo ANPSA6304 C load_utenze_dbss $(date '+%d/%m/20%y %H:%M:%S') FILE UTENZE $FileFtpDBSS NON TROVATO >> $APPLICATION_LOG/$file_di_log
|
|
echo ANPSA0002 N load_utenze_dbss $(date '+%d/%m/20%y %H:%M:%S') PROCESSO TERMINATO CORRETTAMENTE >> $APPLICATION_LOG/$file_di_log
|
|
fi
|
|
|
|
if [ $err = t ]
|
|
then
|
|
righe=$(wc -l $TMP/DBSS_UTENZE_MNP.bad)
|
|
echo ANPSA6303 C load_utenze_dbss $(date '+%d/%m/20%y %H:%M:%S') RIGHE NON CARICATE PER DATI ERRATI $righe >> $APPLICATION_LOG/$file_di_log
|
|
echo ANPSA0002 N load_utenze_dbss $(date '+%d/%m/20%y %H:%M:%S') PROCESSO TERMINATO CORRETTAMENTE >> $APPLICATION_LOG/$file_di_log
|
|
echo "->Caricamento non OK!!!"
|
|
echo exit | $MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $SQL/02_dbss_drop_table_mnp_appo.sql > $LOG/02_dbss_drop_table_mnp_appo.log 2>&1
|
|
return
|
|
fi
|
|
|
|
# aggiunta del prefisso 39 per le utenze dual non nulle
|
|
echo exit | $MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $SQL/03_dbss_update_utenza_dual.sql > $LOG/03_dbss_update_utenza_dual.log 2>&1
|
|
#
|
|
# Rinomino i files
|
|
#
|
|
echo "->Rinomino files e tabelle"
|
|
if [ $trovatoDbss = t ]
|
|
then
|
|
mv $DAT/$FileFtpDBSSCTR $BACKUPCTR/$FileFtpDBSSCTR.old
|
|
mv $DAT/$FileFtpDBSS $BACKUP_DBSS/$FileFtpDBSS.old
|
|
fi
|
|
#
|
|
# Rinomino tabelle
|
|
#
|
|
echo exit | $MNP_SCRIPT_HOME/sqlExecutor.sh -sqlplus $SQL/04_dbss_move_mnp_tipo_clienti.sql > $LOG/04_dbss_move_mnp_tipo_clienti.log 2>&1
|
|
echo ANPSA6302 N load_utenze_dbss $(date '+%d/%m/20%y %H:%M:%S') INSERITE RIGHE IN TABELLA MNP_TIPO_CLIENTI_DBSS >> $APPLICATION_LOG/$file_di_log
|
|
echo ANPSA0002 N load_utenze_dbss $(date '+%d/%m/20%y %H:%M:%S') PROCESSO TERMINATO CORRETTAMENTE >> $APPLICATION_LOG/$file_di_log
|
|
else
|
|
echo "->File .CTR da DBSS non trovato!!!"
|
|
echo ANPSA6304 C load_utenze_dbss $(date '+%d/%m/20%y %H:%M:%S') FILE .CTR NON TROVATO >> $APPLICATION_LOG/$file_di_log
|
|
echo ANPSA0002 N load_utenze_dbss $(date '+%d/%m/20%y %H:%M:%S') PROCESSO TERMINATO CORRETTAMENTE >> $APPLICATION_LOG/$file_di_log
|
|
fi
|
|
|
|
echo "->Fine Procedura"
|
|
|
|
|
|
fi
|