Archive for Eylül 20th, 2013

Dynamics Ax 2012′de bir boyut nasıl zorunlu hale getirilir.

Merhaba

Ax 2012 ile değişen mali boyut yapısında herhangi bir boyutun nasıl zorunlu hale getirilebileceğine değineceğim.  Öncelikle General Ledger / Seturp /Configure account structures formunu açtığınızda aşağıda resimde göründüğü gibi alanın boş bırakılmasıyla ilgi parametre mevcut.

Bu parametre sadece deftere nakil işleminde çalışıyor. Örneğin yeni bir müşteri tanımlıyorsunuz ve departman boyutunun zorunlu olmasını istiyorsanız bu tanım bu işlemi yapmıyor.  Standartta böyle bir tanım yapılabiliyor mu diye araştırdım bulamadım. Validasyon yazmaktan başka bir çözüm bulamadım. Alanlarında boyut (DefaultDimension ) olan herhangi bir tablonun ValidateWrite() metodunu aşağıdaki gibi değiştirelim.

public boolean validateWrite()
{
    boolean ret;
    ;
    ret = super();

    if(!this.checkDimValue(5637144850)) // Must be parametric
    {
        ret =  checkFailed("Departman boyutu boş bırakılamaz.") && ret;
    }
    return ret;
}

Tabloya gerekli metodu ekleyelim.

Boolean checkDimValue(RefRecId _refRecId)
{
    DimensionAttributeValue             dimAttrValue;
    DimensionAttributeValueSetItem      dimAttrValueSetItem;

    ;

    select firstonly dimAttrValueSetItem
    where dimAttrValueSetItem.DimensionAttributeValueSet == this.DimensionDefault
    join dimAttrValue
        where dimAttrValue.RecId == dimAttrValueSetItem.DimensionAttributeValue
        &&    dimAttrValue.DimensionAttribute   == _refRecId ;

    if(dimAttrValueSetItem.DisplayValue)
        return true;
    else
        return false;

}

Selamlar.