![]() |
#2 |
Участник
|
Preston.Larimer: Ledger Journal Import, General Journal
Источник: http://palarimer.greenlight2go.com/2...rnal_7802.html
============== 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. X++: //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 <-- Источник: http://palarimer.greenlight2go.com/2...rnal_7802.html
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. |
|