Jump to content
Seja Membro VIP - Remova Banners de Propagandas, Tenha Liberado Qualquer Download, Além de Acessos em Áreas Exclusivas!! ×
AVISO AOS MEMBROS:

Fizemos uma atualização em 18/06/2023, e a forma de acesso ao Fórum mudou. Não mais está sendo aceito o login pelo Nome de Exibição cadastrado. Agora, apenas pelo email e pelos integradores de Login do Facebook, Google e Microsoft. O Facebook estava com uma validação pendente e já foi normalizado o acesso, já o Google, ainda estamos verificando o que está ocorrendo que não está funcionando.
Caso precisem de ajuda para o login pelo email acesse o link << Esqueci minha senha de acesso>> ou nos envie um pedido de ajuda pelo email admin@forumrm.com.br

Administração
ForumRM

Importação de pdf via fórmula visual


Go to solution Solved by caiiomonteiro,

Recommended Posts


  • Topic Count:  18
  • Topics Per Day:  0.02
  • Content Count:  51
  • Content Per Day:  0.05
  • Reputation:   5
  • Achievement Points:  415
  • Solved Content:  0
  • Days Won:  3
  • Status:  Offline
  • Device:  Windows

Bom dia.

Prezados, gostaria de saber se é possível anexar um pdf em um processo do RM via FM.

Quero anexar o PDF no processo de venda do Gestão de imóveis, atualmente isso é feito de forma manual e gostaria que a formula lesse um diretorio em minha rede e gravasse o arquivo dentro do RM.

Alguem já fez algo parecido? Se sim, quais atividades usou?

Link to comment
Share on other sites


  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  149
  • Content Per Day:  0.06
  • Reputation:   46
  • Achievement Points:  966
  • Solved Content:  0
  • Days Won:  22
  • Status:  Offline
  • Age:  27
  • Device:  Windows

Bom dia @fernandolk_1992

No processo manual, em qual tabela fica armazenado esse PDF ?

Link to comment
Share on other sites


  • Topic Count:  18
  • Topics Per Day:  0.02
  • Content Count:  51
  • Content Per Day:  0.05
  • Reputation:   5
  • Achievement Points:  415
  • Solved Content:  0
  • Days Won:  3
  • Status:  Offline
  • Device:  Windows

Opa, tudo bem Caio? Fica na tabela XEMPREENDIMENTODOCUMENTOS

Link to comment
Share on other sites


  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  149
  • Content Per Day:  0.06
  • Reputation:   46
  • Achievement Points:  966
  • Solved Content:  0
  • Days Won:  22
  • Status:  Offline
  • Age:  27
  • Device:  Windows

Boa tarde

Não utilizo essa tabela mas conheço duas formas de importar um arquivo

1ª criando um parâmetro pra FV do tipo Byte[] e tipo de controle Arquivo. Assim você consegue selecionar o arquivo via diretório 

image.png

 

2ª via código fonte definindo um diretório default, porém assim perdemos a opção de selecionar "manualmente" o arquivo

 

Link to comment
Share on other sites


  • Topic Count:  18
  • Topics Per Day:  0.02
  • Content Count:  51
  • Content Per Day:  0.05
  • Reputation:   5
  • Achievement Points:  415
  • Solved Content:  0
  • Days Won:  3
  • Status:  Offline
  • Device:  Windows

22 minutos atrás, caiiomonteiro disse:

Boa tarde

Não utilizo essa tabela mas conheço duas formas de importar um arquivo

1ª criando um parâmetro pra FV do tipo Byte[] e tipo de controle Arquivo. Assim você consegue selecionar o arquivo via diretório 

image.png

 

2ª via código fonte definindo um diretório default, porém assim perdemos a opção de selecionar "manualmente" o arquivo

 

Entendi, mas a ideia é realmente deixar mapeado um diretorio para que seja lido os documentos que estão lá. Você teria um exemplo desse código fonte? Entendo que deverá ser feito em C#..

Link to comment
Share on other sites

  • Solution

  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  149
  • Content Per Day:  0.06
  • Reputation:   46
  • Achievement Points:  966
  • Solved Content:  0
  • Days Won:  22
  • Status:  Offline
  • Age:  27
  • Device:  Windows

Opa, segue um exemplo.
 

using System.IO;

            
            /* Diretório onde estão os arquivos*/
            string pasta = @"......."; 

            DirectoryInfo di = new DirectoryInfo(pasta);
            DirectoryInfo diProc = new DirectoryInfo(di.FullName + @"\Processados"); /* Subpasta após importar o arquivo */

            if (!diProc.Exists)
            {
                diProc.Create();
            }

            /* Busca todos os arquivos ou por extensão, exemplo: *.pdf, *.xlsx,....*/
            FileInfo[] arquivos = di.GetFiles("*", SearchOption.TopDirectoryOnly);

            if (arquivos.Length == 0)
            {
                throw new Exception("Nenhum arquivo encontrado!");
            }

            try
            {
                /* Loop para cada arquivo encontrado */
                foreach (FileInfo fi in arquivos)
                {

                    /* 
                    ........
                    CÓDIGO
                    ........

                    */

                    /* Mover arquivo para pasta Processados e adicionar a extensão .PROC*/
                    if (!File.Exists(Path.Combine(diProc.FullName, fi.Name + ".PROC")))
                    {
                        fi.MoveTo(Path.Combine(diProc.FullName, fi.Name + ".PROC"));
                    }
                    else
                    {
                        /* Caso já exista um aruqivo com o mesmo nome na pasta o mesmo é excluído */
                        fi.Delete();
                    }

                }

            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao importar o arquivo: " + ex.Message);
            }

Link to comment
Share on other sites


  • Topic Count:  18
  • Topics Per Day:  0.02
  • Content Count:  51
  • Content Per Day:  0.05
  • Reputation:   5
  • Achievement Points:  415
  • Solved Content:  0
  • Days Won:  3
  • Status:  Offline
  • Device:  Windows

@caiiomonteiro vlw meu amigo, já vai ajudar muito.

Você sabe se é possível rodar esse script estando na Cloud da totvs?

Link to comment
Share on other sites


  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  149
  • Content Per Day:  0.06
  • Reputation:   46
  • Achievement Points:  966
  • Solved Content:  0
  • Days Won:  22
  • Status:  Offline
  • Age:  27
  • Device:  Windows

É possível sim, meu ambiente também é no Cloud da totvs e utilizo esse código pra importar planilhas Excel

  • Like 1
Link to comment
Share on other sites


  • Topic Count:  18
  • Topics Per Day:  0.02
  • Content Count:  51
  • Content Per Day:  0.05
  • Reputation:   5
  • Achievement Points:  415
  • Solved Content:  0
  • Days Won:  3
  • Status:  Offline
  • Device:  Windows

@caiiomonteiro, estou tentando aplicar o código que vc enviou, a parte enviada está OK, a formula está lendo meu arquivo e após isso está enviando para a outra pasta e renomeando.

Porem queria tirar uma dúvida com você.

Qual é o formato do campo no BD onde vc está armazenando esse PDF? Pergunto pois o campo que quero armazenar está com o formato (image) e estou convertendo ele para byte.

 

Screenshot_47.thumb.png.2575c2772102041845ae10263094e685.png

 

estou usando esse código em uma base local:
string pdfFilePath = "C:\\documentos anexar\\teste.pdf";
byte[] bytes = System.IO.File.ReadAllBytes(pdfFilePath);

 

Outra coisa, como você mapeou o caminho em seu servidor? abriu chamado no suporte da totvs?

 

 

Link to comment
Share on other sites


  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  149
  • Content Per Day:  0.06
  • Reputation:   46
  • Achievement Points:  966
  • Solved Content:  0
  • Days Won:  22
  • Status:  Offline
  • Age:  27
  • Device:  Windows

@fernandolk_1992 ainda não tive a necessidade de salvar algum PDF no banco, esse código enviado utilizamos para ler arquivos Excel... mas imagino que terá que salvar o PDF em byte[] mesmo

Encontrei esse exemplo na net:

StreamReader oStreamReader = new StreamReader(@"arquivo.pdf");
byte[] buffer = new byte[oStreamReader.BaseStream.Length];
oStreamReader.BaseStream.Read(buffer, 0, buffer.Length);
oStreamReader.Close();
oStreamReader.Dispose();



Em relação ao diretório, nós utilizamos um SFTP que o Cloud disponibiliza

Link to comment
Share on other sites


  • Topic Count:  18
  • Topics Per Day:  0.02
  • Content Count:  51
  • Content Per Day:  0.05
  • Reputation:   5
  • Achievement Points:  415
  • Solved Content:  0
  • Days Won:  3
  • Status:  Offline
  • Device:  Windows

Bom dia @caiiomonteiro, apenas dando um retorno, consegui anexar o documento através do código fonte.

Vlw pela ajuda.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.