Logo Objects ile aktarım yapılmak istendiğinde, projede daha hızlı yol alabilmek için örneklerden faydalanırız.

Zaman zaman bizlere aşağıdaki sorular iletilmektedir;

  • "Malzeme kartı (veya Fatura veya Sipariş veya herhangi bir fiş veya kart)  aktarımı örneği gönderebilir misiniz?"
  • "Faturada özel kod (veya e-arşiv bilgileri veya proje kodu veya herhangi bir alan) nasıl set edilir, bunun XML tag'i nedir?"
  • "Siparişi (veya irsaliyeyi veya ihracat operasyon fişini veya herhangi bir kart veya fişi) kaydederken zorunlu alanlar hangileridir?"

Herhangi bir kart veya fişin kaydedilmesi esnasında zorunlu tutulan alanlar kodu/numarası, kartın/fişin tipi ve fişse tarihi alanlarıdır. Bu kadar bilgiyle kaydın veritabana yazılmasını sağlayabilirsiniz. Ancak bu kayıt herhangi bir browserda görünmez, kullanılabilir, raporlanabilir olmaz. Logo ürünleri içerisinde yaklaşık olarak 2000 civarında kart ve fiş kombinasyonu vardır ve bizim hazır olarak sunduğumuz örnekler bunlardan sadece bir veya birkaçını kapsayacağı için sizin veya müşterinizin ihtiyacını karşılamayacaktır. Hazır örnekler bir müşteri ihtiyacını karşılarken başka bir müşterinin ihtiyacını karşılamayabilir. Bu yüzden örnekleri müşteri ihtiyacına göre düzenlenebileceği, kendinizin hazırlayabileceği bir sistem oluşturduk.

Özet

Kendi örneğinizi oluşturmak için, aktarım sonrasında içeride görmek istediğiniz gibi bir kaydı Tiger tarafında manuel oluşturun. Oluşturduğunuz kaydı XML olarak dışarıya alın, bu sizin kayıt deseninizdir. XML dosyanızı http://forum.logo.com.tr/index.php?page=xml-code-converter sayfasından Logo Objects koduna dönüştürebilirsiniz. Bu sayfada bu işlemin doğru şekilde nasıl yapıldığı anlatılmaktadır.

Eğer bir Logo Objects projesine başlamak üzereyseniz Logo Objects - Örnekler sayfasındaki örnek ve videolardan da faydalanabilirsiniz.

Aşağıdaki yöntem ile herhangi bir aktarım örneğini kendiniz, elinizdeki Tiger'ın standart yeteneklerini kullanarak oluşturabilirsiniz. Aşağıdaki örneği "Satış Sipariş" için hazırladık ancak aynı yöntem tüm kart ve fişler için geçerlidir. Kart ve fişlere göre istisna durumları yazının altında belirttim.

1 - Öncelikle, Logo Objects ile aktarımdan sonra içeride görmek isteyeceğiniz gibi bir kart veya fişi Tiger içerisinde manuel oluşturun.

2 - Fişi, Tiger içerisindeki "XML aktarımı (dışarı)" seçeneği ile dışarı aktarın.

2.a. Bu işleme Tiger içerisinde ARAÇLAR \ VERİ AKTARIMI (DIŞARI) seçenekleri ile ulaşabilirsiniz. Akabinde aşağıdaki gibi bir liste gelecektir. Girmiş olduğunuz kart veya fişe uygun seçeneği seçelim.

2.b. Karşınıza aşağıdaki gibi bir ekran gelecektir. DOSYA ADI kısmına dosya yolu ve dosya ismi vermelisiniz. XML ŞABLONU KULLANILACAKTIR seçeneğini işaretlemeli ve akabinde 3 nokta butonuna basarak şablonlara ulaşmalısınız. Eğer şablon tanımınız bulunmuyorsa sağ tuş \ EKLE ile yani bir şablon tanımlamalı, bu şablonda da resimdeki gibi BOŞ ALANLAR AKTARILMAYACAK işaretledikten sonra alan listesinin üzerinde sağ tuş \ HEPSİNİ SEÇ işaretlemelisiniz. Ayrıca veritabanında muhtemelen birçok kayıt olacağı için unique alanlardan birini, örneğin NUMBER alanının karşısındaki FİLTRE kutucuğunu işaretlemenizde de fayda vardır. ŞABLON ADI kısmında ise hangi ismi verdiğiniz farketmez, istediğiniz bir isim verebilirsiniz.

