fernandolk_1992 Posted August 8, 2024 Topic Count: 23 Topics Per Day: 0.01 Content Count: 59 Content Per Day: 0.04 Reputation: 7 Achievement Points: 482 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?
caiiomonteiro Posted August 8, 2024 Topic Count: 12 Topics Per Day: 0.00 Content Count: 184 Content Per Day: 0.06 Reputation: 93 Achievement Points: 1,205 Solved Content: 0 Days Won: 34 Status: Offline Age: 28 Device: Windows Report Posted August 8, 2024 Bom dia @fernandolk_1992 No processo manual, em qual tabela fica armazenado esse PDF ?
fernandolk_1992 Posted August 8, 2024 Topic Count: 23 Topics Per Day: 0.01 Content Count: 59 Content Per Day: 0.04 Reputation: 7 Achievement Points: 482 Solved Content: 0 Days Won: 3 Status: Offline Device: Windows Author Report Posted August 8, 2024 Opa, tudo bem Caio? Fica na tabela XEMPREENDIMENTODOCUMENTOS
caiiomonteiro Posted August 8, 2024 Topic Count: 12 Topics Per Day: 0.00 Content Count: 184 Content Per Day: 0.06 Reputation: 93 Achievement Points: 1,205 Solved Content: 0 Days Won: 34 Status: Offline Age: 28 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
fernandolk_1992 Posted August 8, 2024 Topic Count: 23 Topics Per Day: 0.01 Content Count: 59 Content Per Day: 0.04 Reputation: 7 Achievement Points: 482 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#..
Solution caiiomonteiro Posted August 8, 2024 Topic Count: 12 Topics Per Day: 0.00 Content Count: 184 Content Per Day: 0.06 Reputation: 93 Achievement Points: 1,205 Solved Content: 0 Days Won: 34 Status: Offline Age: 28 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); }
fernandolk_1992 Posted August 8, 2024 Topic Count: 23 Topics Per Day: 0.01 Content Count: 59 Content Per Day: 0.04 Reputation: 7 Achievement Points: 482 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?
caiiomonteiro Posted August 8, 2024 Topic Count: 12 Topics Per Day: 0.00 Content Count: 184 Content Per Day: 0.06 Reputation: 93 Achievement Points: 1,205 Solved Content: 0 Days Won: 34 Status: Offline Age: 28 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
fernandolk_1992 Posted August 12, 2024 Topic Count: 23 Topics Per Day: 0.01 Content Count: 59 Content Per Day: 0.04 Reputation: 7 Achievement Points: 482 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?
caiiomonteiro Posted August 13, 2024 Topic Count: 12 Topics Per Day: 0.00 Content Count: 184 Content Per Day: 0.06 Reputation: 93 Achievement Points: 1,205 Solved Content: 0 Days Won: 34 Status: Offline Age: 28 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
fernandolk_1992 Posted August 20, 2024 Topic Count: 23 Topics Per Day: 0.01 Content Count: 59 Content Per Day: 0.04 Reputation: 7 Achievement Points: 482 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.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now