Salve
Ho un piccolo problema con un DTS.
Ho la necessita' di aggiornare dei dati - per un tour operator - con dei dati che al momento posso purtroppo scaricare soltanto in formato CSV da un server ftp (e' previsto - spero presto - un webservice...); vi e' un DTS schedulato la notte che prende i CSV - al momento scaricati da un semplice batch pianificato con il scheduled tasks di Windows - e li elabora aggiornando il database.
I file contengono dati su circa 3000 accommodations del fornitore (hotels, resorts, ecc) percio' se qualcosa accade durante l'ftp - per come la cosa e' strutturata al momento - questi dati non vengono inseriti con conseguente potenzialmente grave calo dei bookings (se l'utente non trova le proprieta' sul sito, non puo' prenotare ovviamente..).
Questo perche' l'ftp batch e' appunto un semplice batch, e al momento non vi e' nulla che verifichi se il download e' andato a buon fine e che, nel caso contrario, dica a Sql Server di NON procedere con l'aggiornamento del database (che prevede ovviamente lo svuotamento delle tabelle interessate, prima dell'import).
Ora, ho aggiornato il DTS aggiungendovi un primissimo task che esegue un batch per il download ftp (esterno), ne analizza i log e restituisce vero o falso in una variabile a seconda che la sessione ftp sia andata tutta bene oppure no (per una qualsiasi ragione: login, connessione interrotta, ecc.).
Ora nel caso questa variabile abbia valore falso (sessione ftp fallita) vorrei, in qualche modo, fare un raise di un errore a Sql Server, dicendo "hey, questo task (ftp) e' fallito quindi NON procedere con gli altri step del workflow (import, filtri, ecc)".
Qualche suggerimento su come fare?
voglio in pratica che il DTS venga completamente interrotto e null'altro accada in caso di ftp failure.
Grazie in anticipo.


Rispondi quotando
