Asesoria Web Servises

User avatar
wilsongamboa
Posts: 439
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador

Asesoria Web Servises

Post by wilsongamboa »

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: Select all

<?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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Asesoria Web Servises

Post by Antonio Linares »

Wilson,

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

http://forums.fivetechsupport.com/viewt ... 1&p=184517
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
wilsongamboa
Posts: 439
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador

Re: Asesoria Web Servises

Post by wilsongamboa »

Master Antonio
muchas gracias
ya tengo donde mirar
saludos cordiales
Wilson
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
User avatar
wilsongamboa
Posts: 439
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador

Re: Asesoria Web Servises

Post by wilsongamboa »

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: Select all

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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Asesoria Web Servises

Post by Antonio Linares »

Wilson,

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

Antonio Linares
www.fivetechsoft.com
User avatar
thefull
Posts: 720
Joined: Fri Oct 07, 2005 7:42 am
Location: Barcelona
Contact:

Re: Asesoria Web Servises

Post by thefull »

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/viewt ... f5#p179416

Saludos Cordiales
Saludos
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
User avatar
wilsongamboa
Posts: 439
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador

Re: Asesoria Web Servises

Post by wilsongamboa »

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
User avatar
thefull
Posts: 720
Joined: Fri Oct 07, 2005 7:42 am
Location: Barcelona
Contact:

Re: Asesoria Web Servises

Post by thefull »

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__)
User avatar
wilsongamboa
Posts: 439
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador

Re: Asesoria Web Servises

Post by wilsongamboa »

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

Wilson
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
User avatar
thefull
Posts: 720
Joined: Fri Oct 07, 2005 7:42 am
Location: Barcelona
Contact:

Re: Asesoria Web Servises

Post by thefull »

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: Select all

/***************************************************************************/
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: Select all


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
Last edited by thefull on Tue Feb 02, 2016 10:02 am, edited 1 time in total.
Saludos
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Asesoria Web Servises

Post by Antonio Linares »

gracias Rafa :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
wilsongamboa
Posts: 439
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador

Re: Asesoria Web Servises

Post by wilsongamboa »

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
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Asesoria Web Servises

Post by cnavarro »

Limpia las cookies del sitio, a mi me paso lo mismo
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
wilsongamboa
Posts: 439
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador

Re: Asesoria Web Servises

Post by wilsongamboa »

Cristobal
muchas gracias
eso era
saludos
Wilson
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
User avatar
wilsongamboa
Posts: 439
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador

Re: Asesoria Web Servises

Post by wilsongamboa »

Continuando
Probando con el metodo Post ya que el soap me da error
me sale

Code: Select all

                              <?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
Post Reply