28 Ağustos 2018 Salı

Validate | Dynamics Ax

Belirlediğimiz tarihi ilişkili farklı tablodan kontrol edilerek kontrol ekleyebilirsiniz.

Örnek olarak ilişkisinin müşteri hesabı olduğu iki farklı tablodan birinin formunda datasource'daki ilgili alanın validate'ine aşağıdaki kodu yazarak işlem yaptırabilirsiniz.

public boolean validate() // MAA 27.08.2018
{
    boolean ret;

    ETGCustRiskLimitUpdate  CustRiskLimitUpdate;
    utcDateTime             dateTime;
    dateTime         = DateTimeUtil::addDays(DateTimeUtil::getSystemDateTime(), -90);// bugünden itibaren geçtiğimiz 90 günün tarihini alır.
  //   DRT_CustExplainTable    CustExplainTable = DRT_CustExplainTable::find(CustRiskLimitUpdate.AccountNum);

    ret = super();

      if(DRT_CustExplainTable::find(ETGCustRiskLimitUpdate.AccountNum).modifiedDateTime < dateTime // maa 27.08.2018
        &&  ETGCustomerRisk::find(ETGCustRiskLimitUpdate.AccountNum).CreditLimit < ETGCustRiskLimitUpdate.NewCreditMax
        &&  CustClassificationGroup::findGroup(CustTable::find(ETGCustRiskLimitUpdate.AccountNum).CustClassificationId).CustRiskLimit == NoYes::No) // müşteri sınıflandırma grubu
            {
                return checkfailed(strfmt("%1 carisinin müşteri detay açıklamaları alanını güncellemeniz gerekmektedir!", ETGCustRiskLimitUpdate.AccountNum));
            }

    return ret;
}
DRT_CustExplainTable tablosuyla ilişkisini kurabilmek için iki tablodaki tekil olan CustAccount'u kullanarak find yazıyoruz.
static DRT_CustExplainTable find(CustAccount   _custAccount,
                      boolean       _forUpdate = false) // MAA 13.08.2018
{
    DRT_CustExplainTable DRT_CustExplainTable;
    ;

    if (_custAccount)
    {
        if (_forUpdate)
            DRT_CustExplainTable.selectForUpdate(_forUpdate);

        select firstonly DRT_CustExplainTable
            where DRT_CustExplainTable.CustAccount == _custAccount;
    }
    return DRT_CustExplainTable;
}

10 Ağustos 2018 Cuma

Satış siparişleri | Dynamics Ax

Satış siparişinde cariye ait borca uyarı verdirme


Örnek: Bir müşteriye ait vadesi geçmiş borcu olduğunda
(Müşteri ayrıntıları > İşlevler > Açık hareket düzenleme);  ilgili cariye  satış siparişi oluştururken aşağıdaki gibi bir bilgi verilmesi isteniyorsa;

SalesTable'ın methods'una aşağıdaki kodu yazdığınızda satış siparişi girerken bu bilgiyi size verecektir.

boolean  checkAccount()
{
    CustTransOpen                    CustTransOpen;
    CustTrans                        CustTrans;
    ;

   while select   CustTransOpen // MAA 10.08.2018
        where CustTransOpen.AccountNum == this.CustAccount
           && CustTransOpen.AmountCur > 0

     while select CustTrans
           where CustTrans.RecId == CustTransOpen.RefRecId

            if (CustTransOpen.DueDate < systemdateget())
                  {
                    info(strfmt("%1 carisinin vadesi geçmiş bakiyesi var!", CustTransOpen.AccountNum));
                  }


    return true;
}


8 Ağustos 2018 Çarşamba

Varsayılan sipariş ayarları tesis düzenlemesi

Varsayılan sipariş ayarları

 Maddenin üzerindeki Kurulum > varsayılan sipariş ayarları alanında aşağıdaki formda Satınalma, Stok ve Satış tesisi düzenlemesine izin vermiyorsa sistem bunun sebebi;


Formun datasource'unda bulnan InventItemPurchSetup, InventItemInventSetup, InventItemSalesSetup'taki tablolarda ilgili kaydın olmamasıdır (AllBlank'li olacak),


Aşağıdaki gibi kayıt oluşturduğunuzda problem gidecektir.( InventDimId, InventDimIdDefault'ları AllBlank seçin)


3 Ağustos 2018 Cuma

Ücretsiz toplu mail gönderme

Ücretsiz toplu mail

Toplu mail gönderiminde belirli bir sınırı aşınca toplu olarak mail gönderilemiyor.
Mailchimp bunun için ideal çözümlerden bir tanesi. Sizin adınızla toplu şekilde mail gönderebiliyorsunuz. 

https://mailchimp.com/ adresine girip hesap oluşturun sonrasında kullanmaya başlayabilirsiniz.
Youtube'ta kullanımı sade bir şekilde anlatılmış izleyip işlemlerinizi yapabilirsiniz.


Total ciro

static void MAA_SalesTableTotal(Args _args) { SalesTable SalesTable; utcDateTime dateTime; dateTime ...