Il file DataSourceControl.xml viene utilizzato dall'adapter per il controllare l'accesso all'origine dati e verificare che durante ogni esecuzione continui sempre dall'ultimo punto in cui è stata effettuata la lettura.
L'adapter per file conserva il nome dell'ultimo file letto, l'ultima riga letta e la posizione raggiunta nel file. Con la prossima esecuzione, l'adapter accede al file dal percorso utilizzando le informazioni contenute nel file DataSourceControl.xml. Grazie a questo meccanismo, l'adapter può leggere solo i nuovi record in ogni esecuzione.
L'adapter non utilizza direttamente i file di origine, ma prima copia il file corrente in un file di lavoro. Di conseguenza, le stesse informazioni vengono conservate per il file di lavoro e il file di origine. Se viene aggiunto il file di origine, nel file di lavoro vengono copiati solo i nuovi record.
Se l'adapter è configurato per eliminare il file di origine una volta elaborato, impostando il parametro nel file di configurazione DeleteAfterProcessing (Elimina dopo elaborazione) su "yes" (sì), le informazioni non vengono salvate nel file di origine. Al termine, vengono letti tutti i nuovi file esistenti nella cartella di lavoro che corrispondo al modello di file definito nel file di configurazione.
Solo quando DeleteAfterProcessing (Elimina dopo elaborazione) è impostato su "no" viene eseguito il controllo di nuovi record nell'ultimo file. Se non ne sono presenti, passa al file successivo in un ordine lessicografico. Pertanto, durante la denominazione dei file di origine dei dati, per accertarsi che siano letti nella sequenza corretta, applicare un modello di denominazione in sequenza crescente. Ad esempio, aggiungere i file con un valore di data inverso (yyyymmdd-hhmmss) per supportarlo. Ad esempio:
Di seguito è riportato un esempio di DataSourceControl.xml per un adapter per file.
<AdapterControl Save="end" LastSaveTime="2005/05/20 13:06:39"> <Data><WorkData><LineNumber>0</LineNumber> <FilePattern>c:\adapters\callsadapter\*adapterpca.csv</FilePattern> [set the File Name variable]</FileName> <BasicPosition>0</BasicPosition> </WorkData> <NonDeletedFiles> <File NamePattern="c:\adapters\callsadapter\*adapterpca.csv"> [set the File Name variable]2005adapterpca.csv</FileName> <LastLine>25/04/2005,5925,NN4B,12,12,0,10,0,11</LastLine> <LastPosition>15427</LastPosition></File> </NonDeletedFiles> </Data> </AdapterControl>
Un adapter SQL mantiene l'ultimo valore dei campi chiave della query per ogni query eseguita. I campi chiave sono identificatori univoci per i record nella tabella del database di destinazione. L'adapter utilizza questi valori durante la compilazione della query per l'esecuzione successiva. In questo modo l'adapter legge solo i nuovi record.
Ad esempio, considerare la seguente istruzione SQL utilizzata per il recupero dei dati del ticket di problema.
Select ticket_id, status, organization, open_date, respond_date, resolved_date, record_modified_date from t_ticket_data;
In questo esempio, per acquisire tutti gli ultimi i record dall'origine dati, il campo chiave della query selezionato per assicurare il recupero delle informazioni più recenti è record_modified_date, perché genera nuovi ticket creati dall'ultima esecuzione dell'adapter, nonché gli aggiornamenti per i ticket esistenti. Con la selezione di questo campo come campo chiave della query, l'adapter aggiunge automaticamente la seguente sezione alla fine della query durante l'esecuzione:
where record_modified_date > :previous_value order by record_modified_date asc
Pertanto, recupera solo i record più recenti. Nota: occorre tener conto di alcune considerazioni durante la selezione del campo chiave della query, che dipendono sempre dal comportamento dell'origine dati e dal risultato che l'utente desidera ottenere con i dati recuperati. Notare inoltre che i campi selezionati nell'esempio precedente non sono sempre la scelta migliore per ogni situazione.
Un esempio di file DataSourceControl.xml per un adapter SQL è indicato di seguito.
<AdapterControl Save="end" LastSaveTime="2005/05/20 15:59:02"> <Data><QueryCollection> <Query QueryName="ChangeManagementOpenQuery"> <KeyField Name="Incident Ref"><LastValue>32357</LastValue></KeyField> <KeyField Name="Date Logged"><LastValue>18/04/2005 16:56:26</LastValue></KeyField> <LastFileName/> </Query> <Query QueryName="ChangeManagementPendingQuery"> <KeyField Name="Incident Ref"><LastValue>0</LastValue></KeyField> <KeyField Name="Date Resolved"><LastValue>1900-01-01</LastValue></KeyField><LastFileName/> </Query>
|
Copyright © 2013 CA.
Tutti i diritti riservati.
|
|