CetaSoft Ofis E-Ticaret Modülü ile Sunulan Web Servisleri

Benzer belgeler
VERİTABANINA BİLGİ KAYDEME, DÜZENLEME, LİSTELEME İŞLEMLERİ

BİLGİLERİ GÖRÜNTÜLEME, KAYDETME, GÜNCELLEME VE SİLME İŞLEMLERİNİN BİRLİKTE ANLATIMI

İNTERNET TABANLI PROGRAMLAMA- 8.ders VERİTABANI İLE İLGİLİ BİLGİLERİ GÖRÜNTÜLEME, KAYDETME, GÜNCELLEME VE SİLME

İNTERNET TABANLI PROGRAMLAMA- 10.ders GRIDVIEW İÇERİSİNDE YENİ KAYIT EKLEME, FOTOGRAF LİSTELEME, SIRALAMA YAPMA VE DROPDOWN EKLEME

İNTERNET TABANLI PROGRAMLAMA- 9.ders BİLGİLERİN GRIDVIEW İÇERİSİNDE EKLENMESİ, DÜZENLENMESİ VE SİLİNMESİ

SINIF İÇİ UYGULAMA KODLARI

BİLGİLERİ GRIDVIEW DE GÖRÜNTÜLEME VE DÜZENLEME

MASTER PAGE SAYFASI KULLANIMI

SAYFALAR ARASI LİNK VERME VE BİLGİ TAŞIMA YÖNTEMLERİ

İNTERNET TABANLI PROGRAMLAMA- 11.ders FORM UYGULAMASI (DROPDOWN BİLGİ YÜKLEME, VALIDATION KONTROLLERI, PAREMETRELİ KAYIT YAPMA)

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik.

ASP.NET CLASS KULLANARAK VERİTABANI İŞLEMLERİ

GridView ve DetailsView kullanarak kayıt düzenlemek

Kitap Ekle linki tıklandığında, admin.aspx sayfamızın görüntüsü aşağıdaki şekilde olacaktır.

Resimlerin üstüne yazı yazacağız. resimyukle.aspx sayfası oluşturuyoruz.

A- VERİTABANI BAĞLANTISINI HAZIR NESNE KULLANARAK YAPMA

Masa üstünde vt34.mdb dosyası var, onu projemize eklemek için, App_Data ya sağ tıkla Add Existing Item vt34.mdb adlı dosyayı seç Add

İNTERNET TABANLI PROGRAMLAMA- 7.ders

İNTERNET TABANLI PROGRAMLAMA- 13.ders A-GRIDVIEW, DETAILSVIEW, ACCESSDATASOURCE NESNELERİ İLE BİLGİ GÖRÜNTÜLEME

Önce Access açıp,masaüstü ne, vt.mdb adlı veri tabanı dosyasını oluşturuyoruz. Kayıt türünü seçiyoruz

User Control : Standart bir kullanıcı arabirimi oluşturarak; bir uygulama içinde birden fazla. Siteye User Control Eklemek : 22 Mart 2012 / Perşembe

NOT: VERİTABANINDAKİ TABLOLARI OLUŞTURMAYI DA UNUTMAYACAĞIZ.

PROGRAMLAMA DERSİ 1. İNTERNET

VeriTabanı Uygulamaları

REQUEST QUERY STRING. Sayfalar: default.aspx ve sorgu_sayfasi.aspx. default.aspx sayfası: sorgu_sayfasi.aspx sayfası:

Mikro Ayarları. Mikro Programının kurulu olduğu veritabanı ve web servisi için bağlantı ayarlarının yapıldığı menüdür.

LINQ Language Integrated Query Dille Bütünleştirilmiş Sorgu Bir Veri Tabanı Tablosundan Veri Gösterme

ADO.NET VERİTABANINA BAĞLANTI. Bir web formu üzerinden veritabanına bağlantımızı anlatacağım. UYGULAMA 1

ASP.NET Web Kontrolleri

1 Aralık 2011 / Perşembe

Vega Ayarları. Vega Programının kurulu olduğu veritabanı ve web servisi için bağlantı ayarlarının yapıldığı menüdür.

IdeaSoft E-Ticaret ile LOGO Ticari Yazılım Entegrasyon Kullanım Kılavuzu

BOTAŞ EBT BİLGİ YÖNETİM SİSTEMİ WEB SERVİSLERİ

TARİHÇE. Versiyon Tarih Düzenleyen Açıklama Engin DURMAZ İlk versiyon

Sağ Tıkla. 5 Ocak 2012 / Perşembe. Yeni bir site açıyoruz. File New Web Site Browse yeni klasör ocak5persembe OK

BOTAŞ EBT BİLGİ YÖNETİM SİSTEMİ WEB SERVİSLERİ

HİTİT Muhasebe Aktarım Kurulum ve Kullanım Kılavuzu (Netsis Modülü)

Programlama Yazılımı ile Web Sitesi Oluşturma

yeni_uye_kayit.ascx UserControl sayfamızda, kaydedilmek istenen üye eğer daha önce veritabanımızda kayıtlı ise bunu buldurup kullanıcıyı uyaralım;

ASP.NET ile Bir Web Sitesi Oluşturma

GENETİK ALGORİTMA GEZGİN SATICI ÖDEVİ

Karabük Üniversitesi, Mühendislik Fakültesi... AJAX KULLANIMI

