bu xml kodları ne işe yarıyor?
nitrokonat26.07.2005 - 12:00:53
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/SaglikServisWeb/wsdl/tr/gov/emekli/saglik/provizyon/DAO/Provizyon.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-hex26.07.2005 - 12:33:13
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.
 
nitrokonat26.07.2005 - 12:47:08
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-hex26.07.2005 - 12:50:02
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.
 
nitrokonat26.07.2005 - 13:14:57
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. :...( Crying or Very sad
 
t-hex26.07.2005 - 13:29:53
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

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;
 
nitrokonat28.07.2005 - 16:53:48
WSDL ile import ettiğim zaman şu kodlar oluşuyor.



// ************************************************************************ //
// 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)
 
coderlord28.07.2005 - 17:44:58
Bir WebInputDVO Create et ve property lerin içlerini uygun verilerle doldur.



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)

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 Exclaim
 
t-hex28.07.2005 - 17:45:01
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.

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.
 
nitrokonat28.07.2005 - 18:55:40
olay çözülmüştür. sayın t-hex'in sabırlı ve anlayışlı yardımları için ayrıca teşekkürler.
 
nitrokonat28.07.2005 - 18:56:59
daha sonradan okuyunca farkettim. sayın coderlord'a teşekkür etmeyi unutmuşum. allah razı olsun.
 
NOT : Bu sayfa google'un siteyi indekslemesi içindir. www.delphiturkiye.com/forum/ adresini kullanınız!
1998-2006 www.delphiturkiye.com