Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Import WSDL
#1
Merhaba

Import WSDL ile aldığım web servisin yapısı hatalı (veya eksik) oluşuyor. Import ettikten sonra derleme yaptığımda tanımların eksik oldu yazıyor. 

function  GetVersions(const parameters: GetVersions): GetVersionsResponse; stdcall;
[dcc32 Error] PostBoxService.pas(155): E2003 Undeclared identifier: 'GetVersions'

aynı servisi Visual studio ile aldığımda herhangi bir hata yok. 

Delphi (10.2) de bunun bir ayarı var mı?
Cevapla
#2
Delphi'de bu tur sorunlar cok yaygin. Manuel eksik yerleri tamamlamaniz lazim.
Cevapla
#3
E2003 Undeclared identifier: 'GetVersions'

kısmına takldım..  PAS içerisinde bu hemen yukarısında belirttiğiniz tanımlama var değil mi ? Bence Parametre için verilen tip tanımını veya fonksiyon adının önüne sonuna bir harf ekleyin. Çünkü

function  GetVersions(const parameters: GetVersions): GetVersionsResponse;

şeklinde olunca bir function onun parametresi gibi olmuş.

Şöyle örnek vereyim anlaşılması için... Bir boş proje kurun ve bir button koyun.

Aşağıdaki şekilde çalıştırmayı deneyin hata verecektir.

type GetVersions = record
 aKaynak : string;
end;

type GetVersionsResponse = record
 aUrun : string;
end;

function  GetVersions(const parameters: GetVersions): GetVersionsResponse;
begin
 showmessage( parameters.aKaynak );
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 aParam : GetVersions;
begin
 aParam.aKaynak := 'Benim gönderdiğim string';
 GetVersions( aParam );
end;

Çünkü GetVersions "type" mi yoksa "proc/func" mu

Çalışması için fonksiyon adında küçük bir değişiklik yaparsanız ( aşağıdaki örnekteki gibi )

type GetVersions = record
  aKaynak : string;
end;
 
type GetVersionsResponse = record
  aUrun : string;
end;

function  GetVersions_Degisik(const parameters: GetVersions): GetVersionsResponse;
begin
 showmessage( parameters.aKaynak );
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 aParam : GetVersions;
begin
 aParam.aKaynak := 'Benim gönderdiğim string';
 GetVersions_Degisik( aParam );
end;
 

bu defa çalışacaktır.

Şimdi bu sorunu anlamışsanız kendi WSDL kodunuza dönüp bu gözle bakmak isteyebilirsiniz.
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif


Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  WSDL dosyasını import ederek web servise veri gönderme. KUNTAY 2 102 26-07-2021, Saat: 16:44
Son Yorum: Abdullah ILGAZ
  WSDL TLS 1.3 Sorunu glagher 2 314 11-06-2021, Saat: 19:22
Son Yorum: mrmarman
  Wsdl servise veri gönderme hatası tuna 3 594 09-04-2021, Saat: 20:03
Son Yorum: tuna
  Soap servis import sorunu klavye 0 302 29-03-2021, Saat: 15:29
Son Yorum: klavye
  XMLSchema SQL import Bay_Y 5 1.853 07-08-2020, Saat: 22:50
Son Yorum: Bay_Y



Konuyu Okuyanlar: 1 Ziyaretçi