Ir para conteúdo
  • Cadastre-se

Delfos Sistemas

Membros Pro
  • Total de ítens

    89
  • Registro em

  • Última visita

Posts postados por Delfos Sistemas

  1. Bom Dia Alexandre,

    Eu estava usando MAIL_AddAltBody  porque quando uso a função MAIL_AddBody o email aparece com este corpo:

    --004E4345_519AE41A_Synapse_boundary--

    Obs.: E a chamada da função é exatamente a mesma, só mudando o nome da função:

     

    LOCAL V_Corpo 

    LOCAL V_Retorno 

    V_Corpo := "Verificando a acentuação e caracteres especiais & * Número. "

    V_Retorno := MAIL_AddBody(V_Corpo)

    ou 
    V_Retorno := MAIL_AddAltBody(V_Corpo) 

     

    Obrigado,

    Sergio

  2. Olá,

    Ao utilizar a função MAIL_AddAltBody o texto está saindo com a acentuação confusa:

    Verificando a acentua��o e caracteres especiais & * Nmero.

    No ACBrLib.INI, na seção [Email], o valor do campo Codificacao=27 (UTF_8 segundo o manual)

    Existe algum outro local que se possa configurar a codificação?

    Obrigado,

    Sergio

  3. Oi Renato,

    Finalmente deu certo!!!!

    Vou postar abaixo o que fiz!

    Na definição do método, defini a variável de retorno não como string mas como psz:

    _DLL FUNCTION CNPJ_Consultar(eCNPJ AS STRING, eProvedor AS INT, sResposta REF PSZ, esTamanho REF INT ) AS INT PASCAL:ACBrConsultaCNPJ32.CNPJ_Consultar
     

    No programa que chama o método, a variável que vai receber a resposta esta como global e tipo PSZ:

    GLOBAL V_Dados     AS PSZ

    A chamada do método continuou da mesma forma:

    V_Retorno := CNPJ_Consultar('13397985000182',2,@V_Dados,@V_Tamanho)

    Para ver o retorno como uma string, criei uma outra variavel V_DadosString como sendo string e fiz a conversão de PSZ em string

    Local V_DadosString as string

    V_DadosString := Psz2String(@V_Dados)

    Interessante que normalmente eu faria a conversao sem o "@", porém ai trava o programa. Colocando o @ como acima ai funcionou.

    Testei também definir a variável que vai receber o retorno como Publica e Privada, mas ai não funcionou. Somente como Global é que retornou corretamente.

    Enfim, se não fosse o seu empenho eu já teria desistido! rs... Mas como vc teve a boa vontade de testar e dar sugestões, me incentivou a ir mais fundo e agora posso usar todas as funções das LIBs do ACBr...

    Agradeço muitooooo a sua ajuda!

    Forte abraço!

    Sergio


     

    • Curtir 3
  4. Oi Renato,

    Fiz um outro teste:

    Defini a variável que recebe os dados e do tamanho do retorno não como local mas como global (para ser vista em toda a aplicação) e ai o teste anterior de criar uma variável qualquer não alterou o valor mesmo depois de executar o método.

    A variável do tamanho que antes do método foi definida como 1000, retornou com o tamanho correto, 607.

    Vou fazer mais testes e depois informo.

    Sergio

     

  5. Oi Renato,

    Criei novamente uma variável string, com o conteúdo qualquer e fui executando cada método (MAIL_Inicializar, MAIL_Clear, MAIL_ConfigLer, MAIL_ConfigGravarValor, MAIL_ConfigGravar, MAIL_AddAddress, MAIL_SetSubject, MAIL_AddAltBody, MAIL_Send, MAIL_Finalizar) para envio do email e testando o conteúdo da variável.

    Para enviar email, o conteúdo da variável não foi zerado em nenhuma situação e no final continuou com o mesmo conteúdo que foi definido.

    O problema mesmo é quando o método retorna algum valor para alguma variável.

    Estou num cliente e por isto não consegui pesquisar como capturar os erros, mas com certeza deve ter uma forma e vou postar aqui assim que conseguir.

    obrigado,

    Sergio

    • Curtir 1
  6. Oi Renato,

    Fiz o teste que sugeriu.

    Defini uma variável com um conteúdo qualquer e depois de chamar o método, o conteúdo dela ficou em branco, mesmo ela não tendo nada a ver com o método!

    Estou vendo aqui como capturar e exibir os erros e assim que conseguir eu retorno.

    Obrigado,

    Sergio

     

    • Curtir 1
  7. Bom Dia Renato,

    Eu tinha notado isto, que antes da chamada da função a variável V_tamanho estava definida com um valor e depois de chamar o método ela volta sem valor nenhum.

    Vou tentar fazer isto que vc comentou, criar uma variável qualquer antes do método e ver se muda algo e posto aqui.

    Obrigado,

     

    • Curtir 1
  8. Ok Renato,

    Como comentei numa mensagem anterior, tenho ciência que este tipo de suporte não faz parte do atendimento e agradeço muito o esforço.

    Já vi aqui que eu tenho uma VM de W7 montada. Só vou fazer uma instalação limpa do Visual Object e dos demais arquivos necessários.

    Ate mais.

    Sergio

    • Curtir 1
  9. Boa tarde Renato,

    Vou montar uma VM, instalar o Visual Object e carregar um programa teste.

    A VM pode ser o VirtualBox? 

    Com certeza o interesse é meu (para poder usar todos os recursos das LIBs do ACBr), porém só me aguardem um pouco, pois entre hoje e amanha não sei se consigo te mandar, mas na sexta no máximo eu envio o link para vocês baixarem.

    Mais uma vez, muito obrigado pelo esforço em me ajudar.

    Sergio

  10. Olá,

    Só complementando os testes, na resposta anterior, após publicar, muitos dos comentários que coloquei sumiram ! 

    Também inclui outra variável para iniciar a LIB (declarei antes de CNPJ_Consultar:

    CNPJ_Inicializar := GetProcAddress(hDll, "CNPJ_Inicializar") // OK CNPJ_Inicializar = 0x03417CA0

    CNPJ_Consultar := GetProcAddress(hDll, "CNPJ_Consultar") // OK CNPJ_Consultar = 0x03417E90

    Definindo resposta := '' ou resposta := space(tamanhoResposta) o resultado era o mesmo: resposta = '' ou resposta = space(256)

    Tentei também definir a variável resposta como tipo PSZ, e antes de exibir o retorno, transformar em string (defini como PSZ também na definição da função da LIB)

    Só que após incluir a inicialização (CNPJ_Inicializar), o log não esta mais exibindo o retorno e na linha "SetRetorno" aparece um caractere "diferente":

    17/01/24 06:51:00:469 - TLibConsultaCNPJConfig.AplicarConfiguracoes: c:\sistemas\CoPg_Soares\ACBrLib.ini
    17/01/24 06:51:00:470 - TLibConsultaCNPJConfig.Gravar: c:\sistemas\CoPg_Soares\ACBrLib.ini
    17/01/24 06:51:00:471 - TLibConsultaCNPJConfig.Gravar - Feito
    17/01/24 06:51:00:471 - TLibConsultaCNPJConfig.AplicarConfiguracoes - Feito
    17/01/24 06:51:00:471 - TLibConsultaCNPJConfig.Ler - Feito
    17/01/24 06:51:00:471 - LIB_Inicializar( ACBrLib.ini,  )
    17/01/24 06:51:00:471 -    ACBrLibConsultaCNPJ - 0.0.0.38
    17/01/24 06:51:16:708 - CNPJ_Consultar ( 13397985000182,2 )
    17/01/24 06:51:16:709 - Travar
    17/01/24 06:51:17:018 - Destravar
    17/01/24 06:51:17:018 -    MoverStringParaPChar. StrLen:607, BufLen:256
    17/01/24 06:51:17:020 -    SetRetorno(0, [Consult_)
    17/01/24 06:55:18:354 - TLibConsultaCNPJConfig.AplicarConfiguracoes: c:\sistemas\CoPg_Soares\ACBrLib.ini
    17/01/24 06:55:18:354 - TLibConsultaCNPJConfig.Gravar: c:\sistemas\CoPg_Soares\ACBrLib.ini
    17/01/24 06:55:18:355 - TLibConsultaCNPJConfig.Gravar - Feito
    17/01/24 06:55:18:356 - TLibConsultaCNPJConfig.AplicarConfiguracoes - Feito
    17/01/24 06:55:18:356 - TLibConsultaCNPJConfig.Ler - Feito
    17/01/24 06:55:18:356 - LIB_Inicializar( ACBrLib.ini,  )
    17/01/24 06:55:18:356 -    ACBrLibConsultaCNPJ - 0.0.0.38
    17/01/24 06:55:22:067 - CNPJ_Consultar ( 13397985000182,2 )
    17/01/24 06:55:22:067 - Travar
    17/01/24 06:55:22:318 - Destravar
    17/01/24 06:55:22:319 -    MoverStringParaPChar. StrLen:607, BufLen:607
    17/01/24 06:55:22:319 -    SetRetorno(0, [Con_)

    Bom, vou continuar os testes aqui.

    Sergio

    • Curtir 1
  11. Olá Diego,

    A sua resposta faz muito sentido sim! Seria uma alternativa para usar uma DLL, porém segue abaixo os resultados (em vermelho):

    
    // Carregando a DLL dinamicamente
    hDll := LoadLibrary("ACBrConsultaCNPJ32.dll")
    // OK, carregou a DLL, retornando hDll = 0x03410000
    
    // Verificando se a DLL foi carregada corretamente
    IF hDll <> 0
       // Obtendo um ponteiro para a função CNPJ_Consultar
       @CNPJ_Consultar := GetProcAddress(hDll, "CNPJ_Consultar")
     
    
       // Chamando a função como de costume
       LOCAL resultado, resposta, tamanhoResposta // definido no inicio da função
       tamanhoResposta := 256
       resposta := Space(tamanhoResposta)
    
       resultado := CNPJ_Consultar("12345678901234", 1, @resposta, @tamanhoResposta)
       
    
       // Trabalhando com a resposta
       ? "Resultado da consulta:", resultado
       ? "Resposta da consulta:", resposta
    
       // Fechando a DLL
       FreeLibrary(hDll)
    ELSE
       ? "Erro ao carregar a DLL"
    ENDIF

    Enfim Diego, eu imaginava que iria funcionar, mas continuou não retornando nada na variável resposta.

    Agradeço muitooo o empenho de todos, mesmo este tipo de problema não fazendo parte do suporte. 

    Caso vocês queiram continuar tentando (pois eventualmente possa ajudar algum outro usuário), vou testar todas as sugestões levantadas, porém caso queiram parar por aqui, eu já fico muito grato pela ajuda.

    Mesmo não sendo uma solução "elegante", ler o resultado do LOG resolve o meu problema e já consigo usar a LIB.

    Mais uma vez, muito obrigado pelas horas dedicadas a tentar resolver meu problema.

    Sergio

     

     

     

    • Curtir 1
  12. Oi Renato,

    Obrigado pelas dicas, mas já tentei não alocar os espaços na variável V_Dados e não houve mudança no resultado.

    Tentei também alocar um valor nulo (V_Dados := '') e também não funcionou.

    Também tentei não declarar o tipo (string) e ai já deu erro na compilação.

    Sobre a declaração da função, fui reler e pesquisar para ver se tem como informar como você sugeriu, porém a forma é esta que estou fazendo.

    Quando eu coloco "REF" é justamente para informar que é uma variável de retorno.

    Eu faço desta forma quando utilizo outra LIB, de outra empresa, porém na outra LIB eu não declaro desta forma (_DLL FUNCTION) eu apenas instancio uma variável citando o nome da DLL:

    local oDLL as OLEAutoObject

     oDLL := OLEAutoObject{ 'DLLTeste.DLL' }

    oDLL:Funcao(var1, var2, @var3, @var4)

    Até tentei instanciar a LIB ACBr desta forma mas não funcionou....

    Pessoal, eu agradeço muito a colaboração, mas se ninguém tiver mais sugestões, vou fazer mesmo a gambiarra, pois pelo menos eu consigo obter as informações.

    Obrigado,

    Sergio

  13. Oi Diego,

    Estou enviando abaixo o resultado do log:

    16/01/24 13:10:33:804 - TLibConsultaCNPJConfig.AplicarConfiguracoes: c:\sistemas\CoPg_Soares\ACBrLib.ini
    16/01/24 13:10:33:804 - TLibConsultaCNPJConfig.Gravar: c:\sistemas\CoPg_Soares\ACBrLib.ini
    16/01/24 13:10:33:805 - TLibConsultaCNPJConfig.Gravar - Feito
    16/01/24 13:10:33:805 - TLibConsultaCNPJConfig.AplicarConfiguracoes - Feito
    16/01/24 13:10:33:805 - TLibConsultaCNPJConfig.Ler - Feito
    16/01/24 13:10:33:805 - LIB_Inicializar( ACBrLib.ini,  )
    16/01/24 13:10:33:806 -    ACBrLibConsultaCNPJ - 0.0.0.38
    16/01/24 13:10:34:514 - CNPJ_Consultar ( 13397985000182,2 )
    16/01/24 13:10:34:514 - Travar
    16/01/24 13:10:34:878 - Destravar
    16/01/24 13:10:34:878 -    MoverStringParaPChar. StrLen:607, BufLen:607
    16/01/24 13:10:34:880 -    SetRetorno(0, [Consulta]
    Abertura=18/03/2011
    Bairro=DISTRITO E AREA INDUSTRIAL
    CEP=18120000
    CNAE1=25.39-0-01 Serviços de usinagem, torneiria e solda
    CNAE2=25.42-0-00 Fabricação de artigos de serralheria, exceto esquadrias46.63-0-00 Comércio atacadista de máquinas e equipamentos para uso industrial; partes e peças46.87-7-03 Comércio atacadista de resíduos e sucatas metálicos
    Cidade=MAIRINQUE
    Complemento=LOTE AREA B
    EmpresaTipo=MATRIZ
    Endereco=RUA AMF DO BRASIL
    Fantasia=
    NaturezaJuridica=213-5 - Empresário (Individual)
    Numero=253
    RazaoSocial=EDSON LUIZ SOARES SAO ROQUE
    Situacao=ATIVA
    UF=SP
    )
    16/01/24 13:10:52:585 - LIB_Finalizar
    16/01/24 13:10:52:585 - Finalizar

    Sobre passar o valor direto (sem o @), não fez diferença no retorno das variáveis e nem no resultado do log...

    Pelo log, a função parece estar funcionando corretamente... Se nao conseguir fazer a função receber o retorno, vou acabar pegando o resultado do log e extraindo as informações...

    Seria uma gambiarra mas funcionaria....

    Você tem alguma outro "chute" do que poderia ser?

    Obrigado,

    Sergio

     

  14. Olá,

    Não sei se vocês vão poder me ajudar, pois uso uma linguagem pouco conhecida (Visual Object) e estou tendo dificuldades em usar LIBs que retornam valores, por exemplo ACBrLibCEP e ACBrLibConsultaCNPJ.

    Eu declaro cada função da LIB desta forma:

    _DLL FUNCTION CNPJ_Inicializar(eArqConfig AS STRING, eChaveCrypt AS STRING ) AS INT PASCAL:ACBrConsultaCNPJ32.CNPJ_Inicializar

    e nas funções que retornam valores eu declaro assim:

    _DLL FUNCTION CNPJ_Consultar(eCNPJ AS STRING, eProvedor AS INT, sResposta REF STRING, esTamanho REF INT ) AS INT PASCAL:ACBrConsultaCNPJ32.CNPJ_Consultar

    No programa eu uso desta forma:

        LOCAL V_Retorno
        LOCAL V_Dados AS STRING
        LOCAL V_Tamanho AS INT    
        
        V_Tamanho := 500
        V_Dados := Space(V_Tamanho)    
        
        V_Retorno := CNPJ_Inicializar('ACBrLib.ini','')   

    Obs: Conteúdo da variavel V_Retorno = 0

        V_Retorno := CNPJ_Consultar('13397985000182',2,@V_Dados,@V_Tamanho)

    Obs: Conteudo das variaveis V_Retorno, V_Dados e V_Tamanho = ''

        V_Retorno := CNPJ_Finalizar()

    Obs: Conteúdo da variavel V_Retorno = ''

     

    Eu uso a LIB ACBrLibMail , enviando emails sem problemas, porém nela não uso nenhuma função que retorna valores, apenas envio informações:

        V_Retorno := MAIL_Inicializar('ACBrLib.ini','')
        V_Retorno := MAIL_Clear()    

        V_Retorno := MAIL_ConfigLer('ACBrLib.ini')
        V_Retorno := MAIL_ConfigGravarValor("Email","Senha","123456")
        V_Retorno := MAIL_ConfigGravar("ACBrLib.ini")

        V_Retorno := MAIL_AddAddress("[email protected]","")
        V_Retorno := MAIL_SetSubject("Teste de envio de email...")
        V_Retorno := MAIL_AddBody('teste de envio de email automaticamente')
        V_Retorno := MAIL_Send(0)
        V_Retorno := MAIL_Finalizar()
     

    Vocês teriam alguma dica de onde estou errando?

    Obrigado,

    Sergio

  15. Boa tarde Renato,

    Fiz como você sugeriu. Enviei primeiro o comando Reinf.LimparReinf() e depois o comando Reinf.CriarEnviarReinf("C:\DELFOS\LFPG\R4099.INI") e o retorno foi o mesmo:

    ERRO: Falha na validação dos dados do evento: evtInfoContribuinte-v2_01_02

     --> 1839 - Element '{http://www.reinf.esocial.gov.br/schemas/evtInfoContribuinte/v2_01_02}cpfCtt': [facet 'pattern'] The value '' is not accepted by the pattern '\d{11}'.

    Obs: Você comentou que a mensagem de erro informa o R1000. Eu nao consegui identificar o evento R1000 na mensagem de erro.... 

    Obrigado pela ajuda...

    Sergio

     

  16. Olá,

    Ao enviar o arquivo R4099.INI está retornando a seguinte mensagem:

    ERRO: Falha na validação dos dados do evento: evtInfoContribuinte-v2_01_02

     --> 1839 - Element '{http://www.reinf.esocial.gov.br/schemas/evtInfoContribuinte/v2_01_02}cpfCtt': [facet 'pattern'] The value '' is not accepted by the pattern '\d{11}'.

    O conteúdo do R4099.INI é:

    [evtFecha]
    Sequencia=0

    [ideEvento]
    perApur=2023-09
    procEmi=1
    verProc=1.00      

    [ideContri]
    tpInsc=1
    nrInsc=99999999999999

    [ideRespInf]
    nmResp=XXXXXXXXXXXXXXX
    cpfResp=9999999999
    telefone=9999999999   
    [email protected]

    [infoFech]
    fechRet=0

    Obrigado pela ajuda...

    Sergio

     

  17. Olá Daniel,

    Estou usando a ultima versão disponível para download (ACBrMonitor Plus windows x64 1.4.0.202).

    Pelo que li no post citado, a questão do protocolo já foi solucionado, porém a mensagem "ERRO: Propriedade RetConsulta dispon?vel apenas at? a vers?o 1_05_01, utilize a RetConsulta_R9011 para vers?es posteriores" ainda está em desenvolvimento.

    Quando houver uma nova versão disponível, vou baixar e testar.

    Obrigado,

    Sergio

×
×
  • 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.