bu xml kodları ne işe yarıyor?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

bu xml kodları ne işe yarıyor?

Mesaj gönderen nitro »

s.a.
emeklş sandığı web sayfasından ulaştığım bir word dosyasında
PROVİZYON
(SAĞLIK HAK SAHİPLİĞİ KONTROLÜ)
UYGULAMA YAZILIMI
konulu bir yazı var.

Hak sahipliği Sorgulama Web Servisinin URL’si olarak da aşağıdaki url verilmiş.
http://www.emekli.gov.tr/SaglikServisWe ... izyon.wsdl

iyi ama bu adresteki kodlar ne işe yarayacak. nasıl kullanıcam bunları?
yardımlar için şimdiden teşşekkürler.
kıymetli zamanını bu konyu okumakla geçiren herkesten allah razı olsun.
t-hex
Kıdemli Üye
Mesajlar: 531
Kayıt: 18 Mar 2005 02:45
Konum: İstanbul/Antalya
İletişim:

Mesaj gönderen t-hex »

WSDL, Web Service Definition Language(Web Servisi Tanımlama Dili) nin kısaltmasıdır. Yani bu webservi neler yapar ne tür bilgi ister ne döndürür vs.. gibi bilgilerin bulunduğu dosya. Onu kullanabilmek için Delphi'de (Delphi sürümünün WebServislerini desteklediğini varsayarak)
File > New ...> Others > WebServices > WSDL Importer seçeneğinde adresi girerek bu servis için kullanabileceğin bir unit hazırlatabilirsin. Sonra projene bu uniteyi ekleyip, istediğin hizmetleri alabilirsin.
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

teşekkürler. dediğin gibi ekledim ama bu tür şeyleri daha önce hiç kullanmadığım için hiç bir bilgim yok bu konuda. ben bu unite parametre nasıl göndericem?
forma editler falan koyup, kontrol et diye bi buton koymam lazım. butonun altında ne gibi kodlar olacak?
t-hex
Kıdemli Üye
Mesajlar: 531
Kayıt: 18 Mar 2005 02:45
Konum: İstanbul/Antalya
İletişim:

Mesaj gönderen t-hex »

Makale Ve İpucu kısmında @coderlord'un T.C.Kimlik için benzer bir işlemin nasıl yapılacağının anlattığı bir makale var, onu oku. ayrıca örnek kodda var. Yardımcı olacaktır.
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

