Acumatica 为什么我需要2个API调用才能将未确认的包添加到装运中
当我尝试将一个包添加到装运时,即使我将确认值设置为false,Acumatica似乎也会用true值覆盖它 这是我在第一次调用中使用的代码示例,因为第二次调用只是再次将确认值设置为falseAcumatica 为什么我需要2个API调用才能将未确认的包添加到装运中,acumatica,Acumatica,当我尝试将一个包添加到装运时,即使我将确认值设置为false,Acumatica似乎也会用true值覆盖它 这是我在第一次调用中使用的代码示例,因为第二次调用只是再次将确认值设置为false static void Main(string[] args) { DefaultSoapClient client = new DefaultSoapClient(); client.Login("admin", "admin", "Company", null, null);
static void Main(string[] args)
{
DefaultSoapClient client = new DefaultSoapClient();
client.Login("admin", "admin", "Company", null, null);
Shipment ship = new Shipment
{
ShipmentNbr = new StringSearch { Value = "001301", Condition = StringCondition.Equal },
Packages = new ShipmentPackage[]
{
new ShipmentPackage
{
BoxID = new StringValue {Value = "Large" },
Confirmed = new BooleanValue {Value=false },
Weight = new DecimalValue {Value = 1.5m }
}
}
};
client.Put(ship);
client.Logout();
}
这里的问题是SoShipping Graph(SOPackageDetail_Weight_FieldUpdated)中存在一个事件,该事件将在称重字段更新时将确认复选框的值更改为true 一个简单的修复方法是添加一个小的定制,当使用基于契约的API时,它将禁用该事件的内容
public class SOShipmentEntry_Extension : PXGraphExtension<SOShipmentEntry>
{
#region Event Handlers
protected void SOPackageDetail_Weight_FieldUpdated(PXCache sender, PXFieldUpdatedEventArgs e, PXFieldUpdated InvokeBaseHandler)
{
if (InvokeBaseHandler != null)
if (!Base.IsContractBasedAPI)
InvokeBaseHandler(sender, e);
}
#endregion
}
公共类SOShipmentEntry_扩展:pXgrapherExtension
{
#区域事件处理程序
受保护的无效SOPackageDetail\u Weight\u FieldUpdated(PXCache发送器、PXFieldUpdatedEventArgs e、PXFieldUpdated InvokeBaseHandler)
{
if(InvokeBaseHandler!=null)
如果(!Base.IsContractBasedAPI)
InvokeBaseHandler(发送方,e);
}
#端区
}
但是,如果您不希望此事件在任何其他时间发生,您可以始终添加该事件,但将其保留为空。这里的问题是SoShipping Graph(SOPackageDetail\u Weight\u FieldUpdate)中存在一个事件,该事件将在称重字段更新时将确认复选框的值更改为true 一个简单的修复方法是添加一个小的定制,当使用基于契约的API时,它将禁用该事件的内容
public class SOShipmentEntry_Extension : PXGraphExtension<SOShipmentEntry>
{
#region Event Handlers
protected void SOPackageDetail_Weight_FieldUpdated(PXCache sender, PXFieldUpdatedEventArgs e, PXFieldUpdated InvokeBaseHandler)
{
if (InvokeBaseHandler != null)
if (!Base.IsContractBasedAPI)
InvokeBaseHandler(sender, e);
}
#endregion
}
公共类SOShipmentEntry_扩展:pXgrapherExtension
{
#区域事件处理程序
受保护的无效SOPackageDetail\u Weight\u FieldUpdated(PXCache发送器、PXFieldUpdatedEventArgs e、PXFieldUpdated InvokeBaseHandler)
{
if(InvokeBaseHandler!=null)
如果(!Base.IsContractBasedAPI)
InvokeBaseHandler(发送方,e);
}
#端区
}
但是,如果您不希望此事件在任何其他时间发生,您可以始终添加该事件,但将其保留为空