COM Client Dökümantasyon

Bu dökümanda geçen kod örnekleri Vba programlama dili ve Excel Macro’lar üzerinde örneklendirilmiştir. Method tanımları için dönüt tipi ve parametre tipleri C programlama dili sözdizimindedir.

Vba COM Interop kısıtlamaları

  • Vba COM objeleri yaratılırken contructor’a parametre geçilmesini desteklemez. Bu sebeple Com Client kütüphanesi constructor’ı parametre alan sınıflarına bu özelliği Init metodu ile desteklemiştir. Objeler yaratıldıktan sonra gerekli parametreler bu metodla gönderilir.
  • COM Client kütüphanesin’deki herhangi bir sınıfın herhangi bir metodu kullanılırken parametre ve parameteler yine COM Client kütüphanesindeki sınıflardan birinin tipinde ise, bu parametreler referans olarak gönderilmelidir.

ComManager

ComManager sınıfı REST API’ya HTTP request’ler yapılmasını sağlar.

ComManager objesi nasıl yaratılır?

Set ComManager = CreateObject("NetOpenX.Rest.COMClient.BLL.ComManager")

Metotlar

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

void Init(string serviceUri);

Init metodu ComManager sınıfının constructor’ı yerine geçer. Obje instantiate edildikten sonra mutlaka bu metod kullanılarak REST API’nın çalıştığı url parametre olarak geçilmelidir.

Örnek

ComManager.Init ("http://localhost:7070") 

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


string LogIn(string branchCode, string netsisUser, string netsisPassword, string dbType, string dbName, string dbPassword, string dbUser); 

LogIn metodu RESTFUL Api’ya girişi sağlar.  Parametreler size sağlanan giriş bilgileri olmalıdır. Başarılı giriş yapıldığında Access Token cevap olarak dönülür.

Örnek

token = ComManager.LogIn("0", "netsisUser", "netsisPassword", "vtMSSQL", "dbName", "dbPassword", "dbUser")

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


bool LogOut();

LogOut metodu RESTFUL Api’dan çıkışı sağlar. Başarılı çıkış durumunda dönüt true, başarısız da ise false olur.

Örnek

result = ComManager.LogOut

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


string AccessToken();

Giriş yapıldıysa Access Token değerini string tipinde döner, yapılmadıysa boş string döner.

Örnek

token = ComManager.AccessToken

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


string Json(); 

Son yapılan HTTP request’ten dönen cevabı string tipinde ve JSON formatında döner.

Örnek

json = ComManager.Json

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


string Request(string url, string input, string method, string transId);

REST servise HTTP request gönderir.

Parametreler

  • string url: REST servisin bulunduğu url’e eklenecektir. Bu url’e belirtilen HTTP request yapılır.
  • string input : Request tipi bir input gerektiriyorsa eklenmelidir. Gerekmiyorsa boş string gönderilmelidir.
  • string method : Method, HTTP request tiplerinden biri “GET, POST, PUT, DELETE” olmalıdır.
  • string transId : Eğer transaction başlatıldıysa transaction ID eklenmelidir. Gerekmiyorsa boş string gönderilmelidir.

Dönüt

JSON formatında string tipinde bir cevap dönülür.

REST servisin çalıştığı url’e /Help ekleyerek daha sonra attığınız request sayfasına giderek dönen JSON formatındaki string değerinin nasıl bir yapıda olduğunu görebilirsiniz. Bu JSON’ın nasıl ayrıştırılması gerektiğini anlamak için önemlidir.

Örnek

jsonstring = ComManager.Request("api/v2/ARPs?limit=1000", "", "GET", "")

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


string QueryRequest(string query);

REST servise SQL sorguları gönderir. SQL sorguları sadece SELECT olabilir.

Parametre

  • string query: SQL sorgu cümlesi.

Dönüt

JSON formatında string tipinde bir cevap dönülür.

REST servisin çalıştığı url’e /Help ekleyerek daha sonra attığınız request sayfasına giderek dönen JSON formatındaki string değerinin nasıl bir yapıda olduğunu görebilirsiniz. Bu JSON’ın nasıl ayrıştırılması gerektiğini anlamak için önemlidir.

Örnek

jsonstring = ComManager.QueryRequest("SELECT TOP 10 * FROM TBLCASABIT")

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

ComJObject