Karabük Üniversitesi, Mühendislik Fakültesi... AJAX KULLANIMI

WebInstaller. 1. Kurulum Đçin Gereksinimler

Durum Yönetimi. Olan sayfalar ekleyelim. BasitSayac.aspx

Karabük Üniversitesi, Mühendislik Fakültesi... WEB TEKNOLOJİLERİ

C# ile NJ Simulatöre Bağlanmak

Hitit R5 Ayarları. Hitit R5 Programının kurulu olduğu veritabanı ve web servisi için bağlantı ayarlarının yapıldığı menüdür.

MySqlConnection connection; MySqlCommand command; MySqlDataReader reader; MySqlDataAdapter adapter; DataTable table;

Veritabanı İşlemleri

Ders 8: Metotlar. barisgokce.com

08217 Internet Programcılığı II

JAVA API v2.0 Belge sürümü: 2.0.2

Dış Kurum Entegrasyonları TURKPOS API. Yardım Dokümanı

C Sharp /Veri tabanı işlemleri

Kets DocPlace LOGO Entegrasyonu

Coslat Monitor (Raporcu)

ETA:MOBİL KURULUM TALİMATI

15xx versiyonu / Tarihli Arşivin İçeriği

ASP.NET 1. DURUM YÖNETİMİ. BLM 318 e-ticaret ve Uyg. Durum Yönetimi Nedir? Durum Yönetimi: Karșılaștırma İÇERİK. Sunucu-taraflı Durum Yönetimi

ORT3167 İnternet Programcılığı 1 Ders1-2. Öğr. Grv. Aybike ŞİMŞEK

JSF Melih Sakarya. Java Server Faces Facelet

İNTERNET TABANLI PROGRAMLAMA

MOBILEPAX ENTERPRISE API (WEB SERVİS)

Doküman JETSMS XML Mesaj Đşlemleri Yardım Dokümanı Tarih Sürüm 1.1.0

Proje Uyarlama Adımları Dokümanı

WEB KULLANICI KONTROLLERİ ve ANASAYFA KULLANMA(Master Page)

Microsoft SQL Server 2008 Oracle Mysql (Ücretsiz) (Uygulamalarımızda bunu kullanacağız) Access

PERKON PDKS Kurulum ve hızlı başlangıç rehberi

SysMondPOS Kurulum ve Kullanım Klavuzu

24 Mart İlgili Modül/ler : Transfer. İlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL

Internet Programming I. Hafta I. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

YENİ NESİL ÖKC İLE ON-LİNE İŞLEMLER (Hugin / Profilo)

Kets DocPlace Bilgi Bankası. 1. İstemcilerde sunucuya ulaşılamadı şeklinde bağlantı hatası alınıyor... 2

Bölüm 10: PHP ile Veritabanı Uygulamaları

1. Defter detaylarına ait bilgilerin, örneğin yevmiye kayıtlarının olduğu dosya 2. Bir nevi kapak sayfası diyebileceğimiz Berat dosyası

ASP.NET SAYFA DETAYLARI. Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu

WOLVOX Veri Transfer. AKINSOFT WOLVOX Veri Transfer Yardım Dosyası. Doküman Versiyon :

Interprise. Ülker İletişim Web Servisi. Bu doküman Ülker iletişim web servisi hakkında teknik açıklamaları içerir. İletişim web servisi web adresi :

Sunum Planı. Django Nedir? Django projesi oluşturmak Basit bir blog uygulaması. Şablon Kullanımı Diğer özellikleri

LOGO için Online Mutabakat Kullanım Kılavuzu

IdeaSoft E-Ticaret ile LOGO Ticari Yazılım Entegrasyon Kullanım Kılavuzu

XML ile Mesaj İşlemleri

C#.Net & Linq (Language Integrated Query)

Öğr. Gör. Serkan AKSU 1

MOBILEPAX SOAP PRODUCT API KULLANIM ŞEKLİ

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Tanıtım Sunumu Internet Programcılığı II. ASP and ASP variables. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. 02 Eki.

Tel:

-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir.

CODEIGNITER SEMINERI KÜTÜPHANE YAZMA GÜVENLIK ÖNLEMLERI CODEIGNITER 2.0

SIMAN KULLANIM KILAVUZU

02 Temmuz İlgili Versiyon/lar: ETA:SQL, ETA:V.8-SQL. İlgili Modül/ler: Muhasebe IV

İçindekiler Tablosu Talep Destek Yönetim Sistemi Programı...3

20 Mayıs İlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. İlgili Modül/ler : Muhasebe IV

VERİ TABANI İŞLEMLERİ (NESNE TABANLI PROGRAMLAMA TEKNİĞİ İLE)

DESTEK DOKÜMANI. Ürün : Tiger Enterprise/ Tiger Plus/ Go Plus/Go Bölüm : Kurulum İşlemleri

COM API v2.0 Belge sürümü : 2.0.3


Transkript:

