Importing from a CSV file to create a Ledger journal, we make use of the aX classes here and they simplify our work a lot compared to managing the tables directly. The data being imported below is minimal; but the code should give you a good example of how to work with additional fields.
//Job Start -->static void GL_GJImport(Args _args){ textBuffer tb = new textBuffer(); int cnt; int numLines; int c; container inLine; boolean first = true; Dimension finDim; amount amount; LedgerJournalACType LedgerJournalACType; ledgerJournalName ledgerJournalName; journalID JournalID; axLedgerJournalTable axLedgerJournalTable; axledgerJournalTrans axLedgerJournalTrans; LedgerJournalType JournalType = ledgerJournalType::Daily; ; tb.fromFile('C:\\sampleGLImport.csv'); //File name with Path ... numLines = tb.numLines(); if(numLines) { ttsBegin; for(cnt = 0; cnt < numLines; ++cnt) { inLine = str2Con(tb.nextToken(true)); if(conpeek(inLine, 1) && !first) //first field don’t do anything if blank { if(!JournalID) //Create Journal Haader { select firstonly ledgerJournalName where ledgerJournalName.JournalType == JournalType; axLedgerJournalTable = new axLedgerJournalTable(); axLedgerJournalTable.parmJournalName(ledgerJournalName.JournalName); axLedgerJournalTable.parmJournalType(JournalType); axLedgerJournalTable.parmName("Journal Description"); axLedgerJournalTable.save(); JournalID = axLedgerJournalTable.parmJournalNum(); } //Create Trans ... axLedgerJournalTrans = new axLedgerJournalTrans(); axLedgerJournalTrans.parmJournalNum(JournalID); axLedgerJournalTrans.parmAccountType( str2Enum(LedgerJournalACType, conPeek(inLine, 1))); axLedgerJournalTrans.parmAccountNum(conpeek(inLine, 2)); axLedgerJournalTrans.parmOffsetAccountType( str2Enum(LedgerJournalACType, conpeek(inLine, 3))); axLedgerJournalTrans.parmOffsetAccount(conpeek(inLine, 4)); finDim[1] = conPeek(inLine, 6); finDim[2] = conPeek(inLine, 7); axLedgerJournalTrans.parmDimension(finDim); amount = conpeek(inLine, 5); axLedgerJournalTrans.parmAmountCurCredit((amount > 0 ? abs(amount) : 0)); axLedgerJournalTrans.parmAmountCurDebit((amount < 0 ? abs(amount) : 0)); axLedgerJournalTrans.save(); ++c; } first = false; } ttsCommit; info(strFmt('Imported %1 Items', c)); }}// Job End <--Acct Type | Acct | Offset Type | OffSet Acct | Amount | Department | CostCenter |
Bank | USA Oper | Ledger | 300160 | 500 | 1201 | |
Ledger | 300160 | Bank | USA Oper | -250 | 1102 |
No comments:
Post a Comment