COMJObject sınıfı JSON’ları ayrıştırmak ve JSON değerleri oluşturmak için kullanılır.

ComJObject objesi nasıl yaratılır?

Set ComJObject = CreateObject("NetOpenX.Rest.COMClient.BLL.ComJObject")

Metotlar

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


void LoadFromString(string json);

JSON formatındaki bir string değeriyle obje JSON formatında yapılandırılır. String tipindeki JSON ayrıştırılabilir bir forma dönüşür.

Örnek

jsonstring = ComManager.QueryRequest("SELECT TOP 10 * FROM TBLCASABIT")  
Set ComJObject = CreateObject("NetOpenX.Rest.COMClient.BLL.ComJObject")  
ComJObject.LoadFromString (jsonstring)

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


string ConvertToString();

JSON yapısındaki objeyi string tipinde döner.

Örnek

Set JArps = CreateObject("NetOpenX.Rest.COMClient.BLL.ComJObject")  
a = JSuppInfo.PutString("TcKimlikNo", "11111111111")  
jsonstring = JArps.ConvertToString  
respond = ComManager.Request("api/v2/ARPs", jsonstring, "POST", "")


---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

string GetString(string key);

Eğer mevcutsa verilen key’deki string değeri döner.

Örnek

Set JArps = CreateObject("NetOpenX.Rest.COMClient.BLL.ComJObject")  
a = JArps.PutString("TcKimlikNo", "11111111111")  
value = JArps.GetString("TcKimlikNo") 'value 11111111111 olacak  

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

int GetInteger(string key);

Eğer mevcutsa verilen key’deki integer değeri döner.

Örnek

Set JArps = CreateObject("NetOpenX.Rest.COMClient.BLL.ComJObject")  
a = JArps.PutInteger("SubeNo", 11111111111)  
value = JArps.GetInteger("SubeNo") 'value 11111111111 olacak


---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

double GetDouble(string key);

Eğer mevcutsa verilen key’deki double değeri döner.

Örnek

Set JArps = CreateObject("NetOpenX.Rest.COMClient.BLL.ComJObject")  
a = JArps.PutDouble("CM_ALACT", 5.5)  
value = JArps.GetDouble("CM_ALACT") 'value 5.5 olacak


---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

ComJObject GetJObject(string key);

Eğer mevcutsa verilen key’deki COMJObject değeri döner.

Örnek

Set JSupp = CreateObject("NetOpenX.Rest.COMClient.BLL.ComJObject")  
a = JSupp.PutDouble("CM_ALACT", 5.5)  
Set JArps = CreateObject("NetOpenX.Rest.COMClient.BLL.ComJObject")  
a = JArps.PutComJObject("Supp_Info", (JSupp))  
value = JArps.GetComJObject("Supp_Info") 'value JSupp olacak 


---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

ComJArray GetJArray(string key);

Eğer mevcutsa verilen key’deki COMJArray değeri döner.

Örnek

Set JSupp = CreateObject("NetOpenX.Rest.COMClient.BLL.ComJObject")  
a = JSupp.PutDouble("CM_ALACT", 5.5)  
Set JArr = CreateObject("NetOpenX.Rest.COMClient.BLL.ComJArray")  
JArr.AddComJObject((Jsupp))  
value = JArps.GetJObjectAt(0) 'value JSupp olacak  


---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

void PutString(string key, string value);

Objeye verilen key ve string tipindeki value değerini ekler.

Örnek

Set JSupp = CreateObject("NetOpenX.Rest.COMClient.BLL.ComJObject")  
a = JSupp.PutString("Name", "name")  

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

void PutInteger(string key, int value);

Objeye verilen key ve int tipindeki value değerini ekler.

Örnek

Set JSupp = CreateObject("NetOpenX.Rest.COMClient.BLL.ComJObject")  
a = JSupp.PutInteger("Number", 5)  

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

void PutDouble(string key, double value);

Objeye verilen key ve double tipindeki value değerini ekler.

Örnek

Set JSupp = CreateObject("NetOpenX.Rest.COMClient.BLL.ComJObject")  
a = JSupp.PutDouble("Number", 5.5) 

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

void PutComJObject(string key, ComJObject value);

Objeye verilen key ve ComJObject tipindeki value değerini ekler. Value parametresi referans olarak geçilmelidir.

Örnek

