none
Ajuda Urgente se possível em VBSCRIPT RRS feed

  • Pergunta

  • Amigos, tudo bom ?

    Necessito desenvolver um Script em VBScript acho que simples: só que não tenho noção de Vbscript. Esse script chamarei d um pacote SSIS com o objeto script Task. Ou como posso criar esse script via o obeto Script Task do SSIS ?


    Cenário: Copiar arquivo  de um servidor de  Origem para Destino.

    Preciso compactar e depois de compactado eu devo copiar o arquivo para o servidor de destino.  Antes de copiar devo deletar os arquivos anteriores do servidor de destino.

    Apos garantir que os arquivos foram copiado , apago os arquivos do servidor de Origem.

    Fiz no Dos e funciona, só que não sei tratar  exceção no dos, caso o arquivo não exista ou não foi criado, eu não deleto e não sei certificar se o arquivo foi realmente copiado.etc....


    Ficaria assim no DOS:

     
    del "\\server\Equipe BI\Relatorios_Usuarios\IC\*.*"  /Q


    copy /y D:\Rel_user\*.zip   "\\server\Equipe BI\Relatorios_Usuarios\"

    echo. comando para zip.

    del D:\Rel_Giovani\*.* /Q



    como faria no VBscript tratando excecao se arquivo existe , se foi copiado etc.

    Se alguém tiver um script pronto au agradeço..... Chefe pegando no pé.  Prometo estudar Vbscript rsrsrs


    Obrigado !
    Savoir Vivre
    quinta-feira, 5 de fevereiro de 2009 16:11

