WSDL sorunu
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
WSDL sorunu
Merhaba,
aşağıdaki sgk nın e reçete sistemi için oluşturduğu web servisin wsdl urlsini kullanarak sisteme reçete göndermek için kullanmak istiyorum, wsdl adresini delphiye xe10 a import ettiğimde oluşan fonksiyonlardaki hiçbir parametrenin değişken tanımı olmadığından "Undeclared identifier 'ereceteSorgula' " gibi her değişken için hata veriyor.
Sorunu çözemedim ben burada her değişken tanımını kendim mi yapacağım ?
https://saglikt.sgk.gov.tr/medula/eczan ... eriWS?wsdl
ilgili web servis dökümanı
https://medeczane.sgk.gov.tr/doktor/Sag ... isleri.pdf
aşağıdaki sgk nın e reçete sistemi için oluşturduğu web servisin wsdl urlsini kullanarak sisteme reçete göndermek için kullanmak istiyorum, wsdl adresini delphiye xe10 a import ettiğimde oluşan fonksiyonlardaki hiçbir parametrenin değişken tanımı olmadığından "Undeclared identifier 'ereceteSorgula' " gibi her değişken için hata veriyor.
Sorunu çözemedim ben burada her değişken tanımını kendim mi yapacağım ?
https://saglikt.sgk.gov.tr/medula/eczan ... eriWS?wsdl
ilgili web servis dökümanı
https://medeczane.sgk.gov.tr/doktor/Sag ... isleri.pdf
- sabanakman
- Kıdemli Üye
- Mesajlar: 3077
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: WSDL sorunu
İyi günler. SGK servisleri genelde tipler (xsd:schema) için farklı yere yönlendirme yaptığından bu durum oluşmaktadır. Bunu da çözmek için WSDL sayfasını WSDL.xml olarak kayıt edin ve yine bu WSDL sayfası içindeki xsd:schema\xsd:import düğümündeki schemaLocation özelliğinde bulunan adresteki bilgiyi de ayrı bir schema.xml olarak kayıt edin. Daha sonra ilk kayıt edilen WSDL.xml içindeki <xsd:schema></xsd:schema> düğümünü kaldırıp onun yerine de schemaLocation.xml içindeki <xsd:schema></xsd:schema> düğümünü yerleştirip saglikTesisiReceteIslemleriWS.xml olarak kayıt edin. Arık burada tanımları tam olan bir saglikTesisiReceteIslemleriWS.xml dosyasınız olacaktır. Bunu WSDL import ile import edebilirsiniz ama WSDL Adresi ve URL adresinde sıkıntı çıkmaması için son bir kontrol (aşağıdaki gibi değiştirmeniz) gerekebilir.Bu gün yayınlanmış olan WSDL parametrelerine göre ekte gönderdiğim saglikTesisiReceteIslemleriWS.xml dosyası oluşmaktadır ve buradan import edilen unit hata vermeden derlenebilmektedir. İyi çalışmalar.
Kod: Tümünü seç
defWSDL = 'https://saglikt.sgk.gov.tr/medula/eczane/saglikTesisiReceteIslemleriWS?wsdl';
defURL = 'https://saglikt.sgk.gov.tr/medula/eczane/saglikTesisiReceteIslemleriWS';
- Dosya ekleri
-
- saglikTesisiReceteIslemleriWS.7z
- WSDL Import işleminde kullanılacak dosya
- (3.31 KiB) 106 kere indirildi
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: WSDL sorunu
Cevabınız için teşekkürler bende konuyu açtıktan sonra araştırmaya devam ettim dediğiniz yöntem ile sorunu çözebildim.sabanakman yazdı: ↑25 Kas 2017 11:41 İyi günler. SGK servisleri genelde tipler (xsd:schema) için farklı yere yönlendirme yaptığından bu durum oluşmaktadır. Bunu da çözmek için WSDL sayfasını WSDL.xml olarak kayıt edin ve yine bu WSDL sayfası içindeki xsd:schema\xsd:import düğümündeki schemaLocation özelliğinde bulunan adresteki bilgiyi de ayrı bir schema.xml olarak kayıt edin. Daha sonra ilk kayıt edilen WSDL.xml içindeki <xsd:schema></xsd:schema> düğümünü kaldırıp onun yerine de schemaLocation.xml içindeki <xsd:schema></xsd:schema> düğümünü yerleştirip saglikTesisiReceteIslemleriWS.xml olarak kayıt edin. Arık burada tanımları tam olan bir saglikTesisiReceteIslemleriWS.xml dosyasınız olacaktır. Bunu WSDL import ile import edebilirsiniz ama WSDL Adresi ve URL adresinde sıkıntı çıkmaması için son bir kontrol (aşağıdaki gibi değiştirmeniz) gerekebilir.Bu gün yayınlanmış olan WSDL parametrelerine göre ekte gönderdiğim saglikTesisiReceteIslemleriWS.xml dosyası oluşmaktadır ve buradan import edilen unit hata vermeden derlenebilmektedir. İyi çalışmalar.Kod: Tümünü seç
defWSDL = 'https://saglikt.sgk.gov.tr/medula/eczane/saglikTesisiReceteIslemleriWS?wsdl'; defURL = 'https://saglikt.sgk.gov.tr/medula/eczane/saglikTesisiReceteIslemleriWS';
Re: WSDL sorunu
Sisteme her soap işlemi kullanıcı adı şifre gönderilmesi gerekiyor ancak wsdl delphiye import ettim fakat kullanıcı adı şifre göndereceğim methot yok yanlış bir şey mi yapıyorum?
Re: WSDL sorunu
Merhaba,
SGK sistemini incelemedim. Ancak SOAP kullanıcı adı ve şifreleri her zaman metod kullanarak gönderilmeyebiliyor. Çoğunlukla bağlantı parametrelerine eklenerek kullanılıyor. Kullandığınız Delphi sürümünde THTTPRIO bileşeninin aşağıdaki özelliğini kullanmayı deneyebilirsiniz. Daha önceki sürümlerde bu işlemi geçekleştirme biraz daha farklı yollardan yapılıyordu.
Eğer RIO sınıfını kendiniz oluşturarak kullanmıyorsanız (web servis atama prosedürünü kullanıyorsanız) web servis değişkeninizi THTTPRIO türüne type cast etmeniz gerekebilir.
SGK sistemini incelemedim. Ancak SOAP kullanıcı adı ve şifreleri her zaman metod kullanarak gönderilmeyebiliyor. Çoğunlukla bağlantı parametrelerine eklenerek kullanılıyor. Kullandığınız Delphi sürümünde THTTPRIO bileşeninin aşağıdaki özelliğini kullanmayı deneyebilirsiniz. Daha önceki sürümlerde bu işlemi geçekleştirme biraz daha farklı yollardan yapılıyordu.
Kod: Tümünü seç
var
RIO: THTTPRIO;
WS: WebServisInvokableAdi;
begin
RIO := THTTPRIO.Create(nil);
RIO.URL := 'web servis bağlantı kontası';
RIO.HTTPWebNode.UserName := 'kullaniciadi';
RIO.HTTPWebNode.Password := 'sifre';
WS := (RIO as WebServisInvokableAdi);
...
Kod: Tümünü seç
var
WS: WebServisInvokableAdi;
begin
WS := GetWebServisInvokableAdi();
THTTPRIO(WS).HTTPWebNode.UserName := 'kullaniciadi';
THTTPRIO(WS).HTTPWebNode.Password := 'sifre';
...
En son ertank tarafından 02 Ara 2017 05:30 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Re: WSDL sorunu
Yorumunuz için teşekkür ederim.Otomatik olarak oluşturulan webservis unitinin içerisinde getsagliktesisireceteislemleri() foksyionu httprio nesnesini parametre olarak alıyor. Bu fonsiyon web servis ile bağlantı sağlıyor. Yeni bir tane httprio oluşturup kullanıcı adını ve şifresini atayıp fonsiyona parametre olarak verdim umarım bu sorunu çözecektir.ertank yazdı: ↑02 Ara 2017 11:41 Merhaba,
SGK sistemini incelemedim. Ancak SOAP kullanıcı adı ve şifreleri her zaman metod kullanarak gönderilmeyebiliyor. Çoğunlukla bağlantı parametrelerine eklenerek kullanılıyor. THTTPRIO bileşeninin aşağıdaki özelliğini kullanmayı deneyebilirsiniz.Eğer RIO sınıfını kendiniz oluşturarak kullanmıyorsanız (web servis atama prosedürünü kullanıyorsanız) web servis değişkeninizi THTTPRIO türüne type cast etmeniz gerekebilir.Kod: Tümünü seç
var RIO: THTTPRIO; WS: WebServisInvokableAdi; begin RIO := THTTPRIO.Create(nil); RIO.URL := 'web servis bağlantı kontası'; RIO.HTTPWebNode.UserName := 'kullaniciadi'; RIO.HTTPWebNode.Password := 'sifre'; WS := (RIO as WebServisInvokableAdi); ...
Kod: Tümünü seç
var WS: WebServisInvokableAdi; begin WS := GetWebServisInvokableAdi(); THTTPRIO(WS).HTTPWebNode.UserName := 'kullaniciadi'; THTTPRIO(WS).HTTPWebNode.Password := 'sifre'; ...
- sabanakman
- Kıdemli Üye
- Mesajlar: 3077
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: WSDL sorunu
C# veya Java gibi Başka dilde yazılmış bir örnek var mı elinizde!
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: WSDL sorunu
hangi konuda hocam anlayamadım?sabanakman yazdı: ↑02 Ara 2017 05:52 C# veya Java gibi Başka dilde yazılmış bir örnek var mı elinizde!
Re: WSDL sorunu
verdiğiniz örnek ile denediğimde maalesef olmadı. Geriye hata döndüertank yazdı: ↑02 Ara 2017 11:41 Merhaba,
SGK sistemini incelemedim. Ancak SOAP kullanıcı adı ve şifreleri her zaman metod kullanarak gönderilmeyebiliyor. Çoğunlukla bağlantı parametrelerine eklenerek kullanılıyor. Kullandığınız Delphi sürümünde THTTPRIO bileşeninin aşağıdaki özelliğini kullanmayı deneyebilirsiniz. Daha önceki sürümlerde bu işlemi geçekleştirme biraz daha farklı yollardan yapılıyordu.Eğer RIO sınıfını kendiniz oluşturarak kullanmıyorsanız (web servis atama prosedürünü kullanıyorsanız) web servis değişkeninizi THTTPRIO türüne type cast etmeniz gerekebilir.Kod: Tümünü seç
var RIO: THTTPRIO; WS: WebServisInvokableAdi; begin RIO := THTTPRIO.Create(nil); RIO.URL := 'web servis bağlantı kontası'; RIO.HTTPWebNode.UserName := 'kullaniciadi'; RIO.HTTPWebNode.Password := 'sifre'; WS := (RIO as WebServisInvokableAdi); ...
Kod: Tümünü seç
var WS: WebServisInvokableAdi; begin WS := GetWebServisInvokableAdi(); THTTPRIO(WS).HTTPWebNode.UserName := 'kullaniciadi'; THTTPRIO(WS).HTTPWebNode.Password := 'sifre'; ...
Kod: Tümünü seç
Alınan mesajda "username" elementi bulunamadı. Mesaj headerinda kullanıcı bilgilerini içeren security elementi olması gerekmektedir.
Re: WSDL sorunu
web servis soap security ekleme için https://stackoverflow.com/questions/137 ... -in-delphi adresindeki ki WSSE_SGK.pas dosyasını kullanarak hallettim ancak şuan tesis kodu hatası alıyorummisem yazdı: ↑06 Ara 2017 11:42verdiğiniz örnek ile denediğimde maalesef olmadı. Geriye hata döndüertank yazdı: ↑02 Ara 2017 11:41 Merhaba,
SGK sistemini incelemedim. Ancak SOAP kullanıcı adı ve şifreleri her zaman metod kullanarak gönderilmeyebiliyor. Çoğunlukla bağlantı parametrelerine eklenerek kullanılıyor. Kullandığınız Delphi sürümünde THTTPRIO bileşeninin aşağıdaki özelliğini kullanmayı deneyebilirsiniz. Daha önceki sürümlerde bu işlemi geçekleştirme biraz daha farklı yollardan yapılıyordu.Eğer RIO sınıfını kendiniz oluşturarak kullanmıyorsanız (web servis atama prosedürünü kullanıyorsanız) web servis değişkeninizi THTTPRIO türüne type cast etmeniz gerekebilir.Kod: Tümünü seç
var RIO: THTTPRIO; WS: WebServisInvokableAdi; begin RIO := THTTPRIO.Create(nil); RIO.URL := 'web servis bağlantı kontası'; RIO.HTTPWebNode.UserName := 'kullaniciadi'; RIO.HTTPWebNode.Password := 'sifre'; WS := (RIO as WebServisInvokableAdi); ...
Kod: Tümünü seç
var WS: WebServisInvokableAdi; begin WS := GetWebServisInvokableAdi(); THTTPRIO(WS).HTTPWebNode.UserName := 'kullaniciadi'; THTTPRIO(WS).HTTPWebNode.Password := 'sifre'; ...
Soap header nasıl eklenip gönderilir diye araştırıyorum https://stackoverflow.com/questions/137 ... -in-delphi burdaki +200 olan çözümü denedim ancak hala username etiketi yok diyor anlamadım ekliyorum dediği şekilde.Kod: Tümünü seç
Alınan mesajda "username" elementi bulunamadı. Mesaj headerinda kullanıcı bilgilerini içeren security elementi olması gerekmektedir.
Re: WSDL sorunu
Merhaba,
Normalde yapmanız gereken SGK dökümanlarında gördüğüm kadarıyla "HTTP Basic Authentication" Bunun yapılış şekli de yukarıdaki ilk cevabımdaki ilk örnekteki gibidir. Ancak, SGK gördüğüm kadarıyla servis ile ilgili sürekli değişiklikler yapıyor. Nitekim ben bugün şu an itibariyle https://saglikt.sgk.gov.tr için ERR_NAME_NOT_RESOLVED hatası alıyorum.
Eğer kendiniz manuel yapmak istiyorsanız aşağıdaki şekilde yapmanız mümkün.
https://stackoverflow.com/questions/343 ... ttp-header
Ancak, bu yöntem benim ilk önerdiğim yöntemin Delphi 7 gibi eski sürümlerdeki uzun şekilde yapılışıdır. Gidecek olan XML aynı olacaktır.
Kullandığınız WSDL dosyasını ve Servis çağıran kodunuzu kullanıcı adı ve şifreyi gizleyerek paylaşabilir misiniz?
Normalde yapmanız gereken SGK dökümanlarında gördüğüm kadarıyla "HTTP Basic Authentication" Bunun yapılış şekli de yukarıdaki ilk cevabımdaki ilk örnekteki gibidir. Ancak, SGK gördüğüm kadarıyla servis ile ilgili sürekli değişiklikler yapıyor. Nitekim ben bugün şu an itibariyle https://saglikt.sgk.gov.tr için ERR_NAME_NOT_RESOLVED hatası alıyorum.
Eğer kendiniz manuel yapmak istiyorsanız aşağıdaki şekilde yapmanız mümkün.
https://stackoverflow.com/questions/343 ... ttp-header
Ancak, bu yöntem benim ilk önerdiğim yöntemin Delphi 7 gibi eski sürümlerdeki uzun şekilde yapılışıdır. Gidecek olan XML aynı olacaktır.
Kullandığınız WSDL dosyasını ve Servis çağıran kodunuzu kullanıcı adı ve şifreyi gizleyerek paylaşabilir misiniz?