Dynamics 365 Finance and Operations: Ürün reçetesi günlüğü oluşturma ve nakletme.
Bu yazıda Dynamics 365 Finance and Operations içinde kodla ürün reçetesi 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. Bu örnek kod tek satırlı ve miktarı 1 olan basit bir günlük oluşturuyor ve deftere naklediyor. Burada bir madde kodundan diğerine aktarım yapıyoruz gibi düşünebilirsiniz. Siz ihtiyacınıza göre değiştirebilirsiniz.
class DmrCreateBomJournal
{
public static void main(Args _args)
{
InventJournalTableData journalTableData;
InventJournalTrans inventJournalTrans;
InventJournalTrans InventJournalTransOld;
JournalCheckPost journalCheckPost;
InventJournalTable journalTable;
InventDim FromInventDim,toInventDim;
ItemId ItemId = “I0002″;
ItemId toItemId = “I0003″;
inventDimId inventDimId = “D0003″;
InventJournalNameId TransferJournalNameId;
InventTable inventTable;
InventBatch InventBatchNew;
InventDim InventDim;
InventDim inventDimFrom;
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::BOM;
journalTableData.initFromJournalName(journalTableData.JournalStatic().findJournalName(journalTable.journalNameId));
journalTable.Description = “Bom journal”;
journalTable.insert();
i++;
inventDimFrom.clear();
inventDimFrom.initValue();
inventDimFrom.InventSiteId = InventDim.InventSiteId;
inventDimFrom.InventLocationId = InventDim.InventLocationId;
inventDimFrom.InventSizeId = InventDim.InventSizeId;
inventDimFrom.inventBatchId = InventDim.inventBatchId;
inventDimFrom = inventDim::findOrCreate(inventDimFrom);
InventJournalTransOld.clear();
InventJournalTransOld.ItemId = ItemId;
InventJournalTransOld.InventDimId = inventDimFrom.InventDimId;
InventJournalTransOld.JournalId = journalTable.JournalId;
InventJournalTransOld.TransDate = today();
InventJournalTransOld.BOMLine = NoYes::Yes;
InventJournalTransOld.Qty = -1;
InventJournalTransOld.JournalType = InventJournalType::BOM;
InventJournalTransOld.LineNum = i;
InventJournalTransOld.insert();
i++;
InventJournalTrans.clear();
InventJournalTrans.ItemId = toItemId;
if(!InventBatch::find(InventDim.inventBatchId ,toItemId) )
{
InventBatchNew.clear();
InventBatchNew.itemId = toItemId;
InventBatchNew.inventBatchId = InventDim.inventBatchId;
InventBatchNew.insert();
}
InventJournalTrans.InventDimId = inventDimFrom.InventDimId;
InventJournalTrans.ItemId = toItemId;
InventJournalTrans.Qty = 1;
InventJournalTrans.JournalId = journalTable.JournalId;
InventJournalTrans.JournalType = InventJournalType::BOM;
InventJournalTrans.TransDate = today();
inventJournalTrans.LineNum = i;
InventJournalTrans.insert();
InventJournalTransold.InventTransIdFather = InventJournalTrans.InventTransId;
InventJournalTransOld.update();
journalCheckPost = InventJournalCheckPost::newPostJournal(journalTable);
if(journalCheckPost.validate())
{
journalCheckPost.run();
}
info(strFmt(“%1 journal created.”, journalTable.JournalId));
ttscommit;
}
}
Bu yazıda ürün reçetesi 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++