dostum ben tckimlik no sorgulama olayını bi programımda kullandım ama çok beleşçiliğe gittim. mevcut programdaki editlere falan değer gönderdim. sonra butonu clicklettim. oldu bitti. ama bu sefer durum farklı. ne edit var ortada ne de bişey ve işim de çok acil. sanırım pes etsem iyi olacak. :...( :cry:
t-hex
Kıdemli Üye
Mesajlar: 531
Kayıt: 18 Mar 2005 02:45
Konum: İstanbul/Antalya
İletişim:

Mesaj gönderen t-hex »

Bu işlem TCKimlikten daha kolay çünkü tek sorgu var. Ayrıca bir şeyler yaptırmak için illa buton veya edit olmasına gerek yok. Yardımcı olması açısından örnek bir kod

Kod: Tümünü seç

var
 Service : Provizyon;
 Input : WebInputDVO;
 OutPut : WebOutputDVO;
begin
  // Servisi al.
  Service := GetProvizyon;
  Input := WebInputDVO.Create;
  // girdi bilgilerini doldur.
  Input.karneNo:='55555';
  Input.sicilNo:='55555';
  Input.kurumKodu:='55555';
  Input.sifre:='55555';
  // Sorgula
  OutPut := Service.provizyon(Input);
  // Sorgulama yapıldı, OutPut ile istediğini yap.
  Input.Free; 
  Output.Free;
  Service := nil;
end;
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

WSDL ile import ettiğim zaman şu kodlar oluşuyor.

Kod: Tümünü seç



  // ************************************************************************ //
  // Namespace : http://DVO.provizyon.saglik.emekli.gov.tr
  // ************************************************************************ //
  WebOutputDVO = class(DVOBase)
  private
    Fad: WideString;
    FdurumKod: WideString;
    FgununTarihi: WideString;
    FkarneNo: WideString;
    FsicilNo: WideString;
    Fsoyad: WideString;
    FprotokolNo: WideString;
  published
    property ad: WideString read Fad write Fad;
    property durumKod: WideString read FdurumKod write FdurumKod;
    property gununTarihi: WideString read FgununTarihi write FgununTarihi;
    property karneNo: WideString read FkarneNo write FkarneNo;
    property sicilNo: WideString read FsicilNo write FsicilNo;
    property soyad: WideString read Fsoyad write Fsoyad;
    property protokolNo: WideString read FprotokolNo write FprotokolNo;
  end;


  // ************************************************************************ //
  // Namespace : http://DAO.provizyon.saglik.emekli.gov.tr
  // transport : http://schemas.xmlsoap.org/soap/http
  // style     : document
  // binding   : ProvizyonSoapBinding
  // service   : ProvizyonService
  // port      : Provizyon
  // URL       : http://www.emekli.gov.tr/SaglikServisWeb/services/Provizyon
  // ************************************************************************ //
  Provizyon = interface(IInvokable)
  ['{8507450D-B3A7-52D0-2648-C9854644F50D}']
    function  provizyon(const input: WebInputDVO): WebOutputDVO; stdcall;
  end;

function GetProvizyon(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): Provizyon;


implementation

function GetProvizyon(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): Provizyon;
const
  defWSDL = 'http://www.emekli.gov.tr/SaglikServisWeb/wsdl/tr/gov/emekli/saglik/provizyon/DAO/Provizyon.wsdl';
  defURL  = 'http://www.emekli.gov.tr/SaglikServisWeb/services/Provizyon';
  defSvc  = 'ProvizyonService';
  defPrt  = 'Provizyon';
var
  RIO: THTTPRIO;
begin
  Result := nil;
  if (Addr = '') then
  begin
    if UseWSDL then
      Addr := defWSDL
    else
      Addr := defURL;
  end;
  if HTTPRIO = nil then
    RIO := THTTPRIO.Create(nil)
  else
    RIO := HTTPRIO;
  try
    Result := (RIO as Provizyon);
    if UseWSDL then
    begin
      RIO.WSDLLocation := Addr;
      RIO.Service := defSvc;
      RIO.Port := defPrt;
    end else
      RIO.URL := Addr;
  finally
    if (Result = nil) and (HTTPRIO = nil) then
      RIO.Free;
  end;
end;


initialization
  InvRegistry.RegisterInterface(TypeInfo(Provizyon), 'http://DAO.provizyon.saglik.emekli.gov.tr', 'UTF-8');
  InvRegistry.RegisterDefaultSOAPAction(TypeInfo(Provizyon), '');
  InvRegistry.RegisterInvokeOptions(TypeInfo(Provizyon), ioDocument);
  RemClassRegistry.RegisterXSClass(DVOBase, 'http://DVO.provizyon.saglik.emekli.gov.tr', 'DVOBase');
  RemClassRegistry.RegisterXSClass(WebInputDVO, 'http://DVO.provizyon.saglik.emekli.gov.tr', 'WebInputDVO');
  RemClassRegistry.RegisterXSClass(WebOutputDVO, 'http://DVO.provizyon.saglik.emekli.gov.tr', 'WebOutputDVO');

end.
burda parametre gönderecek ve cevap alacak bişey bulamadım. yardımcı olursanız çok sevinirim. (gerçi yeterince yardımcı oldunuz ama darda kalana yardım sevaptır. isteyenin bi yüzü kara, vermeyenin 2)
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Bir WebInputDVO Create et ve property lerin içlerini uygun verilerle doldur.

Kod: Tümünü seç


uses WSDLImportundanEldeEttiğinUnite;!!!!!!!!!!!!!!

var
  FWebInputDVO: WebInputDVO;
  FWebOutputDVO: WebOutputDVO;
  FProvizyon: Provizyon; 
begin
  FWebInputDVO:= WebInputDVO.Create;
  try
    FWebInputDVO.Ad:= 'Mehmet';
    ......
    .....
Interface nesnesini al. (Bunları yukarıda .... yazdığım yerlere yaz)

Kod: Tümünü seç

  FProvizyon:= GetProvizyon;
  FWebOutputDVO:= FProvizyon.provizyon(FWebInputDVO);
  //  FWebOutputDVO geriye ad Soyad gibi bilgileri döndürüyor sanırım.
  finally
    // Create edilen nesneleri temizle
    FWebInputDVO.Free;
    FWebOutputDVO.Free;    
  end;
İşte bu şekilde yapılıyor. TC kimlik no yu incele :!:
t-hex
Kıdemli Üye
Mesajlar: 531
Kayıt: 18 Mar 2005 02:45
Konum: İstanbul/Antalya
İletişim:

Mesaj gönderen t-hex »

WSDL Importer ile oluşan kodu kaydedin ve projenize ekleyin. Bir ünite olarak eklenmesi lazım. Kullanmak istediğiniz formun uses kısmına bu ünitenin adını ekleyin.
Bu ünite içinde WebInputDVO, WebInputDVO adlı 2 tane sınıf var. Sorgulama yapmak istediğinizde WebInputDVO sınıfından bir nesne yaratacaksınız ve sorgulama için gerekli alanları dolduracaksınız.

Kod: Tümünü seç

function GetProvizyon(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): Provizyon; 
Bu fonksyion Provizyon Interface'ini kullanan bir nesne döndürecektir. Provizyon interfaceinin içinde de provizyon adlı bir fonksiyon var. Bu fonksiyon WebInputDVO sınıfından bir nesne alıyor ve WebOutputDVO sınıfından bir nesne döndürüyor.

Daha önce yazdığım örnek kodu inceleyiniz.
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

olay çözülmüştür. sayın t-hex'in sabırlı ve anlayışlı yardımları için ayrıca teşekkürler.
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

daha sonradan okuyunca farkettim. sayın coderlord'a teşekkür etmeyi unutmuşum. allah razı olsun.
Cevapla