Set JSupp = CreateObject("NetOpenX.Rest.COMClient.BLL.ComJObject")  
a = JSupp.PutDouble("Number", 5.5)  
Set JArps = CreateObject("NetOpenX.Rest.COMClient.BLL.ComJObject")  
a = JArps.PutComJObject("supp", (JSupp))

 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

void PutComJArray(string key, ComJArray value);

Objeye verilen key ve ComJArray tipindeki value değerini ekler. Value parametresi referans olarak geçilmelidir.

Örnek

Set JSupp = CreateObject("NetOpenX.Rest.COMClient.BLL.ComJObject")  
a = JSupp.PutDouble("Number", 5.5)  
Set JArr = CreateObject("NetOpenX.Rest.COMClient.BLL.ComJArray")  
a = JArr.AddComJObject((JSupp))  
Set JArps = CreateObject("NetOpenX.Rest.COMClient.BLL.ComJObject")  
a = JArps.PutComJArray("arr", (jArr)) 


ComJArray

ComJArray, ComJObject tipindeki objeleri indeksli ve sıralı bir şekilde içerir. Array indeksi 0’dan başlayıp ardışık bir şekilde artarak ilerler.

ComJArray objesi nasıl yaratılır?

Set JArr = CreateObject("NetOpenX.Rest.COMClient.BLL.ComJArray")

Metotlar

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

ComJObject GetJObjectAt(int index)

Eğer varsa, objenin index parametresindeki ComJObject objesini getirir.

Örnek

Set JArr = CreateObject("NetOpenX.Rest.COMClient.BLL.ComJArray")  
Set JObj = CreateObject("NetOpenX.Rest.COMClient.BLL.ComJObject")  
a = JObj.PutString("Name", "name")  
a = JArr.AddComJObject((JObj))  
a = JArr.GetJObjectAt(0) 'a JObj olacak  

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

void AddComJObject(ComJObject jObject)

Objenin sıradaki indeksine yeni bir ComJObject ekler.

Örnek

Set JArr = CreateObject("NetOpenX.Rest.COMClient.BLL.ComJArray")  
Set JObj = CreateObject("NetOpenX.Rest.COMClient.BLL.ComJObject")  
a = JObj.PutString("Name", "name")  
a = JArr.AddComJObject((JObj))  

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

int Count()

Objenin içindeki ComJObject objeleri sayısını getirir.

Örnek

Set JArr = CreateObject("NetOpenX.Rest.COMClient.BLL.ComJArray")  
Set JObj = CreateObject("NetOpenX.Rest.COMClient.BLL.ComJObject")  
a = JObj.PutString("Name", "name")  
a = JArr.AddComJObject((JObj))  
count = JArr.Count 'count 1 olacak 

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Örnek bir Vba

Login, Logout, HTTP Request, JSON ayrıştırma ve oluşturma örnek kodlar. Veriler Excel hücrelerinden okunup yazılıyor.

Örnek
Public ws As Worksheet  
Public ComManager  
  
Sub LogIn_Click()  
Set ws = Worksheets("Sheet1")  
Set ComManager = CreateObject("NetOpenX.Rest.COMClient.BLL.ComManager")  
ComManager.Init ("http://localhost:7070")  
token = ComManager.LogIn(ws.Cells(1, 1).Value, ws.Cells(1, 2).Value, ws.Cells(1, 3).Value, ws.Cells(1, 4).Value, ws.Cells(1, 5).Value, ws.Cells(1, 6).Value, ws.Cells(1, 7).Value)  
MsgBox (token)  

End Sub  
   

Sub LogOut_Click()  
MsgBox (ComManager.LogOut)  
End Sub  
   

Sub GetArps_Click()  
jsonstring = ComManager.Request("api/v2/ARPs?limit=1000", "", "GET", "")  
Set ComJObject = CreateObject("NetOpenX.Rest.COMClient.BLL.ComJObject")  
ComJObject.LoadFromString (jsonstring)  
   

Set Data = ComJObject.GetJArray("Data")  
MsgBox (Data.Count())  
  

Columns(1).NumberFormat = "@"  
Columns(2).NumberFormat = "@"  
Columns(3).NumberFormat = "@"  
Columns(4).NumberFormat = "@"  
Columns(5).NumberFormat = "@"  
Columns(6).NumberFormat = "@"  
Columns(7).NumberFormat = "@"  
Columns(8).NumberFormat = "@"  
Columns(9).NumberFormat = "@"  
Columns(10).NumberFormat = "@"  
  

