Ir para conteúdo
  • Cadastre-se

dev botao
  • Este tópico foi criado há 1070 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

Bom Dia a Todos.

Continuando na homologação para NFCe e NFe

Conseguimos obter sucesso na geração e envio do XML obtendo retorno 100, contudo após estes métodos tentamos gerar seu respectivo PDF pelo qual usamos o método: NFE_SalvarPDF() sua resposta foi (((( JVBERi0xLjINCjEgMCBvYmogPDwNCi9DcmVhdGlvbkRhdGUoRDoyMDIyMDcyOTIyMjUxMCkNCi9DcmVhdG9yKFByb2pldG8gQUN ))) fizemos vaios testes e sempre retorna esta mesma sequencia de caracteres (base64 ???) contudo não identificamos a onde foi gerado o respectivo arquivo PDF.  No manual só aparece essa informação.  

Atenciosamente

Ronaldo F. Castro

image.thumb.png.82ee05dbb898dcc7a653afe9c44ed067.png

  • Membros Pro
Postado

Ola @Net Shopping aqui usamos assim

hHandleDllNfe:LimparLista()
hHandleDllNfe:CarregarXML(ArqXml)  // Arquivo xml
cRet_imprimirPdf:=hHandleDllNfe:ImprimirPDF()

O arquivo PDf sera salvo no  caminho abaixo

[DANFE]

PathPDF=Local do arquivo PDF

  • Membros Pro
Postado (editado)

Boa tarde Lucimauro, Obrigado pela resposta.

Bem o PathPDF  sempre esteve devidamente setado. Mas o PDF não é gerado lá de forma alguma. depois que que uso o método ENVIAR XML para o SEFAZ este retorna autorizado (100) mas o PDF não é gerado então achei que deveria haver a sequencia OBERTERXML  e depois SALVARPDF mas o que ocorre é que aparece um quadro na tela mostrando que parece estar descarregando algum arquivo em algum lugar,... mas não consigo saber que arquivo é este e em que lugar este foi saldo.   Nas pastas ou sub pastas do root  C:NFCE que estão todos os subcaminhos setados nada aparece pertinente a um PDF.

 

A sequencia de comandos: neste o que salva o PDF esta implícito?  Pois aqui não vi nenhuma menção a salvar o PDF

hHandleDllNfe:LimparLista()

---------------------------------------------------------------------------------------------------------------------------------

Qual função carregou a sua variável ArqXML 

hHandleDllNfe:CarregarXML(ArqXml)  // Arquivo xml

---------------------------------------------------------------------------------------------------------------------------------

A função imprimePDF já realiza o salvamento do PDF o não tem nada a haver?

cRet_imprimirPdf:=hHandleDllNfe:ImprimirPDF()

---------------------------------------------------------------------------------------------------------------------------------

Atenciosamente

    Ronaldo F. Castro

Editado por Net Shopping
  • Moderadores
  • Solution
Postado

Bom dia, 

O método ObterPDF serve para obter o mesmo em base 64 mesmo, caso esteja usando Web por exemplo. Para Salvar na própria máquina utilize o método ImprimirPDF, após carregar o mesmo.

Será Salvo conforme a estrutura de diretórios configurada na lib o diretório raiz será o configurado no campo "Download.PathDownload" na sessão [NFe]

https://acbr.sourceforge.io/ACBrLib/ConfiguracoesdaBiblioteca16.html

  • Curtir 1
Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Membros Pro
Postado

Bom dia Junior,

Entendi.  Então para simplesmente salvarmos o respectivo PDF na maquina usamos a DOIS  métodos  sendo: 

        1º) NFE_CarregarXML()

         2º) NFE_ImprimirPDF()

 

Quando executo o método NFE_CarregarXML() o qual devo informar o respectivo PATH + NOME DO ARQ XML. 

                                  image.png.b47d34f12d74725ce2472a2695083f91.png

O método da um erro de execução que é

                                  image.png.9192c016b0cc469cc8094b4205b70db0.png

 

E NÃO deixa executar o respectivo método   NFE_ImprimirPDF() pois este como dito tem que anteriormente ter sido devidamente carregado.

Não sei o motivo de estar dando este erro ao executar o método NFE_CarregarXML()

Fizemos varias possibilidades e todas ocorreram a mesma falha:

  STOR SPACE(1024)         TO PATHARQXML

 

 

  Declare Long       NFE_CarregarXml  IN \SIS\VENDA\ACBrNFE32.dll   STRING@PATHARQXML

                                              ou

  Declare STRING  NFE_CarregarXml  IN \SIS\VENDA\ACBrNFE32.dll   STRING@PATHARQXML

                                              ou

  Declare Long       NFE_CarregarXml  IN \SIS\VENDA\ACBrNFE32.dll   Long@PATHARQXML

                                              ou

  Declare STRING  NFE_CarregarXml  IN \SIS\VENDA\ACBrNFE32.dll   Long@PATHARQXML

 

 

  PATHARQXML = "C:\NFCE\CUSTODIA\" + CHVACSS_SV + "-nfe.xml"

 

* ----------------------------------------------------------------------

  RETORNO_ACBr = 0

  RETORNO_ACBr = NFE_CarregarXml(@PATHARQXML) 

                                              ou

  RETORNO_ACBr = NFE_CarregarXml(PATHARQXML) 

