Ir al contenido


Foto

[RESUELTO] Delphi 7 Consumiento servicios web en java. Todo un show :S


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

#21 jorgeu

jorgeu

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 179 mensajes
  • LocationMaracaibo

Escrito 05 mayo 2011 - 03:19

Quisiera poder ayudarle pero no ya no está disponible el servicio
  • 0

#22 JuanPalmaSoft

JuanPalmaSoft

    Advanced Member

  • Miembros
  • PipPipPip
  • 76 mensajes
  • LocationDistrito Federal

Escrito 05 mayo 2011 - 03:40

Gracias

de eso me di cuenta porque estaba probando el metodo autenticar y me dio problemas y cuando fui al sitio a verlo no estaba activo.

de hecho ya defini todas las variables de las funciones como clases, mi temor siempre fue que yo hicieras las definiciones y despues no se entendieran mi aplicacion y el web services.
  • 0

#23 JuanPalmaSoft

JuanPalmaSoft

    Advanced Member

  • Miembros
  • PipPipPip
  • 76 mensajes
  • LocationDistrito Federal

Escrito 09 mayo 2011 - 10:39

saludos

me da parametros incorrectos cuando no defino RegisterInvokeOptions ioliteral  o no me retorna valores cuando autentifico. es decir esta hablando con el web services, alguien sabe de alguna herramienta para ver como es el XML que se envia y el que se responde, tengo win 7 y depolphi 7.

gracias


  • 0

#24 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 10 mayo 2011 - 07:41

saludos

me da parametros incorrectos cuando no defino RegisterInvokeOptions ioliteral  o no me retorna valores cuando autentifico. es decir esta hablando con el web services, alguien sabe de alguna herramienta para ver como es el XML que se envia y el que se responde, tengo win 7 y depolphi 7.

gracias


Yo utilizo soapUI para probar los webservice, lo puedes bajar desde aquí, intenté consumir el webservice de que utilizas pero sin conocer el usuario y contraseña, pues no me deja avanzar, ya te darás cuenta el formato del XML que requieres.

Salud OS
  • 0

#25 JuanPalmaSoft

JuanPalmaSoft

    Advanced Member

  • Miembros
  • PipPipPip
  • 76 mensajes
  • LocationDistrito Federal

Escrito 10 mayo 2011 - 09:07

usuario pruebasWS
pass pruebasWS

realmente lo que no me esta retortando nada, al parecer valores en bkanco o null. porque en realidad se esta conectando al web service, no sera que debo actualziar algo del delphi 7? y he hecho todo lo que he encontrado en las doc que ustedes toienen  en susu sitios pero nada.

creo que publique las .pas. pero te la puedio enviar a lo mejor te das cuenta de algo que no tengo o esta de mas.

si necesitan algo que se comente sobre triggers, store procedure para SQL seevre 2000 o firebird 1.5 tengo algo de experiencia. al igual que sistemas de RRHH y Nominas.

Gracias



  • 0

#26 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 10 mayo 2011 - 09:16

Con esos datos si me da el token en la función Autenticar.

Token = 'iiw2BkqTP6bwQhlRTPqUKhKKPIaD59T6ybcp40eexStu......'

Voy a hacer unas pruebas con mi delphi y te comento que hay que hacer.

Salud OS

Edito: ....... en la tarde/noche de hoy (GMT-6)
  • 0

#27 JuanPalmaSoft

JuanPalmaSoft

    Advanced Member

  • Miembros
  • PipPipPip
  • 76 mensajes
  • LocationDistrito Federal

Escrito 10 mayo 2011 - 09:26

esto lo haces con el soft  que me enviates?

aqui te envio lo que me genero delphi. cuando consumi el web services, las clases las tuve que generar yo, al igual que los registros  de las clases en la implementación.

Gracias.



