Konuyu Oyla:
  • Derecelendirme: 2/5 - 2 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Hal Kayıt Sistemi Web Servis
#1
Merhaba Arkadaşlar,
Hal kayıt web servis sistemine kayıt ile ilgili desteğe ihtiyacım var.Fiddler ile xml veriyi aldım ve olması gereken ile karşılaştırdım yinede sorun devam ediyor.
Aldığım hata

Object reference not set to an instance of an object.


[Ars=delphi]var
servis : IBildirimService;
gonder  :BaseRequestMessageOf_ListOf_BildirimKayitIstek;
cevap  :BaseResponseMessageOf_ListOf_BildirimKayitCevap;
istk: ArrayOfBildirimKayitIstek;


begin

servis:= GetIBildirimService(false,'',nil);
try
screen.Cursor := crHourGlass;

gonder       :=   BaseRequestMessageOf_ListOf_BildirimKayitIstek.Create;

SetLength(istk,1);
istk[0] := BildirimKayitIstek.Create;
gonder.istek:=istk;

gonder.UserName := _username;
gonder.Password := _pass;
gonder.ServicePassword := _webpass ;



gonder.istek[0].UniqueId :='****-6**56';
gonder.istek[0].BildirimTuru :=206;
gonder.istek[0].ReferansBildirimKunyeNo :=0;

gonder.istek[0].BildirimciBilgileri := BildirimciBilgileriDTO2.Create;
gonder.istek[0].BildirimciBilgileri.KisiSifat :=6; //Tüccar hal içi


gonder.istek[0].IkinciKisiBilgileri := IkinciKisiBilgileriDTO2.Create;
gonder.istek[0].IkinciKisiBilgileri.CepTel := '*******';  //+
gonder.istek[0].IkinciKisiBilgileri.Eposta := '';  //+
gonder.istek[0].IkinciKisiBilgileri.TcKimlikVergiNo := '*******'; //+
gonder.istek[0].IkinciKisiBilgileri.YurtDisiMi := false; //+
gonder.istek[0].IkinciKisiBilgileri.KisiSifat := 4; //+
gonder.istek[0].IkinciKisiBilgileri.AdSoyad := '**** *****'; //+

gonder.istek[0].BildirimMalBilgileri :=  BildirimMalBilgileriDTO.Create;
gonder.istek[0].BildirimMalBilgileri.UretimIlId:= 15;
gonder.istek[0].BildirimMalBilgileri.UretimIlceId:= 855;
gonder.istek[0].BildirimMalBilgileri.UretimBeldeId:= 785;
gonder.istek[0].BildirimMalBilgileri.MalinNiteligi:= 1;  
gonder.istek[0].BildirimMalBilgileri.MalinKodNo:= 319 ;
gonder.istek[0].BildirimMalBilgileri.UretimSekli:= 28;
gonder.istek[0].BildirimMalBilgileri.MalinCinsiId:= 1265;
gonder.istek[0].BildirimMalBilgileri.MiktarBirimId:= 74;
gonder.istek[0].BildirimMalBilgileri.MalinMiktari:= 250;
gonder.istek[0].BildirimMalBilgileri.MalinSatisFiyat:= 0.50;
gonder.istek[0].BildirimMalBilgileri.GelenUlkeId:= 0;
gonder.istek[0].BildirimMalBilgileri.AnalizeGonderilecekMi:=false;


gonder.istek[0].MalinGidecekYerBilgileri :=  MalinGidecekYerBilgileriDTO2.Create;
gonder.istek[0].MalinGidecekYerBilgileri.GidecekYerIsletmeTuruId:=7;// hal içi işyeri
gonder.istek[0].MalinGidecekYerBilgileri.GidecekIsyeriId:=47477;
gonder.istek[0].MalinGidecekYerBilgileri.GidecekUlkeId:=0;
gonder.istek[0].MalinGidecekYerBilgileri.GidecekYerIlId:=70;
gonder.istek[0].MalinGidecekYerBilgileri.GidecekYerIlceId:=78;
gonder.istek[0].MalinGidecekYerBilgileri.GidecekYerBeldeId:=45794;
gonder.istek[0].MalinGidecekYerBilgileri.BelgeNo:='F0002';
gonder.istek[0].MalinGidecekYerBilgileri.BelgeTipi:=208;
gonder.istek[0].MalinGidecekYerBilgileri.AracPlakaNo:='******';





cevap  := servis.BildirimServisBildirimKaydet(gonder) ;

showmessage(IntToStr(cevap.Sonuc[0].YeniKunyeNo));
try
    showmessage(CEVAP.HataKodlari[0].mesaj);
    except

      showmessage(CEVAP.IslemKodu);
   end;


  finally
   Screen.Cursor := crDefault;

END;
[/ars]




Saygılar.
Cevapla
#2
Dolması gereken bazı bilgileri doldurmamışsın..
Amatör Küme Bilgisayar Programcısı
WWW
Cevapla
#3
Delphi tarafında gönderdiğiniz XML ile, ekteki Fiddler dosyasını karşılaştırabilirsiniz.


Ek Dosyalar
.zip   Hal.zip (Dosya Boyutu: 5,09 KB / İndirme Sayısı: 62)
WWW
Cevapla
#4
Ne kadar açıklayıcı kod yazmışsınız maşallah,

