Página 5 de 6

Uso da classesefaz

Enviado: 22 Dez 2016 15:33
por JoséQuintas
Fazer o inverso da hbcompat.ch, ou olhar o que faz o TRY do xHarbour, se é #define ou outra coisa.
Não sei se seria desta forma

#ifdef __XHARBOUR__
#command BEGIN SEQUENCE WITH __BreakBlock() => TRY
#endif

lembrando que uma coisa que complica no xHarbour é porque nele é obrigatório indicar a versão do MSXML e no Harbour é automático.
E parece não existir um padrão nas UFs.

Uso da classesefaz

Enviado: 23 Dez 2016 10:21
por malcarli
Obrigado, por responder. Tentando usar a sua lógica, fiz o comando abaixo mas não funcionou. Teria uma idéia?

Código: Selecionar todos


 #xcommand RECOVER [USING <oErr>] <-oErr-> => CATCH [<!oErr!>]


obg

Uso da classesefaz

Enviado: 23 Dez 2016 11:45
por JoséQuintas
E olhando no ppo, o que é substituído pelo TRY/CATH ?

Senão, uma forma de não ter muito trabalho na troca de versão, seria criar uma rotina de conversão.

Código: Selecionar todos

cTxt := MemoRead( "fonte.prg" )
cTxt := StrTran( cTxt, "BEGIN SEQUENCE WITH __BreakBlock()", "TRY" )
cTxt := StrTran( cTxt, "END SEQUENCE", "CATCH" + Chr(13) + Chr(10) + "END" )
Lembre-se:
Eu conheço Harbour, e não Xharbour.
Não sei o que dá pra usar no xHarbour como funcionamento equivalente.

A princípio é apenas pra caso dê erro, desviar para o que vém depois de END SEQUENCE, nem precisa tratamento especial.

Código: Selecionar todos

lOk := .F.
BEGIN SEQUENCE WITH __BreakBlock()
   ? 10 + "A"
   lOk := .T.
END SEQUENCE
IF .NOT. lOk
   ? "Não conseguiu somar"
ENDIF
Veja o que seria equivalente no xHarbour.

Uso da classesefaz

Enviado: 20 Mar 2017 19:27
por oxent_jabah
Boa Noite, Quintas!

Por gentileza, você poderia atualizar os endereços de Homologação do CEARÁ no projeto:

ze_spedsefazclass.prg
linha: 1542
ELSE
DO CASE
CASE nWsServico == WS_NFE_AUTORIZACAO ; cUrlWs := "https://nfeh.sefaz.ce.gov.br/nfe2/servi ... zacao?wsdl"
CASE nWsServico == WS_NFE_CANCELAMENTO ; cUrlWs := "https://nfeh.sefaz.ce.gov.br/nfe2/servi ... celamento2"
CASE nWsServico == WS_NFE_CONSULTACADASTRO ; cUrlWs := "https://nfeh.sefaz.ce.gov.br/nfe2/servi ... stro2?wsdl"
CASE nWsServico == WS_NFE_CONSULTAPROTOCOLO ; cUrlWs := "https://nfeh.sefaz.ce.gov.br/nfe2/servi ... ulta2?wsdl"
CASE nWsServico == WS_NFE_DOWNLOADNF ; cUrlWs := "https://nfeh.sefaz.ce.gov.br/nfe2/servi ... oadNF?wsdl"
CASE nWsServico == WS_NFE_INUTILIZACAO ; cUrlWs := "https://nfeh.sefaz.ce.gov.br/nfe2/servi ... acao2?wsdl"
CASE nWsServico == WS_NFE_RECEPCAO ; cUrlWs := "https://nfeh.sefaz.ce.gov.br/nfe2/servi ... pcao2?wsdl"
CASE nWsServico == WS_NFE_RECEPCAOEVENTO ; cUrlWs := "https://nfeh.sefaz.ce.gov.br/nfe2/servi ... vento?wsdl"
CASE nWsServico == WS_NFE_RETRECEPCAO ; cUrlWs := "https://nfeh.sefaz.ce.gov.br/nfe2/servi ... pcao2?wsdl"
CASE nWsServico == WS_NFE_STATUSSERVICO ; cUrlWs := "https://nfeh.sefaz.ce.gov.br/nfe2/servi ... vico2?wsdl"
CASE nWsServico == WS_NFE_RETAUTORIZACAO ; cUrlWs := "https://nfeh.sefaz.ce.gov.br/nfe2/servi ... zacao?wsdl"
ENDCASE
ENDIF

Uso da classesefaz

Enviado: 20 Mar 2017 23:31
por JoséQuintas
ok, atualizados.

Uso da classesefaz

Enviado: 28 Mar 2017 14:11
por oxent_jabah
Boa Tarde, Quintas!

Muito Obrigado!

Uso da classesefaz

Enviado: 28 Mar 2017 18:09
por andersoncamilo
Boa tarde.