delphi
  1. // ************************************************************************ //
  2. // The types declared in this file were generated from data read from the
  3. // WSDL File described below:
  4. // WSDL    : [url=https://forcogsa.dyndns.org:8081/WSTimbrado/WSForcogsaService?wsdl]https://forcogsa.dyndns.org:8081/WSTimbrado/WSForcogsaService?wsdl[/url]
  5. // Encoding : UTF-8
  6. // Codegen  : [wfDebug,wfUnwindLiteralParameters,wfUseSerializerClassForAttrs]
  7. // Version  : 1.0
  8. // (09/05/2011 23:16:17 - 1.33.2.5)
  9. // ************************************************************************ //
  10.  
  11. unit WSForcogsaService;
  12.  
  13. interface
  14.  
  15. uses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns;
  16.  
  17. type
  18.  
  19.   // ************************************************************************ //
  20.   // The following types, referred to in the WSDL document are not being represented
  21.   // in this file. They are either aliases[list]
  22. [*] of other types represented or were referred
  23. [/list]
  24.   // to but never[!] declared in the document. The types from the latter category
  25.   // typically map to predefined/known XML or Borland types; however, they could also
  26.   // indicate incorrect WSDL documents that failed to declare or import a schema type.
  27.   // ************************************************************************ //
  28.   // !:Timbrar        - "[url=http://wservicios/]http://wservicios/[/url]"
  29.   // !:TimbrarResponse - "[url=http://wservicios/]http://wservicios/[/url]"
  30.   // !:Autenticar      - "[url=http://wservicios/]http://wservicios/[/url]"
  31.   // !:AutenticarResponse - "[url=http://wservicios/]http://wservicios/[/url]"
  32.   // !:Cancelacion    - "[url=http://wservicios/]http://wservicios/[/url]"
  33.   // !:CancelacionResponse - "[url=http://wservicios/]http://wservicios/[/url]"
  34.  
  35.  
  36.   // ************************************************************************ //
  37.   // Namespace : [url=http://wservicios/]http://wservicios/[/url]
  38.   // transport : [url=http://schemas.xmlsoap.org/soap/http]http://schemas.xmlsoap.org/soap/http[/url]
  39.   // style    : document
  40.   // binding  : WSForcogsaPortBinding
  41.   // service  : WSForcogsaService
  42.   // port      : WSForcogsaPort
  43.   // URL      : [url=https://forcogsa.dyndns.org:8081/WSTimbrado/WSForcogsaService]https://forcogsa.dyndns.org:8081/WSTimbrado/WSForcogsaService[/url]
  44.   // ************************************************************************ //
  45.   // Definicion de las clases
  46.   TFolios              = class;
  47.   Timbrar              = class;
  48.   TimbrarResponse      = class;
  49.   Autenticar            = class;
  50.   AutenticarResponse    = class;
  51.   Cancelacion          = class;
  52.   CancelacionResponse  = class;
  53.  
  54.   ArrayFolios = array of WideString;
  55.   ArrayFoliosCancelados = array  of TFolios;
  56.  
  57.   TFolios = class
  58.   private
  59.     FcodEstatus: WideString;
  60.     Ffolios: ArrayFoliosCancelados;
  61.     Fmensaje: WideString;
  62.   published
  63.     property codEstatus: WideString read FcodEstatus write FcodEstatus;
  64.     property folios: ArrayFoliosCancelados read Ffolios write Ffolios;
  65.     property mensaje: WideString read Fmensaje write Fmensaje;
  66.   end;
  67.  
  68.   Timbrar = class(TRemotable)
  69.   private
  70.     Fcfd: WideString;
  71.     Ftoken: WideString;
  72.   public
  73.   published
  74.     property cfd: WideString read Fcfd write Fcfd;
  75.     property token: WideString read Ftoken write Ftoken;
  76.   end;
  77.  
  78.   TimbrarResponse = class(TRemotable)
  79.   private
  80.     Fcfdi: WideString;
  81.     Fcodigo: WideString;
  82.     Fmensaje: WideString;
  83.   public
  84.   published
  85.     property cfdi: WideString read Fcfdi write Fcfdi;
  86.     property codigo: WideString read Fcodigo write Fcodigo;
  87.     property mensaje: WideString read Fmensaje write Fmensaje;
  88.   end;
  89.  
  90.   Autenticar = class(TRemotable)
  91.   private
  92.     Fusuario: WideString;
  93.     Fcontrasena: WideString;
  94.   public
  95.   published
  96.     property usuario: WideString read Fusuario write Fusuario;
  97.     property contrasena: WideString read Fcontrasena write Fcontrasena;
  98.   end;
  99.  
  100.   AutenticarResponse = class(TRemotable)
  101.   private
  102.     Fmensaje: WideString;
  103.     Ftoken: WideString;
  104.   public
  105.   published
  106.     property mensaje: WideString read Fmensaje write Fmensaje;
  107.     property token: WideString read Ftoken write Ftoken;
  108.   end;
  109.  
  110.   Cancelacion = class(TRemotable)
  111.   private
  112.     FrfcEmisor: WideString;
  113.     Ffecha: WideString;
  114.     Ffolios: ArrayFolios;
  115.     Ftoken: WideString;
  116.   public
  117.   published
  118.     property rfcEmisor: WideString read FrfcEmisor write FrfcEmisor;
  119.     property fecha: WideString read Ffecha write Ffecha;
  120.     property folios: ArrayFolios read Ffolios write Ffolios;
  121.     property token: WideString read Ftoken write Ftoken;
  122.   end;
  123.  
  124.   CancelacionResponse = class(TRemotable)
  125.   private
  126.     FcodEstatus: WideString;
  127.     Ffolios: ArrayFoliosCancelados;
  128.     Fmensaje: WideString;
  129.   public
  130.   published
  131.     property codEstatus: WideString read FcodEstatus write FcodEstatus;
  132.     property folios: ArrayFoliosCancelados read Ffolios write Ffolios;
  133.     property mensaje: WideString read Fmensaje write Fmensaje;
  134.   end;
  135.  
  136.   WSForcogsa = interface(IInvokable)
  137.   ['{70F39910-ABEF-85D4-DD5A-C1134AD30474}']
  138.     function  Timbrar(const parameters: Timbrar): TimbrarResponse; stdcall;
  139.     function  Autenticar(const parameters: Autenticar): AutenticarResponse; stdcall;
  140.     function  Cancelacion(const parameters: Cancelacion): CancelacionResponse; stdcall;
  141.   end;
  142.  
  143. function GetWSForcogsa(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): WSForcogsa;
  144.  
  145.  
  146. implementation
  147.  
  148. function GetWSForcogsa(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): WSForcogsa;
  149. const
  150.   defWSDL = '[url=https://forcogsa.dyndns.org:8081/WSTimbrado/WSForcogsaService?wsdl';]https://forcogsa.dyndns.org:8081/WSTimbrado/WSForcogsaService?wsdl';[/url]
  151.   defURL  = '[url=https://forcogsa.dyndns.org:8081/WSTimbrado/WSForcogsaService';]https://forcogsa.dyndns.org:8081/WSTimbrado/WSForcogsaService';[/url]
  152.   defSvc  = 'WSForcogsaService';
  153.   defPrt  = 'WSForcogsaPort';
  154. var
  155.   RIO: THTTPRIO;
  156. begin
  157.   Result := nil;
  158.   if (Addr = '') then
  159.   begin
  160.     if UseWSDL then
  161.       Addr := defWSDL
  162.     else
  163.       Addr := defURL;
  164.   end;
  165.   if HTTPRIO = nil then
  166.     RIO := THTTPRIO.Create(nil)
  167.   else
  168.     RIO := HTTPRIO;
  169.   try
  170.     Result := (RIO as WSForcogsa);
  171.     if UseWSDL then
  172.     begin
  173.       RIO.WSDLLocation := Addr;
  174.       RIO.Service := defSvc;
  175.       RIO.Port := defPrt;
  176.     end else
  177.       RIO.URL := Addr;
  178.   finally
  179.     if (Result = nil) and (HTTPRIO = nil) then
  180.       RIO.Free;
  181.   end;
  182. end;
  183.  
  184.  
  185. initialization
  186.   InvRegistry.RegisterInterface(TypeInfo(WSForcogsa), '[url=http://wservicios/',]http://wservicios/',[/url] 'UTF-8');
  187.   InvRegistry.RegisterDefaultSOAPAction(TypeInfo(WSForcogsa), '');
  188.   InvRegistry.RegisterInvokeOptions(TypeInfo(WSForcogsa), ioLiteral);
  189.   RemClassRegistry.RegisterXSClass(Autenticar, '[url=http://wservicios/',]http://wservicios/',[/url] 'Autenticar');
  190.   RemClassRegistry.RegisterXSClass(AutenticarResponse, '[url=http://wservicios/',]http://wservicios/',[/url] 'AutenticarResponse');
  191.   RemClassRegistry.RegisterXSClass(Timbrar, '[url=http://wservicios/',]http://wservicios/',[/url] 'Timbrar');
  192.   RemClassRegistry.RegisterXSClass(TimbrarResponse, '[url=http://wservicios/',]http://wservicios/',[/url] 'TimbrarResponse');
  193.   RemClassRegistry.RegisterXSClass(Cancelacion, '[url=http://wservicios/',]http://wservicios/',[/url] 'Cancelacion');
  194.   RemClassRegistry.RegisterXSClass(CancelacionResponse, '[url=http://wservicios/',]http://wservicios/',[/url] 'CancelacionResponse');



