O arquivo DataSourceControl.xml é usado pelo conector para controlar o acesso à fonte de dados e garantir que sempre que for executado, continuará a partir do último ponto que foi lido.
O conector de arquivo mantém o nome do último arquivo lido, a última linha lida e a posição atingida no arquivo. Na próxima vez em que o conector for executado, acessará o arquivo do local usando as informações encontradas no arquivo DataSourceControl.xml. Usando esse mecanismo, o conector pode ler apenas os novos registros em cada execução.
O conector não trabalha diretamente nos arquivos de origem, mas primeiro copia o arquivo atual para um arquivo de trabalho. Portanto, as mesmas informações são mantidas para o arquivo de trabalho e para o arquivo de origem. Se o arquivo de origem for anexado, apenas os novos registros serão copiados para o arquivo de trabalho.
Se o conector estiver configurado para excluir o arquivo de origem assim que tiver sido processado, ao definir o parâmetro no arquivo de configuração DeleteAfterProcessing como "sim", não salvará as informações no arquivo de origem. Ao terminar, ele lerá qualquer novo arquivo existente na pasta de trabalho que corresponder ao padrão de arquivo definido no arquivo de configuração.
Apenas quando DeleteAfterProcessing estiver definido como "não", novos registros serão verificados no último arquivo. Se não houver nenhum, ele passará para o próximo arquivo em ordem lexicográfica. Portanto, ao nomear arquivos de dados de origem, a fim de garantir que eles serão lidos na sequência correta, tente aplicar um padrão de nomenclatura sequencial. Por exemplo, anexe os arquivos com um valor de data inverso (aaaammdd-hhmmss) para oferecer suporte a isso. Por exemplo:
A seguir, há um exemplo do DataSourceControl.xml para um conector de arquivo.
<AdapterControl Save="end" LastSaveTime="2005/05/20 13:06:39"> <Data><WorkData><LineNumber>0</LineNumber> <FilePattern>c:\adapters\callsadapter\*adapterpca.csv</FilePattern> <file name></FileName> <BasicPosition>0</BasicPosition> </WorkData> <NonDeletedFiles> <File NamePattern="c:\adapters\callsadapter\*adapterpca.csv"> <file name>2005adapterpca.csv</FileName> <LastLine>25/04/2005,5925,NN4B,12,12,0,10,0,11</LastLine> <LastPosition>15427</LastPosition></File> </NonDeletedFiles> </Data> </AdapterControl>
Um conector do SQL mantém o último valor dos campos chave de consulta para cada consulta executada. Os campos chave são identificadores exclusivos para registros na tabela de banco de dados de destino. O conector usa esses valores ao criar a consulta para a próxima execução. Isso permite que o conector leia apenas novos registros.
Por exemplo, considere a seguinte instrução SQL usada para buscar alguns dados de ticket com problema.
Select ticket_id, status, organization, open_date, respond_date, resolved_date, record_modified_date from t_ticket_data;
Nesse exemplo, para capturar todos os registros mais recentes da fonte de dados, o campo chave de consulta escolhido para garantir a obtenção das informações mais recentes é record_modified_date, pois gera tickets criados desde a última execução do conector, bem como atualizações de tickets existentes. Ao selecionar esse campo como o campo chave de consulta, o conector anexa automaticamente a seção a seguir ao final da consulta durante a execução:
where record_modified_date > :previous_value order by record_modified_date asc
Portanto, recupera apenas os registros mais recentes. Observe que há uma série de considerações ao escolher o campo chave de consulta, e elas sempre dependem do comportamento da fonte de dados e do que você está tentando realizar com os dados recuperados. Além disso, observe que os campos escolhidos no exemplo anterior nem sempre são a melhor opção para todas as situações.
Um exemplo do arquivo DataSourceControl.xml para um conector do SQL é mostrado abaixo.
<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 © 2012 CA. Todos os direitos reservados. | Enviar email à CA Technologies sobre este tópico |