2.c. Şablonu seçtikten sonra belirttiğimiz filtre çalışır hale gelecektir. Resimdeki gibi filtre butonuna tıklayıp, biraz önce girmiş olduğunuz sipariş fişini seçebilirsiniz. Sonrasında da BAŞLAT butonuna tıklayarak XML Dosyanızını oluşturabilirsiniz.

2.d. Aktarım sonrasında İZLEME DOSYASI'nı kontrol etmeyi unutmayınız. Dosyanızın düzgün oluştuğundan emin olunuz. Artık elinizde kayıt deseniniz bulunuyor.

3 - Tiger içerisinde sizin deneme yaptığınız modulle ilgili kart veya fiş aktarımında bir problem olduğunu düşünüyor olabilirsiniz. Tiger içerisine veri aktarımında bir problem olup olmadığını şu şekide kontrol edebilirsiniz;

3.a. Öncelikle biraz önce XML ile dışarı aldığınız fişi Tiger içerisinden silin

3.b Tiger içerisinde ARAÇLAR \ VERİ AKTARIMI (İÇERİ) seçeneği ile gelen içeri aktarım ekranına ulaşıp biraz önce dışarı aktarmış olduğunuz XML dosyasını seçip içeri aktarın. İzleme dosyasına baktığınızda "İşlenen : 1, Hatalı : 0" görüyorsanız bu örnek için sipariş fişi aktarımında bir problem olmadığını gösterir. Aynı şekilde fişi açıp içerisindeki rakamları kontrol edebilirsiniz. Eğer rakamlarda da bir problem görünmüyorsa Tigerdaki hesaplama rutinlerinde de bir problem olmadığını gösterir. Eğer sizin Logo Objects ile aktardığınız fiş ile bu XML aktarımında oluşan fiş arasında bir fark varsa kodunuz ile dışarıya aktardığınız bu XML dosyasındaki alanları karşılaştırmalı, eksiğiniz varsa eklemelisiniz.

4 - Oluşturduğumuz bu XML dosyası bizim aynı zamanda kayıt desenimizdir. Bu kayıt desenindeki tüm alanları Logo Objects  ile set ettiğimizde Tiger'da manuel oluşturduğumuz kaydın aynısını oluşturabiliyor olmalıyız. Ancak, kayıt desenindeki tüm alanları aktarmamıza gerek yoktur. Bazı alanları Logo Objects kendisi set edecektir. Dolayısıyla kod fazlalığı oluşturmamak için bazı alanları XML içerisinden çıkartabilir, XML'i sadeceleştirebilirsiniz.

Şu alanları Logo Objects ile set etmenize gerek yoktur;

  • CAPI Created, Modified bilgileri
  • TOTAL ile başlayan alanlar ile toplam bilgisi taşıyan diğer alanlar.
  • DATA_REFERENCE ve GUID alanları
  • Boş veya sıfır değerini taşıyan XML alanları ve boş bloklar

Alanları temizledikten sonra Fiş aktarımında standart olan fiş numarasının numaralandırma şablonundan numara almasını sağlayan tilda (~) işaretini koyuyoruz. Sonrasında temizlenmiş XML dosyası aşağıdaki gibi oluyor;

