The tables used are LedgerJournalName, LedgerJournalTable, and LedgerJournalTrans.
The steps are:
• Create a journal table record {Table\LedgerJournalTable}
• Create lines for each transaction to be posted {Table\LedgerJournalTrans}.
• Post the journal. {Classes\LedgerJournalCheckPost}
Sample Code: 
class Raj_LedgerJournal
{
    LedgerJournalName      ledgerJournalName;
    LedgerJournalTable     ledgerJournalTable;
    LedgerJournalTrans     ledgerJournalTrans;
    LedgerJournalCheckPost   ledgerJournalCheckPost;
    NumberSeq          numberSeq;
    LedgerJournalType      journalType;
}
void JournalParameters()
{
    str retStr;
    ;
    retStr = this.PostingJournal("Cust_Daily","INR","900120",5000,"900110");  
}
str PostingJournal(JournalNameId _JournalName, str _CurrencyCode, str _AccountNum, AmountMST _amount, str _offset)
{
    #AviFiles
    SysOperationProgress        _progress;
    str             returnStr;
    int             i;
    LineNum         lineNum;
    Amount          amountMST;
    ;
    amountMST   = _amount;
    /********  Progress Bar ********************************/
    _progress = new SysOperationProgress();
    _progress.setCaption("Posting");
    _progress.setTotal(2);
    _progress.setAnimation(#AviTransfer);
    /******************** End Progress Bar ***********************/
    /*********************** Creating Journal ************************/
    ttsbegin;
    select firstonly ledgerjournalName where ledgerJournalName.JournalName == _JournalName;
    ledgerJournalTable.JournalName = LedgerJournalName.JournalName;
    ledgerJournalTable.initFromLedgerJournalName();
   // ledgerJournalTable.Name = "Rajdip Journal Description";
    ledgerJournalTable.insert();
    info(ledgerJournalTable.JournalNum);
    /************************ End Creating Journal ****************************/
    /************************* Creating Lines for Journal *************************/
    numberSeq = NumberSeq::newGetVoucherFromCode(ledgerJournalName.VoucherSeries);
    ledgerJournalTrans.voucher = numberSeq.voucher();
    ++lineNum;
    ledgerJournalTrans.LineNum      = lineNum;
    ledgerJournalTrans.JournalNum = ledgerJournalTable.JournalNum;
    ledgerJournalTrans.currencyCode = _CurrencyCode;
    ledgerJournalTrans.ExchRate = Currency::exchRate(ledgerJournalTrans.currencyCode);
    ledgerJournalTrans.AccountNum = _AccountNum;
    ledgerJournalTrans.Dimension[1]= "Kolkata";
    ledgerJournalTrans.AccountType = LedgerJournalACType::Ledger;
    if(amountMST > 0)
        ledgerJournalTrans.AmountCurDebit      = amountMST;
    else
        ledgerJournalTrans.AmountCurCredit     = -(amountMST);
    ledgerJournalTrans.TransDate = today();
    ledgerJOurnalTrans.Txt = 'Rajdip Das Ledger Post Demo';
    ledgerJournalTrans.OffsetAccountType = LedgerJournalACType::Ledger;
    ledgerJournalTrans.OffsetAccount = _offset;
    ledgerJournalTrans.insert();
    returnStr = ledgerJournalTable.JournalNum;
    /************************* End Creating Lines for Journal *************************/
   
    ledgerJournalCheckPost = ledgerJournalCheckPost::newLedgerJournalTable(ledgerJournalTable,NoYes::Yes); 
     _progress.setText(ledgerJournalTrans.voucher);
    ledgerJournalCheckPost.run();
    returnStr += ' please verify from AX.';
    ttscommit;
    return returnStr;      
}
Static void main(Args a)
{
    Raj_LedgerJournal       ledgerJournal;
    ;
    ledgerJournal = new Raj_LedgerJournal();
    ledgerJournal.JournalParameters();
}
1 comment:
What is about LedgerDimension and OffsetLedgerDimension fields ?
Post a Comment