【发布时间】:2017-08-12 12:53:08
【问题描述】:
我在屏幕发票和备忘录的标题中创建了新的附加字段,请参阅下面的屏幕截图。
下面是 DAC:
#region UsrDeliveryDate
public abstract class usrDeliveryDate : IBqlField{}
[PXDBDate()]
[PXUIField(DisplayName="Delivery Date", Visibility = PXUIVisibility.SelectorVisible)]
public DateTime? UsrDeliveryDate
{
get;
set;
}
#endregion
然后我使用下面的代码通过 webservices API 更新了这个交货日期:
try
{
sCon.getLoginInv(context);
AR301000Content kon = context.AR301000GetSchema();
var command2 = new Command[]
{
kon.InvoiceSummary.ReferenceNbr,
kon.InvoiceSummary.Type,
kon.InvoiceSummary.CustomerOrder,
kon.InvoiceSummary.DeliveryDate
//kon.InvoiceSummary.DueDate,
//kon.InvoiceSummary.Customer
};
var filter = new Filter[]
{
new Filter()
{
Field = new Field
{
FieldName = kon.InvoiceSummary.CustomerOrder.FieldName,
ObjectName = kon.InvoiceSummary.CustomerOrder.ObjectName
},
Value = "CNSE/17-III/00023"
}
};
var result = context.AR301000Export(command2, filter, 0, false, true);
foreach (var ax in result)
{
DeliveryDateClass delivDate = new DeliveryDateClass();
delivDate.refNbr = ax[0].ToString().Trim();
delivDate.type = ax[1].ToString().Trim();
delivDate.custOrder = ax[2].ToString().Trim();
delivDate.deliveryDate = ax[3].ToString().Trim();
//delivDate.dueDate = ax[4].ToString().Trim();
//delivDate.customerID = ax[5].ToString().Trim();
kon.InvoiceSummary.Type.LinkedCommand = null;
kon.InvoiceSummary.Type.Commit = false;
var command = new Command[]
{
new Value { Value = delivDate.type, LinkedCommand = kon.InvoiceSummary.Type},
new Value { Value = delivDate.refNbr, LinkedCommand = kon.InvoiceSummary.ReferenceNbr},
new Key
{
ObjectName = kon.InvoiceSummary.DeliveryDate.ObjectName,
FieldName = kon.InvoiceSummary.DeliveryDate.FieldName,
Value = "='" + delivDate.deliveryDate + "'"
},
new Value { Value = "4/20/2017", LinkedCommand = kon.InvoiceSummary.DeliveryDate },
kon.Actions.Save
};
context.AR301000Submit(command);
sCon.getLogout(context, contextUntyped);
}
return "Update Success";
}
catch (Exception x)
{
MessageBox.Show(x.Message);
return "FAILED";
}
finally
{
sCon.getLogout(context, contextUntyped);
}
我会在下面更新此交易的交货日期。
如果我在 Doc Type = "Invoice" 的交易中使用相同的代码,它可以工作,但对于 Doc Type = Credit Memo 的交易,它不起作用。
【问题讨论】:
标签: c# web-services api acumatica erp