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