Archive for the ‘ x++ ’ Category

İyimser Eşzamanlı İstisnalar(Optimistic Concurrency Exceptions)

İyimser eşzamanlı kontrolü (optimistic concurrency check (OCC)) AX 2009 da performance arttırma işlevidir. Gerçek güncelleme anına kadar, veri tabanından alınan bir kayıt değiştirilmeyecek varsayılır. Bunun anlamı veri tabanında ki bu kayıt üzerinde daha az kilit olması ve diğer kullanıcıların daha hızlı erişmesidir.

Aynı zamanda bunun anlamı bir kullanıcı kaydı güncellerken diğeride bu kaydı ele alabilir. Bu da kayıt tutarsızlığına sebep olabilir. Şöyle ki; eğer ikinci kullanıcıda kaydı güncellemeyi dener ise bir hata fırlatılır. Bu durumda sistem şunu yapar; recVersion alanını kullanarak hangisi güncellendi ise bir kayıt için her seferinde bir güncelleme yapılır.

OCC İstisna Yönetimi

catch (Exception::UpdateConflict)        

Read more

Try ve Catch Komutları

 

Try komutu istisna yönetimi yapacağın kod bloğunun başladığını gösterir. Ve bu blok içinde herhangi bir istisna fırlatılır ise yakalanabilir ve buna göre yönetilebilir.

Catch ifadesi try bloğundan sonra gelir ve bir istisna fırlatıldığında yakalanıp hangi kodun işletileceğini tanımlar. Catch durumu tanımlanmak zorunda değildir ama yinede her try durumu bir catch durumuna sahip olmalıdır.

Retry komutu sistemin tekrar try bloğu içindeki kodu işlemesi anlamına gelir.

Read more

İstisnalar (Exceptions)

İstisna programın normal akışı kesildiğinde ortaya çıkan durumdur.  İstisna örnekleri:

  • Yazdırma sırasında printerin güç düğmesinin açık olmaması
  • Olmayan bir dosyaya erişmek
  • Olmayan bir kaydı güncellemek

Bu istisnalar meydana geldiğinde program bunları yönetmek için harekete geçmelidir. Örneğin, eğer kullanıcı olmayan bir dosyayı ele almayı istemiş ise sistem bu istisnayı yakalamalı ve yeni bir dosya oluşturmalı gibi.

Read more

Döngüler

Yinelenen ifadeler yazılımda döngüler olarak bilinirler. Döngülerde söylenmesi gereken en önemli şey döngünün devamını sağlayan şartın aynı zamanda muhakkak döngüyü sonlandırmasıda gerekmektedir. Bu dikkate alınmaz ise program akışı sonsuz döngüye girer ve hata alınır. X++ ta üç ana döngü vardır:

  • while loop
  • do while loop
  • for statement
While Döngü İfadesi

While ifadesi yanında parantez içinde belirtilen koşul sağlandıkça kuşak imleçleri arasındaki kod tekrarlanarak işletilir. Burda dikkat edilmesi gereken önce şartın kontrol edilmesi ve sonra gerekirse kod işletilir.

Read more

Raporda Resource image kullanmak

Merhaba

Yaptığım bir raporda durumlara göre farklı iconlar göstermem istendi.

Personele verilen zimmetlerin takibi için hazırladığım raporda şöyle bir istek vardı.

Eğer pozisyona verilmesi gereken zimmet personele verilmişse yeşil ikon,

Eğer pozisyona verilmesi gereken zimmet personele verilmemişse kırmızı ikon,

Eğer pozisyona verilmesi gerekmeyen bir zimmet personele verilmişse sarı ikon,

Bunun için benin bulduğum çözümse öncelikle bir metodla resource lardan gerekli ikonu almak .

public  FilePath showResource(str _tip)
{
    #AOT
    ResourceNode resourceNode;
    FilePath filePathLogo;
    ;

Read more

Axaptada kodla menuitem çağırmak

Merhaba

x++ ile bazen bazı objeleri çağırmak gerekiyor.

Bunun için önce  MenuFunction   tanımlamalısınız.

MenuFunction    ReqTransOverviewMenu;

Read more

Axaptada Bir Alana Girilen Karakterlerin Kontrolu

Merhaba

Bir string alanınız var. Bu alana bazı karakterlerin girilmesini istemiyorsunuz strFind() metodunu kullanabilirsiniz.

Öreneğin ben bir alana rakam girilmesini istemiyorum.

İlgili alanın tablosunda alanın validatefield() metoduna şu kontrolu yazarsak istediğimizi elde etmiş oluruz.

Read more

InitFromCaller Metod Örneği

Merhaba

Rapora yazdığımız bu metod sayesinde gridden menuitem ile  çağırdığımız raporumuza o satırdaki id ye göre range eklemiş oluruz .

public void initFromCaller(Args _args)
{
    InventQualityOrderTable    _quality;
    QueryBuildDataSource  qbds;
    ;
    if (_args.caller())
    {
        if (! _args.record().RecId)
            throw error(strfmt(“@SYS22338″,funcname()));

Read more

İki Query ile fatch örneği

Bir fatch örneği paylaşıyorum.

FDInventTransDim tablosu datasourcta group by yapılmış şekilde mevcut

Fatch metodumuza bakalım 

public boolean fetch()
{
    boolean                                        ret;
    Query                                            q;
    QueryRun                                    qRun;
    FDInventTransDim                 fDInventTransDim;
    FDInventTransDim                 tmpFDInventTransDim;
    QueryBuildDataSource          qBd,qbdsTmp;
    QueryBuildRange                     qBr,qbrTmp;
    Query                                            qTmp;
    QueryRun                                    qRunTmp;

    ; Read more

Telefon numarası kontrolu

Merhaba

Bü gün lazım oldu bir telefon numarası kontrolu yazdım.

Basit bir kontrol yaptım telefon numarasının  uzunluğu ve sayılardan oluşmasını denetliyor

Metod şöyle:

Read more

Page 10 of 15« First...89101112...Last »