İçindekiler 1. Giriş 2. Sunulan Web Servislerine Hızlı Bakış a) AddCustomer b) EditCustomer c) GetCustomer d) GetBankAccounts e) AddOrder f) AddOrderedItem g) GetOrderStatus h) GetProductsByCategory i) AdvancedSearch j) SimpleSearchFullMatch k) SimpleSearch l) GetProductByStockCode m) GetProductsInStock n) GetAllProducts o) GetCategoryNames p) GetOwnerOfWebServices q) GetVersion 3. Ortak Özellikler 4. Sunulan Servislerin Detayları a) AddCustomer b) EditCustomer c) GetCustomer d) GetBankAccounts e) AddOrder f) AddOrderedItem CetaSoft Ofis E-Ticaret Modülü ile Sunulan Web Servisleri 1

g) GetOrderStatus h) GetProductsByCategory i) AdvancedSearch j) SimpleSearchFullMatch k) SimpleSearch l) GetProductByStockCode m) GetProductsInStock n) GetAllProducts o) GetCategoryNames p) GetOwnerOfWebServices q) GetVersion 5. Örnekler a) ASP.Net Örnekleri b) PHP Örnekleri 2

1. Giriş Bu döküman, CetaSoft Ofis programını kullanan işletmeler için e-ticaret sitesi hazırlayan web tasarım firmalarının, CetaSoft Ofis programı ile entegre çalışan çözümler geliştirebilmeleri için hazırlanmıştır. İlerleyen kısımlarda, sunulan tüm servisler hakkında detaylı bilgi ve kullanımlarına ilişkin ASP.Net ve PHP örnek kodları bulabileceksiniz. CetaSoft Ofis Web Servislerini barındıracak sunucunun yapılandırılmasında dikkat edilmesi gerekenler: CetaSoft Ofis Web Servisleri.Net Framework 2.0 kullanılarak geliştirilmiştir. Bunun için IIS'nin.Net Framework 2.0'ı desteklemesi sağlanmalıdır. 64 bit sunucularda, IIS uygulama havuzları, varsayılan olarak 32 bit uygulamaları çalıştırmayacak şekilde ayarlıdır. Access veritabanlarına erişirken kullanılan OLEDB Provider'in 64 bit sürümü olmadığı için varsayılan ayarlar ile web servisleri Access veritabanı dosyalarını kullanamaz. Bunu çözmek için web servislerinin kullandığı uygulama havuzunun gelişmiş ayarlarından, 32 bit uygulamaların çalışmasına izin vermesi sağlanmalıdır. CetaSoft Ofis Web Servislerinin, CetaSoft Ofis programıyla aynı anda veritabanını kullanabilmesi için web servislerinin altında çalıştığı kullanıcının, veritabanının bulunduğu klasöre yazma hakkı olmalıdır, sadece veritabanından okuma yapan servisler kullanılacak olsa bile. Aksi taktirde CetaSoft Ofis programı açıkken web servisleri kullanılmaya çalışıldığında File already in use. istisnası oluşur. Bunun nedeni Access veritabanlarında kilitleme mekanizmasının, veritabanının bulunduğu dizinde.ldb uzantılı bir dosya oluşturmasıdır. Dizine yazma hakkı olmayan kullanıcı zaten açık olan Access veritabanına bağlanamaz. IIS'nin uygulamaları hangi kullanıcı kimliğiyle çalıştırdığı işletim sisteminin versiyonuna göre değişmektedir: Windows XP Pro için ASPNET Windows Server 2003, 2008 ve Vista için NETWORK SERVICE Windows 7 Ultimate için IIS_IUSRS Diğer versiyonlar için kullanıcı adı, GetOwnerOfWebServices() servisi kullanılarak öğrenilebilir. Bu 3

kullanıcıya veritabanının bulunduğu dizine yazma hakkı verilmelidir. Veritabanında değişiklik yapan servislerin kullanılması isteniyorsa (yeni kullanıcı yaratan veya sipariş alan servisler gibi) önceki maddede bahsedilen kullanıcıya, veritabanı dosyasına da yazma hakkı verilmiş olmalıdır. Yoksa veritabanı dosyasına yazmak isteyen web servisleri başarısız olup istisna oluşturacaktır. 4

2. Sunulan Web Servislerine Hızlı Bakış CetaSoft Ofis E-Ticaret Modülü tarafından aşağıda listelenen web servisleri sunulur: a) AddCustomer - Yeni bir müşteri kaydı oluşturur. public int AddCustomer(string strkullaniciadi, string strsifre, string strad, string strsoyad, string stristel, string strevtel, string strfaks, string strceptel, string strfaturaadres, string strfaturasehir, string strteslimadres, string strteslimsehir, string stremail, string strvatandaslikno, string strvergidairesi, string strvergino) b) EditCustomer - Mevcut bir müşterinin bilgilerinde değişiklik yapar. public bool EditCustomer(string strkullaniciadi, string strsifre, int imusteriid, string strad, string strsoyad, string stristel, string strevtel, string strfaks, string strceptel, string strfaturaadres, string strfaturasehir, string strteslimadres, string strteslimsehir, string stremail, string strvatandaslikno, string strvergidairesi, string strvergino) c) GetCustomer - İstenen müşterinin bilgilerini alır. public DataSet GetCustomer(string strkullaniciadi, string strsifre, int imusteriid) d) GetBankAccounts - Banka hesaplarını ve kodlarını alır. public DataSet GetBankAccounts(string strkullaniciadi, string strsifre) 5

