Creating ledger transactions from X++ in AX 2012

Can somebody help me to a guide How I can post LedgerTransaction with X++ code.

In ax2009 I have this code working but i’m stuck at setting the ledgerJournalTrans.LedgerDimension
How do I do that?

Or do I have a complete wrong approach.

static void ExampleLedgerJournal(Args _args)

{

LedgerJournalTable ledgerJournalTable;

Ledgerjournaltrans ledgerjournaltrans;

str journalNum;

Voucher voucher;

LedgerJournalEngine ledgerJournalEngine;

NumberSeq numberseq;

LedgerJournalName ledgerJournalName;

LedgerDimensionDefaultAccount accountNum;

dimensionAttributeValueCombination DimensionAttributeValueCombination;

;

ttsBegin;

ledgerJournalName::find(“Day1”);

ledgerJournalTable.clear();

ledgerJournalTable.initFromLedgerJournalName(“Day1”);

journalNum = (new JournalVoucherNum(JournalTableData::newTable(ledgerJournalTable)).getNew(true));

ledgerJournalTable.JournalNum = journalNum;

ledgerJournalTable.insert();

ledgerjournaltrans.clear();

ledgerJournalTrans.initValue();

ledgerJournalTrans.JournalNum = journalNum;

ledgerJournalEngine.initValue(ledgerJournalTrans);

ledgerJournalTrans.LineNum = 1;

ledgerJournalTrans.TransDate = systemDateGet();

ledgerJournalTrans.AccountType = LedgerJournalACType::Ledger;

// This next code doesn’t work

ledgerJournalTrans.LedgerDimension = DimensionAttributeValueCombination::getAccountFromDynamicAccount(‘1101’) ;

ledgerJournalTrans.Txt = ‘Test transaction’;

ledgerJournalTrans.AmountCurDebit = 1000;

ttsAbort;

}

Hi!

Did you find the answer?

Hi!

Did you find the answer?

I used an extra method to get my ledgerDim:

private RecId getLedgerDimension(accountNum accountNum)
{
MainAccount mainAccount;
LedgerDimensionAccount ledgerDimensionAccount;
DimensionAttributeValue dimensionAttributeValue;
DimensionAttribute dimensionAttribute;
dimensionAttributeValueSetStorage dimensionAttributeValueSetStorage;
dimensionDefault dimensionDefault;

mainAccount = mainAccount::findByMainAccountId(accountNum);
if (mainAccount)
{
ledgerDimensionAccount = DimensionDefaultingEngine::getLedgerDimensionFromAccountAndDim(
MainAccount.RecId,
DimensionHierarchy::getAccountStructure(MainAccount.RecId));

if (!ledgerDimensionAccount)
{
throw error(strFmt("@SYS327889", “@SYS8343”, mainAccount.RecId));
}
}
return ledgerDimensionAccount;
}