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ı: 47)
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.
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ış.
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
  INSERT INTO İle Kayit OZCANK 9 338 15-06-2021, Saat: 11:30
Son Yorum: OZCANK
  Regedit den Kayıt Okuma OZCANK 6 342 09-06-2021, Saat: 12:11
Son Yorum: OZCANK
  kayıt sorunu info@guzelceker.com 4 212 06-06-2021, Saat: 21:58
Son Yorum: glagher
  Kaydın ilk veya son kayıt olduğunu anlama akuyumcu63 6 341 26-05-2021, Saat: 07:57
Son Yorum: serdar
  Bant takip ve görüntüleme sistemi Fikirleriniz ? CesuR 15 1.088 26-05-2021, Saat: 02:05
Son Yorum: CesuR



Konuyu Okuyanlar: 1 Ziyaretçi