Lição 4-3: Adicionar redirecionamento de fluxo de erro
Aplica-se a: SQL Server SSIS Integration Runtime no Azure Data Factory
Na tarefa anterior, a transformação Pesquisar Chave de Moeda não pode gerar uma correspondência quando a transformação tenta processar o arquivo simples de amostra corrompido, o que produz um erro. Como a transformação usa as configurações padrão da saída de erro, qualquer erro faz a transformação falhar. Quando a transformação falha, o resto do pacote também falha.
Em vez de permitir a falha da transformação, você pode configurar o componente para redirecionar a linha com falha para outro caminho de processamento usando a saída de erro. Usar um caminho de processamento de erros separado oferece mais opções. Por exemplo, você pode limpar os dados e depois reprocessar a linha com falha. Também é possível salvar a linha com falha junto com suas informações de erro para verificação e reprocessamento posteriores.
Nesta tarefa, você configura a transformação Pesquisar Chave de Moeda para redirecionar linhas com falha para a saída de erro. No branch de erro do fluxo de dados, o Integration Services grava essas linhas em um arquivo.
Por padrão as duas colunas extras em uma saída de erro do Integration Services, ErrorCode e ErrorColumn, só contêm um código de erro numérico e a ID da coluna na qual o erro ocorreu. Nesta tarefa, antes de o pacote gravar linhas com falha no arquivo, você usa um componente de Script para acessar a API do Integration Services e obter uma descrição do erro.
Configurar uma saída de erro
Na Caixa de Ferramentas do SSIS, expanda Comume arraste o Componente Script para a superfície de design da guia Fluxo de Dados . Coloque Script à direita da transformação Pesquisa de Códigos de Moeda .
Na caixa de diálogo Selecionar Tipo de Componente do Script, selecione Transformação e selecione OK.
Para conectar os dois componentes, selecione a transformação Pesquisar Chave de Moeda e depois arraste a seta vermelha para a nova transformação Script.
A seta vermelha representa a saída de erro da transformação Pesquisa de Códigos de Moeda . Usando a seta vermelha para conectar a transformação ao componente Script, você redireciona qualquer erro de processamento ao componente Script, que processará os erros e os enviará ao destino.
Na caixa de diálogo Configurar Saída de Erro, na coluna Erro, selecione Redirecionar linha e, em seguida, selecione OK.
Na superfície de design Fluxo de Dados, selecione o nome Componente Script no novo ScriptComponent e altere o nome para Obter Descrição do Erro.
Clique duas vezes na transformação Obter Descrição do Erro .
Na caixa de diálogo Editor de Transformação Scripts , na página Colunas de Entrada , selecione a coluna ErrorCode .
Na página Entradas e Saídas, expanda Saída 0, selecione Colunas de Saída e selecione Adicionar Coluna.
Na propriedade Name, insira ErrorDescription e defina a propriedade DataType como Cadeia de caracteres Unicode [DT_WSTR].
Na página Script, verifique se a propriedade LocaleID está definida como Inglês (Estados Unidos).
Selecione Editar Script para abrir VSTA (Ferramentas do Microsoft Visual Studio para Aplicativos). No método Input0_ProcessInputRow, insira ou cole o código a seguir:
[Visual Basic]
Row.ErrorDescription = Me.ComponentMetaData.GetErrorDescription(Row.ErrorCode)
[Visual C#]
Row.ErrorDescription = this.ComponentMetaData.GetErrorDescription(Row.ErrorCode);
A sub-rotina concluída se parece com o código a seguir:
[Visual Basic]
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer) Row.ErrorDescription = Me.ComponentMetaData.GetErrorDescription(Row.ErrorCode) End Sub
[Visual C#]
public override void Input0_ProcessInputRow(Input0Buffer Row) { Row.ErrorDescription = this.ComponentMetaData.GetErrorDescription(Row.ErrorCode); }
No menu Compilar, selecione Compilar solução para criar o script e salvar suas alterações, então feche o VSTA.
Selecione OK para fechar a caixa de diálogo Editor de Transformação Scripts.