- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Lançamento automatico de NF`s de entrada.
×
Linguagem de Programação ADVPL
Perguntas Lançamento automatico de NF`s de entrada.
- rafhapalles
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 9
- Obrigados Recebidos: 0
10 anos 7 meses atrás #22700
por rafhapalles
Lançamento automatico de NF`s de entrada. foi criado por rafhapalles
Ola, pessoal!
Preciso de ajuda com uma rotina que funcionava perfeitamente, mas depois de alguma atualização da TOTVS parou de funcionar.
Essa rotina inclui a nf de entrada fazendo o uso do MSExecAuto({|x,y| mata103(x,y)},aCabec,aItens),mas agora na hora de validar a chave da nfe junto ao Sefaz retorna o erro falando que a chave deve conter 44 digitos
Obs: A chave contem 44 digitos.
Segue trecho do código.
// Chama a rotina de leitura do XML que retorna o vetor de dados úteis ao processo
aDados := U_PARXML(cPasta, cArquivo) // aDados := U_PARXML(cPasta, cArquivo, lProcessoNormal)
// Montagem do cabeçalho que é enviado para o msexecauto
aCabAuto:= { {"F1_FILIAL" ,SM0->m0_codfil,NIL},;
{"F1_TIPO" ,"N" ,NIL},;
{"F1_FORMUL" ,"N" ,NIL},;
{"F1_DOC" ,aCabec[3] ,NIL},;
{"F1_SERIE" ,aCabec[4] ,NIL},;
{"F1_EMISSAO" ,aCabec[5] ,NIL},;
{"F1_FORNECE" ,aCabec[1] ,NIL},;
{"F1_LOJA" ,aCabec[2] ,NIL},;
{"F1_ESPECIE" ,"CTE" ,NIL},;
{"F1_EST" ,aCabec[6] ,NIL},;
{"F1_CHVNFE" ,aCabec[8] ,NIL},; (35131103972433001330550990000003261001107113)
{"F1_COND" ,cPGTO_ ,NIL},;
{"F1_PBRUTO" ,aCabec[10] ,NIL},;
{"F1_VOLUME1" ,aCabec[12] ,NIL},;
{"F1_ESPECI1" ,aCabec[15] ,NIL},;
{"F1_MENNOTA" ,aCabec[16] ,NIL} }
aIteAuto := {}
aLinha := {}
Aadd( aLinha, { "D1_COD" , cCod_ , NIL } )
Aadd( aLinha, { "D1_TES" , cTes_ , NIL } )
Aadd( aLinha, { "D1_LOCAL" , "01" , NIL } )
Aadd( aLinha, { "D1_QUANT" , 1 , NIL } )
Aadd( aLinha, { "D1_VUNIT" , aCabec[13] , NIL } )
Aadd( aLinha, { "D1_TOTAL" , aCabec[13] , NIL } )
Aadd( aLinha, { "D1_VALICM" , aCabec[9] , NIL } )
Aadd( aLinha, { "D1_PICM" , aCabec[11] , NIL } )
Aadd( aLinha, { "D1_BASEICM", aCabec[14] , NIL } )
// Insere linha no vetor que será enviado para o mse+xecauto
Aadd( aIteAuto, aClone( aLinha ) )
MsAguarde( { || MSExecAuto({|x,y,z| mata103(x,y,z)},aCabAuto,aIteAuto,3) },;
"Aguarde",;
"Importando XML CT-e... Documento: " + aCabec[ 3 ] + "\" + aCabec[ 4 ] )
Endif
Preciso de ajuda com uma rotina que funcionava perfeitamente, mas depois de alguma atualização da TOTVS parou de funcionar.
Essa rotina inclui a nf de entrada fazendo o uso do MSExecAuto({|x,y| mata103(x,y)},aCabec,aItens),mas agora na hora de validar a chave da nfe junto ao Sefaz retorna o erro falando que a chave deve conter 44 digitos
Obs: A chave contem 44 digitos.
Segue trecho do código.
// Chama a rotina de leitura do XML que retorna o vetor de dados úteis ao processo
aDados := U_PARXML(cPasta, cArquivo) // aDados := U_PARXML(cPasta, cArquivo, lProcessoNormal)
// Montagem do cabeçalho que é enviado para o msexecauto
aCabAuto:= { {"F1_FILIAL" ,SM0->m0_codfil,NIL},;
{"F1_TIPO" ,"N" ,NIL},;
{"F1_FORMUL" ,"N" ,NIL},;
{"F1_DOC" ,aCabec[3] ,NIL},;
{"F1_SERIE" ,aCabec[4] ,NIL},;
{"F1_EMISSAO" ,aCabec[5] ,NIL},;
{"F1_FORNECE" ,aCabec[1] ,NIL},;
{"F1_LOJA" ,aCabec[2] ,NIL},;
{"F1_ESPECIE" ,"CTE" ,NIL},;
{"F1_EST" ,aCabec[6] ,NIL},;
{"F1_CHVNFE" ,aCabec[8] ,NIL},; (35131103972433001330550990000003261001107113)
{"F1_COND" ,cPGTO_ ,NIL},;
{"F1_PBRUTO" ,aCabec[10] ,NIL},;
{"F1_VOLUME1" ,aCabec[12] ,NIL},;
{"F1_ESPECI1" ,aCabec[15] ,NIL},;
{"F1_MENNOTA" ,aCabec[16] ,NIL} }
aIteAuto := {}
aLinha := {}
Aadd( aLinha, { "D1_COD" , cCod_ , NIL } )
Aadd( aLinha, { "D1_TES" , cTes_ , NIL } )
Aadd( aLinha, { "D1_LOCAL" , "01" , NIL } )
Aadd( aLinha, { "D1_QUANT" , 1 , NIL } )
Aadd( aLinha, { "D1_VUNIT" , aCabec[13] , NIL } )
Aadd( aLinha, { "D1_TOTAL" , aCabec[13] , NIL } )
Aadd( aLinha, { "D1_VALICM" , aCabec[9] , NIL } )
Aadd( aLinha, { "D1_PICM" , aCabec[11] , NIL } )
Aadd( aLinha, { "D1_BASEICM", aCabec[14] , NIL } )
// Insere linha no vetor que será enviado para o mse+xecauto
Aadd( aIteAuto, aClone( aLinha ) )
MsAguarde( { || MSExecAuto({|x,y,z| mata103(x,y,z)},aCabAuto,aIteAuto,3) },;
"Aguarde",;
"Importando XML CT-e... Documento: " + aCabec[ 3 ] + "\" + aCabec[ 4 ] )
Endif
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
10 anos 7 meses atrás #22701
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico Lançamento automatico de NF`s de entrada.
Rafhael tenta colocar este comando antes do execauto
RegToMemory("SF1",.t.) ele irá carregar as variáveis de memória da SF1, senão funcionar tenta desligar o parametro de checagem da chave da nfe, se passar vai precisar a cada importação desliga-lo e liga-lo novamente.
Espero que ajude.
Abraços.
RegToMemory("SF1",.t.) ele irá carregar as variáveis de memória da SF1, senão funcionar tenta desligar o parametro de checagem da chave da nfe, se passar vai precisar a cada importação desliga-lo e liga-lo novamente.
Espero que ajude.
Abraços.
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
- rafhapalles
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 9
- Obrigados Recebidos: 0
10 anos 7 meses atrás - 10 anos 7 meses atrás #22704
por rafhapalles
Respondido por rafhapalles no tópico Lançamento automatico de NF`s de entrada.
Com o RegToMemory("SF1",.t.) o problema persiste, agora a solução de ligar e desligar a verificação pode trazer problemas com usuarios que estejam realizando outra operação que precise validar a chave simultaneamente com esta que não precisa.
Mas agradeço a ajuda.
Mas agradeço a ajuda.
Ultima edição: 10 anos 7 meses atrás por rafhapalles.
Por favor Acessar ou Registrar para participar da conversa.
- ODIEGO
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 50
- Obrigados Recebidos: 0
10 anos 6 meses atrás #22841
por ODIEGO
Respondido por ODIEGO no tópico Lançamento automatico de NF`s de entrada.
Boa noite Rafael,
A sua rotina valida a chave digitada direto no sefaz ???
poderia disponibilizar o fonte no site ou por email ?
Obrigado.
A sua rotina valida a chave digitada direto no sefaz ???
poderia disponibilizar o fonte no site ou por email ?
Obrigado.
Por favor Acessar ou Registrar para participar da conversa.
- THALESCOTR
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 124
- Obrigados Recebidos: 0
10 anos 6 meses atrás #22845
por THALESCOTR
Respondido por THALESCOTR no tópico Lançamento automatico de NF`s de entrada.
Bom dia Rafael, a ideia do Luiz está correta.
Desligue o parâmetro a cada nota importada, após volte o parâmetro.
Ex:
// Montagem do cabeçalho que é enviado para o msexecauto
aCabAuto:= { {"F1_FILIAL" ,SM0->m0_codfil,NIL},;
{"F1_TIPO" ,"N" ,NIL},;
{"F1_FORMUL" ,"N" ,NIL},;
{"F1_DOC" ,aCabec[3] ,NIL},;
{"F1_SERIE" ,aCabec[4] ,NIL},;
{"F1_EMISSAO" ,aCabec[5] ,NIL},;
{"F1_FORNECE" ,aCabec[1] ,NIL},;
{"F1_LOJA" ,aCabec[2] ,NIL},;
{"F1_ESPECIE" ,"CTE" ,NIL},;
{"F1_EST" ,aCabec[6] ,NIL},;
{"F1_CHVNFE" ,aCabec[8] ,NIL},; (35131103972433001330550990000003261001107113)
{"F1_COND" ,cPGTO_ ,NIL},;
{"F1_PBRUTO" ,aCabec[10] ,NIL},;
{"F1_VOLUME1" ,aCabec[12] ,NIL},;
{"F1_ESPECI1" ,aCabec[15] ,NIL},;
{"F1_MENNOTA" ,aCabec[16] ,NIL} }
aIteAuto := {}
aLinha := {}
Aadd( aLinha, { "D1_COD" , cCod_ , NIL } )
Aadd( aLinha, { "D1_TES" , cTes_ , NIL } )
Aadd( aLinha, { "D1_LOCAL" , "01" , NIL } )
Aadd( aLinha, { "D1_QUANT" , 1 , NIL } )
Aadd( aLinha, { "D1_VUNIT" , aCabec[13] , NIL } )
Aadd( aLinha, { "D1_TOTAL" , aCabec[13] , NIL } )
Aadd( aLinha, { "D1_VALICM" , aCabec[9] , NIL } )
Aadd( aLinha, { "D1_PICM" , aCabec[11] , NIL } )
Aadd( aLinha, { "D1_BASEICM", aCabec[14] , NIL } )
// Insere linha no vetor que será enviado para o mse+xecauto
Aadd( aIteAuto, aClone( aLinha ) )
PUTMV("MV_CHVNFE",.F.) //Desativa a verificação
MsAguarde( { || MSExecAuto({|x,y,z| mata103(x,y,z)},aCabAuto,aIteAuto,3) },;
"Aguarde",;
"Importando XML CT-e... Documento: " + aCabec[ 3 ] + "\" + aCabec[ 4 ] )
Endif
PUTMV("MV_CHVNFE",.T.) //Volta o parâmetro após o execauto, não impactando nos demais usuários.
Att
Thales
Desligue o parâmetro a cada nota importada, após volte o parâmetro.
Ex:
// Montagem do cabeçalho que é enviado para o msexecauto
aCabAuto:= { {"F1_FILIAL" ,SM0->m0_codfil,NIL},;
{"F1_TIPO" ,"N" ,NIL},;
{"F1_FORMUL" ,"N" ,NIL},;
{"F1_DOC" ,aCabec[3] ,NIL},;
{"F1_SERIE" ,aCabec[4] ,NIL},;
{"F1_EMISSAO" ,aCabec[5] ,NIL},;
{"F1_FORNECE" ,aCabec[1] ,NIL},;
{"F1_LOJA" ,aCabec[2] ,NIL},;
{"F1_ESPECIE" ,"CTE" ,NIL},;
{"F1_EST" ,aCabec[6] ,NIL},;
{"F1_CHVNFE" ,aCabec[8] ,NIL},; (35131103972433001330550990000003261001107113)
{"F1_COND" ,cPGTO_ ,NIL},;
{"F1_PBRUTO" ,aCabec[10] ,NIL},;
{"F1_VOLUME1" ,aCabec[12] ,NIL},;
{"F1_ESPECI1" ,aCabec[15] ,NIL},;
{"F1_MENNOTA" ,aCabec[16] ,NIL} }
aIteAuto := {}
aLinha := {}
Aadd( aLinha, { "D1_COD" , cCod_ , NIL } )
Aadd( aLinha, { "D1_TES" , cTes_ , NIL } )
Aadd( aLinha, { "D1_LOCAL" , "01" , NIL } )
Aadd( aLinha, { "D1_QUANT" , 1 , NIL } )
Aadd( aLinha, { "D1_VUNIT" , aCabec[13] , NIL } )
Aadd( aLinha, { "D1_TOTAL" , aCabec[13] , NIL } )
Aadd( aLinha, { "D1_VALICM" , aCabec[9] , NIL } )
Aadd( aLinha, { "D1_PICM" , aCabec[11] , NIL } )
Aadd( aLinha, { "D1_BASEICM", aCabec[14] , NIL } )
// Insere linha no vetor que será enviado para o mse+xecauto
Aadd( aIteAuto, aClone( aLinha ) )
PUTMV("MV_CHVNFE",.F.) //Desativa a verificação
MsAguarde( { || MSExecAuto({|x,y,z| mata103(x,y,z)},aCabAuto,aIteAuto,3) },;
"Aguarde",;
"Importando XML CT-e... Documento: " + aCabec[ 3 ] + "\" + aCabec[ 4 ] )
Endif
PUTMV("MV_CHVNFE",.T.) //Volta o parâmetro após o execauto, não impactando nos demais usuários.
Att
Thales
Por favor Acessar ou Registrar para participar da conversa.
- rafhapalles
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 9
- Obrigados Recebidos: 0
10 anos 6 meses atrás #22846
por rafhapalles
Respondido por rafhapalles no tópico Lançamento automatico de NF`s de entrada.
Bom dia Diego, essa rotina na verdade executa a Mata103 em modo de inclusão, e a propria Mata103 através do TSS faz a validação junto ao SEFAZ.
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Lançamento automatico de NF`s de entrada.
Tempo para a criação da página:0.125 segundos