Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Elinizdeki bir nesneyi başka bir nesneye kopyalamak istediğinizde, bu işlemi Set komutuyla veritabanına gitmeden yapabilirsiniz.

Code Block
// Kaynak taşıma kabının Id si ile hedef taşıma kabı veritabanından okunuyor

...


Container.Get(

...

@@Container.Id,

...

@@Container2)
 
// Veritabanına gitmeden, kaynak taşıma kabı nesnesi hedef taşıma kabına atanıyor

...


Set(

...

@@Container2, @@Container)

Get işlemi, okunan nesnenin içindeki bağlantılı nesneleri de otomatik doldurur. Eğer sadece ana nesneye ihtiyacınız varsa, Get komutunun 2. parametresine nesnenin adını yazabilirsiniz.

Code Block
// Bu işlem @@Address nesnesi ile birlikte ilgili @@Warehouse, @@WarehouseFloor, @@WarehouseZone, @@WarehouseBlock nesnelerini de veritabanından okuyup doldurur.

...


Address.Get("Address='@AdresBarkod'")

...


 
// Bu işlem sadece @Adres nesnesini veritabanından okuduğu adres bilgisiyle doldurur.

...


Address.Get("Address='@AdresBarkod'",@Adres)

Scriptteki tüm nesneler globaldir. Yani bir kez dolduğunda, boşaltılmadığı ya da başka bir komutla doldurulmadığı müddetçe dolu kalır. Kayıt hataları yaşamamak için, işlem öncesinde işlemi etkileyecek değişkenleri boşaltmalısınız.

Code Block
// ResetVariables komutu hafızadaki değişkenleri boşaltır.

...


ResetVariables({"name":["@@ProductionOrder","@@ProductionOrderLine","@@WorkOrder","@@WorkOrderLine","@@OrderSlip","@@OrderSlipLine","@@Arp"]})

Sık yaptığınız işlemleri ortak bir forma taşıyarak oradan çağırabilir, scriptinizin daha kısa ve derli toplu olmasını sağlayabilirsiniz.

Code Block
Set(@YetkiKodu, "GIRIS") // Adres için kullanılacak yetki kodu değişkene atanıyor

...


CallForm(AdresListeleSec) // Adres seçim formu çağrılıyor

...


If(@AdresSecimSonucu = -1,Goto(BasaDon)) // Formdan hatalı sonuç dönmüşse script

...

 yönlendiriliyor
 
BeginForm(AdresListeleSec) // Ortak adres seçim

...

 formu
    Set(@AdresSecimSonucu, 0) // Sonuç değişkeni

...

 sıfırlanıyor
    Address.List("AuthCode='@YetkiKodu'","",@AdresListesi)

...


    If(@AdresListesi.

...

rowCount<1)
        ShowMessage({"title":"UYARI","message":"Tanımlı Adres Bulunamadı","buttons":"TAMAM"},@Secenek)

...


        Set(@AdresSecimSonucu, -1) // Sonuç değişkeni hatalı olarak

...

 belirleniyor
    Else()

...


        If(@AdresListesi.rowCount = 1) // Tek adres varsa direkt @@Address değişkenine

...

 atanıyor
            Address.Get(@AdresListesi.rows.1.Id)

...


        Else() // Birden çok adres varsa listeden seçip

...

 yaptırılıyor
            PopupView(@AdresListesi.rows,{"mode":"list","title":"Kabul Adres Listesi","fields":["Address|Adres Tanımı|15|L"]},@sira)

...


            Address.Get(@AdresListesi.rows.@sira.Id)

...


        EndIf()

...


    EndIf()

...


    ReturnForm() // Bu formu çağıran satıra geri dönülüyor

...


EndForm()

Sık kullandığınız sabitleri bir kez tanımlayıp, scriptin her yerinde kullanabilirsiniz.

Code Block
// Set komutu JSON yapısında değişken atamasını destekler.

...


Set(@EmirDurum, {"Bekliyor":12,"IslemeAlindi":13, "Tamamlandi":14})

...


 
// Emir statüsü tamamlandı olarak belirleniyor. JSON nesnelerin alt nesnelerine . (nokta) ile erişilebilir.

...


CustomState.Get(@EmirDurum.Tamamlandi)

Gerekmedikçe, nesneleri veritabanından doldurmak için Sql komutu kullanmayın. List ve Get komutları, yetkiler dahil bir çok kontrolü yaparak verileri getirir.

Code Block
// Kullanıcının yetkisi olduğu-olmadığı, aktif firmaya ait olan-olmayan, kullanımda olan-olmayan bütün depoları getirir.

...


Sql("SELECT * FROM SysWarehouse", @Depolar)

...


 
// Sadece aktif firmaya ait, kullanımda olan ve o kullanıcının yetkisi olan depoları getirir.

...


Warehouse.List("","", @Depolar)

Gerekmedikçe, veritabanında güncelleme işlemleri için Sql komutu kullanmayın. Save komutu kaydetme sırasında bir çok kontrolü yapar.

Code Block
// Fiş statüsünü Entegre Edildi olarak günceller ama entegrasyonu tetiklemez.

...


Sql("UPDATE Slip SET StateId=19", @sonuc)

...


 
// Fiş statüsünü Entegre Edildi olarak günceller ve o statünün otomatik eylemi olarak ERP'ye entegre olmasını sağlar.

...


CustomState.Get(19)

...


Slip.Save()