Я пытаюсь создать ПО в Ax 2012. Теперь оно будет создавать ПО, но я также пытаюсь опубликовать его, но получаю сообщение об ошибке: дата документа не была указана, и ПО было отменено.Я устанавливаю дату документа, как вы можете видеть в параметрах покупки, но она не нравится .. и выдает ошибку.Я заменил некоторые идентификаторы в этом примере на ненужные данные FYI.
NumberSeq numberSeq;
Purchtable Purchtable;
PurchLine PurchLine;
PurchParmTable purchParmTable;
PurchFormLetter purchFormLetter;
InventDimId _inventDimId;
DocumentDate docDate;
PurchParmUpdate purchParmUpdate;
PurchFormletterParmData purchFormLetterParmData;
Date myDate;
str test;
changeCompany("SOMECOMPANY") //Inserts into specified company
{
//numRefPurchaseOrderId()
ttsbegin;
numberSeq = NumberSeq::newGetNum(purchParameters::numRefPurchId());
_inventDimId="INVENTDIMID";
// Initialize Purchase order values
Purchtable.initValue();
Purchtable.PurchId = numberSeq.num();
Purchtable.OrderAccount = 'SOMEACCOUNT';
Purchtable.initFromVendTable();
if (!Purchtable.validateWrite())
{
throw Exception::Error;
}
Purchtable.insert();
// Initialize Purchase Line items
PurchLine.PurchId = Purchtable.PurchId;
PurchLine.ItemId = 'SOMEITEMID';
PurchLine.InventDimId=_inventDimId;
PurchLine.createLine(true, true, true, true, true, false);
ttscommit;
//PO confirmation
ttsBegin;
test="11/26/2018";
myDate=str2Date(test,213); //month/day/year
// myDate=mkDate(11, 25, 2018);
// Create PurchParamUpdate table
purchFormLetterParmData = PurchFormletterParmData::newData(
DocumentStatus::PurchaseOrder,
VersioningUpdateType::Initial);
purchFormLetterParmData.parmOnlyCreateParmUpdate(true);
purchFormLetterParmData.createData(false);
purchParmUpdate = purchFormLetterParmData.parmParmUpdate();
// Set PurchParmTable table
purchParmTable.clear();
purchParmTable.TransDate = SystemDateGet();
purchParmTable.DocumentDate = myDate;
purchParmTable.Ordering = DocumentStatus::PurchaseOrder;
purchParmTable.ParmJobStatus = ParmJobStatus::Waiting;
purchParmTable.PurchId = purchTable.PurchId;
purchParmTable.PurchName = purchTable.PurchName;
purchParmTable.DeliveryName = purchTable.DeliveryName;
purchParmTable.DeliveryPostalAddress = purchTable.DeliveryPostalAddress;
purchParmTable.OrderAccount = purchTable.OrderAccount;
purchParmTable.CurrencyCode = purchTable.CurrencyCode;
purchParmTable.InvoiceAccount = purchTable.InvoiceAccount;
purchParmTable.ParmId = purchParmUpdate.ParmId;
purchParmTable.insert();
purchFormLetter = PurchFormLetter::construct(DocumentStatus::PurchaseOrder);
purchFormLetter.transDate(systemDateGet());
purchFormLetter.proforma(false);
purchFormLetter.specQty(PurchUpdate::All);
purchFormLetter.purchTable(purchTable);
// purchFormLetter = purchFormLetter::construct(DocumentStatus::PurchaseOrder);
//purchFormLetter.update(purchtable, // Purchase record Buffer
//strFmt("Inv_%1", purchTable.PurchId), // Invoice Number
//systemdateget()); // Transaction date
purchFormLetter.parmParmTableNum(purchParmTable.ParmId);
purchFormLetter.parmId(purchParmTable.ParmId);
purchFormLetter.purchParmUpdate(purchFormLetterParmData.parmParmUpdate());
purchFormLetter.run();
ttsCommit;
purchFormLetter = purchFormLetter::construct(DocumentStatus::Invoice);
purchFormLetter.update(purchtable, // Purchase record Buffer
strFmt("Inv_%1", purchTable.PurchId), // Invoice Number
systemdateget()); // Transaction date
if (PurchTable::find(purchTable.PurchId).DocumentStatus == DocumentStatus::Invoice)
{
info(strfmt("Posted invoiced journal for purchase order %1",purchTable.PurchId));
}
}