Sezgin ÖZDEMİR

Logo Objects Performans Problemi

  Tiger/Logo Object Designer (LOD)

Fatura aktarımında performans problemi yaşıyorum.Bu sıkıntıyı aşmak için neler yapılabilir ?

Yardımcı olabilir misiniz.


Performans


NaciO

Performans probleminin sebebi, aslında Logo Objectsin güçlü olduğu taraflar. Yani yetki kontrolleri, öndeğer kontrolleri, ilişkisel kontroller, veri doğrulama ve tutarların hesaplanması işlemleri.

Dolayısıyla herhangi bir performans kazanabilmek için Logo Objects’in yukarıdaki özelliklerinden bazılarını devre dışı bırakmamız gerekiyor. Bu durumda kapatılan özelliğin risklerini entegrasyonu geliştiren yazılımcı üstlenmiş olur.

UnityObjects.Data invoice = Global.UnityApp.NewDataObject(UnityObjects.DataObjectType.doSalesInvoice);
invoice.New();

invoice.CheckRight = false;        // Yetki kontrollerini yapmaz (Risk : Yetkisi olmayan kullanıcı ile fatura kaydedilebilir)
invoice.CheckParams = false;       // Parametre kontrollerini yapmaz (Risk : parametreye göre yapılan ödeğerlemeyi kapatır)
invoice.Validation = false;        // Veri doğrulamayı kapatır (Risk : Olmayan malzeme ile faturayı kaydetmeye çalışabilir)

invoice.DataFields.FieldByName("TYPE").Value = 8;
invoice.DataFields.FieldByName("NUMBER").Value = "TEST.000046"        // Numarayı ~ ile vermemek bir transaction bloğu kazandırır
invoice.DataFields.FieldByName("DATE").Value = "20.05.2016";
invoice.DataFields.FieldByName("TIME").Value = 152839501;
//invoice.DataFields.FieldByName("ARP_CODE").Value = "CARI.01";      // Code ile değil referans ile ilişki kurmak onlarca sorgu kazandırır.
invoice.DataFields.FieldByName("CLIENTREF").Value = 2;
                                               …
// SATIRLARDA DA CODE YERİNE REF ÜZERİMDEN İLİŞKİ KURULABİLİR
                                               …
//transactions_lines[transactions_lines.Count - 1].FieldByName("MASTER_CODE").Value = "MALZEME.01";
transactions_lines[transactions_lines.Count - 1].FieldByName("STOCKREF").Value = "3";

//transactions_lines[transactions_lines.Count - 1].FieldByName("UNIT_CODE").Value = "ADET";
transactions_lines[transactions_lines.Count - 1].FieldByName("USREF").Value = 5;
transactions_lines[transactions_lines.Count - 1].FieldByName("UOMREF").Value = 23;

//transactions_lines[transactions_lines.Count - 1].FieldByName("SALEMANCODE").Value = 1;
transactions_lines[transactions_lines.Count - 1].FieldByName("SALESMANREF").Value = 4;
                                               …

 


15/08/16 09:44

Cevap vermek için giriş yapmanız gerekmektedir.