Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
quinsan12
Contributor III
Contributor III

Carga do arquivo mais atual

Boa tarde,

Tenho um diretório que contem arquivos com a nomenclatura abaixo:

FundoByPrime_05Mar2019.txt 

FundoByPrime_06Mar2019.txt

Quero carregar a minha aplicação somente com o arquivo mais atual.

Obrigado

Labels (1)
1 Solution

Accepted Solutions
quinsan12
Contributor III
Contributor III
Author

Obrigado pela dica, mais eu criei para teste duas variaveis, já que tenho dois arquivos para carga, conforme abaixo:

LET vDate = Day(Today())&Month(Today())&Year(Today());
LET vDate1 = 0&Day(Today()-1)&Month(Today())&Year(Today());

Depois utilizei a verificação do arquivo no diretório, após a verificação eu usei a função networdays para carregar somente dias uteis.

 

View solution in original post

4 Replies
Wlad_Masi
Employee
Employee

O arquivo atual será sempre o arquivo do dia ou pode ser que o arquivo que você carregará é de por exemplo quatro dias passados?
Caso seja sempre o aquivo do dia, você pode usar uma variável com a função Today() e concatenar ela no nome do arquivo do seu load statement, para que sempre seja carregado o arquivo no dia.

To help users find verified answers, please don't forget to mark a correct resolution or answer to your problem or question as correct.
quinsan12
Contributor III
Contributor III
Author

O Problema é quando chegar no final de semana e feriado, pois nesses períodos não são gerados bases. 

quinsan12
Contributor III
Contributor III
Author

Obrigado pela dica, mais eu criei para teste duas variaveis, já que tenho dois arquivos para carga, conforme abaixo:

LET vDate = Day(Today())&Month(Today())&Year(Today());
LET vDate1 = 0&Day(Today()-1)&Month(Today())&Year(Today());

Depois utilizei a verificação do arquivo no diretório, após a verificação eu usei a função networdays para carregar somente dias uteis.

 

quinsan12
Contributor III
Contributor III
Author

TESTE_TEMP:

LOAD * INLINE [

 

DataEntrega, cdPedido

 

01/12/2016, 1

 

03/09/2017, 2

 

04/11/2017, 3

 

21/11/2017, 4

 

];

Concatenate

LOAD * INLINE [

 

DataValidade, cdProposta

 

01/12/2016, 5

 

03/10/2017, 6

 

04/12/2017, 7

 

21/12/2017, 8

 

];

Concatenate

LOAD * INLINE [

 

DataPrevisao, cdOportunidade

 

01/02/2017, 9

 

03/11/2017, 10

 

04/01/2018, 11

 

21/01/2018, 12

 

];

 

TESTE:

LOAD Distinct

cdPedido&cdProposta&cdOportunidade AS ID_Teste, //Aqui criei essa PK para usar na Data_Ponte

*

RESIDENT TESTE_TEMP;

DROP TABLE TESTE_TEMP;

 

 

//Essa tabela se relaciona com nosso Canonical Calendar

DATA_PONTE:

LOAD

ID_Teste,

DataEntrega AS CanonicalDate,

'Pedido' AS DateType

RESIDENT TESTE;

LOAD

ID_Teste,

DataValidade AS CanonicalDate,

'Proposta' AS DateType

RESIDENT TESTE;

LOAD

ID_Teste,

DataPrevisao AS CanonicalDate,

'Oportunidade' AS DateType

RESIDENT TESTE;

 

CANONICAL_CALENDAR:

LOAD

CanonicalDate,

year(CanonicalDate) AS CanonicalAno,

month(CanonicalDate) AS CanonicalMes

RESIDENT DATA_PONTE;