| nitrokonat | 26.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-hex | 26.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. | |
| nitrokonat | 26.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-hex | 26.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. | |
| nitrokonat | 26.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. :...( | |
| t-hex | 26.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; | |
| nitrokonat | 28.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) | |
| coderlord | 28.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 | |
| t-hex | 28.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. | |
| nitrokonat | 28.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. | |
| nitrokonat | 28.07.2005 - 18:56:59 |
| daha sonradan okuyunca farkettim. sayın coderlord'a teşekkür etmeyi unutmuşum. allah razı olsun. | |