Tenho um pacote ssis que cria 7 arquivos .dat. Cada arquivo precisa ser compactado em um arquivo zip com uma extensão de Filename.zip. Não pode ser Filename.dat.zip. O primeiro passo para criar o arquivo .dat usa esta expressão que tem o caminho do arquivo em uma variável chamada 'FileDest' e então adiciona o nome do arquivo com data e hora YYYYQQ e extensão. A variável SourceDate é usada no cálculo do YYYYQQ.
@[User::FileDest]+ "Filename_"+(DT_WSTR,4) YEAR( @[User::SourceDate] ) +"Q" + RIGHT("00" + (DT_WSTR,1) DATEPART("QQ", @[User::SourceDate] ),1 ) + "_"+ (DT_WSTR,4)DATEPART("yyyy",GetDate()) +
RIGHT("0" + (DT_WSTR,2)DATEPART("mm",GetDate()) ,2) +
RIGHT("0" + (DT_WSTR,2)DATEPART("dd",GetDate()),2) + "_" +
RIGHT("0" + (DT_WSTR,2)DATEPART("hh",GetDate()),2) +
RIGHT("0" + (DT_WSTR,2)DATEPART("mi",GetDate()),2) +
RIGHT("0" + (DT_WSTR,2)DATEPART("ss",GetDate()),2) +".dat"
Então um contêiner ForEachLoop captura o nome do arquivo em uma variável e compacta cada arquivo. A variável filename contém o nome e a extensão. Se eu fizer somente name ele não encontrará o arquivo sem incluir a extensão.
A expressão para salvar o arquivo zip é @[User::FileDest] + @[User::Filename] + ".zip". Isso produz um arquivo com filename.dat.zip que não posso usar. Como faço para remover o '.dat'?