SSIS para loop parado de funcionar
Eu tenho um contêiner para loop dentro do meu pacote ssis que contém um script e uma tarefa sql.
Eu tenho 3 variáveis.
source.string = this is folder location
file.string = i have used wildcard = *.csv
exist.int = defaulted to 0
Eu tenho o valor de innitexpression definido como @ Exists = 1 e o valor de evalexpression definido como @ Exists = 1
no script, eu o configurei para examinar a variável de origem e, se a variável file.string existir, defina a variável existente como 1
problema é apenas loops, ele só deve fazer um loop se não houver arquivo lá. não consigo ver como eu fiz isso errado, estava funcionando antes de alterar a variável para ser um curinga * .csv
Eu testei usando outra variável que contém um nome de arquivo em vez de um curinga e funciona corretamente. O problema é quando se procura um curinga para o nome do arquivo seguido pela extensão. por que é isso? não posso passar por uma variável curinga?
minha tarefa de script é
public void Main()
{
// TODO: Add your code here
string Filepath = Dts.Variables["User::Source"].Value.ToString()
+ Dts.Variables["User::file"].Value.ToString();
if (
File.Exists(Filepath))
{
Dts.Variables["User::Exists"].Value = 1;
}
/// MessageBox.Show (Filepath);
/// MessageBox.Show(Dts.Variables["Exists"].Value.ToString());
Dts.TaskResult = (int)ScriptResults.Success;
}
#region ScriptResults declaration
/// <summary>
/// This enum provides a convenient shorthand within the scope of this class for setting the
/// result of the script.
///
/// This code was generated automatically.
/// </summary>
enum ScriptResults
{
Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success,
Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
};
#endregion
}
}