SEND - DISP_E_MEMBERNOTFOUND

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

cMach
Usuário Nível 1
Usuário Nível 1
Mensagens: 23
Registrado em: 21 Out 2019 08:18
Localização: rio de janeiro

SEND - DISP_E_MEMBERNOTFOUND

Mensagem por cMach »

Bom dia Pessoal,
Sou novo no harbour e estou com uma dúvida que talvez vcs possam me ajudar.
Estou tentando enviar arquivo no formato "Txt" via requisição http. Meu programa gera o arquivo no formato texto e joga pra memoria utilizando o MemoRead. Em seguida, crio um objeto MSXML2.ServerXMLHTTP para funcionar com uma API para conexão com o destinatário. A conexão está sendo estabelecida, mas apresenta o seguinte erro:

Description .......: DISP_E_MEMBERNOTFOUND
Operation .........: SEND

Segue parte do codigo :

var = MemoRead(file) //o file é um arquivo texto
oServer:=CreateObject( "MSXML2.ServerXMLHTTP")
oServer:Open( "POST", 'aqui o endereço http de destino...' , .f. )
oServer:setRequestHeader( "cabeçalho" , "text/txt" )
oServer:Send(var)

grato.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

SEND - DISP_E_MEMBERNOTFOUND

Mensagem por JoséQuintas »

cMach escreveu:Sou novo no harbour e estou com uma dúvida que talvez vcs possam me ajudar.
Vamos começar pelo seguinte, há 4 variações da "linguagem":

- Harbour 3.0 - a distribuição oficial parou no 3.0, muitos se confundem e começam por essa
- Harbour 3.2 - é o oficial, talvez o mais usado
- Harbour 3.4 - é uma distribuição que se separou do 3.2, contém algumas diferenças com relação ao 3.2
- XHarbour - é uma distribuição que se separou há muito tempo do Harbour, e seguiu caminho diferente

O erro que mencionou já apareceu por aqui, mas no XHarbour, e pela mensagem de erro parece ser ele mesmo.
No XHarbour há uma diferença ao usar o CreateObject(), conforme o conjunto de ferramentas que se usa junto com ele.

Eu não uso XHarbour, mas pelo que já comentaram por aqui, é substituir o CreateObject() por outra função.

Basicamente, ao usar oServer := CreateObject( "MSXML2.ServerXMLHTP" ), o vínculo não foi criado corretamente.
E ao tentar usar o objeto oServer, não encontrou o método Send() que deveria fazer parte dele.
Pode ser a exigência de versão "MSXML2.ServerXMLHTTP.6.0"

Também pode ser a necessidade de usar xhb_CreateObject() que está neste fonte
https://github.com/JoseQuintas/sefazcla ... object.prg

Como eu disse, eu NÃO uso XHarbour, pode testar o uso desta função ou aguardar a confirmação de alguém que use XHarbour e esteja mais familiarizado com isso.

Se está apenas começando, pode pensar na alternativa de usar o Harbour 3.2 ou 3.4.
Mas se seus fontes já tem dependência com XHarbour, pode ser mais viável apenas contornar esse problema e continuar com ele.

Comece testando a indicação de versão: "MSXML2.ServerXMLHTTP.6.0" ou "MSXML2.ServerXMLHTTP.5.0"
Depois o uso do fonte que mencionei.

Pode ser interessante também passar mais detalhes sobre o que está usando, se é apenas XHarbour, se é um download que veio com XHarbour junto, etc. assim quem usa igual pode dar uma ajuda mais direcionada ao seu conjunto de desenvolvimento.
É que isso pode ser diferente no Harbour, XHarbour, XHarbour com Fivewin, XHarbour com HMG, etc. por isso acaba precisando mais detalhes.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
cMach
Usuário Nível 1
Usuário Nível 1
Mensagens: 23
Registrado em: 21 Out 2019 08:18
Localização: rio de janeiro

