Ledger journal import using x++
static void GLImport(Args _args)
{
AxLedgerJournalTable header = new AxLedgerJournalTable();
AxLedgerJournalTrans trans = new AxLedgerJournalTrans();
container ledgerDim, offsetDim;
LedgerJournalNameId ledgerJournalNameId = "GeneralJR";
DimensionAttributeValueCombination ledgerDimension;
LedgerJournalACType accType, offsetAccType;
BankAccountTable bankAccountTable;
;
accType = LedgerJournalACType::Ledger;
offsetAccType = LedgerJournalACType::Bank;
header.parmJournalName(ledgerJournalNameId);
header.save();
trans.parmAccountType(accType);
trans.parmJournalNum(header.ledgerJournalTable().JournalNum);
//If account type is Ledger
ledgerDim = ["142102-C-ADMIN","142102","C","ADMIN"];//First is Display value, followed by Main Account and then dimensions.
//If account type is other than ledger then Switch case statement can be written to get RecId from DimensionAttributeValueCombination Table.
trans.parmLedgerDimension(AxdDimensionUtil::getLedgerAccountId(ledgerDim));
trans.parmAmountCurDebit(230);
trans.parmOffsetAccountType(offsetAccType);
switch(offsetAccType)
{
case LedgerJournalACType::Bank : select firstOnly bankAccountTable
join RecId from ledgerDimension
where ledgerDimension.DisplayValue == bankAccountTable.AccountID
&& bankAccountTable.AccountID == "ICICI Bank";
trans.parmOffsetLedgerDimension(ledgerDimension.RecId);
//Same cases has to be written for others like Vendor, Customer. Except Account type ledger
//If offset account type is ledger then trans.parmOffsetLedgerDimension() will only be supported.
}
//trans.parmOffsetLedgerDimension(AxdDimensionUtil::getLedgerAccountId(offsetDim));
trans.save();
}
No comments:
Post a Comment