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

 

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","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();


}

 

posted @ 2013-09-27 14:47  Fandy Xie  Views(1175)  Comments(0Edit  收藏  举报