【发布时间】:2018-09-01 10:08:35
【问题描述】:
目标是创建一个采购订单,然后通过带有 2 个单独操作/按钮的代码创建相应的采购订单收据。
PO(普通类型)的创建没有任何问题。然后通过代码获得批准,使其在采购收据页面的“添加采购订单”智能面板中可见。
UI 工作流程是选择采购订单,然后按“添加采购订单”。
我希望通过代码复制它。
查看页面的 ASPX 定义,我可以看到智能面板按钮与操作相关联AddPOOrder2
我正在创建这样的购买收据:
if (orderRecord.Approved == true)
{
poReceiptEntryGraph = PXGraph.CreateInstance<POReceiptEntry>();
receiptRow = new POReceipt();
//Summary
receiptRow.ReceiptType = "RT";
receiptRow = poReceiptEntryGraph.Document.Insert(receiptRow);
receiptRow.Hold = false;
receiptRow.ReceiptDate = DateTime.Now;
receiptRow.VendorID = orderRecord.VendorID;
receiptRow.InvoiceNbr = "123";
poReceiptEntryGraph.Document.Update(receiptRow);
poReceiptEntryGraph.Actions.PressSave();
然后我创建一个 PXView:
int startActualRow = PXView.StartRow;
int totalActualRows = 1;
List<Object> createdView = new PXView(poReceiptEntryGraph, false, PXSelect<POOrder, Where<POOrder.orderNbr, Equal<Required<POOrder.orderNbr>>>>
.GetCommand()).Select(PXView.Currents, /*Filter value from the BQL Required*/ new object[] { "PO000683"/*orderRecord.OrderNbr*/ },
PXView.Searches, PXView.SortColumns, PXView.Descendings, PXView.Filters,
ref startActualRow, PXView.MaximumRows, ref totalActualRows);
PXView dummyActualView = new DummyView(poReceiptEntryGraph, poReceiptEntryGraph.Document.View.BqlSelect, createdView);
最后,使用 PXView 按下 AddPOOrder2 动作:
poReceiptEntryGraph.addPOOrder2.Press(new PXAdapter(dummyActualView));
poReceiptEntryGraph.Actions.PressSave();
未收到错误消息,收据的摘要部分已正确创建,但网格中没有任何内容。
我还尝试使用 addPOOrder,这是另一个执行 addPOOrder2 的 Acumatica 操作,但结果相同。
如果我遗漏了什么,有什么想法吗?
谢谢。
【问题讨论】:
标签: acumatica