Showing posts with label Dimension. Show all posts
Showing posts with label Dimension. Show all posts

Tuesday, June 25, 2013

Dynamics AX 2012 Code to meagre MainAccount Dimesion and Default Dimesion

Below is the to Code to meagre  MainAccount Dimesion and Default Dimesion   to get Ledger Dimension Account which is used in segmented while creating Journal voucher in LedgerJournalTrans

static void CreateLedgerDimension(Args _args)
{
    LedgerDimensionAccount  ledgerDimension,defaultDimension;
    LedgerDimensionAccount  empledgerdimension;
    LedgerDimensionAccount  mainAccDimension;
    HcmPositionDefaultDimension (empPositionDimension
    HcmPositionWorkerAssignment HcmPositionWorkerAssignment;
   
mainAccDimension = PayHeadTable::find('BasicRate').DebitAccount;

HcmPositionWorkerAssignment =   HcmPositionWorkerAssignment::getActivePositionWorkerAssignment(HcmWorker::findByPersonnelNumber('PID-0937').RecId);
       
select empposdimension where empposdimension.Position == HcmPositionWorkerAssignment.Position;
       
if(empPositionDimension)
empledgerdimension  =   empPositionDimension.DefaultDimension;

    defaultDimension = DimensionDefaultingService::serviceCreateLedgerDimension(mainAccDimension, empledgerdimension);


     info(strFmt("Before: %1", DimensionAttributeValueCombination::find(defaultDimension).DisplayValue));
 

}

Dynamics AX 2012 inserting data in Resource Dimension and fetching Default Dimension

DimensionDefault getDimension(ResourceTable _Resource)
{

DimensionAttribute DimensionAttribute;
DimensionFinancialTag  DimensionFinancialTag;

Struct struct = new Struct();

container defaultDimensionCon;
DimensionDefault workerDimensionDefault;

;
DimensionAttribute =  DimensionAttribute::findByName('Resource');

DimensionFinancialTag = DimensionFinancialTag::findByFinancialTagCategoryAndValue(DimensionAttribute.financialTagCategory(),_Resource.value,true);
        if(!DimensionFinancialTag)
        {
            DimensionFinancialTag.clear();
            DimensionFinancialTag.Description=_Resource.description;
            DimensionFinancialTag.Value=_HcmWorker.PersonnelNumber;
            DimensionFinancialTag.FinancialTagCategory=DimensionAttribute.financialTagCategory();
            DimensionFinancialTag.insert();


struct.add('Resource', _HcmWorker.PersonnelNumber);

defaultDimensionCon += struct.fields();

defaultDimensionCon += struct.fieldName(1);

defaultDimensionCon += struct.valueIndex(1);

workerDimensionDefault = AxdDimensionUtil::getDimensionAttributeValueSetId(defaultDimensionCon);

return workerDimensionDefault;
    }
    else
        return 0;
}