Дата документа Не определено, топ 2012 x ++ Заказы на покупку - PullRequest
0 голосов
/ 26 ноября 2018

Я пытаюсь создать ПО в 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));
}

}

1 Ответ

0 голосов
/ 26 ноября 2018

Чтобы избежать этой ошибки, вам нужно либо указать дату документа, либо изменить следующий параметр на None или Warning

enter image description here

...