web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :
Dynamics 365 Community / Blogs / The Dynamics 365 Library / AX 2012 - Create and Post h...

AX 2012 - Create and Post hour journal through X++

Faisal Fareed Profile Picture Faisal Fareed 10,796 User Group Leader
The following method will create, validate, and post the 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


    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


   
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();


}












This was originally posted here.

Comments

*This post is locked for comments