2016-04-27 154 views
1

如何使用X ++從AX 4.0中的銷售報價創建銷售訂單?我搜索了幾個地方並找到了相同的答案,但它似乎是特定於更新版本的AX。AX 4.0:使用X ++從銷售報價創建銷售訂單

這是我在這裏找到:https://community.dynamics.com/ax/b/mafsarkhan/archive/2014/04/14/create-sales-order-from-sales-quotation

static void createSalesOrderFromQuote(Args _args) 
{ 
    SalesQuotationTable    salesQuotationTable = SalesQuotationTable::find(""); 
    SalesQuotationEditLinesForm  editLinesForm; 
    ParmId       parmId; 

    editLinesForm = SalesQuotationEditLinesForm::construct(DocumentStatus::Confirmation); 

    parmId = editLinesForm.parmId(); 

    editLinesForm.initParmSalesQuotationTable(salesQuotationTable);  
    editLinesForm.parmTransDate(systemDateGet()); 
    editLinesForm.prePromptInit(); 
    editLinesForm.initParameters(NoYes::No, NoYes::No, NoYes::No, NoYes::No, NoYes::No, '', NoYes::No); 

    editLinesForm.run(); 
} 

editLinesForm.prePromptInit();不會編譯,我想這是由於僅是在較新的版本。我可以發表評論,代碼將被編譯和運行。但是,即使我已經添加了SalesQuotationTable的ID,如下所示:... ::find("123456")看起來代碼將所有我的報價轉換爲salesorders,但是我還沒有確認這一點,因爲我已經被迫殺掉進程以重新開始工作。

回答

0

我想你可能會從你的方法註釋掉editLinesForm.prePromptInit()的電話。 爲了不將所有報價發佈到銷售訂單中,我會嘗試重現系統中SalesQuotationEditLinesForm類的main()方法,省略與數據源相關的邏輯。 如果我指的是我的系統,我認爲你的代碼可能會丟失:

editLinesForm.getLast(); 
editLinesForm.parmId(parmId); 

調用editLinesForm.run()

相關問題