public class journalPost { public static void main(Args _args) { ClaimHeader journalTable; ClaimLine journalTableLine; journalTable = _args.record(); if (!journalTable) { throw error("No journal selected."); } LedgerJournalTable ledgerJournalTable; LedgerJournalTrans ledgerJournalTrans; LedgerJournalCheckPost journalCheckPost; LedgerJournalName ledgerJournalName; TrvParameters trvParameters; Ledger currentLedger; Ledger ledgerFromFind; VendTable vendTable; ClaimType claimtype; TransDate transDate; NumberSeq numberseq; ExchRate exchangeRate; Voucher voucher; RecId ledgerRecId; CurrencyCode fromCurrency,toCurrency; select JournalName from trvParameters; // Header ledgerJournalTable = null; ledgerJournalTable.company(curext()); ledgerJournalTable.JournalName = trvParameters.JournalName; ledgerJournalTable.initFromLedgerJournalName(); ledgerJournalTable.NumberSequenceTable = ledgerJournalName.NumberSequenceTable; ledgerJournalTable.insert(); if (ledgerJournalTable.RecId) { // Line ledgerJournalTrans.clear(); ledgerJournalTrans.Company = curext(); ledgerJournalTrans.JournalNum = ledgerJournalTable.JournalNum; ledgerJournalTrans.TransDate = journalTable.EventDate; ledgerJournalTrans.LineNum = LedgerJournalTrans::lastLineNum(ledgerJournalTrans.JournalNum); voucher = new JournalVoucherNum(JournalTableData::newTable(ledgerJournalTable)).getNew(false); ledgerRecId = Ledger::current(); ledgerFromFind = Ledger::find(ledgerRecId); fromCurrency = ledgerFromFind.AccountingCurrency; vendTable = VendTable::find("1001"); toCurrency = vendTable.Currency; transDate = systemDateGet(); exchangeRate = ExchangeRateHelper::MCRGetExchangeRate( fromCurrency, toCurrency, transDate ); ledgerJournalTrans.Voucher = voucher; ledgerJournalTrans.CurrencyCode = ledgerFromFind.AccountingCurrency; select Amount from journalTableLine where journalTableLine.ClaimHeader == journalTable.RecId; ledgerJournalTrans.AmountCurDebit = journalTableLine.Amount; ledgerJournalTrans.ExchRate = exchangeRate; select firstonly claimtype where claimtype.ClaimType == journalTable.ClaimType; ledgerJournalTrans.AccountType = claimtype.AccountType; ledgerJournalTrans.LedgerDimension = claimtype.LedgerDimension; ledgerJournalTrans.OffsetAccountType = claimtype.OffsetAccountType; // Get MainAccountNum MainAccount mainAccount = mainAccount::findByMainAccountId(claimtype.OffsetAccount); RecId vendorMainAccount = mainAccount.RecId; if ( claimtype.OffsetAccountType == LedgerJournalACType::Vend) { ledgerJournalTrans.OffsetLedgerDimension = LedgerDimensionFacade::serviceCreateLedgerDimension(vendorMainAccount); } else { ledgerJournalTrans.OffsetLedgerDimension = claimtype.OffsetLedgerDimension; } ledgerJournalTrans.insert(); if (ledgerJournalTrans.RecId) { // Posting journalCheckPost = LedgerJournalCheckPost::newLedgerJournalTable(ledgerJournalTable, NoYes::Yes); journalCheckPost.runOperation(); ledgerJournalTable.reread(); if (ledgerJournalTable.Posted == NoYes::Yes) { info(strFmt("Journal %1 has been created and posted.", ledgerJournalTable.JournalNum)); } } } } }
if ( claimtype.OffsetAccountType == LedgerJournalACType::Vend)
{
ledgerJournalTrans.OffsetLedgerDimension = LedgerDimensionFacade::serviceCreateLedgerDimension(mainAccount.OffsetLedgerDimension);
}
else
{ ledgerJournalTrans.OffsetLedgerDimension = claimtype.OffsetLedgerDimension;
else { ledgerJournalTrans.OffsetLedgerDimension = claimtype.OffsetLedgerDimension; }
Under review
Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.
As AI tools become more common, we’re introducing a Responsible AI Use…
We are honored to recognize Mansi Soni as our August 2025 Community…
These are the community rock stars!
Stay up to date on forum activity by subscribing.
Sohaib Cheema 708 User Group Leader
Martin Dráb 589 Most Valuable Professional
Yng Lih 553