Alguém já esta usando a classesefaz no Xharbour?

Fiz alguns ajustes consegui compilar, esta selecionando o certificado, más ao fazer a consulta de STATUS DE SERVIÇO esta retornando o seguinte erro:
Erro SOAP: XML retorno não contém soapenv:Body Erro: Na conexão com webservice https://nfe.fazenda.sp.gov.br/ws/nfestatusservico2.asmx

Compilando com o Harbour funciona normalmente, se deixar de selecionar o certificado no Harbour aparece o mesmo erro acima.

Acredito que seja algum parâmetro na seleção do certificado no Xharbour que esta errado, alguém poderia ajudar.

Obrigado

Anderson Camilo

Uso da classesefaz

Enviado: 28 Mar 2017 19:33
por JoséQuintas
Importante:
Veja :cXmlRetorno pra ter a mensagem de retorno

Também é bom testar entre versões diferentes de XML.

Veja esta parte:

Código: Selecionar todos

#ifdef __XHARBOUR__
      IF ::cUF == "GO" .AND. ::cAmbiente == "2"
         ::cXmlRetorno := "Erro: Criando objeto MSXML2.ServerXMLHTTP.5.0"
         oServer := win_OleCreateObject( "MSXML2.ServerXMLHTTP.5.0" )
      ELSE
        ::cXmlRetorno := "Erro: Criando objeto MSXML2.ServerXMLHTTP.6.0"
        oServer := win_OleCreateObject( "MSXML2.ServerXMLHTTP.6.0" )
      ENDIF
#else
      oServer := win_OleCreateObject( "MSXML2.ServerXMLHTTP" )
#endif
No Harbour a seleção é automática.
No xHarbour, é bom confirmar cada UF.

Lembrando que está havendo uma mudança na comunicacão, e pode se tratar desse tipo de coisa.

Uso da classesefaz

Enviado: 28 Mar 2017 19:53
por JoséQuintas
No xHarbour, é bom confirmar cada UF.
Como dá pra ver no fonte, em Goiás na época estava uma versão pra homologação e outra pra produção.
Então o teste pode ser mais chato do que apenas testar uma UF.

Quem sabe alguém poderia fazer igual no xHarbour?
Copiar win_OleCreateObject() do Harbour para o xHarbour.

Uso da classesefaz

Enviado: 19 Mai 2017 13:41
por Wanderlei
Boa Tarde Zé,
Onde eu pego o projeto atualizado?
Estou usando o ACBrMonitor mas vou mudar para usar a Classe.

Uso da classesefaz

Enviado: 19 Mai 2017 16:11
por JoséQuintas
Não tem notícias de mudanças porque não tem muito o que mudar..... rs

Uma coisa é a comunicação, e outra coisa é o XML.

Pra validar XMLs, basta baixar schemmas do site da Sefaz, e usar a rotina de validação.
Isso faz quem quiser, quando quiser, e se quiser. A classe não obriga a isso.
Pode ser interessante pra deixar XMLs preparados pras próximas versões de documento, e ajudar a conferir.

Quanto à comunicação:
Estou deixando pra depois CTE 3.0, MDFE 3.0 e NFE 4.0, esta última nem existe ainda endereços de teste.

https://github.com/JoseQuintas/sefazclass

Só lembrando:

A classe não faz conversão. No caso de NFE, CTE, MDFE, ela vai pegar seu XML e enviar diretamente pra Fazenda.
Por isso ela não precisa ficar sendo atualizada.
Dá a impressão de que parou, mas é porque não tem o que mexer mesmo.... rs

Uso da classesefaz

Enviado: 22 Mai 2017 06:47
por Wanderlei
Blz, valeu pela resposta, vou começar a migrar do ACBrMonitor para a Classe.

Uso da classesefaz

Enviado: 28 Mai 2017 18:30
por MSDN
Utilizando a classe já pronta para NF-e, alguém tem ideia do que, e onde mudar para começar a fazer testes de homologação para NFC-e ?

Grato

Uso da classesefaz

Enviado: 28 Mai 2017 18:37
por JoséQuintas
Como NFCe utiliza o mesmo manual da NFe, acredito que não precise alterar nada.

Mas a classe não tem Danfe pra NFCe, apenas um PDF com QRCode, só pra servir como ponto inicial.

Uso da classesefaz

Enviado: 28 Mai 2017 18:53
por MSDN
Ok Quintas, obrigado pela dica !
Como ainda não tenho certificado pra testar, vou esperar um pouco e testar em um cliente, em seguida reporto aqui os resultados.
Caso vc ou outra pessoa pudesse criar um exemplo simples mas de acordo com o que se usa no dia-a-dia (aquele exemplo da classe é simples demais...desculpe), já ajuda muito quem quiser usar o projeto, mostrando como e quando chamar as rotinas, da mesma forma que fiz quando disponibilizei o exemplo SUPER na distribuição da MiniGUI Extended.

Abraços