end.

  • 0

#28 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 10 mayo 2011 - 09:43

esto lo haces con el soft  que me enviates?

aqui te envio lo que me genero delphi. cuando consumi el web services, las clases las tuve que generar yo, al igual que los registros  de las clases en la implementación.

Gracias.


Si, lo he recuperado con el soft que te comenté, mis primeras pruebas las hice como tú, generando las classes Remotables, pero tengo una idea que pìenso nos puede ayudar y que voy a probar cuando llegue a casa, te dejo saber los resultados.

Salud OS
  • 0

#29 JuanPalmaSoft

JuanPalmaSoft

    Advanced Member

  • Miembros
  • PipPipPip
  • 76 mensajes
  • LocationDistrito Federal

Escrito 10 mayo 2011 - 09:53

ok gracias pra ami son temas pero muy nuevos, nunca los habia explotado solo me dedique a la gestion de RRHH, cartografia digital desde builder,  en lo que les pueda aportar me dicen y no hay problemas,  porque donde estaba nunca habia una internet para estas cosas, vengo de cuba solo llevo aqui en mexico 6 meses,

gracias por todo.
  • 0

#30 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 10 mayo 2011 - 10:06

ok gracias pra ami son temas pero muy nuevos, nunca los habia explotado solo me dedique a la gestion de RRHH, cartografia digital desde builder,  en lo que les pueda aportar me dicen y no hay problemas,  porque donde estaba nunca habia una internet para estas cosas,


