AX 4.0:使用X ++从销售报价创建销售订单

时间:2016-04-27 08:28:41

标签: axapta x++

如何使用X ++从AX 4.0中的销售报价创建销售订单?我搜索过并在几个地方找到了相同的答案,但它似乎特定于较新版本的AX。

这是我在这里找到的: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,但我还没有确认这一点,因为我已经被迫杀死了重新开始工作的过程。

1 个答案:

答案 0 :(得分:0)

我想您可以通过您的方法注释掉editLinesForm.prePromptInit()的来电。 为了不将所有报价发布到销售订单中,我会尝试在系统中重现SalesQuotationEditLinesForm类的main()方法,省略与数据源相关的逻辑。 如果我参考我的系统,我认为您的代码可能会丢失:

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

在致电editLinesForm.run()

之前