static void SBR_Create_Ledger_Journal(Args _args) { #define.JournalName('KOST12') LedgerJournalName ledgerJournalName; LedgerJournalTable ledgerJournalTable; LedgerJournalTrans ledgerJournalTrans; LedgerJournalId journalId; Amount amount; LedgerJournalEngine engine; ; ttsBegin; ledgerJournalName = LedgerJournalName::find(#JournalName); ledgerJournalTable.clear(); ledgerJournalTable.JournalName = ledgerJournalName.JournalName; ledgerJournalTable.initFromLedgerJournalName(); ledgerJournalTable.insert(); journalId = ledgerJournalTable.JournalNum; // Create Trans engine = LedgerJournalEngine::construct(ledgerJournalName.JournalType); engine.newJournalActive(ledgerJournalTable); ledgerJournalTrans.clear(); ledgerJournalTrans.initValue(); ledgerJournalTrans.JournalNum = journalId; engine.initValue(ledgerJournalTrans); // account ledgerJournalTrans.AccountType = LedgerJournalACType::Cust; engine.accountNumModified(ledgerJournalTrans); ledgerJournalTrans.AccountNum = '10058'; engine.accountModified(ledgerJournalTrans); // offset account ledgerJournalTrans.OffsetAccountType = LedgerJournalACType::Ledger; engine.offsetAccountTypeModified(ledgerJournalTrans); ledgerJournalTrans.OffsetAccount = '22500'; engine.offsetAccountModified(ledgerJournalTrans); // dimensions ledgerJournalTrans.Dimension[1] = ''; ledgerJournalTrans.Dimension[2] = ''; ledgerJournalTrans.Dimension[3] = ''; engine.initDimension(ledgerJournalTrans); // amount amount = 100; ledgerJournalTrans.AmountCurCredit = (amount > 0 ? abs(amount) : 0); if (ledgerJournalTrans.AmountCurCredit) engine.amountCurCreditModified(ledgerJournalTrans); ledgerJournalTrans.AmountCurDebit = (amount < 0 ? abs(amount) : 0); if (ledgerJournalTrans.AmountCurDebit) engine.amountCurDebitModified(ledgerJournalTrans); ledgerJournalTrans.insert(); pause; ttsCommit; info(strFmt('created journal %1', journalId)); }