Posts Tagged ‘ DimensionStorage

Dynamics Ax 2012 DimensionStorage sınıfı

Merhaba

Ax 2012 muhasebe yapısında işimizi kolaylaştıracak bir sınıftan bahsetmek istiyorum. DimensionStorage sınıfı. Bu sınıf bir çok işlemi bizim için yapacak statik metotlara sahip. Özellikle genel muhasebe hesabı ve boyutların birbirleriyle olan ilişkilerinde çok işe yarıyor. Bir job ile bazı statik metotlarını anlatmaya çalışacağım.


static void FD_DimensionStorage(Args _args)
{
    DimensionAttributeValueCombination  dimAttrValueCombDefaultAccount;
    DimensionAttributeValueCombination  dimAttrValueComb;
    DimensionAttributeValueCombination  dimAttrValueCombCompare;
    DimensionAttributeValueCombination  dimAttrValueCombCust;
    DimensionAttributeValueSet          dimAttrValueSet;
    MainAccount                         mainAccount;
    CustTable                           custTable;
    LedgerJournalACType                 ledgerJournalACType;
    DimensionHierarchy                  dimHierarchy;
    ;
    // Örneklerde kullanmak için bazı kayıtları buluyorum
    dimAttrValueCombDefaultAccount  = DimensionAttributeValueCombination::find(5637159810);
    dimAttrValueComb                = DimensionAttributeValueCombination::find(5747268059);
    dimAttrValueCombCompare         = DimensionAttributeValueCombination::find(5747267556);
    mainAccount                     = MainAccount::find(5637146572);
    dimAttrValueSet                 = DimensionAttributeValueSet::find(5747251227);
    custTable                       = CustTable::find("1101");

    // Bir hesap ve tip alarak size LedgerDimension'da kayıt varsa getirir yoksa oluşturur.
    dimAttrValueCombCust = DimensionAttributeValueCombination::find(
          DimensionStorage::accountNum2LedgerDimension(custTable.AccountNum , LedgerJournalACType::Cust));
    info(strfmt("LedgerDimension RecId = %1" , dimAttrValueCombCust.RecId));

    // İki LedgerDimension'nın MainAccount'larının eşit olup olmadığını kontrol eder.
    info(strfmt("MainAccount'lar aynı mı?  %1" ,
       DimensionStorage::compareMainAccounts(dimAttrValueComb.RecId , dimAttrValueCombCompare.RecId)));

    // LedgerDimension' a ait hiyerarşi kaydını verir.
    info(strfmt("DimHierarchy Name = %1" ,
        DimensionStorage::getAccountStructureFromLedgerDimension(dimAttrValueComb.RecId).Name));

    // Bir MainAccount ait defaultAccount varsa getirir yoksa oluşturur.
    info(strfmt("DafaultAccount RecId = %1" ,
       DimensionStorage::getDefaultAccount(mainAccount.RecId)));

    // Bir MainAccount ait defaultAccount varsa getirir yoksa oluşturur.
    info(strfmt("DafaultAccount RecId = %1" ,
       DimensionStorage::getDefaultAccountForMainAccountNum(mainAccount.MainAccountId)));

    // Bir LedgerDimension'daki boyutları yanzı DimensionAttributeValueSet recId sini veriri.
    info(strfmt("DafaultDimension RecId = %1" ,
       DimensionStorage::getDefaultDimensionFromLedgerDimension(dimAttrValueComb.RecId)));

    // LedgerDimension' a ait hiyerarşi kaydını verir.
    info(strfmt("DimHierarchy Name = %1" ,
       DimensionStorage::getFirstDimHierarchyFromLedgerDimension(dimAttrValueComb.RecId).Name));

    // LedgerDimension'a ait DefaultAccount'u verir.
    info(strfmt("DefaultAccount  RecId = %1" ,
       DimensionStorage::getLedgerDefaultAccountFromLedgerDim(dimAttrValueComb.RecId)));

    // LedgerDimension'a ait MainAccount'u verir.
    info(strfmt("MainAccount  Name = %1" ,
       DimensionStorage::getMainAccountFromLedgerDimension(dimAttrValueComb.RecId).Name));

    // LedgerDimension'a ait MainAccount'u verir.
    info(strfmt("MainAccount  RecId = %1" ,
       DimensionStorage::getMainAccountIdFromLedgerDimension(dimAttrValueComb.RecId)));

    // LedgerDimension'a ait MainAccount'u verir.
    info(strfmt("MainAccount  Num = %1" ,
       DimensionStorage::getMainAccountNumFromLedgerDimension(dimAttrValueComb.RecId)));

    // LedgerDimension'a ait AccountNum'u verir.
    info(strfmt("CustTable AccountNum = %1" ,
       DimensionStorage::ledgerDimension2AccountNum(dimAttrValueCombCust.RecId)));

}

Job’ı çalıştırdığınızda şöyle bir çıktı alacaksınız.

Selamlar.