Following job can be used to create, validate, and post hour journal in Project Management and Accounting module in AX 2012 R3.
static void
createHourJournal(Args _args)
{
ProjJournalTableData JournalTableData;
ProjJournalTransData journalTransData;
ProjJournalTable journalTable, journalTableUpdate;
ProjJournalTrans journalTrans;
ProjTable projTable;
ProjInvoiceTable projInvoiceTable;
NumberSeq numberSeq;
ProjJournalCheckPost jourPost;
ProjQtyEmpl qty;
JournalNumOfLines numOfLines;
ttsBegin;
journalTableData =
JournalTableData::newTable(journalTable);
journalTransData =
journalTableData.journalStatic().newJournalTransData(journalTrans,
journalTableData);
// Init
JournalTable -- header
journalTable.clear();
journalTable.JournalId = journalTableData.nextJournalId();
journalTable.JournalType = ProjJournalType::Hour;
journalTable.JournalNameId = MROParameters::find().JournalHour;
journalTable.initFromProjJournalName(ProjJournalName::find(journalTable.JournalNameId));
journalTable.insert();
// Init
JournalTrans -- lines
journalTableData.initFromJournalName(journalTableData.journalStatic().findJournalName(journalTable.JournalNameId));
journalTrans.clear();
journalTransData.initFromJournalTable();
projTable = ProjTable::find('000057');
projInvoiceTable = projTable.projInvoice();
journalTrans.setTransDate();
journalTrans.TransDate = systemDateGet();
journalTrans.ProjTransDate = systemDateGet();
journalTrans.ProjId = projTable.ProjId;
journalTrans.Qty = 7.5;
journalTrans.CategoryId = 'Category
ID';
journalTrans.LinePropertyId = 'Line property ID';
journalTrans.Worker = DirPersonUser::currentWorker();
journalTrans.ActivityNumber = 'Activity number';
journalTrans.Txt = 'Sample
Text';
if
(projInvoiceTable.CurrencyId)
journalTrans.CurrencyId =
projInvoiceTable.CurrencyId;
else
journalTrans.CurrencyId =
CompanyInfo::standardCurrency();
journalTrans.DefaultDimension = projTable.DefaultDimension;
journalTrans.TaxGroupId =
ProjParameters::taxGroupInvoice(projTable.ProjId);
if
(journalTrans.Worker)
{
journalTrans.setHourPrices();
journalTrans.setPeriodDate();
}
numberSeq =
NumberSeq::newGetVoucherFromId(journalTable.VoucherNumberSequenceTable, false);
journalTrans.Voucher = numberSeq.voucher();
journalTransData.create();
ttsCommit;
// Validating
the journal
jourPost =
ProjJournalCheckPost::newJournalCheckPost(true,true,JournalCheckPostType::Check,tableNum(ProjJournalTable),journalTable.JournalId);
// Posting the
journal
jourPost =
ProjJournalCheckPost::newJournalCheckPost(true,true,JournalCheckPostType::Post,tableNum(ProjJournalTable),
journalTable.JournalId);
jourPost.run();
}
Good Post! Thank you so much for sharing this post, it was so good to read and useful to improve my knowledge as updated one, keep blogging…
ReplyDeleteMicrosoft Dynamics Online Training
Your information was very clear. Thank you for sharing.
ReplyDeleteD365 Finance and Operations Online Training