e) AddOrder - Yeni sipariş oluşturur. public int AddOrder(string strkullaniciadi, string strsifre, int imusteriid, double dtahsilattutari, int itahsilatturu, int itahsilatkuru, int ibankahesapid, string strkargotercihi, string strnot) f) AddOrderedItem - Oluşturulmuş siparişe ürün ekler. public bool AddOrderedItem(string strkullaniciadi, string strsifre, int isiparisid, string strstokkodu, double dmiktar, double dtutar, int itutarkuru) g) GetOrderStatus - Siparişin durumu hakkında bilgi alır. public DataSet GetOrderStatus(string strkullaniciadi, string strsifre, int isiparisid) h) GetProductsByCategory - Belirtilen kategorideki ürünlerin bilgilerini alır. public DataSet GetProductsByCategory(string strkullaniciadi, string strsifre, string strkategori1, string strkategori2, string strkategori3, string strkategori4, string strkategori5) i) AdvancedSearch - Cins, Özellik, Marka, Model, Beden, Renk, Cinsiyet alanlarında içeren araması yapar. public DataSet AdvancedSearch(string strkullaniciadi, string strsifre, string strcins, string strozellik, string strmarka, string strmodel, string strbeden, string strrenk, string strcinsiyet) 6

j) SimpleSearchFullMatch - Cins alanında tam eşleşme araması yapar. public DataSet SimpleSearchFullMatch(string strkullaniciadi, string strsifre, string strcins) k) SimpleSearch - Cins alanında içeren araması yapar. public DataSet SimpleSearch(string strkullaniciadi, string strsifre, string strcins) l) GetProductByStockCode - Stok kodu verilen ürünün bilgilireni alır. public DataSet GetProductByStockCode(string strkullaniciadi, string strsifre, string strstokkodu) m) GetProductsInStock - Stokta olan ürünlerin bilgilerini alır. public DataSet GetProductsInStock(string strkullaniciadi, string strsifre) n) GetAllProducts - Tüm ürünlerin bilgilerini alır. public DataSet GetAllProducts(string strkullaniciadi, string strsifre) o) GetCategoryNames - Kategori isimlerini alır. public DataSet GetCategoryNames(string strkullaniciadi, string strsifre, int ikategorino) p) GetOwnerOfWebServices - Web servislerinin altında çalıştığı kullanıcı adı. public string GetOwnerOfWebServices() q) GetVersion - CetaSoft Ofis Web Servis Versiyonunu döndürür. public string GetVersion() 7

3. Ortak Özellikler Bu bölümde CetaSoft Ofis E-Ticaret Modülü'nün sunduğu web servislerin hepsi için geçerli olan ortak özellikler açıklanmıştır. Sunulan servislerin hepsi, çalışmaya devam edemeyecekleri bir hatayla karşılaşmaları veya geçersiz parametreyle çağırılmış olmaları gibi durumlarda bir istisna oluştururlar. Bir kaç istisna hariç tüm servislerin ilk iki parametresi aynıdır. Bunlar string veri türündeki strkullaniciadi ve strsifre parametreleridir. Çağırılan servisler ilk önce bu parametreleri kontrol ederler. Eğer girilen kullanıcı adı ve şifre geçerli değilse aşağıdaki mesajı içeren bir istisna durumu oluşur: Kullanıcı adı veya şifre hatalı. Servisler için geçerli tek kullanıcı adı WEBUSER dır. CetaSoft Ofis E-Ticaret modülü lisanslandığında WEBUSER kullanıcısı otomatik olarak oluşturulur. Otomatik oluşturma işlemi sırasında, WEBUSER kullanıcısına şifre olarak 0000 (4 adet sıfır) atanır. Servisler çağırılırken strsifre parametresine verilen değer ile CetaSoft Ofis Programında oluşturulan WEBUSER kullanıcısın şifresini karşılaştırır. Servisin kendisinden beklenen görevi yerine getirebilmesi için iki şifrenin aynı olması gerekir. WEBUSER kullanıcısının şifresi, CetaSoft Ofis programından değiştirilebilir. Servisler, kullanılacak veritabanını, servisin bulunduğu aktif dizindeki database.path dosyasından alırlar. Bu dosya kullanılacak veritabanının adını ve yolunu içeren bir text dosyasıdır. CetaSoft E-Ticaret Modülü ile gelen database.path dosyası, CetaSoft Ofis Programının varsayılan kurulum dizinindeki varsayılan veritabanını işaret eder: C:\goldofis\ofisdata.mdb 8

Servisler kullanılmaya başlamadan önce bu dosyanın içeriği, kullanılacak veritabanı dosyasını gösterecek şekilde değiştirilmiş olmalıdır. Bu dosya bulunamazsa servis, aşağıdaki mesajı içeren bir istisna oluşturacaktır: Dosya bulunamadı 'database.path'. Eğer database.path dosyası bulunur fakat işaret ettiği veritabanı dosyası bulunamazsa bu sefer aşağıdaki gibi bir mesaj içeren istisna oluşur: 'c:\goldofis\ofisdata.mdb' dosyası bulunamadı. Son olarak tüm servisler, CetaSoft Ofis E-Ticaret Modülünü kullanmak için lisans sahibi olup olmadığınızı kontrol eder. Eğer lisans bulunamazsa aşağıdaki mesajı içeren bir istisna durumu oluşur: "CetaSoft Ofis E-Ticaret lisansı bulunamadı. Lisans almak için CetaSoft Yazılım ile iletişime geçiniz. (www.cetasoft.com.tr)" 9

