Jan 29, 2016

The version of MS Excel is not supported - DMF Error

The version of MS Excel is not supported ............ DMF Error on validation.



By default we may not have 64-bit Microsoft Excel Driver installed on the local machine which causes this issue even though you may have 32-bit Microsoft Excel Driver in place. 

To resolve this we have to  install 64-bit Microsoft Excel Driver on 64-bit machine (OS) with 'Microsoft Access Database Engine 2010 Redistributable' (AccessDatabaseEngine_x64.msi) by using "/passive" argument.
 

DMF error " Exception from HRESULT: 0xC0048021 "

When I try to import the excel data by using DMF ..on "Preview source file" button click got the below error .

Exception from HRESULT: 0xC0048021  at Microsoft.Dynamics.AX.Framework.Tools.DMF.SSISHelper.DMFEntity.ShowPreview(Boolean isComposite)  at Microsoft.Dynamics.AX.Framework.Tools.DMF.SSISHelperService.Service.ServiceHelper.ShowPreview(DMFEntity entity)
 
To resolve this we need to modify DMFConfig file like below ...
 
Go to " C:\Program Files\Microsoft Dynamics AX\60\DataImportExportFramework"
 
Replace the values of
 
PipelineComponentInfo_Multicast
as {33D831DE-5DCF-48F0-B431-4D327B9E785D}
 
PipelineComponentInfo_ExcelSource
as  {9F5C585F-2F02-4622-B273-F75D52419D4A}
 
PipelineComponentInfo_ExcelDestination
as  {90E2E609-1207-4CB0-A8CE-CC7B8CFE2510}
 
 
 and save the file. ... :)
 
 
 
 
 

Dec 28, 2015

Financial Dimension Values from DefaultDimension

1. static void getsingleDimensionValue(Args _args)
{
    SalesTable                         salesTable = SalesTable::find("DAT-000002");
    Name                               _dimensionName = "Department";    
    DimensionAttributeValueSetStorage  dimStorage;
    str                                dimValue;
    Counter                            counter;
    ;

    dimStorage = DimensionAttributeValueSetStorage::find(salesTable.DefaultDimension);
                         
    for (Counter=1 ; Counter<= dimStorage.elements() ; Counter++)
    {
        if(DimensionAttribute::find(dimStorage.getAttributeByIndex(Counter)).Name == _dimensionName)
        {
            dimValue = dimStorage.getDisplayValueByIndex(Counter);
            info(dimValue);
        }
    }
}

2. DimensionValue getDimensionValue(RefRecID dimensionSetRecID,Name attributeName) 
{
    
    DimensionAttributeValueSet      dimAttrValueSet;
    DimensionAttributeValueSetItem  dimAttrValueSetItem;
    DimensionAttributeValue         dimAttrValue;
    DimensionAttribute              dimAttribute;
    
    dimAttrValueSet = DimensionAttributeValueSet::find(dimensionSetRecID);
    
    select dimAttrValueSetItem
        where   dimAttrValueSetItem.DimensionAttributeValueSet      == dimAttrValueSet.RecId
    join dimAttrValue    
        where   dimAttrValue.RecId                                  == dimAttrValueSetItem.DimensionAttributeValue
    join dimAttribute        
        where   dimAttribute.RecId                                  == dimAttrValue.DimensionAttribute
        &&      dimAttribute.Name                                   == attributeName;
    
    return dimAttrValue.getValue();        
}