For i = 0 To Data.Count - 1  
    Set DataElem = Data.GetJObjectAt(i)  
    Set JMainInfo = DataElem.GetJObject("CariTemelBilgi")  
    ws.Cells(i + 7, 1).Value = JMainInfo.GetInteger("Sube_Kodu") 'A  
    ws.Cells(i + 7, 2).Value = JMainInfo.GetInteger("ISLETME_KODU") 'B  
    ws.Cells(i + 7, 3).Value = JMainInfo.GetString("CARI_KOD") 'C  
    ws.Cells(i + 7, 4).Value = JMainInfo.GetString("CARI_TEL") 'D  
    ws.Cells(i + 7, 5).Value = JMainInfo.GetString("CARI_IL") 'E  
    ws.Cells(i + 7, 6).Value = JMainInfo.GetString("ULKE_KODU") 'F  
    ws.Cells(i + 7, 7).Value = JMainInfo.GetString("CARI_ISIM") 'G  
    ws.Cells(i + 7, 8).Value = JMainInfo.GetString("CARI_TIP") 'H  
      
    Set JSuppInfo = DataElem.GetJObject("CariEkBilgi")  
    ws.Cells(i + 7, 9).Value = JSuppInfo.GetString("KayitTarihi") 'I  
    ws.Cells(i + 7, 10).Value = JSuppInfo.GetString("KayitYapanKul") 'J  
    ws.Cells(i + 7, 11).Value = JSuppInfo.GetString("DuzeltmeTarihi") 'K  
    ws.Cells(i + 7, 12).Value = JSuppInfo.GetString("DuzeltmeYapanKul") 'L  
    ws.Cells(i + 7, 13).Value = JMainInfo.GetDouble("CM_BORCT") 'M  
    ws.Cells(i + 7, 14).Value = JMainInfo.GetDouble("CM_ALACT") 'N  

Next i  
End Sub  
  

Sub Post_Click()  
Set JMainInfo = CreateObject("NetOpenX.Rest.COMClient.BLL.ComJObject")  
a = JMainInfo.PutString("CARI_KOD", ws.Cells(3, 1).Value)  
a = JMainInfo.PutString("CARI_ISIM", ws.Cells(3, 2).Value)  
a = JMainInfo.PutString("CARI_TIP", ws.Cells(3, 3).Value)  
a = JMainInfo.PutInteger("Sube_Kodu", ws.Cells(3, 4).Value)  
a = JMainInfo.PutString("ACIK1", ws.Cells(3, 5).Value)  
a = JMainInfo.PutString("ACIK2", ws.Cells(3, 6).Value)  
a = JMainInfo.PutString("ACIK3", ws.Cells(3, 7).Value)  
a = JMainInfo.PutString("CARI_ADRES", ws.Cells(3, 8).Value)  
a = JMainInfo.PutString("CARI_IL", ws.Cells(3, 9).Value)  
a = JMainInfo.PutString("CARI_TEL", ws.Cells(3, 10).Value)  
a = JMainInfo.PutString("CARI_ILCE", ws.Cells(3, 11).Value)  
a = JMainInfo.PutString("EMAIL", ws.Cells(3, 12).Value)  
a = JMainInfo.PutString("WEB", ws.Cells(3, 13).Value)  
  

Set JSuppInfo = CreateObject("NetOpenX.Rest.COMClient.BLL.ComJObject")  
a = JSuppInfo.PutString("TcKimlikNo", ws.Cells(3, 14).Value)  
a = JSuppInfo.PutDouble("Kull1N", ws.Cells(3, 15).Value)  
a = JSuppInfo.PutString("Kull1S", ws.Cells(3, 16).Value)  
a = JSuppInfo.PutString("S_Yedek1", ws.Cells(3, 17).Value)  
   

Set JArps = CreateObject("NetOpenX.Rest.COMClient.BLL.ComJObject")  
b = JArps.PutComJObject("CariEkBilgi", (JSuppInfo))  
b = JArps.PutComJObject("CariTemelBilgi", (JMainInfo))  
   

respond = ComManager.Request("api/v2/ARPs", JArps.ConvertToString, "POST", "")  
MsgBox (respond)  
End Sub  

Telif HakkıKullanım KoşullarıGizlilik
Copyright © 2018 Logo Yazılım