4. Sunulan Servislerin Detayları Önceki bölümde bahsedilen ortak giriş parametrelerine ve hata durumlarına ilave olarak, her servisin kendine özel başka giriş parametreleri ve hata durumları vardır. Bu bölümde bunlar ve servislerin geri döndürdükleri değerler ayrıntılı olarak açıklanmıştır. Bir giriş parametresi, açıklamasında tersi belirtilmediği sürece boş bırakılabilir. a) AddCustomer Yeni bir müşteri kaydı oluşturur. public int AddCustomer(string strkullaniciadi, string strsifre, string strad, string strsoyad, string stristel, string strevtel, string strfaks, string strceptel, string strfaturaadres, string strfaturasehir, string strteslimadres, string strteslimsehir, string stremail, string strvatandaslikno, string strvergidairesi, string strvergino) strad strsoyad stristel strevtel strfaks strceptel : En çok 15 karakter. Boş bırakılamaz. : En çok 20 karakter. Boş bırakılamaz. : En çok 20 karakter. : En çok 20 karakter. : En çok 20 karakter. : En çok 20 karakter. 10

strfaturaadres strfaturasehir strteslimadres strteslimsehir stremail strvatandaslikno strvergidairesi strvergino : En çok 255 karakter. Boş bırakılamaz. : En çok 25 karakter. Boş bırakılamaz. : En çok 255 karakter. Boş bırakılamaz. : En çok 25 karakter. Boş bırakılamaz. : En çok 255 karakter. : En çok 15 karakter. : En çok 25 karakter. : En çok 15 karakter. Müşteriye atanan, tamsayı (int) türünden id değerini döndürür. Bu müşteriyle ilgili yapılacak diğer işlemlerde, bu id değeri diğer servislerin giriş parametresi olarak kullanılır. "strad parametresi boş bırakılamaz." b) EditCustomer "strsoyad parametresi boş bırakılamaz." "strfaturaadres parametresi boş bırakılamaz." "strfaturasehir parametresi boş bırakılamaz." "strteslimadres parametresi boş bırakılamaz." "strteslimsehir parametresi boş bırakılamaz." 11

Mevcut bir müşterinin bilgilerinde değişiklik yapar.boş string geçilen alanları değiştirmeden bırakır. public void EditCustomer(string strkullaniciadi, string strsifre, int imusteriid, string strad, string strsoyad, string stristel, string strevtel, string strfaks, string strceptel, string strfaturaadres, string strfaturasehir, string strteslimadres, string strteslimsehir, string stremail, string strvatandaslikno, string strvergidairesi, string strvergino) imusteriid strad strsoyad stristel strevtel strfaks strceptel strfaturaadres strfaturasehir strteslimadres strteslimsehir stremail strvatandaslikno strvergidairesi : Bilgilerinde değişiklik yapılmak istenen müşterinin AddCustomer servisi tarafından atanan id değeri. : En çok 15 karakter. : En çok 20 karakter. : En çok 20 karakter. : En çok 20 karakter. : En çok 20 karakter. : En çok 20 karakter. : En çok 255 karakter. : En çok 25 karakter. : En çok 255 karakter. : En çok 25 karakter. : En çok 255 karakter. : En çok 15 karakter. : En çok 25 karakter. 12

strvergino : En çok 15 karakter. "Değiştirilecek bilgi belirtilmemiş." Tüm giriş parametreleri boş bırakılmışsa servis, müşteri bilgilerinde herhangi bir değişiklik yapmaz ve bu istisnayı üretir. "Bu numarayla kayıtlı müşteri yok." imusteriid parametresine verdiğiniz değerle kayıtlı bir müşteri mevcut değilse bu mesajı içeren bir istisna oluşur. c) GetCustomer İstenen müşterinin bilgilerini alır. public DataSet GetCustomer(string strkullaniciadi, string strsifre, int imusteriid) imusteriid : Bilgileri alınmak istenen müşterinin AddCustomer servisi tarafından atanan tamsayı (int) türünden id değeri. Aşağıda tanımı verilen alanları içeren bir tablo barındıran DataSet nesnesini döndürür. Eğer verilen Müşteri id'si bulunamazsa veri içermeyen bir dataset döndürür. <xs:element name="ad" type="xs:string" minoccurs="0"/> 13

<xs:element name="soyad" type="xs:string" minoccurs="0"/> <xs:element name="istel" type="xs:string" minoccurs="0"/> <xs:element name="evtel" type="xs:string" minoccurs="0"/> <xs:element name="faks" type="xs:string" minoccurs="0"/> <xs:element name="ceptel" type="xs:string" minoccurs="0"/> <xs:element name="faturaadres" type="xs:string" minoccurs="0"/> <xs:element name="faturasehir" type="xs:string" minoccurs="0"/> <xs:element name="teslimadres" type="xs:string" minoccurs="0"/> <xs:element name="teslimsehir" type="xs:string" minoccurs="0"/> <xs:element name="email" type="xs:string" minoccurs="0"/> <xs:element name="vatandaslikno" type="xs:string" minoccurs="0"/> <xs:element name="vergidairesi" type="xs:string" minoccurs="0"/> <xs:element name="vergino" type="xs:string" minoccurs="0"/> d) GetBankAccounts Banka hesaplarını ve kodlarını alır. public DataSet GetBankAccounts(string strkullaniciadi, string strsifre) Özel bir parametre almaz. Aşağıda tanımı verilen alanları içeren bir tablo barındıran DataSet nesnesini döndürür. 14

Eğer tanımlı bir banka hesabı bulunamazsa veri içermeyen bir dataset döndürür. <xs:element name="id" type="xs:int" minoccurs="0"/> <xs:element name="bankaadi" type="xs:string" minoccurs="0"/> <xs:element name="sube" type="xs:string" minoccurs="0"/> <xs:element name="hesapkuru" type="xs:string" minoccurs="0"/> <xs:element name="hesapno" type="xs:string" minoccurs="0"/> e) AddOrder Yeni sipariş oluşturur. public int AddOrder(string strkullaniciadi, string strsifre, int imusteriid, double dtahsilattutari, int itahsilatturu, int itahsilatkuru, int ibankahesapid, string strkargotercihi, string strnot) imusteriid dtahsilattutari itahsilatturu itahsilatkuru ibankahesapid strkargotercihi : Siparişi veren müşterinin AddCustomer servisi tarafından atanan id değeri. : Tahsil edilen tutar. : Nakit için 0, Kredi kartı için 1, Havale / EFT için 2 verilmelidir. : TL için 0, USD için 1, EURO için 2 olmalıdır. : Tahsilatın yapıldığı bankanın id değeri. : En çok 50 karakter. 15

strnot : En çok 255 karakter. Siparişe atanan, tamsayı (int) türünden id değerini döndürür. Bu değer, bu siparişle ilgili başka işlemler yaparken ilgili servislere giriş parametresi olarak verilir. "itahsilatkuru, TL için 0, USD için 1, EURO için 2 olmalı." "itahsilatturu, nakit için 0, kredi kartı için 1, havavale/eft için 2 olmalı." "Bu numarayla kayıtlı müşteri yok." "Bu numarayla kayıtlı banka hesabı yok." f) AddOrderedItem Oluşturulmuş siparişe ürün ekler. public void AddOrderedItem(string strkullaniciadi, string strsifre, int isiparisid, string strstokkodu, double dmiktar, double dtutar, int itutarkuru) isiparisid strstokkodu : Ürün eklenmek istenen siparişin AddOrder servisi tarafından atanan tamsayı (int) türünden id değeri. : En çok 20 karakter. Boş bırakılamaz. 16

dmiktar dtutar itutarkuru : Sipariş miktarı. Stoğun kartında tanımlı ölçü birimi cinsinden. : Satış tutarı. : TL için 0, USD için 1, EURO için 2 olmalıdır. "itutarkuru, TL için 0, USD için 1, EURO için 2 olmalı." "Bu numarayla kayıtlı sipariş yok." "Bu numarayla kayıtlı sipariş yok." "Bu numarayla kayıtlı stok yok." g) GetOrderStatus Siparişin durumu hakkında bilgi alır. public DataSet GetOrderStatus(string strkullaniciadi, string strsifre, int isiparisid) isiparisid : Durumu öğrenilmek istenen siparişin AddOrder servisi tarafından atanan tamsayı (int) türünden id değeri. Aşağıda tanımı verilen alanları içeren bir tablo barındıran DataSet nesnesini döndürür. Eğer verilen siparis id'sini bulamazsa veri içermeyen bir DataSet döndürür. 17

<xs:element name="siparisid" type="xs:int" minoccurs="0"/> <xs:element name="sipariszamani" type="xs:datetime" minoccurs="0"/> <xs:element name="sevktarihi" type="xs:datetime" minoccurs="0"/> <xs:element name="sevkkargofirmasi" type="xs:string" minoccurs="0"/> <xs:element name="sevkkargosubesi" type="xs:string" minoccurs="0"/> <xs:element name="gonderikodu" type="xs:string" minoccurs="0"/> h) GetProductsByCategory Belirtilen kategorideki ürünlerin bilgilerini alır. Boş string geçilen kategori adları filtreleme işlemine dahil edilmez. public DataSet GetProductsByCategory(string strkullaniciadi, string strsifre, string strkategori1, string strkategori2, string strkategori3, string strkategori4, string strkategori5) strkategori1 : 1 nolu stok grubunda aranmasını istediğiniz kriter. strkategori2 : 2 nolu stok grubunda aranmasını istediğiniz kriter. strkategori3 : 3 nolu stok grubunda aranmasını istediğiniz kriter. strkategori4 : 4 nolu stok grubunda aranmasını istediğiniz kriter. strkategori5 : 5 nolu stok grubunda aranmasını istediğiniz kriter. Ürünün dönüş DataSet'ine dahil edilmesi için giriş parametrelerine verilen kriterlerin ilgili alanlarla tam eşleşmesini gerektirir. 18