SEND - DISP_E_MEMBERNOTFOUND

Mensagem por cMach »

Olá José, A versão que utilizo aqui é o xHarbour.
Vou dar uma olhada no link que colocou e já posto o resultado.
Desde já agradeço.
cMach
Usuário Nível 1
Usuário Nível 1
Mensagens: 23
Registrado em: 21 Out 2019 08:18
Localização: rio de janeiro

SEND - DISP_E_MEMBERNOTFOUND

Mensagem por cMach »

Olá,
Comece testando a indicação de versão:

"MSXML2.ServerXMLHTTP.6.0"
Mesmo erro...SEND - DISP_E_MEMBERNOTFOUND

"MSXML2.ServerXMLHTTP.5.0"
Operation .........: TOLEAUTO:NEW
[ 1] = Type: C Val: MSXML2.ServerXMLHTTP.5.0 [ 2] = Type: U [ 3] = Type: U
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

SEND - DISP_E_MEMBERNOTFOUND

Mensagem por Kapiaba »

Tente assim:

Código: Selecionar todos

FUNCTION Van_Server()

   LOCAL oServer

   //1) Criar o servidor
   #ifdef __XHARBOUR__  // xHarbour

      Try
         oServer := CreateObject( "MSXML2.ServerXMLHTTP.6.0" )
      Catch
         MsgInfo( 'Erro na Criação do Serviço' )
         RETURN NIL
      End

   #else  // Harbour

      Try
         oServer := win_OleCreateObject( "MSXML2.ServerXMLHTTP.5.0" )
      Catch
         MsgInfo( 'Erro na Criação do Serviço!', 'Atenção!' )
         RETURN NIL
      End

   #endif

   Try

      //2) Abrir o servidor
      oServer:Open( "POST", cWebService, .F. )             

      //3) Adicionar o request header
      oServer:SetRequestHeader("Content-Type","application/json")
      oServer:SetRequestHeader( "Username" , "&sUser")
      oServer:SetRequestHeader( "Password" , "&sPassword")

      oServer:Send()

      oServer:WaitForResponse( 10000 )

   Catch

      MsgInfo( 'Erro na conexão com o site!', 'Atenção!' )


   End

   // continua

RETURN Nil
Saudações.
cMach
Usuário Nível 1
Usuário Nível 1
Mensagens: 23
Registrado em: 21 Out 2019 08:18
Localização: rio de janeiro

SEND - DISP_E_MEMBERNOTFOUND

Mensagem por cMach »

Kapiaba,
Tentei da forma que voce enviou, alterando apenas o SEND() pois preciso enviar nele o arquivo texto.
Assim eu jogo para memoria com o memoread e envio no send.

arquivo = MemoRead(arq_txt)
..
send(arquivo)

Mas ainda ocorre o mesmo erro :
Description .......: DISP_E_MEMBERNOTFOUND
Operation .........: SEND

grato,
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

SEND - DISP_E_MEMBERNOTFOUND

Mensagem por JoséQuintas »

Kapiaba

Se não me engano você usa Fivewin

Consegue identificar se é o Fivewin que contém essa função corrigida, ou se é o XHarbour do Fivewin que está corrigido?

Talvez compilar com -p pra gerar o .ppo e ver no fonte se é o CreateObject(), ou se está direcionando pra outra função, seria um começo.

Dependendo do resultado, pode ser interessante distribuir o XHarbour do Fivewin - sem o Fivewin não seria pirataria.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

SEND - DISP_E_MEMBERNOTFOUND

Mensagem por Kapiaba »

.PPO gerado pelo xHarbour.

Código: Selecionar todos

FUNCTION _XmlQuery()

   LOCAL cURL := "https://www.google.com", ;
         cSaveAs := "c:\winapps\onasset\xml\inbox\",  lPass := .F.,  ;
         oProg := 0, oHttpSend2 := "", oHttp2, cHttpSend3 := "",     ;
         oHttp3,  cWinR, cWinResp := "", cTokenId := "",             ;
         cDateFrom := "", cDateTo := "", aTokenResponse := {}, nUpdate := 0

   cSaveAs += DTOS( DATE() ) + LEFT( TIME(), 2 ) + SUBSTR( TIME(), 4, 2 ) + RIGHT( TIME(), 2 ) + ".XML"

   Try
      oHttp2 := CreateObject( "MSXML2.ServerXMLHTTP.6.0" )
   Catch
      MsgInfo( "Erro na Criação do Serviço" )
      RETURN .F.
   End


   TRY
      oHttp2:Open( "POST", cURL, .F. )
      oHttp2:SetRequestHeader( "Content-Type", "application/json" )
      cHttpSend2 := "grant_type=client_credentials&client_id=x&client_secret=x"
      oHttp2:Send( cHttpSend2 )
      Sysrefresh()
      cWinResp := oHttp2:ResponseBody


      nPos   := AT( "ACCESS_TOKEN", UPPER( cWinResp ) )
      lStart := .F.

      FOR nX0 = nPos TO LEN( cWinResp )
         cChar := SUBSTR( cWinResp, nX0, 1 )
         IF cChar == ":"
            lStart := .T.
         ELSE
            IF cChar == ","
               EXIT
            ELSE
               IF lStart .AND. ( ! EMPTY( cChar ) )
                  IF cChar <> CHR( 34 )
                     cTokenId += cChar
                  ENDIF
               ENDIF
            ENDIF
         ENDIF

      NEXT


      cDate0    := DTOS( DATE() - 1 )
      cDate1    := DTOS( DATE() )
      nTime1    := VAL( LEFT( TIME(),2 ) ) - 23

      IF ( nTime1 < 1 )
         nTime1 := 0
      ENDIF

      cTime1    := RIGHT( "00" + LTRIM( STR(nTime1,9 ) ), 2 ) + SUBSTR( TIME(), 3 )
      cTime2    := TIME()
      cDateFrom := LEFT( cDate0, 4 ) + "-" + SUBSTR( cDate0, 5, 2 ) + "-" + RIGHT( cDate0, 2 ) + "T" + cTime1 + "Z"
      cDateTo   := LEFT( cDate1, 4 ) + "-" + SUBSTR( cDate1, 5, 2 ) + "-" + RIGHT( cDate1, 2 ) + "T" + cTime2 + "Z"
      cURL      := "https://xxx.com/yyy/1/zzz/000/devicereports?from=" + cDateFrom + "&to=" + cDateTo + "&page=1&pageSize=500"

   CATCH
      DbCloseAll()
      __Quit()
   END

   oHttp2 := NIL

   Try
      oHttp3 := CreateObject( "MSXML2.ServerXMLHTTP.6.0" )
   Catch
      MsgInfo( "Erro na Criação do Serviço" )
      RETURN .F.
   End

   oHttp3:Open( "GET", cURL, .F. )
   oHttp3:SetRequestHeader( "Content-Type", "application/json" )
   oHttp3:SetRequestHeader( "Authorization", "Bearer " + cTokenId )

   Sysrefresh()

   oHttp3 := NIL

RETURN ( nUpdate )
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

SEND - DISP_E_MEMBERNOTFOUND

Mensagem por JoséQuintas »

A função é a mesma.
Só falta saber de que LIB ela vém.
Se for do XHarbour, significaria que o XHarbour do Fivewin está corrigido diferente dos demais.

Não sei se dá pra testar fácil, adicionando só o que faz parte do XHarbour pra ver se está ok, e adicionando uma LIB por vez pra ver se vém de outro lugar.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

SEND - DISP_E_MEMBERNOTFOUND

Mensagem por Kapiaba »

Uso o xHarbour e o BCC74, daqui:

http://www.xharbour.org/

Abs
cMach
Usuário Nível 1
Usuário Nível 1
Mensagens: 23
Registrado em: 21 Out 2019 08:18
Localização: rio de janeiro

SEND - DISP_E_MEMBERNOTFOUND

Mensagem por cMach »

bom dia Colegas!

Mudei o CreateObject("Microsoft.XmlHttp") e o erro o DISP_E_MEMBERNOTFOUND parou.
Tanto o MSXML2.ServerXMLHTTP, quanto o MSXML2.ServerXMLHTTP.6.0 apresentavam o mesmo erro.
vou testar agora porq não tá trazendo retorno.
valeu pessoal
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

SEND - DISP_E_MEMBERNOTFOUND

Mensagem por JoséQuintas »

cMach escreveu:Mudei o CreateObject("Microsoft.XmlHttp") e o erro o DISP_E_MEMBERNOTFOUND parou.
Alterando maiúsculas/minúsculas? XmlHttp
Agora confundiu mais ainda.
Ficou diferente de tudo que existe.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

SEND - DISP_E_MEMBERNOTFOUND

Mensagem por JoséQuintas »

Existem algumas variações do componente:

MSXML2.XMLHTTP
Microsoft.XMLHTTP
MSXML2.ServerXMLHTP

Não me pergunte qual a diferença entre eles.
Mas em todos os manuais da Microsoft, todos aparecem como maiúscula a parte XMLHTTP.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

SEND - DISP_E_MEMBERNOTFOUND

Mensagem por Kapiaba »

Veja se ajuda:

Código: Selecionar todos

#include "fivewin.ch"
#include "dbcombo.ch"
#include "directry.ch"
#include "common.ch"
#include "hbclass.ch"
#include "objects.ch"
#include "hbxml.ch"
#include "hbcompat.ch"
#include "fileio.ch"

#define _MSXML2_DOMDocument          'MSXML2.DOMDocument.5.0'
#define _MSXML2_MXDigitalSignature   'MSXML2.MXDigitalSignature.5.0'
#define _MSXML2_XMLSchemaCache       'MSXML2.XMLSchemaCache.5.0'
#define _MSXML2_ServerXMLHTTP        'MSXML2.ServerXMLHTTP.5.0'

#define PROV_RSA_FULL           1
#define PROV_RSA_SIG            2
#define PROV_DSS                3
#define PROV_FORTEZZA           4
#define PROV_MS_EXCHANGE        5
#define PROV_SSL                6
#define PROV_RSA_SCHANNEL       12
#define PROV_DSS_DH             13
#define PROV_EC_ECDSA_SIG       14
#define PROV_EC_ECNRA_SIG       15
#define PROV_EC_ECDSA_FULL      16
#define PROV_EC_ECNRA_FULL      17
#define PROV_DH_SCHANNEL        18
#define PROV_SPYRUS_LYNKS       20
#define PROV_RNG                21
#define PROV_INTEL_SEC          22
#define PROV_REPLACE_OWF        23
#define PROV_RSA_AES            24

// Capicom store names
#define _CAPICOM_MEMORY_STORE                         0
#define _CAPICOM_LOCAL_MACHINE_STORE                  1
#define _CAPICOM_CURRENT_USER_STORE                   2
#define _CAPICOM_ACTIVE_DIRECTORY_USER_STORE          3
#define _CAPICOM_SMART_CARD_USER_STORE                4
 
// Capicom store open mode
#define _CAPICOM_STORE_OPEN_READ_ONLY                 0           // Abre repositorio do windows em modo leitura
#define _CAPICOM_STORE_OPEN_READ_WRITE                1
#define _CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED           2
#define _CAPICOM_STORE_OPEN_EXISTING_ONLY             128
#define _CAPICOM_STORE_OPEN_INCLUDE_ARCHIVED          256

// Capicom certificates find type enums
#define _CAPICOM_CERTIFICATE_FIND_SHA1_HASH           0
#define _CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME        1
#define _CAPICOM_CERTIFICATE_FIND_ISSUER_NAME         2
#define _CAPICOM_CERTIFICATE_FIND_ROOT_NAME           3
#define _CAPICOM_CERTIFICATE_FIND_TEMPLATE_NAME       4
#define _CAPICOM_CERTIFICATE_FIND_EXTENSION           5
#define _CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY   6
#define _CAPICOM_CERTIFICATE_FIND_APPLICATION_POLICY  7
#define _CAPICOM_CERTIFICATE_FIND_CERTIFICATE_POLICY  8
#define _CAPICOM_CERTIFICATE_FIND_TIME_VALID          9
#define _CAPICOM_CERTIFICATE_FIND_TIME_NOT_YET_VALID  10
#define _CAPICOM_CERTIFICATE_FIND_TIME_EXPIRED        11
#define _CAPICOM_CERTIFICATE_FIND_KEY_USAGE           12

#define _CAPICOM_DIGITAL_SIGNATURE_KEY_USAGE          0x00000080  // Permitir o uso da Chave Privada para assinatura Digital
#define _CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME 0           // Este atributo contém o tempo em que a assinatura foi criada.
#define _CAPICOM_INFO_SUBJECT_SIMPLE_NAME             0           // Retorna o nome de exibição do certificado.
#define _CAPICOM_ENCODE_BASE64                        0           // Os dados são guardados como uma string base64-codificado.
#define _CAPICOM_E_CANCELLED                          -2138568446 // A operação foi cancelada pelo usuário.
#define _CAPICOM_E_STORE_EMPTY                        -2138570191 // Enum que indica se o repositorio esta vazio
#define _CERT_KEY_SPEC_PROP_ID                        6
#define _CAPICOM_CERT_INFO_ISSUER_EMAIL_NAME          0
#define _SIG_KEYINFO                                  0 // 0 - NOKEYINFO ; 1- KEYVALUE ; 2- CERTIFICATES ; 4- PURGE
#define _CAPICOM_HASH_ALGORITHM_SHA1                  0 // algoritmo de criptografia SHA-1
#define DC_CALL_STD  0x0020


STATIC pastaEnv, pastaRet, pastaXSD, cXML, cFileName, cCertCN, oServerWS
STATIC cUrl, cSoapAct, bOleInitialized := .F.

FUNCTION EnviarConsulta( oRec )

   LOCAL cXml, cSoapAction, cWebservice, cOperation, cRetorno, cxlido
   LOCAL oXML

   cWebservice := "https://webservices.producaorestrita.esocial.gov.br/servicos/empregador/consultarloteeventos/WsConsultarLoteEventos.svc"
   cSoapAction := "http://www.esocial.gov.br/servicos/empregador/lote/eventos/envio/consulta/retornoProcessamento/v1_1_0/ServicoConsultarLoteEventos/ConsultarLoteEventos"
   cOperation  := "ConsultarLoteEventos"
	 
   cXml := '<eSocial xmlns="http://www.esocial.gov.br/schema/lote/eventos/envio/consulta/retornoProcessamento/v1_0_0">'
   cXml += '<consultaLoteEventos>'
   cXml += '<protocoloEnvio>1.2.201707.0000000000000056672</protocoloEnvio>'
   cXml += '</consultaLoteEventos>'
   cXml += '</eSocial>'
	  
   cXml := SoapEnvelope( cXml, cOperation ) //
	 
   oXML := TXMLDocument():New( cXml, HBXML_STYLE_NOESCAPE )
	 
   IF oXML:nError != HBXML_ERROR_NONE
      MsgAlert( "xml com problema " + Str( oXML:nError ) )
   ENDIF
	 
   cRetorno := MicrosoftXmlSoapPost( cXml, cSoapAction, cWebservice )

   MemoWrit( '.\retorno.xml', cRetorno )
	    
   MsgAlert( cRetorno )
	 
RETURN Nil
	 
FUNCTION MicrosoftXmlSoapPost( cXmlSoap, cSoapAction, cWebService )

   LOCAL oServer, oDOMDoc, oError
   LOCAL nCont
   LOCAL cRetorno := "*ERRO*", cXmlRetorno := ""
	 
   oServer := CreateObject( "MSXML2.ServerXMLHTTP" )
   oServer:Open( "POST", cWebService, .F. )
   oServer:SetRequestHeader( "SOAPAction", cSoapAction )
   oServer:SetRequestHeader( "Content-Type", "text/xml; charset=utf-8" )
	 
   oDOMDoc = CREATEOBJECT( "MSXML2.DOMDocument" )
	 
   oDOMDoc:async = .F.
   oDOMDoc:validateOnParse  = .T.
   oDOMDoc:resolveExternals := .F.
   oDOMDoc:preserveWhiteSpace = .T.
   oDOMDoc:LoadXML( cXmlSoap )

   IF oDOMDoc:parseError:errorCode <> 0
      MsgAlert( 'Erro: xML nao carregado' + CRLF + 'Erro: ' + ToString( oDOMDoc:parseError:Reason ) + ' Posição: ' + ToString( oDOMDoc:parseError:linepos ) )
      RETURN Nil
   ENDIF

   TRY
      oServer:send( oDOMDoc:xml )
   CATCH oError
      MsgAlert( 'Falha no envio do xML' )
      RETURN Nil
   END

   cRetorno := oServer:responseText
	 
   IF ValType( cRetorno ) == "C"
      cXmlRetorno := cRetorno
   ELSEIF cRetorno == NIL
      cXmlRetorno := "*ERRO*"
   ELSE
      cXmlRetorno := ""
      FOR nCont = 1 TO Len( cRetorno )
         cXmlRetorno += Chr( cRetorno[ nCont ] )
      NEXT
   ENDIF

RETURN cXmlRetorno
	 
FUNCTION ToString( xValue )

   RETURN iif( xValue == NIL, "", xValue )
	 
FUNCTION SoapEnvelope( cXml, cOperation )

   LOCAL cXmlEnvelope

   cMethod := "ConsultarLoteEventos"
   cXmlEnvelope := '<?xml version="1.0" encoding="utf-8"?>'
   cXmlEnvelope += '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://www.w3.org/2003/05/soap-envelope">'
   cXmlEnvelope += '<soap:Header/>'
   cXmlEnvelope += '<soap:Body>'
   cXmlEnvelope +=   cXml
   cXmlEnvelope += '</soap:Body>'
   cXmlEnvelope += '</soap:Envelope>'

   MemoWrit( '.\vai.xml', cXmlEnvelope )
	
RETURN cXmlEnvelope
	 
FUNCTION XmlTag( cNome, cConteudo )

   IF Empty( cConteudo )
      RETURN "<" + cNome + " />"
   ENDIF

RETURN "<" + cNome + ">" + cConteudo + "</" + cNome + ">"
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

SEND - DISP_E_MEMBERNOTFOUND

Mensagem por JoséQuintas »

Kapiaba escreveu:Veja se ajuda:
Pelo contrário, pode complicar mais ainda.
O Windows tem o XML 3.0, 4.0 e.... 6.0
A versão 5.0, que usamos pra nota eletrônica, só saiu com o Office, e não tem no Windows a não ser que seja instalada.

Código: Selecionar todos

MSXML2.ServerXMLHTTP.5.0
Esse daí dependeria de ter instalado o XML 5.0

Pra testes de uso geral, melhor testar com o 6.0
Ou, se possível, sem número de versão, para que seja selecionado automático conforme a necessidade.

Sobre aqueles outros componentes variados...

https://pt.switch-case.com/51019024
xmlhttp.png
Ele dá uma explicação técnica de problemas... e garante que é pra usar... o que ele teve problemas.
Só rindo mesmo....
Foi-se o tempo que internet resolvia dúvidas... agora parece que elas só aumentam.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder