Merhaba,
Bazı sorgu parametreleri diğer parametreler ile birlikte kullanılamıyor. Ayrıca "q=x" sorgulaması belli sayıdaki faturanın tek tek tüm kaydın okunması ile oluşturuluyor. Dolayısıyla bu sorgulama yöntemi arzu ettiğiniz performansı size sunamayacaktır.
Tavsiyem, aşağıdaki yöntemle veritabanından, t-sql sorguları ile veriye ulaşmanızdır.
Yapmaya çalıştığınız işlem özelinde ise, REST Servis zaten bu işi sizin sorgulamanıza gerek duymadan yapabilir. Aşağıdaki şekilde fiş numarası kısmında eğer "~" (tilde) işareti kullanırsanız, sistem zaten (numaralandırma şablonuna göre) sıradaki numara ile devam edecektir.
Aşağıdaki örnek sipariş için, ancak faturada da aynı durum geçerli. Dikkat ederseniz NUMBER kısmında tilde işareti yer alıyor.
{
"INTERNAL_REFERENCE": 0,
"NUMBER": "~",
"DATE": "2018-02-21T00:00:00",
"TIME": 102581337,
"ARP_CODE": "CARI.01",
"CURRSEL_TOTAL": 1,
"TRANSACTIONS": {
"items": [
{
"TYPE": 0,
"MASTER_CODE": "MALZEME.01",
"QUANTITY": 5,
"PRICE": 10,
"VAT_RATE": 18,
"UNIT_CODE": "ADET",
"UNIT_CONV1": 1,
"UNIT_CONV2": 1,
"EDT_CURR": 1
}
]
}
}
Naci bey öncelikle cevabınız için teşekkür ederim. Yalnız bu durumda şöyle bir senaryo oluşuyor farklı fatura türleri olduğundan birden fazla şablon tanımlaması yapmak gerekiyor ve bu durumda "~" ile otomatik numaralandırma yaptırmak istediğimde hangi şablonu kullanacağını belirtmeliyim, bu numarala şablonunun hangisi kullanılacağını requestte nasıl belirtebilirim.
Ayrıca tsql sorgulaması üzerinden yapmak için salesInvoices hangi tabloyu kullanıyor bilmiyortum. Muhtemelen dönemsel bir tablodur bu durumda aktif dönem numarasınıda sorgulamam gerekiyor ancak bu sorgu nasıl yapılacağını dökümanlarda bulamadım
Merhaba,
REST Servis, Logo Objects metodlarını destekler. Dolayısıyla REST Dökümantasyonunda Logo Objects metodlarını tekrar açıklama gereği duymadık. Örneğin, ihtiyacınız olan metod, Logo Objects tarafındaki GetTableName metodudur. Bu metod REST servisten şu şekilde çağırılabilir(parametrelerinin neler olduğunun Logo Objects dökümanında bulabilirsiniz);
GET Request
http://172.16.57.114:32001/api/v1/methods/GetTableName/14/1/1
Response
LG_001_01_INVOICE
Ancak yine de "~" işaretiyle ilerleyebilirsiniz. REST Servis fatura tipine göre, ilgili faturanın numaralandırma şablonuna bakarak işlem yapar. Hatta daha özel şablonlar oluşturulduysa, misal; A carisine kesilen X özel kodundaki perakende satış faturaları için bir şablon oluşturulduysa REST Servise gönderdiğiniz JSON içeriğine göre işleyip Tiger hangi şablona göre işlem yapıyorsa o şablonu yakalayıp işlemi gerçekleştirir.
Proje içeriğinize hakim olmadığım için ısrarcı olamam, fakat şablon tanımlarında bir sıkıntı olmadığı sürece en kısa ve güvenli çözüm tilda olacağı kanaatindeyim.
Saygılarımla.
Period numarası = 1
Firma numarası = 993
sorgu url = "http://192.168.2.107:9090/api/v1/methods/GetTableName/14/993/1"
sorgu sonucu =
Error: Bad Request / {"Message":"The request is invalid.","ModelState":{"LOError:":["Sonraki satıra konumlanılamadı."]}}
bu hatayı neden aldığım konusunda yardımcı olabilir misiniz.
NOT: "~" üzerinden fatura kesme noktasında bende ısrarcıyım ancak müşterideki durum biraz farklı onlarda Satış Faturası için "Verilen Hizmet Numarası" şablonu 16 haneli rakamlardan oluşuyor ancak elektrik faturası kesecekleri zaman bu numara yerine K000 ile başlayan bir seriden elle girip kesiyorlar hakeza su için S00000, gaz için G0000 bundan ötürü sablon üzerinden gidemiyorlar.
Cevap vermek için giriş yapmanız gerekmektedir.
Soru sormak için lütfen oturum açınız.
Rest Sırgulama Hastası
31/07/18 12:48   Tiger/RESTRest servisi üzerinden fatura numarası belirli bir şablonda olan en son kesilen faturayı almak istiyorum. Bununla alakalı yaptığım test sorgulaması için hata alıyorum.
Rest sorgusu: http://192.168.2.107:9090/api/v1/salesInvoices?limit=1&sort=NUMBER desc&q=NUMBER eq '00000007'
bu sorgu ile "00000007" numaralı faturayı almak istiyorum ancak geriye tüm faturalar dönüyor. Hatayı tam olarak anlayamadım. Ayrıca eq yerine like kullanabilir miyim.
NOT: Bu sorgunun amacı yeni fatura insert etmek için en son kesilmiş fatura numarasını alıp kaldığı yerden artırarak devem etmek.