25 May 2017

X++ to to get financial dimension value using default dimension in AX 2012

#define.dimProductGroups("ProductGroups")
    #define.dimCostCenters("CostCenters")
    #define.dimDepartments("Departments")


private str getDimensionValue(RecId _dimensionDefault, Str dimName)
{
    DimensionAttributeValueSetStorage   dimStorage;
    Str                                 dimValue;
    Counter                             i;


    // DimensionDefault is a RecId that combines all Dimension Values
    dimStorage = DimensionAttributeValueSetStorage::find(_dimensionDefault);

    for (i= 1 ; i<= dimStorage.elements() ; i++)
    {
        if(DimensionAttribute::find(dimStorage.getAttributeByIndex(i)).Name == dimName)
        {
            dimValue = dimStorage.getDisplayValueByIndex(i);
        }
        if(DimensionAttribute::find(dimStorage.getAttributeByIndex(i)).Name == dimName)
        {
            dimValue = dimStorage.getDisplayValueByIndex(i);
        }
        if(DimensionAttribute::find(dimStorage.getAttributeByIndex(i)).Name == dimName)
        {
            dimValue = dimStorage.getDisplayValueByIndex(i);
        }
    }

    return dimValue;
}

Calling:
salesDeliveryLinesTmp.ProductGroup      =   this.getDimensionValue(custPackingSlipTrans.DefaultDimension,#dimProductGroups);
    salesDeliveryLinesTmp.CostCenter        =   this.getDimensionValue(custPackingSlipTrans.DefaultDimension,#dimCostCenters);
    salesDeliveryLinesTmp.Department        =   this.getDimensionValue(custPackingSlipTrans.DefaultDimension,#dimDepartments);

====
Using Dimension name getting default dimension getting dimension value;

private DimensionValue ceDimensionProductGroup(DimensionDefault _dimensionDefault)
{
    DimensionValue                      value;
    DimensionAttributeValueSetStorage   dimStorage;
    int i;

    dimStorage = DimensionAttributeValueSetStorage::find(_dimensionDefault);

    for (i=1; i<=dimStorage.elements(); i++)
    {
        if (DimensionAttribute::findByName(CustParameters::find().CeDimensionReportValue3).Name == DimensionAttribute::find(dimStorage.getAttributeByIndex(i)).Name)
        {
            value = dimStorage.getDisplayValueByIndex(i);
        }
    }

    return value;
}



No comments:

Post a Comment

Give me the commetns and solutions

Ledger Voucher creation Framework and x++ code to create ledger voucher

 Please click her for MS reference file Below is the out of the box example reference and code. SalesInvoiceJournalPostSubBill_Extension-...