Dynamics 365 Finance and Operations: Transfer günlüğü oluşturma ve nakletme.
Bu yazıda Dynamics 365 Finance and Operations içinde kodla stok transfer günlüğü oluşturup deftere nakletmek için basit bir örnek vereceğim.
Bu günlükler ara yüzden de girilebilir. Ancak birçok durumda bizim otomatik oluşturmamız istenir.
Gelelim örnek kodumuzu. Transfer günlüklerinde boyut değişimi yapılır. Bu örnek kod tek satırlı ve miktarı 1 olan basit bir günlük oluşturuyor ve deftere naklediyor. Yaptığı şeyse bir InventSize’dan diğerine transfer işlemi yapmak. Siz ihtiyacınıza göre değiştirebilirsiniz.
class DmrCreateTransferJournal
{
public static void main(Args _args)
{
InventJournalTableData journalTableData;
InventJournalTrans inventJournalTrans;
JournalCheckPost journalCheckPost;
InventJournalTable journalTable;
InventDim FromInventDim,toInventDim;
InventJournalNameId TransferJournalNameId;
InventDim InventDim;
InventTable inventTable;
InventDim inventDimFrom;
InventBatch InventBatchNew;
ItemId ItemId = “I0002″;
inventDimId inventDimId = “D0003″;
EcoResSizeName inventSizeIdTo;
int i;
;
ttsbegin;
inventTable = inventTable::find(ItemId);
InventDim = InventDim::find(inventDimId);
TransferJournalNameId = “S0944″;
journalTable.clear();
journalTable.JournalNameId = TransferJournalNameId;
journalTable.initFromInventJournalName(InventJournalName::find(TransferJournalNameId));
journalTableData = JournalTableData::newTable(journalTable);
journalTable.JournalId = journalTableData.nextJournalId();
journalTable.JournalType = InventJournalType::Transfer;
journalTableData.initFromJournalName(journalTableData.JournalStatic().findJournalName(journalTable.journalNameId));
journalTable.Description = “Transfer journal”;
journalTable.insert();
i++;
if(!InventBatch::find( InventDim.inventBatchId ,ItemId) )
{
InventBatchNew.clear();
InventBatchNew.itemId = ItemId;
InventBatchNew.inventBatchId = InventDim.inventBatchId;
InventBatchNew.insert();
}
inventJournalTrans.clear();
inventJournalTrans.ItemId = ItemId;
inventDimFrom.clear();
inventDimFrom.initValue();
inventDimFrom.InventSiteId = InventDim.InventSiteId;
inventDimFrom.InventLocationId = InventDim.InventLocationId;
inventDimFrom.InventSizeId = InventDim.InventSizeId;
inventDimFrom.inventBatchId = InventDim.inventBatchId;
inventDimFrom = inventDim::findOrCreate(inventDimFrom);
inventJournalTrans.InventDimId = inventDimFrom.InventDimId;
inventDimFrom.clear();
inventDimFrom.initValue();
inventDimFrom.InventSiteId = InventDim.InventSiteId;
inventDimFrom.InventLocationId = InventDim.InventLocationId;
inventDimFrom.InventSizeId = inventSizeIdTo;
inventDimFrom.inventBatchId = InventDim.inventBatchId;
inventDimFrom = inventDim::findOrCreate(inventDimFrom);
inventJournalTrans.ToInventDimId = inventDimFrom.InventDimId;
inventJournalTrans.JournalId = journalTable.JournalId;
inventJournalTrans.TransDate = today();
inventJournalTrans.Qty = 1;
inventJournalTrans.JournalType = InventJournalType::Transfer;
inventJournalTrans.LineNum = i;
inventJournalTrans.insert();
journalCheckPost = InventJournalCheckPost::newPostJournal(journalTable);
if(journalCheckPost.validate())
{
journalCheckPost.run();
}
info(strFmt(“%1 journal created.”, journalTable.JournalId));
ttscommit;
}
}
Bu yazıda Stok hareket günlüğü oluşturma örneği paylaştım. Umarım faydalı olur.
Selamlar.
www.fatihdemirci.net
TAGs: Microsoft Life Cycle Services, LCS, Azure, Azure DevOps, InventJournal, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365, X++