Skip to main content

Update Ledger dimension through code in AX 2012 R3 (Account Structure) X++

Public void updateLedgerDimension(str 30 finMainaccount,str finArea,str fnCostCenter,str finFamily,str finBussiness,str finProject,str finSeason,str finCompany)
{
    List ListValueContract = new List(Types::Class);
    DimensionServiceProvider DimensionServiceProvider = new DimensionServiceProvider();
    LedgerAccountContract LedgerAccountContract = new LedgerAccountContract();
    updateValue = false;
    if(finArea)
    {
        ValueContract = new DimensionAttributeValueContract();
        ValueContract.parmName('Area') ;
        ValueContract.parmValue(finArea);
        ListValueContract.addEnd(ValueContract);
    }

    if(fnCostCenter)
    {
        ValueContract = new DimensionAttributeValueContract();
        ValueContract.parmName('CostCenter') ;
        ValueContract.parmValue(fnCostCenter);
        ListValueContract.addEnd(ValueContract);
    }

    if(finFamily)
    {
        ValueContract = new DimensionAttributeValueContract();
        ValueContract.parmName('Family') ;
        ValueContract.parmValue(finFamily);
        ListValueContract.addEnd(ValueContract);
    }

    if(finBussiness)
    {
        ValueContract = new DimensionAttributeValueContract();
        ValueContract.parmName('Business') ;
        ValueContract.parmValue(finBussiness);
        ListValueContract.addEnd(ValueContract);
    }

    if(finProject)
    {
        ValueContract = new DimensionAttributeValueContract();
        ValueContract.parmName('Project') ;
        ValueContract.parmValue(finProject);
        ListValueContract.addEnd(ValueContract);
    }


    if(finSeason)
    {
        ValueContract = new DimensionAttributeValueContract();
        ValueContract.parmName('Season') ;
        ValueContract.parmValue(finSeason);
        ListValueContract.addEnd(ValueContract);
    }

    /*
    if(finCompany == "RND")
    {
        ValueContract = new DimensionAttributeValueContract();
        ValueContract.parmName('Company') ;
        ValueContract.parmValue('');
        ListValueContract.addEnd(ValueContract);
    }
    */
        LedgerAccountContract.parmMainAccount(finMainaccount);
        LedgerAccountContract.parmValues(ListValueContract);


        dimStorage = DimensionServiceProvider::buildDimensionStorageForLedgerAccount(LedgerAccountContract);
        dimensionAttributeValueCombination = DimensionAttributeValueCombination::find(dimStorage.save());
        updateValue = true;
 }


For  finMainaccount,str finArea,str fnCostCenter,str finFamily,str finBussiness,str finProject,str finSeason,str finCompany this value please follow below link.

http://daxinfo.blogspot.in/2016/11/get-dimension-value-from-ledger.html

Comments

  1. Great blog. Thanks for share this post. It may helpful for all newbie bloggers, i really appreciate.Microsoft Dynamics AX consultants

    ReplyDelete

Post a Comment

Popular posts from this blog

How to change client Language in ax 2012

Hello,  As you know that Dynmics Ax run on different languages. So I gonna tell you how to change client language country/region specific. this is nothing but a very simple step to do. Go To > File > Tools > Options > After that go to General tab and select the language which you want to use in your client. then apply and exit. In my case I was using Arabic language. Now restart your client and see the difference. You can do it from your database also . Go to Database server  . In my case it is sql server 2014. Select your database > tables > UserInfo > select the user > change the language code. Done Thanks.

Simple x++ query with enum value range

static void queryEnumValue(Args _args) {     Query                   query;     QueryRun                queryrun;     QueryBuildDataSource    qbds;     QueryBuildRange         qbr;     PurchTable              purchTable;     ;         query = new Query();         qbds = query.addDataSource(tableNum(PurchTable));     qbds.addSortField(fieldNum(PurchTable, PurchId), SortOrder::Ascending);     qbr     = qbds.addRange(fieldNum(PurchTable, PurchStatus));         qbr.value(enum2str(PurchStatus::Received));         queryrun = new QueryRun(query);         while(queryrun.next())     {         purchTable = query...

Unit Conversion by code in ax 2012 R3 , X++

static void unitConversion() {     SysExcelApplication xlsApplication;     SysExcelWorkBooks xlsWorkBookCollection;     SysExcelWorkBook xlsWorkBook;     SysExcelWorksheets xlsWorkSheetCollection;     SysExcelWorksheet xlsWorkSheet;     SysExcelRange xlsRange;     SysExcelCells Cells;     SysExcelCell RCell;     CommaIO inFile;     int nRow,i;     DialogField dialogPath;     Dialog dialog;     Filename filename;         UnitOfMeasureConversion             unitOfMeasureConversion;     UnitOfMeasure                       unitOfMeasure;     EcoResProduct                       ecoResProduct;     RecId               ...