Asesoria Web Servises

Re: Asesoria Web Servises

Postby thefull » Tue Feb 02, 2016 4:38 pm

Buenas

¿ Puedes mostrar los datos que te devuelve php ?
Si lo datos de login son correctos y dices que funciona, miraré de hacerlo funcionar con soapUI.

Pero no entiendo como te puede funcionar el ejemplo que pusistes en PHP, cuando el <login> no está correctamente cerrado.
Saludos
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
User avatar
thefull
 
Posts: 729
Joined: Fri Oct 07, 2005 7:42 am
Location: Barcelona

Re: Asesoria Web Servises

Postby wilsongamboa » Tue Feb 02, 2016 7:38 pm

Rafa primero gracias por tu interes
aca esta el codigo php que he podido hacer funcionar, con prueba error y ellos los desarrolladores me ayudaron
Code: Select all  Expand view
<?php
 require_once('lib/nusoap.php');

 $wsdlurl =  "http://69.20.52.167/eforce/wsInterfacesEc/InterfacesEc3.php?wsdl";
 $client = new nusoap_client($wsdlurl, 'wsdl');

 $fecha_desde = $argv[1];
 $fecha_hasta = $argv[2];
 $nRegistros  = $argv[3];


 $client->soap_defencoding = 'UTF-8';
 $client->decode_utf8 = true;

 $function = 'getDetallePedido';

 $cad = "<login>
    <servidorBaseDatos>www.ecom.com.co</servidorBaseDatos>
    <nombreBaseDatos>natsilepru</nombreBaseDatos>
    <usuarioBaseDatos>pedidos@natsilepru</usuarioBaseDatos>
    <claveBaseDatos>Ecom2015</claveBaseDatos>
    <fechaInicial>"
.$fecha_desde."</fechaInicial>
    <fechaFinal>"
.$fecha_hasta."</fechaFinal>
    <limiteRegistros>"
.$nRegistros."</limiteRegistros>
    <offset>0</offset>
   <login>"
;

 $params = array('parametros' => $cad);

 $result = $client->call($function,$params);
 $err = $client->getError();

 if ($err != "")
 {
  echo $err;
 }

 $array = json_decode($result);
 $file = fopen("his_pedi.txt","w");
 for ($i=0;$i<count($array);$i++)
 {
  //$codigocliente=$array[$i]->codigocliente;
  //$nombrecliente=$array[$i]->nombrecliente;

  echo $fecha_desde."->".$fecha_hasta.PHP_EOL;
  fwrite($file, $array[$i]->codigopedido.";".
                $array[$i]->codigoproducto.";".
                $array[$i]->cantidad.";".
                $array[$i]->valorunitario.";".
                $array[$i]->tipoproducto.";".
                $array[$i]->porcentajeiva.";".
                $array[$i]->porcentajedescuento.";".
                PHP_EOL );
 }
fclose($file);
?>


Este programa se lo invoca asi
"C:\Program Files\VertrigoServ\Php\php.exe " -- 2015-01-01 2016-31-01 100

los parametros de entrada son las dos fechas y el numero de registro
saludos
Wilson
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
User avatar
wilsongamboa
 
Posts: 548
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador

Re: Asesoria Web Servises

Postby wilsongamboa » Tue Feb 02, 2016 7:39 pm

Me olvide debes instalar la libreria nusoap bajandola desde sorceforge
saludos
Wilson
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
User avatar
wilsongamboa
 
Posts: 548
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador

Re: Asesoria Web Servises

Postby wilsongamboa » Tue Feb 02, 2016 7:46 pm

perdon la linea de comandos es

"C:\Program Files\VertrigoServ\Php\php.exe " -f prueba.php -- 2015-01-01 2016-31-01 100
saludos
Wilson
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
User avatar
wilsongamboa
 
Posts: 548
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador

Re: Asesoria Web Servises

Postby thefull » Wed Feb 03, 2016 9:11 am

Buenos dias

Sorry , pero si con soapUI no funciona, no puedo ver exactamente que ocurre..
Te pego la llamada que se hace desde soapUI, a ver si puedes comentarles DONDE esta error.
Según las especificaciones , que monta automaticamente sopaUI.

Code: Select all  Expand view

<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:getDetallePedido 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>2015-01-01</fechaInicial>
    <fechaFinal>2016-31-01</fechaFinal>
    <limiteRegistros>10</limiteRegistros>
    <offset>0</offset>
   </login></parametros>
      </urn:getDetallePedido>
   </soapenv:Body>
</soapenv:Envelope>
 
Saludos
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
User avatar
thefull
 
Posts: 729
Joined: Fri Oct 07, 2005 7:42 am
Location: Barcelona

Re: Asesoria Web Servises

Postby thefull » Wed Feb 03, 2016 10:43 am

Buenas

Esto no soluciona la cuestión anterior, ver exactamente que es lo que envia PHP, pero esta solución, otra más, lo que hace es no
depender de terceros, haciendo portable el codigo a otras plataformas, GNU/Linux, Android, etc..
usando simplemente las clases que nos provee Harbour.

Code: Select all  Expand view

#require "hbtip"
Funtion SendSoap()
    LOCAL oHttp, cResponse := ""
    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>]

    oHttp := TIPClientHTTP():new( "http://69.20.52.167/eforce/wsInterfacesEc/InterfacesEc3.php" )
    oHttp:nConnTimeout := 20000

    /* Connect to the HTTP server */
    IF ! oHttp:open( )
       Alert( "Connection error:", oHttp:lastErrorMessage() )
       RETURN ""
    ENDIF

    oHttp:hFields["Content-Type"] := "text/xml;charset=UTF-8"
    oHttp:hFields["Connection:"]   := "Keep-Alive"
    oHttp:hFields["SOAPAction:"]   := "urn:InterfazEc#getMarca"

    if oHttp:post( cXML )
      cResponse   := oHttp:readAll()
    endif  

    oHttp:close()

RETURN cResponse
 
Saludos
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
User avatar
thefull
 
Posts: 729
Joined: Fri Oct 07, 2005 7:42 am
Location: Barcelona

Re: Asesoria Web Servises

Postby wilsongamboa » Fri Feb 05, 2016 3:32 pm

Rafa muchas gracias por tus esfuerzos
Pues ami solo me ha funcionado con php
nunca he trabajado con php solo he armado algo simple que llama desde lineas de comandos y genera un .txt que leeré desde harbour con eso por el momento me es suficiente, me preocupa en adelante cuando tenga yo que grabar en el WS
saludos y gracias
Wilson
pd: He probado el ejemplo y siempre me devuelve el error servidorBaseDatos Incorrecto
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
User avatar
wilsongamboa
 
Posts: 548
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador

Previous

Return to Off Topic / Otros temas

Who is online

Users browsing this forum: No registered users and 7 guests