Monday, 17 June 2013

Import ledger alias with a job [AX 2012]

I wrote a job to import the ledger alias in 2012. It is fairly straight forward if you have the DMF installed.

Create a csv file with the following:


End result will be:


//Name,Type,company,Account alias definition,initial focus
static void importLedgerAccountAlias(Args _args)
AsciiIO asciiIO;
Filename filename;
NoYesId skipFirstLine;
Container line;
Dialog dialog;
DialogField dialogFileName, dialogSkipFirstLine, dialogCountryRegionId;

DimensionAlias dimensionAlias;
Ledger ledger;

//fields to import
DimensionAliasName aliasName;
DimensionAliasType aliasType;
LedgerName ledgerName;
DimensionDisplayValue accountDefinition;
str initialFocus;

int numProcessedRecords;

dialog = new Dialog("Import Ledger Account Alias");
dialogFileName = dialog.addField(extendedTypeStr(Filenameopen), "File name");
dialogSkipFirstLine = dialog.addField(extendedTypeStr(NoYesId), "Skip first line");;

if (
filename = dialogFileName.value();
skipFirstLine = dialogSkipFirstLine.value();


asciiIO = new AsciiIO(filename, 'R');

if (!asciiIO || asciiIO.status() != IO_Status::Ok )
throw error (strfmt("@SYS19312",filename));


if (skipFirstLine)
line =;

while (asciiIO.status() == IO_status::Ok)
line =;

if (line)
aliasName = conpeek(line,1);
aliasType = conpeek(line,2);
ledgerName = conpeek(line,3);
accountDefinition = conpeek(line,4);
initialFocus = conpeek(line,5);

select ledger
where ledger.Name == ledgerName;

select firstonly dimensionAlias where dimensionAlias.Name == aliasName;

if (!dimensionAlias)
dimensionAlias.Name = aliasName;
dimensionAlias.AliasType = aliasType;
dimensionAlias.DimensionAttributeValueCombination = DMFDimensionHelper::generateDynamicDimension(accountDefinition);
dimensionAlias.LegalEntity = ledger.PrimaryForLegalEntity;
dimensionAlias.DimensionAttribute = DimensionAttribute::findByName(initialFocus).RecId; //find RecId for initial focus


info(strFmt("Imported: %1", numProcessedRecords));

This requires that you have the DMF installed on your environment.

If you are running R2. Make sure to have this fix as I am using the DMF dimension helper class.

Keep an eye on the next post. I will do the same with Data Import/Export Framework.

1 comment:

Anonymous said...

Hi Munib, great post!

It works well so long as I supply a main account, however if I don't it throws an error. Do you have an updated version that caters for that scenario?