10-03-2025, Saat: 15:01
Merhaba,
e-Fatura için hizmet aldığım firma SOAP servis üzerinden bilgileri sunuyor.
Kayıtlı GİB kullanıcı listesini önceden SOAP servisten sorunsuz çekiyordum. Bana biz zip dosya içeriği geliyordu. Bende zipi kayıt edip içeriğini açarak gelen xml dosyayı içeriğini parse ederek kullanıyordum.
Son zamanlarda mükellef firmaların artması ile bana sunulan liste çok fazla şişti ve artık çekmek istediğim zaman out of memory alıyorum.
Dönüş olarak dosya adı vs diğer bilgilerle birlikte asıl bilgi olan zip dosyanın içeriği TByteSOAPArray tipinde geliyor. Fakat boyutu çok fazla olduğu için işlem devam ederken hata alıyorum.
Bu konuda nasıl ilerlemeliyim? Böyle bir durumla karşılaşan oldu mu? Gelen bilgiyi bellek yerine dosyaya yazmak gibi bir mantık gördüm.
Fakat nasıl olacağına anlam veremedim.
Kodum aşağıdaki gibi 27. satırda işlem devam ederken hata alıyorum.
e-Fatura için hizmet aldığım firma SOAP servis üzerinden bilgileri sunuyor.
Kayıtlı GİB kullanıcı listesini önceden SOAP servisten sorunsuz çekiyordum. Bana biz zip dosya içeriği geliyordu. Bende zipi kayıt edip içeriğini açarak gelen xml dosyayı içeriğini parse ederek kullanıyordum.
Son zamanlarda mükellef firmaların artması ile bana sunulan liste çok fazla şişti ve artık çekmek istediğim zaman out of memory alıyorum.
Dönüş olarak dosya adı vs diğer bilgilerle birlikte asıl bilgi olan zip dosyanın içeriği TByteSOAPArray tipinde geliyor. Fakat boyutu çok fazla olduğu için işlem devam ederken hata alıyorum.
Bu konuda nasıl ilerlemeliyim? Böyle bir durumla karşılaşan oldu mu? Gelen bilgiyi bellek yerine dosyaya yazmak gibi bir mantık gördüm.
Fakat nasıl olacağına anlam veremedim.
Kodum aşağıdaki gibi 27. satırda işlem devam ederken hata alıyorum.
getServiceValues(adrWSDL, adrURL, adrSvc, adrPrt, usr, pass); web_servis := GetIPostBoxService(False, adrWSDL); m_login := Login.Create; m_login_type2 := LoginType2.Create; m_getUserListNew := getUserListNew.Create; m_login_type2.appStr := ownerFatura.Database.FirmaBilgileri.eFtrAppStr; m_login_type2.userName := ownerFatura.Database.FirmaBilgileri.eFtrUserName; m_login_type2.passWord := ownerFatura.Database.FirmaBilgileri.eFtrPassWord; m_login_type2.version := ownerFatura.Database.FirmaBilgileri.eFtrVersion; m_login.login := m_login_type2; m_login_response := web_servis.Login(m_login); //sessionID al m_sessionID := m_login_response.sessionID; m_getUserListNew.login := m_login.login; //tip bilgisini PKList(Posta Kutusu) / GBList(Gönderici Bilgisi) için ayarla if is_pk_list then m_getUserListNew.listType := UserListType.PKLIST else m_getUserListNew.listType := UserListType.GBLIST; m_userListNewResponse := web_servis.getUserListNew(m_getUserListNew); //gelen base64 bilgiyi binary dosyaya çevir TGenel.Base64BinaryToFile(TArray<Byte>(m_userListNewResponse.getUserListNewResult.binaryData.Value), m_userListNewResponse.getUserListNewResult.fileName, ExtractFilePath(Application.ExeName));
PostgreSQL - Linux - Delphi, Poliüretan




