DİA Web Servisleri Geliştirici Dokümanı v2
Giriş
DİA Kurumsal Yönetim Sistemi ile diğer yazılım sistemleri arasında veri alışverişinin otomatik olarak
yapılabilmesi amacıyla DİA tarafından bazı işlevler web servisi olarak dışarı açılmıştır. Bu doküman
bu işlevlerin kullanımı hakkında teknik bilgi vermektedir.
Genel Bilgiler
DİA web servisleri JSONRPC (v1) yöntemini kullanmaktadır. Çeşitli dil ve platformlarda JSONRPC
gerçekleştirimleri bulunmaktadır (http://jsonrpc.org/wiki/implementations).
● Örnek Java Kütüphanesi: http://software.dzhuvinov.com/jsonrpc2.0base.html
● Örnek C# Kütüphanesi: http://code.google.com/p/jayrock/
JSONRPC çağrılarında kullanılacak olan URL http://sunucukodu.json.dia.gen.tr/ şeklindedir. Bu
URL’deki sunucukodukısmı hangi DİA sunucusu için geliştirme yapılıyorsa onunla değiştirilmelidir.
Veri aktarımı amacıyla kullanılan tüm metotların ilk iki parametresi kullanıcı adı ve şifre dir. Bahsi
geçen kullanıcı, DİA sistemi üzerinden tanımlı olan bir kullanıcıdır. Web servisleri ile yapılacak tüm
işlemler bu kullanıcının yetkilerine tabiidir. DİA üzerinden gerekli yetki ayarlamaları yapılarak web
servisi kullanıcılarının yapabilecekleri işlemler kısıtlanabilir. Web servisi kullanıcısında mutlaka
bulunması gereken yetkiler Genel Yetkiler altında yer alan Veri Aktarımı (Dışarıdan) ve Veri Aktarım
Sihirbazı yetkileridir.
● Web servisinde kullanılan kullanıcı, sisteme hali hazırda bağlı ise bağlantısı kopartılacaktır.
● Tüm servislerin giriş parametreleri string tipindedir. Servislerden dönen cevap formatı:
Sonuç Kodu Anlamı "200" İşlem başarılı "400" İşlem parametrelerinde hata var. "sonuc" anahtar değerine bakılabilir. "401" Yetki sorunu veya kullanıcı adı ve/veya şifre hatalı "405" Lisans sorunu, sunucu üzerinde web servis lisansı tanımlı değil "500" Sunucuda öngörülmeyen hata oluştu. "sonuc" anahtar değerine bakılabilir.
Servis Adı Parametre aktarimprms
gonder_*
gonder_stok gonder_* parametreleri hataolursa
gonder_cari gonder_* parametreleri hataolursa
gonder_potansiyel gonder_* parametreleri hataolursa
gonder_fatura gonder_* parametreleri
gonder_irsaliye gonder_* parametreleri otomatikfisno
gonder_siparis gonder_* parametreleri otomatikfisno
gonder_teklif gonder_* parametreleri otomatikfisno
depokodu gonder_carihesapfisi gonder_* parametreleri otomatikfisno otomatikbelgeno hataolursa ozelkodlar yetkikodları benzerlikkontrolu eslenmeyenler subekodu gonder_malzemefisi gonder_* parametreleri benzerlikkontrolu eslenmeyenler karsisubekodu karsidepokodu gonder_kasafisi gonder_* parametreleri otomatikfisno hataolursa ozelkodlar yetkikodları benzerlikkontrolu eslenmeyenler subekodu gonder_bankafisi gonder_* parametreleri hataolursa ozelkodlar yetkikodları benzerlikkontrolu eslenmeyenler subekodu
Servis Adı Parametreler al_liste_* 1. kullaniciadi
al_liste_stok
al_liste_cari
al_liste_potansiyel
al_liste_fatura
al_liste_irsaliye
al_liste_siparis
al_liste_teklif
al_liste_carihesapfisi
al_liste_malzemefisi
al_liste_kasafisi
al_liste_bankafisi
al_detay_* 1. kullaniciadi
al_detay_stok
al_detay_cari
al_detay_potansiyel
al_detay_fatura
al_detay_irsaliye
al_detay_siparis
al_detay_teklif
al_detay_carihesapfisi
al_detay_malzemefisi
al_detay_kasafisi
al_detay_bankafisi
● kullaniciadi:DİA WS kullanıcı ismi
● sifre:DİA WS kullanıcı şifresi
● xmldata:Aktarılacak veri bilgisini içeren XML verisi. İstenirse GZIP yöntemi ile sıkıştırılıp
● firmakodu: Verinin aktarılacağı firma kodu. Gönderilmez ise kullanıcının öntanımlı firması
● donemkodu: Verinin aktarılacağı firmaya bağlı olan dönem kodu. Gönderilmez ise
● subekodu: Verinin aktarılacağı şubenin kodu.
● depokodu: Verinin aktarılacağı deponun kodu.
● otomatikfisno: Faturaların fiş no bilgilerinin nasıl oluşturulacağını belirtir.
● otomatikfaturano: Faturaların fatura no bilgilerinin nasıl oluşturulacağını belirtir.
● otomatikirsaliyeno: Kayıtların numara bilgilerinin nasıl oluşturulacağını belirtir.
● otomatiksiparisno: Kayıtların numara bilgilerinin nasıl oluşturulacağını belirtir.
● otomatikteklifno: Kayıtların numara bilgilerinin nasıl oluşturulacağını belirtir.
● otomatikbelgeno: Kayıtların numara bilgilerinin nasıl oluşturulacağını belirtir.
● hataolursa: Hata durumunda davranış biçimi.
● ozelkodlar: Fatura özel kodları aktarım davranışı.
● yetkikodlari: Fatura yetki kodları aktarım davranışı.
● benzerlikkontrolu:Fatura numarası daha önce girilmiş kayıtlarla aynı olan faturalar için
● eslenmeyenler: Fatura bilgileri eşlenirken hata oluşursa davranış biçimi.
● carikartkontrolu: Fatura bilgileri eşlenirken cari kart bilgisinin kontrol şekli.
● markalar: Stok markalarının aktarma davranışı.
● vergidaireleri: Cari kartın vergi dairesi bilgisini aktarma davranışı.
● benzerkod: Daha önceden varolan kodla karşılaşıldığındaki davranışı belirler.
● karsisubekodu:Malzeme fişlerinin aktarılacağı hedef şubenin kodu. Depo transfer fişlerinin
● karsidepokodu: Malzeme fişlerinin aktarılacağı hedef deponun kodu. Depo transfer
● songuncelleme: Opsiyonel olarak gönderilebilecek kayıt modifikasyon tarihi. ISO
● filtre: Opsiyonel olarak gönderilebilecek sorgulara eklenebilecek filtrelerin yer aldığı listedir.
C#: Tüm stok listesini XML olarak dışarı alma
(JayRock Kütüphanesi Kullanarak http://code.google.com/p/jayrock/downloads/list, reference Jayrock.dll,
Jayrock.Json.dll, Jayrock.Sandbox.dll, System.Web.Services.dll)
usingSystem;
usingSystem.Collections;
usingSystem.Net;
usingJayrock.Json;
usingJayrock.JsonRpc;
usingSystem.Web.Services;
namespaceDiaWS
{
classMainClass
{
}
}
C#: Cari Kart Listesini JSON Dict olarak dışarı alma
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingJayrock.Json;
usingJayrock.JsonRpc;
usingSystem.Web;
namespaceJSON
{
classMainClass
{
"127.0.0.1",disconnectSameUser);
sessionID,offset,limit,filters,dictFormat);
}
}
C#: Detay Alma Methodu Kullanımı
usingSystem;
usingJayrock.JsonRpc;
usingJayrock.Json;
usingSystem.Web.Services;
namespaceDiaDetailSample
{
classMainClass
{
"Değer"}));
"Değer"}));
"Değer"}));
"A1"}));
"sifre",filters);
"kullaniciadi","sifre",filters);
}
}
C#: Liste Alma Methodu Kullanımı
usingSystem;
usingJayrock.JsonRpc;
usingJayrock.Json;
usingSystem.Web.Services;
namespaceDiaListSample
{
classMainClass
{
"Değer"}));
"Değer"}));
"Değer"}));
"sifre",filters);
}
}
C#: Veri Ekleme Methodu Kullanımı
usingSystem;
usingSystem.IO;
usingJayrock.JsonRpc;
usingJayrock.Json;
usingSystem.Web.Services;
namespaceDiaImportSample
{
classMainClass
{
"BENZER_KODA_YENI_KOD_VER"}));
"sifre",xml,parameters);
}
}