Todas as Respostas

  • Joie,

    Mas porque você deseja utilizar o SSIS sendo que estes comando poderiam ser colocados dentro de um arquivo de lote(batch) .bat!!!
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    quinta-feira, 5 de fevereiro de 2009 16:15
  • Opa Junior,

    Eu até coloquei em arquivo batch, até prefiro.

    Mas, não sei tratar exceção em arquivo batch. Não lembro mais do antigo DOS. rsrsrsrsrs

    Exemplo,  verificar se realmente os arquivo foram copiados antes de apagar na origem, se o arquivo não existir no destino passo para o proximo comando sem dar erro. etc,....

    A única coisa que sei de arquivo em lote é isso: rsrsrsrsrsr


    Echo off

    del "\\server\Equipe BI\Relatorios_Usuarios\IC\*.*"  /Q

    copy /y D:\Rel_user\*.zip   "\\server\Equipe BI\Relatorios_Usuarios\"

    echo. comando para zip que irei colocar.

    del D:\Rel_Giovani\*.* /Q


    Se colocar esse arquivo em lote funciona. Mas, se der erro nesse arquivo em lote  preciso avisar de alguma forma. Pois ele ficará em um servidor somente de Shendule e o operador deve saber.

    Entendeu ?

    to procurando no google mais ta dificil achar as exception do nosso Antigo DOS. rsrsrsrrs

    ps.: To curtindo o curso de Alyses Services  . Mas, acho o curso muito genérico e corrido. Agora é fazer laboratório em casa. Pois iremos implantar aqui na empresa. Se puder me dar dicas agradeço..... Cerveja por minha conta rsrsrsr Vc tem msn ?



    Abs.


     






    Savoir Vivre
    quinta-feira, 5 de fevereiro de 2009 16:39
  • Junior, beleza.


    Amigo, consegui me virar vendo alguns exeplos do windows la na pasta windows32.

    É que tá uma briga aqui com a  minha coordenadora. Ela acha que o SSIS é uma ferramenta de programação como o VB. Ja cansei de explicar que é uma ferramenta ETL.

    Afinal, querer sofisticar os pacotes fugindo da função da ferramenta. Acabamos entrando em um mar de problemas futuros. Ou tempestades.

    Fiz um arquivo de lote simples e não vou chamar ele do SSIS.

    Abraços


    Joie.



    Savoir Vivre
    quinta-feira, 5 de fevereiro de 2009 17:33
  • Joie,

    Se você quiser eu tenho aqui o help do dos!!!
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    quinta-feira, 5 de fevereiro de 2009 18:10
  • Quero sim. Pois estamos trabalhando com o TWS acho que foi precisar usar muito script.

    Segue meu e-mail: lucianofidelis@gmail.com

    Me add no msn: lucianofidelis@yahoo.com.br


    Obrigado !


    Joie

    Savoir Vivre
    quinta-feira, 5 de fevereiro de 2009 19:01
  • Junior, tudo bom ?

    Esqueceu de mim ? O help do DOS. rsrsrs

    Valeu !

    Savoir Vivre
    terça-feira, 10 de fevereiro de 2009 13:46
  •  

    Boa Tarde,

    Com tantos recursos presentes no SSIS, acho que usar o tratamento de erro do DOS é pouco prático. Você pode fazer via VBScript, mas até isso não seria muito interessante visto que o SSIS possui outras maneiras ainda mais fáceis.

    - No pacote SSIS vá em Control Flow
    - Adicione uma tarefa "File System Task"
    - Em Destination Connection crie uma conexão para o seu diretório ou arquivo
    - Mude a propriedade Operation (você terá as opções Copy File, Delete File, etc). Use-as como convier

    Após terminar uma File System Task para por exemplo deletar os arquivos, você pode arrastar a seta verde para a próxima tarefa no caso de acerto e arrastar a seta vermelha para o caso de erro. Assim fica fácil controlar o fluxo e fazer as validações. Caso um arquivo não seja deletado, você pode por exemplo decidir enviar um e-mail ou escrever um log. Isso seria mais difícil de fazer com o DOS.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Importe arquivos XML com o CLR
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!346.entry


    Classifique as respostas. O seu feedback é imprescindível
    terça-feira, 10 de fevereiro de 2009 18:55
  • Gustavo,

    No meu caso não era somente deletar e copiar.

    Precisava compactar os arquivos e por isso decidi fazer um arquivo em lote e separar do processo de ETL.

    Esse arquivo em lote será disparado via produção.

    Mas, valeu pela dica. eu não conhecia esse componente do Control flow.


    Abs


    Joie

    Savoir Vivre
    sexta-feira, 13 de fevereiro de 2009 18:25
  • Olá JoieVivre,

    Bem se a idéia é separar em um arquivo de lote então nem o VBScript o ajudaria.
    Nesse caso teremos que aguardar o help do DOS para ver como ficaria a solução.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com/

    Importe arquivos XML usando DataSets
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!356.entry


    Classifique as respostas. O seu feedback é imprescindível
    sexta-feira, 13 de fevereiro de 2009 22:56
  •  Gustavo,

     Desencanei devido a politica aqui na empresa. eles obrigaram a  separar. O DBA não iria mapear uma unidade no servidor SQL, onde está sendo chamado o pacote.  A solução ficou assim no antigo Batch:

    1-  Resumindo. Cria o arquivo compactado com o nome e data e copia para a áera desejada. Depois deleta tudo da origem.


    @ECHO OFF 
     
     
    FOR /F "TOKENS=1,2,3,4,5 DELIMS=/ " %%A IN ('DATE/T') DO SET DATA=%%B-%%C-%%D 
     
    SET ARQ_ENT=Rel_InteligenciaCompetitiva 
    SET ARQUIVO=%ARQ_ENT:~0,30% 
     
     
     
    REM compacta o arquivos  
    echo======================================== 
     
        
     path "c:\Program Files\winrar\" 
         
      cd D:\Relatorio 
       
         
      WinRAR a %ARQUIVO%%DATA%% *.* 
           
          IF errorlevel 1 EXIT 1 
           
        
     If Not Exist "\\server\area\*.*"  Goto CopyFile 
     
        del "\\server\area\*.*"  /Q 
        
       IF errorlevel 1 EXIT 2 
     
      
     :CopyFile    
      
       date /t > D:\Relatorio\log\date_copy_start%date%.log 
           
       copy /y D:\Relatorio\*.rar   "\\server\area" 
        
       IF errorlevel 1 EXIT 3 
     
       del D:\Relalatorio\*.* /Q 
     
       IF errorlevel 1 EXIT 4 
     


    Bom, mas valeu !


    Abs



    Savoir Vivre
    segunda-feira, 16 de fevereiro de 2009 15:12
  •  Joie,

    Mil desculpas, mas estou conseguindo somente agora responder o seu post, me envie um e-mail para pedrogalvaojunior@gmail.com, terei o maior prazer em fornecer este arquivo.
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    terça-feira, 17 de fevereiro de 2009 02:38