错误 #153 另一个进程添加了 'Note' 记录。您的更改将丢失(SalesOrderEntry)
Error #153 Another process has added 'Note' record. Your changes will be lost(SalesOrderEntry)
在“销售订单”页面中,我创建了一个自定义按钮,用于保存和刷新页面。目前它保存良好并将新订单处理为订单号但是当我尝试添加 item/edit 或在下拉菜单中执行操作时我收到错误消息。
这是我的代码:
public PXAction<SOOrder> SRefresh;
[PXUIField(DisplayName = "S RefreshT")]
[PXButton(CommitChanges = true)]
protected virtual IEnumerable sRefresh(PXAdapter adapter)
{
SOOrderEntry graph = PXGraph.CreateInstance<SOOrderEntry>();
Base.Actions.PressSave();
SOLine sLine = PXSelect<SOLine, Where<SOLine.orderNbr, Equal<Required<SOLine.orderNbr>>>>.Select(graph, this.Base.Document.Current.OrderNbr);
if (sLine != null && sLine.InventoryID.HasValue)
{
graph.Document.Current = graph.Document.Search<SOLine.orderNbr>(sLine.OrderNbr);
throw new PXRedirectRequiredException(graph, null);
}
return adapter.Get();
}
我也试过按照手册中的说明使用 graph.Persist() 而不是 Action.PressSave();没有成功。
非常感谢你们的任何意见,谢谢
由于您正在处理当前的销售订单,因此您不需要创建销售订单输入图的新实例并重定向您的用户。您可以使用 Base
对象和 运行 所有逻辑。
Base.Document.Current
包含对当前 SOOrder
的引用,Base.Transactions
包含此文档 SOLine
的列表。我还在您的代码中发现的另一个问题是您正在调用 Document.Search<SOline.orderNbr>
;它应该是 SOOrder.orerNbr
,因为您正在文档视图中搜索,其中包含销售订单,而不是行。在这种情况下,甚至不需要搜索,Base.Document.Current
已经设置为您正在查看的顺序。
我强烈建议完成标准的 Acumatica 开发人员培训 - T100、T200、T300;这些东西都包含在内,可以让您快速提高工作效率
在“销售订单”页面中,我创建了一个自定义按钮,用于保存和刷新页面。目前它保存良好并将新订单处理为订单号但是当我尝试添加 item/edit 或在下拉菜单中执行操作时我收到错误消息。
这是我的代码:
public PXAction<SOOrder> SRefresh;
[PXUIField(DisplayName = "S RefreshT")]
[PXButton(CommitChanges = true)]
protected virtual IEnumerable sRefresh(PXAdapter adapter)
{
SOOrderEntry graph = PXGraph.CreateInstance<SOOrderEntry>();
Base.Actions.PressSave();
SOLine sLine = PXSelect<SOLine, Where<SOLine.orderNbr, Equal<Required<SOLine.orderNbr>>>>.Select(graph, this.Base.Document.Current.OrderNbr);
if (sLine != null && sLine.InventoryID.HasValue)
{
graph.Document.Current = graph.Document.Search<SOLine.orderNbr>(sLine.OrderNbr);
throw new PXRedirectRequiredException(graph, null);
}
return adapter.Get();
}
我也试过按照手册中的说明使用 graph.Persist() 而不是 Action.PressSave();没有成功。
非常感谢你们的任何意见,谢谢
由于您正在处理当前的销售订单,因此您不需要创建销售订单输入图的新实例并重定向您的用户。您可以使用 Base
对象和 运行 所有逻辑。
Base.Document.Current
包含对当前 SOOrder
的引用,Base.Transactions
包含此文档 SOLine
的列表。我还在您的代码中发现的另一个问题是您正在调用 Document.Search<SOline.orderNbr>
;它应该是 SOOrder.orerNbr
,因为您正在文档视图中搜索,其中包含销售订单,而不是行。在这种情况下,甚至不需要搜索,Base.Document.Current
已经设置为您正在查看的顺序。
我强烈建议完成标准的 Acumatica 开发人员培训 - T100、T200、T300;这些东西都包含在内,可以让您快速提高工作效率