* ----------------------------------------------------------------------

Por não conseguir Carregar o XML o método de IMPRIMIR também da um erro, sendo:

                       image.png.e1d72210905c3ef0ac7203c115a8ffa4.png

Atenciosamente

    Ronaldo F. Castro

image.png

image.png

image.png

image.png

IMPRIMIR_PDF.docx IMPRIMIR_PDF.docx

  • Moderadores
Postado

Aparentemente o problema está na chamada do método NFe_CarregarXML na sua aplicação. Esse método não espera nenhum retorno, assim como o métodos Assinar por exemplo, então no parâmetro só precisa passar o path completo do do xml. 

Dê uma olhada no programa exemplo do ACBr utilizando a lib.

Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Membros Pro
Postado

Bom dia Junior

Fui lá no exemplo de voces como vc sugeriu

Exemplo da ACBr

  1.     NFE_Inicializar: ['int', ['string', 'string']],

  2.     NFE_ConfigLer: ['int', ['string']],

  3.     NFE_CarregarINI: ['int', ['string']],

  4.   NFE_CarregarXML: ['int', ['string']],

  5.     NFE_UltimoRetorno: ['int', ['string', 'string']],
  6. .....

  7.   inicio = libm.NFE_ConfigGravarValor('NFe', 'PathSchemas', path.resolve(__dirname, 'Schemas', 'NFe'));

  8.   console.log('Set Configurações ${inicio}');

  9.  

  10.   inicio = libm.NFE_CarregarXML(pathXML);

  11.   console.log('carregar xml >>>>>>> ${inicio}');

  12.  

  13.   inicio = libm.NFE_UltimoRetorno(aloc_sResposta, aloc_esTamanho);

  14.  

Nossos comandos

  STOR SPACE(60)           TO PATHARQXML

 * Declare string   NFE_CarregarXml  IN \SIS\VENDA\ACBrNFE32.dll STRING@PATHARQXML

* Declare string   NFE_CarregarXml  IN \SIS\VENDA\ACBrNFE32.dll LONG@PATHARQXML

* Declare Long     NFE_CarregarXml  IN \SIS\VENDA\ACBrNFE32.dll STRING@PATHARQXML

  Declare Long     NFE_CarregarXml  IN \SIS\VENDA\ACBrNFE32.dll long@PATHARQXML

 

      CHVACSS_SV = "33220829685560000109650040000001471461237983"  

    PATHARQXML  = "C:\NFCE\CUSTODIA\" + CHVACSS_SV + "-nfe.xml"

* -----------------------------------

   NFE_CarregarXml(PATHARQXML) 

* -----------------------------------

 

SEMPRE DA O MESMO ERRO SENDO:

image.png.d1ed063d8164da215006344821ebf3ef.png

 

 

=====================================================================================================

                                                                                           Observação:

 

Fizemos o que voce sugeriu, retiramos o recebimento do retorno do método, contudo lá no manual  mostra valores de retorno para este método.

 

                     image.png.20ae32cbea32b3f2fb0203dc0f0d5680.png

 

Junior muito obrigado pela sua atenção.

Atenciosamente

Ronaldo F. Castro

 

CARREGA_XML.docx

  • Moderadores
Postado
12 horas atrás, Net Shopping disse:

Fizemos o que voce sugeriu, retiramos o recebimento do retorno do método, contudo lá no manual  mostra valores de retorno para este método.

Esse retorno é apenas o inteiro que corresponde ao código do erro. Não tem retorno no sentido de precisar alocar ponteiro para obter uma resposta.

Mas note que a mensagem de erro é na sua própria aplicação, não está nem chegando na ACBrlib, pois não está encontrando a declaração desse método para instancia-lo.

O método NFe_CarregarIni está funcionando? Pois a funcionalidade é a mesma para o NFe_CarregarXML, a diferença que que deve passar o path com a extensão .xml no parâmetro.

Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Membros Pro
Postado

Junior Bom dia

Conseguimos,...

|Usamos a linguagem Visual Fox pro 9.0  Quando declaramos como STRING não funciona de forma alguma, mas,... quando declaramos como LONG funcionou perfeitamente. Este era o Erro a sua dica de espelhar no método de inicializar foi crucial pois fui neste e espelhei a respectiva declaração para CARREGAR XML.   Te agradeço mais essa.  Vou anexar aqui XML e seu respectivo DANFE

* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - ---------                                                  
  Declare STRING NFE_CarregarXML  IN \SIS\VENDA\ACBrNFE32.dll   String@eArquivoOuXml       ((((ERRO)))
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - ---------

* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --- - - - - - - - -                                                   
  Declare LONG NFE_CarregarXML  IN \SIS\VENDA\ACBrNFE32.dll   String@eArquivoOuXml        ((( FUNCIONOU)))
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --- - - - -

33220829685560000109650040000001571569598053-nfe.pdf 33220829685560000109650040000001571569598053-nfe.xml

Junior muito obrigado pela paciência e atenção a nós dedicada.

Atenciosamente

  Ronaldo F. Castro

 

  • 4 semanas depois ...
  • Este tópico foi criado há 1070 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...