.....vengo de cuba solo llevo aqui en mexico 6 meses,


Pues bienvenido a México y espero que logremos solucionar este asunto que estoy seguro va a servir a muchos, el tema de los webservices para la facturacion electrónica es lo de hoy por estas latitudes :D

Salud OS
  • 0

#31 JuanPalmaSoft

JuanPalmaSoft

    Advanced Member

  • Miembros
  • PipPipPip
  • 76 mensajes
  • LocationDistrito Federal

Escrito 10 mayo 2011 - 12:54

ya he avanzado  en algo

ya logro  la pregunta

<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlso...soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/20...chema-instance" xmlns:SOAP-ENC="http://schemas.xmlso...><SOAP-ENV:Body xmlns:NS1="http://wservicios/">...<NS1:Autenticar id="1" xsi:type="NS1:Autenticar"><usuario xsi:type="xsd:string">pruebasWS</usuario><contrasena xsi:type="xsd:string">pruebasWS</contrasena></NS1:Autenticar><parameters href="#1"/></SOAP-ENV:Body></SOAP-ENV:Envelope>

y me esta respondiendo bien el token

<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlso...enticarResponse xmlns:ns2="http://wservicios/">...y></S:Envelope>

lo que aun el delphi no lo veo. seguire insistiendo.

gracias





  • 0

