Jump to content


Photo

Llamar a 2 webservices en un cliente


  • Please log in to reply
No replies to this topic

#1 giulichajari

giulichajari

    Advanced Member

  • Miembros
  • PipPipPip
  • 477 posts

Posted 20 August 2014 - 10:25 PM

Hola como veran tengo varios hilos abiertos con el tema del webservice.

El problema que se me presenta ahora es que tengo un negocio con 3 sucursales, entonces tengo un webservice en lan en cada sucursal por si se corta internet, es decir la conexion a un webservice central(que tambien modele).

Ahora bien, si hay internet por ejemplo, y se produce una compra debo registrar la misma en el servidor central y en el de la sucursal. Primero como es sabido se deben instanciar las clases TRemotable, he creado 2 clases iguales para el ticket dado que son los mismos datos, en tablas iguales (para esto tengo una parte de la base de datos: articulos clientes y tickets, distribuida o copiada).



delphi
  1. procedure TForm3.Button4Click(Sender: TObject);
  2. var
  3. ticket:Isucursales1.Tticket;
  4. venta:Isucursales1.Tventa;
  5. comprador:Isucursales1.Tcliticket;
  6. filas:integer;
  7. x:integer;
  8. begin
  9.  
  10.       ticket:=Isucursales1.Tticket.Create;
  11.       venta:=Isucursales1.Tventa.Create;
  12.       comprador:=Isucursales1.Tcliticket.Create;
  13.         with ticket do
  14.           begin
  15.  
  16.           importe:=Grillaticket.DataSource.DataSet['total'];
  17.             fechae:=FormatDateTime('yyyy/mm/dd',now());
  18.             horae:=FormatDateTime('hh:mm:ss', now);
  19.             idsucursal:=1;
  20.           end;
  21.           GetIsucursales.hacerticket(ticket);
  22.         //  GetIferreteria.hacerticket(ticket);
  23.  
  24.           filas:=Grillaticket.DataSource.DataSet.RecordCount;
  25.           with Grillaticket.DataSource.DataSet do
  26.             begin
  27.  
  28.               First;
  29.               for x := 1 to filas do
  30.                   begin
  31.  
  32.                     with venta do
  33.                           begin
  34.                            
  35.                             idproducto:=Grillaticket.DataSource.DataSet['idproducto'];
  36.                             cantidad:=Grillaticket.DataSource.DataSet['cantidad'];
  37.                           end;
  38.                           GetIsucursales.ventas(venta);
  39.                           Next;
  40.                   end;
  41.  
  42.  
  43.                 end;
  44.             if Form3.dsfactura.FieldByName('idcliente').AsInteger <> null then
  45.               begin
  46.                 comprador.idc:=Form3.dsfactura.FieldByName('idcliente').AsInteger;
  47.  
  48.                 GetIsucursales.asociarcliente(comprador);
  49.               end;
  50.               Grillaticket.DataSource.DataSet.Delete;
  51.  
  52.  
  53. end;




Como veran comente la linea        //  GetIferreteria.hacerticket(ticket);

Es correcto hacer esto? porque podria hacer que al registrar un nuevo ticket en "local" registrarlo en el "servicio central", pero como puedo saber en el central cuando se registra el ticket? Para esto ultimo incluiria el fichero wsdl del central en la aplicacion servidor local.

Espero haber sido claro...
Saludos
  • 0




IP.Board spam blocked by CleanTalk.