PDA

Ver la Versión Completa : Error en Webservice funcion envio de sms


webmasterplc
25-06-2013, 00:53:36
buenas estoy tratando de crear un Webservice en delphi 7 en la cual tengo una funcion pero me da este error:
[Error] wsKSMSImpl.pas(15): Unsatisfied forward or external declaration: 'TwsKSMS.enviarSMS'

mi codigo es este.

{ Invokable implementation File for TwsKSMS which implements IwsKSMS }

unit wsKSMSImpl;

interface

uses SysUtils, Classes, IdHTTP,InvokeRegistry, Types, XSBuiltIns, wsKSMSIntf;

type

{ TwsKSMS }
TwsKSMS = class(TInvokableClass, IwsKSMS)

public
function enviarSMS (url,usuario,clave,phone,mensaje : string) :string;stdcall;
end;


implementation

function enviarSMS (url,usuario,clave,phone,mensaje : string) :string;stdcall;

var
http: TIdHttp;
params: TStrings;
respuesta: string;
begin
http := TIdHTTP.Create(nil);
params := TStringList.Create;

begin
params.Add('usuario='+usuario);
params.Add('clave='+clave);
params.Add('telefonos='+phone);
params.Add('texto='+mensaje);
respuesta := http.Post(url, params);
end;
params.Free;
http.Free;
end;
exports
enviarSMS;

initialization
{ Invokable classes must be registered }
InvRegistry.RegisterInvokableClass(TwsKSMS);

end.

TiammatMX
25-06-2013, 01:11:59
buenas estoy tratando de crear un Webservice en delphi 7 en la cual tengo una funcion pero me da este error:
wsKSMSImpl.pas(15): Unsatisfied forward or external declaration: 'TwsKSMS.enviarSMS'...

Pues a riesgo de equivocarme, el path donde está instalado TwqKSMS o no es correcto o no existe. Revísale por ahí, seguro que ése es el problema.

webmasterplc
25-06-2013, 01:23:50
Soy nuevo en esto seria mi primer webservice no se donde lo configuramosPues a riesgo de equivocarme, el path donde está instalado TwqKSMS o no es correcto o no existe. Revísale por ahí, seguro que ése es el problema.

TiammatMX
25-06-2013, 01:32:45
Soy nuevo en esto seria mi primer webservice no se donde lo configuramos

No es el path del webservice, sino del componente que usas para enviar el mensaje. Eso puedes verlo en las opciones generales de Delphi.

Ahora que si a través del webservice envías el SMS, entonces faltan o sobran o son incorrectos los parámetros que le mandas al método.

egostar
25-06-2013, 01:48:13
Hola

A mi me parece que no estas haciendo bien el Servicio Web, le estás dando forma de una DLL, la palabra reservada exports no existe en un Servicio Web (Hasta donde mi experiencia me permite saber), Delphi cuenta con su experto para crear un Servicio Web y puedes acceder a él desde

File --> New --> Others --> WebService --> SOAP server Application

Saludos

Sinaloense
25-07-2013, 21:10:29
El problema es que en la clase TwsKSMS esta declarando la función enviarSMS, pero en el desarrollo de la función tienes:

function enviarSMS (url,usuario,clave,phone,mensaje : string) :string;stdcall;

No esta dentro de la clase, tendriás que hacer:

function TwsKSMS .enviarSMS (url,usuario,clave,phone,mensaje : string) :string;stdcall;

para que se considere dentro de la clase o quitarla de la declaración de la clase.