<?xml version="1.0" encoding="ISO-8859-9"?>
<SALES_ORDERS>
  <ORDER_SLIP DBOP="INS" >
    <NUMBER>~</NUMBER>
    <DATE>10.04.2017</DATE>
    <TIME>171191089</TIME>
    <ARP_CODE>CARI.02</ARP_CODE>
    <RC_RATE>1</RC_RATE>
    <ORDER_STATUS>1</ORDER_STATUS>
    <SALESMAN_CODE>1</SALESMAN_CODE>
    <CURRSEL_TOTAL>1</CURRSEL_TOTAL>
    <DATA_SITEID>1</DATA_SITEID>
    <TRANSACTIONS>
      <TRANSACTION>
        <TYPE>0</TYPE>
        <MASTER_CODE>MALZEME.02</MASTER_CODE>
        <QUANTITY>1</QUANTITY>
        <PRICE>1000</PRICE>
        <VAT_RATE>18</VAT_RATE>
        <UNIT_CODE>ADET</UNIT_CODE>
        <UNIT_CONV1>1</UNIT_CONV1>
        <UNIT_CONV2>1</UNIT_CONV2>
        <ORDER_RESERVE>1</ORDER_RESERVE>
        <DUE_DATE>10.04.2017</DUE_DATE>
        <CURR_PRICE>160</CURR_PRICE>
        <PC_PRICE>1000</PC_PRICE>
        <RC_XRATE>1</RC_XRATE>
        <SOURCE_WH>1</SOURCE_WH>
        <SOURCE_COST_GRP>1</SOURCE_COST_GRP>
        <DATA_SITEID>1</DATA_SITEID>
        <SALESMAN_CODE>1</SALESMAN_CODE>
        <AFFECT_RISK>1</AFFECT_RISK>
        <EDT_PRICE>1000</EDT_PRICE>
        <EDT_CURR>160</EDT_CURR>
        <ORG_DUE_DATE>10.04.2017</ORG_DUE_DATE>
        <ORG_QUANTITY>1</ORG_QUANTITY>
        <ORG_PRICE>1000</ORG_PRICE>
        <RESERVE_DATE>10.04.2017</RESERVE_DATE>
        <RESERVE_AMOUNT>1</RESERVE_AMOUNT>
      </TRANSACTION>
    </TRANSACTIONS>
  </ORDER_SLIP>
</SALES_ORDERS>

5 - XML dosyası aynı zamanda Logo Objects aktarımında kullanılacak alan bilgilerini içerir. Bu XML dosyasını http://forum.logo.com.tr/index.php?page=xml-code-converter adresinden kod dönüştürebilirsiniz. Bu adresteki GÖZAT... kısmından, oluşturduğunuz ve bir önceki adımda sadeleştirdiğiniz XML dosyasını seçiniz. ÇEVİR butonuna tıklayarak bu XML i koda dönüştürünüz. Yukarıdaki XML örneğinin kodu aşağıdaki gibi olacaktır. Sadece XML dosyasından faydalandığı, kaynaklara erişmediği için bu çevirme esnasında metin ve numaraları anlayamaz. Sonrasında kod üzerinde metinsel alanları tırnak içerisine siz almalısınız.