Aşağıda tanımlı alanları içeren bir tablo barındıran DataSet nesnesini döndürür. Eğer istenen kriterlere uyan hiç ürün bulunmazsa veri içermeyen bir DataSet nesnesi döndürür. <xs:element name="stokkodu" type="xs:string" minoccurs="0"/> <xs:element name="cins" type="xs:string" minoccurs="0"/> <xs:element name="ozellik" type="xs:string" minoccurs="0"/> <xs:element name="model" type="xs:string" minoccurs="0"/> <xs:element name="marka" type="xs:string" minoccurs="0"/> <xs:element name="beden" type="xs:string" minoccurs="0"/> <xs:element name="renk" type="xs:string" minoccurs="0"/> <xs:element name="cinsiyet" type="xs:string" minoccurs="0"/> <xs:element name="kategori1" type="xs:string" minoccurs="0"/> <xs:element name="kategori2" type="xs:string" minoccurs="0"/> <xs:element name="kategori3" type="xs:string" minoccurs="0"/> <xs:element name="kategori4" type="xs:string" minoccurs="0"/> <xs:element name="kategori5" type="xs:string" minoccurs="0"/> <xs:element name="alisfiyati" type="xs:double" minoccurs="0"/> <xs:element name="alisfiyatikuru" type="xs:string" minoccurs="0"/> <xs:element name="alisfiyatikdv" type="xs:string" minoccurs="0"/> <xs:element name="satisfiyati" type="xs:double" minoccurs="0"/> <xs:element name="satisfiyatikuru" type="xs:string" minoccurs="0"/> <xs:element name="satisfiyatikdv" type="xs:string" minoccurs="0"/> <xs:element name="kdvorani" type="xs:double" minoccurs="0"/> <xs:element name="otvorani" type="xs:double" minoccurs="0"/> <xs:element name="miktar" type="xs:double" minoccurs="0"/> <xs:element name="birim" type="xs:string" minoccurs="0"/> 19

i) AdvancedSearch Cins, Özellik, Marka, Model, Beden, Renk, Cinsiyet alanlarında içeren araması yapar. Boş string geçilen alanlar filtreleme işlemine dahil edilmez. public DataSet AdvancedSearch(string strkullaniciadi, string strsifre, string strcins, string strozellik, string strmarka, string strmodel, string strbeden, string strrenk, string strcinsiyet) Her giriş parametresine verilen kriter stok tanımlama penceresindeki aynı adlı alanda aranır. İlgili alanların verilen kriterleri sadece içermesi ürünün dönüş DataSet'ine dahil edilmesi için yeterlidir. Tam eşleşme gerekmez. GetProductsByCategory servisinde tanımı verilen tabloyu barındıran DataSet nesnesini döndürür. Eğer istenen kriterlere uyan hiç ürün bulunmazsa veri içermeyen bir DataSet nesnesi döndürür. j) SimpleSearchFullMatch Cins alanında tam eşleşme araması yapar. public DataSet SimpleSearchFullMatch(string strkullaniciadi, string strsifre, 20

string strcins) strcins : Bu parametreye verilen kriter ile stok tanımlarında Cinsi alanı tam eşleşen stoklar dönüş DataSet'ine dahil edilir. GetProductsByCategory servisinde tanımı verilen tabloyu barındıran DataSet nesnesini döndürür. Eğer istenen kritere uyan hiç ürün bulunmazsa veri içermeyen bir DataSet nesnesi döndürür. k) SimpleSearch Cins alanında içeren araması yapar. public DataSet SimpleSearch(string strkullaniciadi, string strsifre, string strcins) strcins : Stok tanımında cinsi alanında bu parametreye verilen kriteri içeren ürünler dönüş DataSet'ine dahil edilir. Tam eşleşme gerekmez. GetProductsByCategory servisinde tanımı verilen tabloyu barındıran DataSet nesnesini döndürür. Eğer istenen kritere uyan hiç ürün bulunmazsa veri içermeyen bir DataSet 21

nesnesi döndürür. l) GetProductByStockCode Stok kodu verilen ürünün bilgilireni alır. public DataSet GetProductByStockCode(string strkullaniciadi, string strsifre, string strstokkodu) strstokkodu : Bilgileri alınmak istenen stoğun kodu. GetProductsByCategory servisinde tanımı verilen tabloyu barındıran DataSet nesnesini döndürür. Eğer istenen kritere uyan hiç ürün bulunmazsa veri içermeyen bir DataSet nesnesi döndürür. m) GetProductsInStock Stokta olan ürünlerin bilgilerini alır. public DataSet GetProductsInStock(string strkullaniciadi, string strsifre) 22

Özel giriş parametresi yok. GetProductsByCategory servisinde tanımı verilen tabloyu barındıran DataSet nesnesini döndürür. Eğer istenen kritere uyan hiç ürün bulunmazsa veri içermeyen bir DataSet nesnesi döndürür. n) GetAllProducts Tüm ürünlerin bilgilerini alır. public DataSet GetAllProducts(string strkullaniciadi, string strsifre) Özel giriş parametresi yok. GetProductsByCategory servisinde tanımı verilen tabloyu barındıran DataSet nesnesini döndürür. Eğer istenen kritere uyan hiç ürün bulunmazsa veri içermeyen bir DataSet nesnesi döndürür. o) GetCategoryNames 23

Kategori isimlerini alır. public DataSet GetCategoryNames(string strkullaniciadi, string strsifre, int ikategorino) ikategorino : CetaSoft Ofis beş adet stok grubunu destekler. Hangi stok grubundaki tanımlamaları almak istediğinizi bu parametre ile belirtmelisiniz. Aşağıda tanımı verilen tabloyu barındıran DataSet nesnesini döndürür. Eğer istenen kritere uyan kayıt bulunmazsa veri içermeyen bir DataSet nesnesi döndürür. <xs:element name="kategori1" type="xs:string" minoccurs="0"/> "ikategorino parametresine, 1 ile 5 arasında bir değer girilmelidir." p) GetOwnerOfWebServices Web servislerinin altında çalıştığı kullanıcı adı. public string GetOwnerOfWebServices() 24

