WSDL array of string veri gönderme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
sunye
Üye
Mesajlar: 105
Kayıt: 24 Ağu 2004 04:49
Konum: izmir

WSDL array of string veri gönderme

Mesaj gönderen sunye »

Merhaba,

Daha önce buraya soru olarak yazdığım UETDS sistemi ile ilgili oldukça yol aldım ve son aşamada tıkandım kaldım.

Kod: Tümünü seç

	https://servis.turkiye.gov.tr/services/g2g/kdgm/test/uetdsarizi?wsdl

personelEkle metodu;
    • Sefere personel ekleme için Bakanlık tarafından sağlanan personelEkle servis metodu kullanılır.
    • UETDS sistemine bildirilen bir sefere sonradan personel ataması işleminin yapılabildiği metottur.
    • Bildirimde; UetdsYtsUser wsuser kullanıcıAdı, şifre ve uetdsSeferReferansNo ile seferPersonelBilgileriInput bilgileri verilen parametreler gönderilir.
    • Sorgu sonucu başarılıysa sonucKodu parametresi 0 bilgisi döner.
    • sonucMesaji; Hata durumunda hatanın açıklamasını döner.
    • Sorgulamanın girdi ve çıktıları aşağıdaki gibidir;


    Girdiler
    Parametre adı :
    UetdsYtsUser; kullaniciAdi, sifre, uetdsSeferReferansNo

    UetdsSeferPersonelBilgileriInput; turKodu, uyrukUlke, tcKimlikPasaportno, cinsiyet, adi, soyadi, telefon, adres

    Çıktılar
    sonucKodu
    sonucMesaji

    Kod: Tümünü seç

    var
      PEkle : personelEkle;
      PEkleSonuc : personelEkleResponse;
      PKullanici : uetdsYtsUser;
      PBilgiler : uetdsAriziSeferPersonelBilgileriInput;
      PBilgiler2 : Array_Of_uetdsAriziSeferPersonelBilgileriInput;
    

    Kod: Tümünü seç

      PKullanici:=uetdsYtsUser.Create;
      PKullanici.kullaniciAdi:=UETDSAdi;
      PKullanici.sifre:=UETDSSifre;
    
      PEkle:=personelEkle.Create;
      PEkle.wsuser:=PKullanici;
      PEkle.uetdsSeferReferansNo:=StrToInt64(SQLSeferPersonelSEFER_NO.Value);
    
      PBilgiler:=uetdsAriziSeferPersonelBilgileriInput.Create;
      PBilgiler.turKodu:=SQLSeferPersonelTURKODU.Value;
      PBilgiler.uyrukUlke:=SQLSeferPersonelUYRUKULKE.Value;
      PBilgiler.tcKimlikPasaportNo:=SQLSeferPersonelTCKIMLIK.Value;
      PBilgiler.cinsiyet:=SQLSeferPersonelCINSIYET.Value;
      PBilgiler.adi:=SQLSeferPersonelADI.Value;
      PBilgiler.soyadi:=SQLSeferPersonelSOYADI.Value;
      PBilgiler.telefon:=SQLSeferPersonelTELEFON.Value;
      PBilgiler.adres:=SQLSeferPersonelADRES.Value;
    
      PEkle.seferPersonelBilgileriInput[0]:=PBilgiler;
    
      PEkleSonuc:=personelEkleResponse.Create;
      try
        PEkleSonuc:=Port.personelEkle(PEkle);
        if PEkleSonuc.return.sonucKodu=0 then begin
          Application.MessageBox('Seçili personel UEDTS sistemine eklendi.','UEDTS',MB_OK+MB_ICONERROR);
        end
        else begin
          Application.MessageBox('Personel UETDS sistemine eklenemedi!!!!','Hata',MB_OK+MB_ICONERROR);
        end;
      except
      end;
    

    bu şekilde çalıştırdığımda program

    Kod: Tümünü seç

      PEkle.seferPersonelBilgileriInput[0]:=PBilgiler;
    
    Bu satırda access violation veriyor.

    Elimdeki verileri hangi metodu kullanarak göndermem lazım?

    Kod: Tümünü seç

    PEkle.seferPersonelBilgileriInput:=PBilgiler;
    
    bu şekilde yazarsam da; derleme esnasında

    Kod: Tümünü seç

    [dcc32 Error] UPersonelListe.pas(330): E2010 Incompatible types: 'Array_Of_uetdsAriziSeferPersonelBilgileriInput' and 'uetdsAriziSeferPersonelBilgileriInput'
    
    hatası veriyor.
    Bildiğim tek şey, hiç bir şey bilmediğim.
    Kullanıcı avatarı
    sunye
    Üye
    Mesajlar: 105
    Kayıt: 24 Ağu 2004 04:49
    Konum: izmir

    Re: WSDL array of string veri gönderme

    Mesaj gönderen sunye »

    Sorun çözüldü.

    Kod: Tümünü seç

     //Sefer personel ekle
      try
        Port:=UETDSArizi.GetUdhbUetdsAriziService;
        if Port.servisTest('Durum')<>'Durum OK' then begin
          ShowMessage('Servis çalışmıyor');
          Exit;
        end;
      except
        ShowMessage('Kullanıcı bilgileri hatalı');
        Exit;
      end;
      PKullanici:=uetdsYtsUser.Create;
      PKullanici.kullaniciAdi:=UETDSAdi;
      PKullanici.sifre:=UETDSSifre;
    
      PEkle:=personelEkle.Create;
      PEkle.wsuser:=PKullanici;
      PEkle.uetdsSeferReferansNo:=StrToInt64(SQLSeferPersonelSEFER_NO.Value);
      SetLength(PBilgiler2,1);
    
    
      PBilgiler2[0]:=uetdsAriziSeferPersonelBilgileriInput.Create;
      PBilgiler2[0].turKodu:=SQLSeferPersonelTURKODU.Value;
      PBilgiler2[0].uyrukUlke:=SQLSeferPersonelUYRUKULKE.Value;
      PBilgiler2[0].tcKimlikPasaportNo:=SQLSeferPersonelTCKIMLIK.Value;
      PBilgiler2[0].cinsiyet:=SQLSeferPersonelCINSIYET.Value;
      PBilgiler2[0].adi:=SQLSeferPersonelADI.Value;
      PBilgiler2[0].soyadi:=SQLSeferPersonelSOYADI.Value;
      PBilgiler2[0].telefon:=SQLSeferPersonelTELEFON.Value;
      PBilgiler2[0].adres:=SQLSeferPersonelADRES.Value;
      PEkle.seferPersonelBilgileriInput:=PBilgiler2;
    
      PEkleSonuc:=personelEkleResponse.Create;
    Bildiğim tek şey, hiç bir şey bilmediğim.
    Cevapla