#32 JuanPalmaSoft

JuanPalmaSoft

    Advanced Member

  • Miembros
  • PipPipPip
  • 76 mensajes
  • LocationDistrito Federal

Escrito 10 mayo 2011 - 02:16

saludos

ya logre retornar bien los valores.

gracias por la ayuda

lo que no he podido es hechar a andar el soft que medio. realmente deno de dedicarle mas tiemño. agarre y el codigo XML lo obtuve con los mismo objetos de la aplicación gracias.



  • 0

#33 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 10 mayo 2011 - 09:13

saludos

ya logre retornar bien los valores.

gracias por la ayuda
[/quote]

Que bien, podemos colocar este hilo como resuelto, ¿ puedes colocar la porción de código que resolvió el problema ?  (y)

[quote name="JuanPalmaSoft" post="50613" timestamp="1305058609"]
lo que no he podido es hechar a andar el soft que medio. realmente deno de dedicarle mas tiemño. agarre y el codigo XML lo obtuve con los mismo objetos de la aplicación gracias.
[/quote]

Sólo debes de crear un nuevo proyecto e indicarle que es lo que quieres obtener, te generará varias peticiones dependiendo de las funciones que tenga el webservice, para ejecutar una petición sólo hay que presionar el botón de play y obtendras el resultado de la petición, no debes tener problema, con más tiempo encontrarás muchas cosas de utilidad en ese programit :).

Salud OS

Archivos adjuntos


  • 0

#34 JuanPalmaSoft

JuanPalmaSoft

    Advanced Member

  • Miembros
  • PipPipPip
  • 76 mensajes
  • LocationDistrito Federal

Escrito 10 mayo 2011 - 09:28

realmente el problema estaba en el tipo de dato return que es un anidamiento de clases, no se porque desde un prioncipio no pueden retornar uan estructura o una clase, realmente no se las limitaciones que tienen las funciones de un web  services con el retorno de valortes. tengo que estudiar mas este tema , me ha sido de mucha utilidada porque hay enormes aplicaciones que se pueden implementar con esto.

lo que realmente delphi solo te define  las estructuras, hay que  definir todo lo demas, voy a preparara cuendo termine un articulo completo con todos los detalles, dame unos dias para terminar un soft que estoy haciendo, pero dejo mi correo y mi messengre pòr si alguien desea aclarar cualquier duda.  juanpalmasoft@hotmail.com

lo fundamental  es esto que describo aqui para ese PAC. Forcogsa pongo el ejemplo de autenticar com o debe ser el anidamiento de clases.



delphi
  1. Autenticar = class(TRemotable)
  2.   private
  3.     Fusuario: WideString;
  4.     Fcontrasena: WideString;
  5.   public
  6.     constructor Create; override;
  7.   published
  8.     property usuario: WideString read Fusuario write Fusuario;
  9.     property contrasena: WideString read Fcontrasena write Fcontrasena;
  10.   end;
  11.  
  12.   wsAutenticarResponse = class(TRemotable)
  13.   private
  14.     Fmensaje: WideString;
  15.     Ftoken: WideString;
  16.   published
  17.     property mensaje: WideString read Fmensaje write Fmensaje;
  18.     property token: WideString read Ftoken write Ftoken;
  19.   end;
  20.  
  21.   AutenticarResponse = class(TRemotable)
  22.   private
  23.     Freturn: wsAutenticarResponse;
  24.   public
  25.     constructor Create; override;
  26.   published
  27.     property return: wsAutenticarResponse read Freturn write Freturn;
  28.   end;



  • 0

#35 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 11 mayo 2011 - 08:20

Leyendo todo el tema me ha surgido una enorme duda.

Como saben que clases deben declarar y que estructura tienen para poder comunicarse con el webservice?

Saludox
  • 0

#36 JuanPalmaSoft

JuanPalmaSoft

    Advanced Member

  • Miembros
  • PipPipPip
  • 76 mensajes
  • LocationDistrito Federal

