Problema com Script Task do projeto de ETL da Edição 107 da SQL Magazine

18/05/2013

0

Olá!

Estou com problema com o Script Task que converte pdf em txt, eu testei a conversão na linha de comando e está funcionando corretamente mas ao executar o projeto aparece a seguinte mensagem:

A Tarefa de Script DTS encontrou uma exceção no código de usuário:
Nome do proj ST_407da516120945bfa596a98564ad5ed0
Não é possível carregar script para execução.

Eu executei o build do código e nenhum erro é apresentado, tenho a impressão de que o projeto não está conseguindo nem chegar ao script.

Alguém pode me ajudar?
Ivan Ferro

Ivan Ferro

Responder

Posts

18/05/2013

Ivan Ferro

Bom eu mesmo consegui a solução, o script estava dando erro pq o exemplo do artigo continha alguns erros e a forma de executar o PDF2TXT estava diferente do que é exibido na documentação atual do aplicativo, acredito que a versão do usado no artigo deva ser mais antiga.

Segue o código final funcionando:

#region Namespaces
using System;
using System.Data;
using Microsoft.SqlServer.Dts.Runtime;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
using System.Threading;
#endregion

namespace ST_191686f452934d5891bb66d01a66bb16
{
/// <summary>
/// ScriptMain is the entry point class of the script. Do not change the name, attributes,
/// or parent of this class.
/// </summary>
[Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute]
public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
{


/// <summary>
/// This method is called when this script task executes in the control flow.
/// Before returning from this method, set the value of Dts.TaskResult to indicate success or failure.
/// To open Help, press F1.
/// </summary>
public void Main()
{
TextWriter tw = new StreamWriter(@"E:\devmedia\1aFase\exec.bat");

string varexec = @"PDF2Text.exe /inlist E:\devmedia\FTPLocal\arquivos.lst /outdir ""E:\devmedia\1aFase\TXT\""";

tw.WriteLine(varexec);
tw.WriteLine("exit");
tw.Close();

Thread.Sleep(1000);

ProcessStartInfo start = new ProcessStartInfo();

start.UseShellExecute = false;
start.RedirectStandardOutput = true;

start.FileName = @"CMD";

start.Arguments = @"/cstart E:\devmedia\1aFase\exec.bat";

Process.Start(start);

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

}
}
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar