FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index Off Topic / Otros temas Asesoria Web Servises
Posts: 670
Joined: Wed Oct 19, 2005 06:41 PM
Asesoria Web Servises
Posted: Tue Jan 26, 2016 11:06 PM
Necesito comunicarme con un programa llamado ecom de la empresa Nestle
Alguien tiene alguna idea de como hacerlo

Los desarrolladores me pasaron un ejemplo en php

Code (fw): Select all Collapse
<?php
require_once('lib/nusoap.php');
 
$wsdlurl =  "http://69.20.52.167/eforce/wsInterfacesEc/InterfacesEc3.php?wsdl";
$client = new nusoap_client($wsdlurl, 'wsdl');
 
$client->soap_defencoding = 'UTF-8';
$client->decode_utf8 = true;
 
$function = 'getMarca';
 
$cad = "<login>
                  <servidorBaseDatos>www.ecom.com.co</servidorBaseDatos> 
                  <nombreBaseDatos>natsilepru</nombreBaseDatos> 
                  <usuarioBaseDatos>pedidos@natsilepru</usuarioBaseDatos> 
                  <claveBaseDatos>Ecom2015</claveBaseDatos> 
                  <fechaInicial>2016-01-01</fechaInicial>   
                  <fechaFinal>2016-01-30</fechaFinal>
                  <limiteRegistros>10</limiteRegistros> 
                  <offset>0</offset>
            <login>";
 
$params = array('parametros' => $cad);
 
$result = $client->call($function,$params);
$err = $client->getError();
 
if ($err != ""){
      echo $err;
}
 
for ($i=0;$i<sizeof($result);$i++){
      $codigomarca=$result[$i]['codigomarca'];
      $nombremarca=$result[$i]['nombremarca'];
     
      //aquí los insert en la bd
      echo "Codigo => ".$codigomarca." Nombre => ".$nombremarca."<br>";
}
 
 
?>


Podria alguien caritativo darme una mano o asesorarme con pago económico claro

saludos
Wilson
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Asesoria Web Servises
Posted: Wed Jan 27, 2016 10:59 AM

Wilson,

Aqui tienes un ejemplo de como usar un web service desarrollado por Rafa Carmona con Harbour:

viewtopic.php?f=33t=31621p=184517

&&

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 670
Joined: Wed Oct 19, 2005 06:41 PM
Re: Asesoria Web Servises
Posted: Wed Jan 27, 2016 11:30 AM

Master Antonio
muchas gracias
ya tengo donde mirar
saludos cordiales
Wilson

Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Posts: 670
Joined: Wed Oct 19, 2005 06:41 PM
Re: Asesoria Web Servises
Posted: Wed Jan 27, 2016 11:14 PM
estimado Antonio, con este codigo parece que ya se conecta pero me regresan los metodos como algo informativo, COMO ? le paso un parametro indicando el metodo que deseo me ejecute por ejemplo el metodo getClientes
Code (fw): Select all Collapse
PROCEDURE test_htip()

   LOCAL oHttp, hQuery, cResponse


   local cad := "<login> " + ;
                  "<servidorBaseDatos>www.ecom.com.co</servidorBaseDatos>"+;
                  "<nombreBaseDatos>natsilepru</nombreBaseDatos>"+;
                  "<usuarioBaseDatos>pedidos@natsilepru</usuarioBaseDatos>"+;
                  "<claveBaseDatos>Ecom2015</claveBaseDatos>"+;
                  "<fechaInicial>2016-01-01</fechaInicial>"+;
                  "<fechaFinal>2016-01-30</fechaFinal>"+;
                  "<limiteRegistros>10</limiteRegistros>"+;
                  "<offset>0</offset>"+;
                  "<login>"


   hQUery := { => }
   hb_HCaseMatch( hQuery, .F. )

   oHttp := TIPClientHTTP():New( "http://69.20.52.167/eforce/wsInterfacesEc/InterfacesEc3.php?wsdl", .T. )
   //hQuery[ "nombre" ]    := "THefull The BEST!"

   //cad = [<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">]

   hQuery[ "parametros" ]    := cad
   //hQuery[ "operation name"   ]    := 'getClientes'

   IF ! oHttp:open()
      ? "Error: oHttp:open(): " + oHttp:lastErrorMessage()
      RETURN
   ENDIF

   IF ! oHttp:post( hQuery )
      ? "Error: oHttp:post(): " + oHttp:lastErrorMessage()
   ENDIF

   cResponse  := oHttp:readAll()
   oHttp:close()
   hb_memowrit( 'log.log', cResponse )
   Alert( cResponse )

   RETURN


Gracias por escucharme
saludos
Wilson
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Asesoria Web Servises
Posted: Thu Jan 28, 2016 09:04 AM

Wilson,

Envíale un email a Rafa Carmona que seguro él sabrá ayudarte

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 731
Joined: Fri Oct 07, 2005 07:42 AM
Re: Asesoria Web Servises
Posted: Thu Jan 28, 2016 12:05 PM
Buenas
Hay muchos ejemplos en este foro que seguro te pondran ayudar.

Mi consejo es que si estas muy perdido, uses SOAPCLIENT de M$, ojo que no todos los webservices los soporta, alguno raro me he encontrado.
Por ejemplo, http://forums.fivetechsupport.com/viewtopic.php?f=6&t=28927&p=179416&hilit=soapclient&sid=e35bc76faa98d0ff1f6cc7c3e4b8f5f5&sid=e35bc76faa98d0ff1f6cc7c3e4b8f5f5#p179416

Saludos Cordiales
Saludos

Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
Posts: 670
Joined: Wed Oct 19, 2005 06:41 PM
Re: Asesoria Web Servises
Posted: Thu Jan 28, 2016 06:16 PM

Maestro The Full
gracias por la info
podrias tu asesorarme?
por el momento solo debo leer unos pedidos y traerlos del web services
saludos
Wilson

Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Posts: 731
Joined: Fri Oct 07, 2005 07:42 AM
Re: Asesoria Web Servises
Posted: Thu Jan 28, 2016 09:11 PM

Una de las herramientas imprescindible de usar para los ws es SoapUI, donde puedes ver por debajo de todo lo
que ocurre en la comunicación, lo que te da una idea de lo que va ocurriendo y como tienes que implementar muchas de las
llamadas.

También puedes mirar si es posible usar la libreria CURL , la cual esta implementada en Harbour.
Estoy casi convencido que lo que buscas hacer, alguien en PHP lo ha realizado. O VisualBasic , seguramente te servirá.

Si tengo un poco de tiempo, hacer si te monto un ejemplo simple con esa wsd.

Saludos

Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
Posts: 670
Joined: Wed Oct 19, 2005 06:41 PM
Re: Asesoria Web Servises
Posted: Thu Jan 28, 2016 09:43 PM

Gracias Master te lo agradecere mucho
cuesta engancharse a estos temas
saludos cordiales

Wilson

Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Posts: 731
Joined: Fri Oct 07, 2005 07:42 AM
Re: Asesoria Web Servises
Posted: Tue Feb 02, 2016 09:18 AM
Buenas Wilson

Te dejo 2 implementaciones , una con SOAPClient, no lo he podido probar porque no me funciona SOAP en mi W7 64 y otro usando peticion directo por http;

Vesion SoapClient, no probado.
Code (fw): Select all Collapse
/***************************************************************************/
function testWilson()
   Local cValue := ""
   Local oSoapClient
   Local lOk
   Local cDominio_WebServices := "http://69.20.52.167/eforce/wsInterfacesEc/InterfacesEc3.php?wsdl"
   Local cad := [<login> ]+;
                [  <servidorBaseDatos>www.ecom.com.co</servidorBaseDatos>]+;
                [  <nombreBaseDatos>natsilepru</nombreBaseDatos>]+;
                [  <usuarioBaseDatos>pedidos@natsilepru</usuarioBaseDatos>]+;
                [  <claveBaseDatos>Ecom2015</claveBaseDatos>]+;
                [  <fechaInicial>2016-01-01</fechaInicial>  ]+;
                [  <fechaFinal>2016-01-30</fechaFinal>]+;
                [  <limiteRegistros>10</limiteRegistros>]+;
                [  <offset>0</offset>]+;
                [  </login> ] 

   lOk := .T.
   oSoapClient := NIL 
   
   // Vamos a intentar conectarnos a SOAP30 y si no SOAP
   try
//      oSoapClient  := CreateObject( "MSSOAP.SoapClient30" )  // Conecta a SOAP 3.0
      oSoapClient  := CreateObject( "MSSOAP.SoapConector30" )  // Conecta a SOAP 3.0
   catch                                                       // Si falla, conecta a SOAP
      try
          oSoapClient  := CreateObject( "MSSOAP.SoapClient" )
       catch
          cValue := "No esta disponible SOAPCLIENT"
          Alert( cValue )
         lOk := .F.
       end
   end

   if lOk
      try
         alert( "msSoapInit")
         oSoapClient:msSoapInit( cDominio_WebServices )
         alert( "Iniciado")
         try
         cValue := oSoapClient:GetMarca( cad )
         catch
            cValue := oSOAPClient:faultString + Hb_OsNewLine() + oSOAPClient:detail
            lOk := .F.
         end
      catch
          cValue := "Conexion:"+ oSOAPClient:faultString + Hb_OsNewLine() + oSOAPClient:detail
          lOk := .F.
      end
   endif

   Alert( cValue )
   oSoapClient := NIL
   hb_gcall( .T. )

return cValue


Por POST

Code (fw): Select all Collapse
FUNCTION testWilson_2()
    Local oHttp
    Local cDominio_WebServices := "http://69.20.52.167/eforce/wsInterfacesEc/InterfacesEc3.php"

    Local cXml := [<?xml version="1.0" encoding="UTF-8"?> ]+;
    [<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:InterfazEc">]+;
    [   <soapenv:Header/>]+;
    [   <soapenv:Body>]+;
    [      <urn:getMarca soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">]+;
    [         <parametros xsi:type="xsd:string"><login>]+;
    [                  <servidorBaseDatos>www.ecom.com.co</servidorBaseDatos>]+;
    [                  <nombreBaseDatos>natsilepru</nombreBaseDatos>]+;
    [                  <usuarioBaseDatos>pedidos@natsilepru</usuarioBaseDatos>]+;
    [                  <claveBaseDatos>Ecom2015</claveBaseDatos>]+;
    [                  <fechaInicial>2016-01-01</fechaInicial>  ]+;
    [                  <fechaFinal>2016-01-30</fechaFinal>]+;
    [                  <limiteRegistros>10</limiteRegistros>]+;
    [                  <offset>0</offset>]+;
    [            </login></parametros>]+;
    [     </urn:getMarca>]+;
    [   </soapenv:Body>]+;
    [ </soapenv:Envelope>]


    try
      oHttp := CreateObject( "MSXML2.XMLHTTP" )
    catch e
         ? "Error de creacion"
    end

    oHttp:Open( "POST", cDominio_WebServices, .F. )
    ohttp:SetRequestHeader("Content-Type" ,"text/xml;charset=UTF-8" )
    ohttp:SetRequestHeader( "SOAPAction" , "urn:InterfazEc#getMarca" )
    oHttp:SetRequestHeader( "Connection:", "Keep-Alive" )
    oHttp:SetRequestHeader( "Content-length: ", Str( len( cXml ) ) )

    hFile := FCreate( "entrada.xml" )
    If hFile = -1
       MsgStop( "No se pudo abrir el fichero" +  "entrada.xml" )
       return nil
    endif
    Fwrite( hFile, cXMl  )
    fClose( hFile )

    oHttp:Send( cXml )

    alert( oHttp:responseText )
    hFile := FCreate( "salida.xml" )

    If hFile = -1
       MsgStop( "No se pudo abrir el fichero" +  "salida.xml" )
       return nil
    endif
    Fwrite( hFile, oHttp:responseText  )
    fClose( hFile )

RETURN NIL


Devuelve lo mismo que SOAPui, por lo tanto, todo correcto
Espero que esto te ayude en el camino :-)

Saludos Cordiales


Saludos Cordiales
Saludos

Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Asesoria Web Servises
Posted: Tue Feb 02, 2016 09:44 AM

gracias Rafa :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 670
Joined: Wed Oct 19, 2005 06:41 PM
Re: Asesoria Web Servises
Posted: Tue Feb 02, 2016 10:14 AM

Rafa muchisimas gracias
ya lo voy a probar
saludos cordiales

Wilson
pd: tengo problemas con CHrome y estos foros, ya no me deja ingresar, estoy ingresando por Internet Explorer

Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Asesoria Web Servises
Posted: Tue Feb 02, 2016 01:20 PM

Limpia las cookies del sitio, a mi me paso lo mismo

Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 670
Joined: Wed Oct 19, 2005 06:41 PM
Re: Asesoria Web Servises
Posted: Tue Feb 02, 2016 04:07 PM

Cristobal
muchas gracias
eso era
saludos
Wilson

Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Posts: 670
Joined: Wed Oct 19, 2005 06:41 PM
Re: Asesoria Web Servises
Posted: Tue Feb 02, 2016 04:23 PM
Continuando
Probando con el metodo Post ya que el soap me da error
me sale
Code (fw): Select all Collapse
                              <?xml version="1.0"
                   encoding="ISO-8859-1"?><SOAP-ENV:Envelope
          xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
                 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><n
            s1:getMarcaResponse xmlns:ns1="urn:InterfazEc"><return
              xsi:type="xsd:string">servidorBaseDatos Incorrecto
     </return></ns1:getMarcaResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>

sin embargo con el programa php y los mismos parametros si me sale bien
sigo investigando, y Rafa si pudieras escribir algo generico de coneccion con web services, le pones un precio y creo que saldremos muchos adelante, estos trabajos con complementarios para nuestros sistemas, si logro algo pues lo estare posteando
gracias por su ayuda
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com