fernandolk_1992 Posted August 8, 2024 Topic Count: 19 Topics Per Day: 0.02 Content Count: 52 Content Per Day: 0.05 Reputation: 5 Achievement Points: 425 Solved Content: 0 Days Won: 3 Status: Offline Device: Windows Report Posted August 8, 2024 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? Quote
caiiomonteiro Posted August 8, 2024 Topic Count: 11 Topics Per Day: 0.00 Content Count: 164 Content Per Day: 0.06 Reputation: 65 Achievement Points: 1,066 Solved Content: 0 Days Won: 26 Status: Offline Age: 27 Device: Windows Report Posted August 8, 2024 Bom dia @fernandolk_1992 No processo manual, em qual tabela fica armazenado esse PDF ? Quote
fernandolk_1992 Posted August 8, 2024 Topic Count: 19 Topics Per Day: 0.02 Content Count: 52 Content Per Day: 0.05 Reputation: 5 Achievement Points: 425 Solved Content: 0 Days Won: 3 Status: Offline Device: Windows Author Report Posted August 8, 2024 Opa, tudo bem Caio? Fica na tabela XEMPREENDIMENTODOCUMENTOS Quote
caiiomonteiro Posted August 8, 2024 Topic Count: 11 Topics Per Day: 0.00 Content Count: 164 Content Per Day: 0.06 Reputation: 65 Achievement Points: 1,066 Solved Content: 0 Days Won: 26 Status: Offline Age: 27 Device: Windows Report Posted August 8, 2024 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 2ª via código fonte definindo um diretório default, porém assim perdemos a opção de selecionar "manualmente" o arquivo Quote
fernandolk_1992 Posted August 8, 2024 Topic Count: 19 Topics Per Day: 0.02 Content Count: 52 Content Per Day: 0.05 Reputation: 5 Achievement Points: 425 Solved Content: 0 Days Won: 3 Status: Offline Device: Windows Author Report Posted August 8, 2024 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 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#.. Quote
Solution caiiomonteiro Posted August 8, 2024 Topic Count: 11 Topics Per Day: 0.00 Content Count: 164 Content Per Day: 0.06 Reputation: 65 Achievement Points: 1,066 Solved Content: 0 Days Won: 26 Status: Offline Age: 27 Device: Windows Solution Report Posted August 8, 2024 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); } Quote
fernandolk_1992 Posted August 8, 2024 Topic Count: 19 Topics Per Day: 0.02 Content Count: 52 Content Per Day: 0.05 Reputation: 5 Achievement Points: 425 Solved Content: 0 Days Won: 3 Status: Offline Device: Windows Author Report Posted August 8, 2024 @caiiomonteiro vlw meu amigo, já vai ajudar muito. Você sabe se é possível rodar esse script estando na Cloud da totvs? Quote
caiiomonteiro Posted August 8, 2024 Topic Count: 11 Topics Per Day: 0.00 Content Count: 164 Content Per Day: 0.06 Reputation: 65 Achievement Points: 1,066 Solved Content: 0 Days Won: 26 Status: Offline Age: 27 Device: Windows Report Posted August 8, 2024 É possível sim, meu ambiente também é no Cloud da totvs e utilizo esse código pra importar planilhas Excel 1 Quote
fernandolk_1992 Posted August 12, 2024 Topic Count: 19 Topics Per Day: 0.02 Content Count: 52 Content Per Day: 0.05 Reputation: 5 Achievement Points: 425 Solved Content: 0 Days Won: 3 Status: Offline Device: Windows Author Report Posted August 12, 2024 @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. 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? Quote
caiiomonteiro Posted August 13, 2024 Topic Count: 11 Topics Per Day: 0.00 Content Count: 164 Content Per Day: 0.06 Reputation: 65 Achievement Points: 1,066 Solved Content: 0 Days Won: 26 Status: Offline Age: 27 Device: Windows Report Posted August 13, 2024 @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 Quote
fernandolk_1992 Posted August 20, 2024 Topic Count: 19 Topics Per Day: 0.02 Content Count: 52 Content Per Day: 0.05 Reputation: 5 Achievement Points: 425 Solved Content: 0 Days Won: 3 Status: Offline Device: Windows Author Report Posted August 20, 2024 Bom dia @caiiomonteiro, apenas dando um retorno, consegui anexar o documento através do código fonte. Vlw pela ajuda. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.