Ben olsam Bu kodu,
gonder.istek[0].BildirimMalBilgileri.UretimBeldeId:= 785; 

Böyle yazardım.
Send.Req[0].NPI.BeldeId:= 785; 


Değişkenlerimi olabildiğince kısa tutuyorum, Hatta eğer yapabiliyorsam tek harf kullanıyorum Smile
procedure hihaho;
var T:TStringList;
begin
  T := TStringList.Create;
  try
    T.Add('');
  finally
  T.Free;
  end;
end;
WWW
Cevapla
#5
Merhaba,
Konu biraz içeriğin dışına çıkmış gibi olacak ama;
Kodun revizyonu ve sürdürülebilirliği için kullanılan değişken veya metod isimleri, kullanım amacını yansıtacak nitelikte ve işi anımsatıcı nitelikte olmalıdır.
DelphiCan'dır!
Cevapla
#6
Evet; programlamanın en temel kurallarındandır: Değişken isimleri mümkün olduğunca açıklayıcı olmalıdır. Sonradan kodu okuyan için anlaması kolay olacak isimler seçilmelidir.
Faydalı:
http://wiki.c2.com/?GoodVariableNames
http://www.makinggoodsoftware.com/2009/0...variables/
There's no place like 127.0.0.1
WWW
Cevapla
#7
(29-11-2017, Saat: 21:52)yhackup Adlı Kullanıcıdan Alıntı: Ne kadar açıklayıcı kod yazmışsınız maşallah,

Ben olsam Bu kodu,
gonder.istek[0].BildirimMalBilgileri.UretimBeldeId:= 785; 

Böyle yazardım.
Send.Req[0].NPI.BeldeId:= 785; 


Değişkenlerimi olabildiğince kısa tutuyorum, Hatta eğer yapabiliyorsam tek harf kullanıyorum Smile
procedure hihaho;
var T:TStringList;
begin
  T := TStringList.Create;
  try
    T.Add('');
  finally
  T.Free;
  end;
end;

bu degisken isimleri web servisten gelen isimler sanirim.
ayrica cokta kisa degisken isimleri kullanmanizi onermem.
ne uzun , ne kisa. anlasilabilecek kadar.
WWW
Cevapla
#8
Öncelikle cevap veren tüm arkadaşlara teşekkürler.

(29-11-2017, Saat: 20:52)barutali Adlı Kullanıcıdan Alıntı: Dolması gereken bazı bilgileri doldurmamışsın..

Tüm alanları kontrol ettim ancak yine tekrar bakarım...

(29-11-2017, Saat: 21:00)ismailkocacan Adlı Kullanıcıdan Alıntı: Delphi tarafında gönderdiğiniz XML ile, ekteki Fiddler dosyasını karşılaştırabilirsiniz.

Teşekkür ederim.Bakacağım.

(29-11-2017, Saat: 22:00)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Merhaba,
Konu biraz içeriğin dışına çıkmış gibi olacak ama;
Kodun revizyonu ve sürdürülebilirliği için kullanılan değişken veya metod isimleri, kullanım amacını yansıtacak nitelikte ve işi anımsatıcı nitelikte olmalıdır.

Bu değişken isimleri web servisten geliyor...
Cevapla
#9
(30-11-2017, Saat: 09:14)eyln Adlı Kullanıcıdan Alıntı:
(29-11-2017, Saat: 22:00)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Merhaba,
Konu biraz içeriğin dışına çıkmış gibi olacak ama;
Kodun revizyonu ve sürdürülebilirliği için kullanılan değişken veya metod isimleri, kullanım amacını yansıtacak nitelikte ve işi anımsatıcı nitelikte olmalıdır.

Bu değişken isimleri web servisten geliyor...

Vermiş olduğum cevaptan olumsuz bir anlam çıkardınız galiba.
Kodlama, isimlendirme standartlarına uygun ve son derece anlaşılır yapılmış.
DelphiCan'dır!
Cevapla
#10
(30-11-2017, Saat: 09:23)Fesih ARSLAN Adlı Kullanıcıdan Alıntı:
(30-11-2017, Saat: 09:14)eyln Adlı Kullanıcıdan Alıntı: Bu değişken isimleri web servisten geliyor...

Vermiş olduğum cevaptan olumsuz bir anlam çıkardınız galiba.
Kodlama, isimlendirme standartlarına uygun ve son derece anlaşılır yapılmış.

Fesih bey sorun yok. yhackup adlı arkadaştan alıntı yapacaktım yanlış oldu.Kodları anlaşılmaz bulan oydu.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Modern Servis Uygulama İskeleti Tuğrul HELVACI 24 24.943 06-05-2026, Saat: 21:47
Son Yorum: frmman
  Datasnap veritabanı kayıt serdar 2 357 30-11-2025, Saat: 10:53
Son Yorum: serdar
  Rest servis api uygulaması yapma tuna 13 1.373 17-10-2025, Saat: 18:40
Son Yorum: tuna
  Veri Tabanına Kontrollü Kayıt Yaptırma bünyamin68 20 4.257 08-06-2025, Saat: 09:40
Son Yorum: izmaimen
  fastreport şablonu database e kayıt ercanskose 11 2.450 18-02-2025, Saat: 17:10
Son Yorum: akuyumcu63



Konuyu Okuyanlar: 1 Ziyaretçi