Escrito 11 mayo 2011 - 08:33

Saludos

En este mismo tema al principio pongo la estructura de clases solo tiene que hacer este pequeño ajuste que explico al final del tema.  ya que delphi al menos la version 7 con sp 1 solo te define el esquema de las funciones, los datos que se definen en las funciones hay que declararlas como las describo en el tema.

Ha sido un placer.
  • 0

#37 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 11 mayo 2011 - 10:12

Leyendo todo el tema me ha surgido una enorme duda.

Como saben que clases deben declarar y que estructura tienen para poder comunicarse con el webservice?

Saludox


Hola poli, el mismo wsdl te indica donde puedes consultar las estructuras, si ves el wsdl (https://forcogsa.dyn...gsaService?wsdl) al inicio te muestra

[nobbc]
<types>
<xsd:schema>
<xsd:import namespace="http://wservicios/" schemaLocation="https://forcogsa.dyn...ervice?xsd=1"/>
</xsd:schema>
</types>
[/nobbc]

Podrás observar que el esquema de los tipos de datos está en la url (https://forcogsa.dyn...saService?xsd=1) y no tienes que inventar nada de nada :)

Salud OS
  • 0

#38 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 11 mayo 2011 - 10:25


Leyendo todo el tema me ha surgido una enorme duda.

Como saben que clases deben declarar y que estructura tienen para poder comunicarse con el webservice?

Saludox


Hola poli, el mismo wsdl te indica donde puedes consultar las estructuras, si ves el wsdl (https://forcogsa.dyn...gsaService?wsdl) al inicio te muestra

[nobbc]
<types>
<xsd:schema>
<xsd:import namespace="http://wservicios/" schemaLocation="https://forcogsa.dyn...saService?xsd=1"/>
</xsd:schema>
</types>
[/nobbc]

Podrás observar que el esquema de los tipos de datos está en la url (https://forcogsa.dyn...saService?xsd=1) y no tienes que inventar nada de nada 

Salud OS



Muy cierto¡¡¡¡¡¡¡¡¡¡¡ no me sabia esa :p
  • 0

#39 JuanPalmaSoft

JuanPalmaSoft

    Advanced Member

  • Miembros
  • PipPipPip
  • 76 mensajes
  • LocationDistrito Federal

Escrito 12 mayo 2011 - 12:45

para mi fue de mucha ayuda la oprientación de ustedes,  yo en este tema estaba en pañales aun.

gracias por  todo, y estare al tanto del sitio, para cualquier ayuda que pueda dar.
  • 0

#40 maramram

maramram

    Newbie

  • Miembros
  • Pip
  • 2 mensajes

Escrito 08 septiembre 2012 - 12:35



Leyendo todo el tema me ha surgido una enorme duda.

Como saben que clases deben declarar y que estructura tienen para poder comunicarse con el webservice?

Saludox


Hola poli, el mismo wsdl te indica donde puedes consultar las estructuras, si ves el wsdl (https://forcogsa.dyn...gsaService?wsdl) al inicio te muestra

[nobbc]
<types>
<xsd:schema>
<xsd:import namespace="http://wservicios/" schemaLocation="https://forcogsa.dyn...saService?xsd=1"/>
</xsd:schema>
</types>
[/nobbc]

Podrás observar que el esquema de los tipos de datos está en la url (https://forcogsa.dyn...saService?xsd=1) y no tienes que inventar nada de nada 

Salud OS



Muy cierto¡¡¡¡¡¡¡¡¡¡¡ no me sabia esa :p



hola

soy nuevo en el foro y tambien estoy tratando de consumir el webservice de forcogsa desde delphi7 pero no logro autenticar, ya copie el codigo de arriba y no se como enviar las instrucciones en delphi para autenticar, le estoy poniendo asi pero me manda error, ojala puedan ayudarme

WSForcogsaService.Autenticar('pruebasWS','pruebasWS');

[Error] AFactur.pas(1967): ')' expected but ',' found

me podran echar la mano, gracias

  • 0




IP.Board spam blocked by CleanTalk.