在每个新的行到打印作业页面(版本号为19.211.0011)之前重新启动Acumatica DeviceHub的解决方法,可以通过以下代码示例来实现:
using System;
using PX.Data;
using PX.Objects.SO;
using PX.Objects.CS;
public class SOOrderEntry_Extension : PXGraphExtension
{
public delegate void CreateShipmentDelegate(SOOrderEntry graph, SOOrder order, SiteIDAttribute.SiteStatus siteStatus, string operation, DateTime? shipDate, bool? useOptimalShipDate, bool? ignoreAllocationService);
[PXOverride]
public void CreateShipment(SOOrderEntry graph, SOOrder order, SiteIDAttribute.SiteStatus siteStatus, string operation, DateTime? shipDate, bool? useOptimalShipDate, bool? ignoreAllocationService, CreateShipmentDelegate baseMethod)
{
// 在每个新的行到打印作业页面之前重新启动Acumatica DeviceHub
RestartDeviceHub();
baseMethod(graph, order, siteStatus, operation, shipDate, useOptimalShipDate, ignoreAllocationService);
}
private void RestartDeviceHub()
{
// 这里是重新启动Acumatica DeviceHub的代码示例
// 请根据实际情况实现此方法,例如执行适当的命令或调用相关的API来重启DeviceHub
// 示例代码:
DeviceHub.Restart();
}
}
在上述示例中,我们创建了一个Acumatica的图形扩展(SOOrderEntry_Extension),重写了SOOrderEntry图形中的CreateShipment方法,并在每个新的行到打印作业页面之前调用了RestartDeviceHub方法来重新启动Acumatica DeviceHub。请注意,RestartDeviceHub方法是一个自定义方法,你需要根据实际情况实现此方法,例如执行适当的命令或调用相关的API来重启DeviceHub。
请根据你的实际需求和环境进行适当的修改和调整。