UnityObjects.Data  order=UnityApp.NewDataObject(UnityObjects.DataObjectType.doSalesOrderSlip);
order.New(); 
order.DataFields.FieldByName("NUMBER").Value ="~"; 
order.DataFields.FieldByName("DATE").Value ="10.04.2017"; 
order.DataFields.FieldByName("TIME").Value =171191089; 
order.DataFields.FieldByName("ARP_CODE").Value ="CARI.02"; 
order.DataFields.FieldByName("RC_RATE").Value =1; 
order.DataFields.FieldByName("ORDER_STATUS").Value =1; 
order.DataFields.FieldByName("SALESMAN_CODE").Value ="1"; 
order.DataFields.FieldByName("CURRSEL_TOTAL").Value =1; 
order.DataFields.FieldByName("DATA_SITEID").Value =1; 
UnityObjects.Lines transactions_lines = order.DataFields.FieldByName("TRANSACTIONS").Lines; 
transactions_lines.AppendLine();
transactions_lines[transactions_lines.Count - 1].FieldByName("TYPE").Value =0; 
transactions_lines[transactions_lines.Count - 1].FieldByName("MASTER_CODE").Value ="MALZEME.02"; 
transactions_lines[transactions_lines.Count - 1].FieldByName("QUANTITY").Value =1; 
transactions_lines[transactions_lines.Count - 1].FieldByName("PRICE").Value =1000; 
transactions_lines[transactions_lines.Count - 1].FieldByName("VAT_RATE").Value =18; 
transactions_lines[transactions_lines.Count - 1].FieldByName("UNIT_CODE").Value ="ADET"; 
transactions_lines[transactions_lines.Count - 1].FieldByName("UNIT_CONV1").Value =1; 
transactions_lines[transactions_lines.Count - 1].FieldByName("UNIT_CONV2").Value =1; 
transactions_lines[transactions_lines.Count - 1].FieldByName("ORDER_RESERVE").Value =1; 
transactions_lines[transactions_lines.Count - 1].FieldByName("DUE_DATE").Value ="10.04.2017"; 
transactions_lines[transactions_lines.Count - 1].FieldByName("CURR_PRICE").Value =160; 
transactions_lines[transactions_lines.Count - 1].FieldByName("PC_PRICE").Value =1000; 
transactions_lines[transactions_lines.Count - 1].FieldByName("RC_XRATE").Value =1; 
transactions_lines[transactions_lines.Count - 1].FieldByName("SOURCE_WH").Value =1; 
transactions_lines[transactions_lines.Count - 1].FieldByName("SOURCE_COST_GRP").Value =1; 
transactions_lines[transactions_lines.Count - 1].FieldByName("DATA_SITEID").Value =1; 
transactions_lines[transactions_lines.Count - 1].FieldByName("SALESMAN_CODE").Value =1; 
transactions_lines[transactions_lines.Count - 1].FieldByName("AFFECT_RISK").Value =1; 
transactions_lines[transactions_lines.Count - 1].FieldByName("EDT_PRICE").Value =1000; 
transactions_lines[transactions_lines.Count - 1].FieldByName("EDT_CURR").Value =160; 
transactions_lines[transactions_lines.Count - 1].FieldByName("ORG_DUE_DATE").Value ="10.04.2017"; 
transactions_lines[transactions_lines.Count - 1].FieldByName("ORG_QUANTITY").Value =1; 
transactions_lines[transactions_lines.Count - 1].FieldByName("ORG_PRICE").Value =1000; 
transactions_lines[transactions_lines.Count - 1].FieldByName("RESERVE_DATE").Value ="10.04.2017"; 
transactions_lines[transactions_lines.Count - 1].FieldByName("RESERVE_AMOUNT").Value =1; 
  if (order.Post() == true) 
  { 
   MessageBox.Show("POST OK !"); 
  }
  else 
  {
    if(order.ErrorCode !=0) 
 { 
  MessageBox.Show("DBError(" + order.ErrorCode.ToString() + ")-" + order.ErrorDesc + order.DBErrorDesc);
 } 
   else if (order.ValidateErrors.Count > 0)
  { 
 string result="XML ErrorList:";  
   for (int i = 0; i < order.ValidateErrors.Count; i++) 
     { 
      result +="("+ order.ValidateErrors[i].ID.ToString()+ ") - " + order.ValidateErrors[i].Error ;
      } 
  MessageBox.Show(result); 
  } 
  }

İSTİSNALAR

XML alan ve blok istisnaları

Aşağıdaki istisnalarda belirtilen alanlar istendiği takdirde set edilebilir. Ancak basit aktarımlarda, müşteri ihtiyacını karşılıyorsa set edilmeleri zorunlu değildir.

Tüm Fişlerde :

  • PAYMENT_LIST bloğunu göndermeyebilirsiniz. Bu bloğu göndermediğinizde ödeme hareketleri otomatik oluşturulacaktır.
  • DEDUCTIONPART1 ve ...PART2 alanlarını gödnermeyebilirsiniz. Bu tevkifat oranları, siz set etmediğinizde parametrelerdeki default verileri kullanır.

Fatura :

  • DISPATCHES bloğunu göndermeyebilirsiniz. Aynı Tiger'da olduğu gibi Fatura aktarımında da irsaliye girmediğinizde faturaya bağlı irsaliye otomatik oluşturulur.

Malzeme Kartı :

  • UNITS bloğunu göndermeyebilirsiniz. Bu bloğu göndermediğinizde birim seti öndeğerleriyle birimler oluşturulacaktır. GL_CODES bloğunu göndermeyebilirsiniz.

Logo Objects özelinde, aktarımı kolaylaştırıcı sık kullanılan metodlar

Fişlerde muhasebe hesap kodlarının (GL_CODE alanlarının) otomatik doldurulması için FillAccCodes

Fiyat bilgisini (PRICE) doldurmak için GetStockLinePrice

Kampanya uygulamak için ApplyCampaign

Page viewed 36866 times by 7 users since Apr 10, 2017

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