Le fichier DataSourceControl.xml est utilisé par l'adaptateur pour contrôler son accès à la source de données et s'assurer que quand il s'exécute, il continue toujours à partir du dernier point lu.
L'adaptateur de fichier conserve le nom du dernier fichier lu, la dernière ligne lue et la position qu'il a atteinte dans le fichier. Lorsque l'adaptateur est exécuté la fois suivante, il accède au fichier à l'emplacement voulu grâce aux informations trouvées dans le fichier DataSourceControl.xml. Grâce à ce mécanisme, l'adaptateur lit uniquement de nouveaux enregistrements à chaque exécution.
L'adaptateur ne fonctionne pas directement sur les fichiers sources ; il copie d'abord fichier actuel dans un fichier de travail. Les mêmes informations sont donc gardées pour le fichier de travail et pour le fichier source. Si le fichier source est modifié, seuls les enregistrements nouveaux sont copiés dans le fichier de travail.
Si l'adaptateur est configuré pour supprimer le fichier source une fois traité, en définissant le paramètre dans le fichier de configuration DeleteAfterProcessing sur Oui, il n'enregistre pas les informations dans le fichier source. Une fois fini, il lit tout nouveau fichier présent dans le dossier de travail qui correspond au modèle de fichier défini dans le fichier de configuration.
Il ne recherche de nouveaux enregistrements dans le dernier fichier que lorsque DeleteAfterProcessing est défini sur Non. S'il n'y en a aucun, il passe au fichier suivant dans un ordre lexicographique. Par conséquent, essayez de nommer vos fichiers de données sources selon un ordre croissant séquentiel pour vous assurer qu'ils sont lus selon la séquence correcte. Par exemple, ajoutez aux fichiers une valeur de date inverse (aaaammjj-hhmmss) à cet effet. Par exemple :
Ceci est un exemple de DataSourceControl.xml pour un adaptateur de fichier.
<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 adaptateur SQL conserve la dernière valeur des champs clés de la requête pour chaque requête exécutée. Les champs clés sont des identificateurs uniques des enregistrements dans la table de base de données de destination. L'adaptateur utilise ces valeurs lorsqu'il crée la requête pour l'exécution suivante. Cela lui permet de ne lire que de nouveaux enregistrements.
Par exemple, considérons l'instruction SQL suivante utilisée pour extraire des données de ticket d'incident.
Select ticket_id, status, organization, open_date, respond_date, resolved_date, record_modified_date from t_ticket_data;
Dans cet exemple, le champ clé de la requête choisi pour obtenir les toutes dernières informations est record_modified_date et ce, afin de capturer tous les derniers enregistrements de la source de données. Il génère ainsi les nouveaux tickets ouverts depuis la dernière exécution de l'adaptateur, de même que les mises à jour de tickets existants. En sélectionnant ce champ en tant que champ clé de la requête, l'adaptateur ajoute automatiquement la section suivante à la fin de la requête pendant l'exécution :
where record_modified_date > : previous_value order by record_modified_date asc
Par conséquent, il ne récupère que les nouveaux enregistrements. Notez qu'un certain nombre de points sont à considérer lorsque vous choisissez le champ clé de requête, et ceux-là dépendent toujours du comportement de la source de données et de ce que vous voulez faire de ces données récupérées. Notez aussi que les champs choisis dans l'exemple précédent ne sont pas toujours le meilleur choix pour toutes les situations.
Un exemple de fichier DataSourceControl.xml pour un adaptateur SQL est présenté ci-dessous.
<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.
Tous droits réservés.
|
|