如何使用X ++从AX 4.0中的销售报价创建销售订单?我搜索过并在几个地方找到了相同的答案,但它似乎特定于较新版本的AX。
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 :(得分:0)
我想您可以通过您的方法注释掉editLinesForm.prePromptInit()
的来电。
为了不将所有报价发布到销售订单中,我会尝试在系统中重现SalesQuotationEditLinesForm类的main()
方法,省略与数据源相关的逻辑。
如果我参考我的系统,我认为您的代码可能会丢失:
editLinesForm.getLast();
editLinesForm.parmId(parmId);
在致电editLinesForm.run()