Web servislerinin altında çalıştığı kullanıcı adını döndürür. Daha fazla bilgi için bu belgenin giriş kısmına bakınız. q) GetVersion CetaSoft Ofis Web Servis versiyonunu döndürür. public string GetVersion() CetaSoft Ofis Web Servis versiyonunu içeren bir string döndürür. Örnek : 1.0.2 25

5. Örnekler Bu bölümde, CetaSoft Ofis E-Ticaret Modülü ile sunulan web servislerinin, ASP.Net ve PHP ile kullanımına ilişkin örnek kodlar verilmiştir. a) ASP.Net Örnekleri Aşağıdaki örnek GetCategoryNames ve GetAllProduct servislerini kullanır ve sonuçları bir ızgara (GridView) kontrolü içerisinde gösterir. Örneğin çalışabilmesi için projeye, kullanılacak web servis sunucusunun başvuru (Web References) olarak eklenmiş olması gerekir. Dosya Adı : Default.aspx ------------------------ <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebAppOfis._Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title title="ofis Web Servisleri İçin Test Web Uygulaması"></title> </head> <body> <h2>ofis Web Servisleri İçin Test Web Uygulaması</h2> <form id="form1" runat="server"> <div> 26

</div> </form> </body> </html> <p>getcategorynames</p> <asp:textbox ID="txtKategoriNo" runat="server" ToolTip="KategoriNo"></asp:TextBox> <asp:button ID="btGetCategoryNames" runat="server" Text="Çağır" onclick="btgetcategorynames_click" /><br /> <asp:label ID="lError" runat="server" Text=""></asp:Label><br /> <asp:gridview ID="GridView1" runat="server"> </asp:gridview> </div> <div> <p>getallproducts</p> <asp:button ID="btGetAllProducts" runat="server" Text="Çağır" onclick="btgetallproducts_click" /><br /> <asp:label ID="lError2" runat="server" Text=""></asp:Label><br /> <asp:gridview ID="GridView2" runat="server"> </asp:gridview> 27

Dosya Adı : Default.aspx.cs --------------------------- using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using WebAppOfis.wsOfisSolution; namespace WebAppOfis { public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void btgetcategorynames_click(object sender, EventArgs e) { wsofis owsofis = new wsofis(); try { DataSet ds = owsofis.getcategorynames("webuser", "0000", Convert.ToInt32(txtKategoriNo.Text)); GridView1.DataSource = ds; 28

} GridView1.DataMember = ds.tables[0].tablename; GridView1.DataBind(); } catch(exception exp) { lerror.text = exp.message; } } } protected void btgetallproducts_click(object sender, EventArgs e) { wsofis owsofis = new wsofis(); try { DataSet ds = owsofis.getallproducts("webuser", "0000"); GridView1.DataSource = ds; GridView1.DataMember = ds.tables[0].tablename; GridView1.DataBind(); } catch (Exception exp) { lerror2.text = exp.message; } } 29

b) PHP Örnekleri Aşağıdaki örnek kod parçası GetAllProduct servisini çağırır. Kodu incelerseniz, PHP kullanarak çağırmak istediğiniz web servisine nasıl parametre geçebileceğinizi ve servisten dönen değeri nasıl kullanabileceğinizi görebilirsiniz. $options = array( "trace" => true, "exception" => true ); $client = new SoapClient("http://xxx.xxx.xxx.xxx/WebSerOfis/wsOfis.asmx?wsdl", $options); if(!$client){ echo "<table width='100%' height='100%'>\n<tr>\n<td valign='middle' align='center'>\n"; echo "<table width='30%' height='30%'>\n<tr>\n<td align='center' bgcolor='#cccccc'>"; echo "Baglantı Kurulamadı"; echo "</td>\n</tr>\n</table>\n</td>\n</tr>\n</table>"; exit; } $allproductsparams = array("strkullaniciadi" => "WEBUSER", "strsifre" => "0000"); $allproducts = $client->getallproducts($allproductsparams); $allproductsxmlstring = $allproducts->getallproductsresult->any; 30

$allproductsxmlparse = new SimpleXMLElement($allProductsXmlString); //print_r($allproductsxmlparse); $products = array(); foreach($allproductsxmlparse->newdataset->table as $product){ $sql = "INSERT INTO gelen_urunler(stokkodu, Cins, Ozellik, Model, Renk, Kategori1, Kategori2, AlisFiyati, AlisFiyatiKuru, AlisFiyatiKDV, SatisFiyati, SatisFiyatiKuru, SatisFiyatiKDV, KDVOrani, Miktar, Birim) VALUES('$product->StokKodu', '$product->cins', '$product->ozellik', '$product->model', '$product->renk', '$product->kategori1', '$product- >Kategori2', $product->alisfiyati, '$product->alisfiyatikuru', '$product->alisfiyatikdv', $product->satisfiyati, '$product->satisfiyatikuru', '$product->satisfiyatikdv', $product- >KDVOrani, $product->miktar, '$product->birim');"; if(! mysql_query($sql)){ echo "Error:". mysql_error(). "<br />SQL:". $sql; } //echo $sql; } 31