How to using x++ code create GL journal[AX2012]

时间:2022-01-07 13:06:31
static void FAN_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","","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();
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(); }