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