Automatizar tarefa de extração de dados
Prezados, é possivel automatizar tarefas de extração de dados no caché?
Ex: Gerar uma tarefa que executa diariamente uma consulta e armazena os dados em um arquivo csv.
Product version: Caché 2018.1
$ZV: 2018.1.3
Olá,
Acredito que você possa utilizar o Task manager @Juliano Assis:
https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls...
A geração do CVS pode ser a rotina que você já tem desenvolvida.
Olá Julio, obrigado pela resposta.
Não tenho a rotina desenvolvida ainda, inclusive a forma de criar essa rotina e vincular a uma tarefa seria uma dúvida, você tem ideias?
Olá @Juliano Assis
Dê uma olhada no post a seguir:
https://pt.community.intersystems.com/post/usando-o-python-no-intersyste...
O artigo mostra como gerar arquivos excel a partir de classes do InterSystems Iris usando Python. É bem simples e intuitivo.
Depois de gerada a rotina é coloca-la no Task Manager conforme a documentação disponível: https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls...
Basicamente é usar a opção RunLegacyTask, informar a rotina e definir a periodicidade de execução.
Abraços
@Juliano Assis Segue um código bem básico e genérico para exportar dados para um arquivo CSV:
{
Open arquivo:"WN" // Abre o arquivo para escrita (W) e caso ele não exista cria o arquivo (N)
Set next=""
Do
{
Set next=$Order(^Global(next))
If next'=""
{ Set reg=$Get(^Global(next))
If $Piece(reg,"^",3)'=1
{
Set reg=next_","_$Piece(reg,"|",1)_","_$Piece(reg,"^",2)
Use arquivo Write reg,!
Set $Piece(^Global(next),"^",3)=1
}
}
} While next'=""
Close arquivo
Quit "OK"
}
O código pega os registros da global que ainda não foram marcados como lido e exporta. Então marca o arquivo como lido. Uma próxima leitura pula este registro.
Pode substituir o uso do $Order por um SELECT recuperando os registros de uma tabela também.
Abraços,
Obrigado Julio.
💡 Esta pergunta é considerada uma #Pergunta principal. Mais detalhes aqui.