Ir al contenido


Foto

Llamar a 2 webservices en un cliente


  • Por favor identifícate para responder
No hay respuestas en este tema

#1 giulichajari

giulichajari

    Advanced Member

  • Miembros
  • PipPipPip
  • 477 mensajes

Escrito 20 agosto 2014 - 10:25

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.