Acumatica通过基于合同的SOAP API更新自定义字段
我正在尝试使用基于契约的SOAP API更新自定义字段。更新值并通过Put()保存后,数据库中的字段为空。当我逐步完成代码时,自定义字段值是正确的,因此我知道我正在获取该值,但在我更改它并执行Put()之后,它在数据库中为空。BBSOLines是我创建的销售订单端点。我做得不对的是什么?代码如下 Acumatica版本2019 R1版本19.104.0024Acumatica通过基于合同的SOAP API更新自定义字段,acumatica,Acumatica,我正在尝试使用基于契约的SOAP API更新自定义字段。更新值并通过Put()保存后,数据库中的字段为空。当我逐步完成代码时,自定义字段值是正确的,因此我知道我正在获取该值,但在我更改它并执行Put()之后,它在数据库中为空。BBSOLines是我创建的销售订单端点。我做得不对的是什么?代码如下 Acumatica版本2019 R1版本19.104.0024 BBSOLines bBSOLinesSearch = new BBSOLines { OrderNbr = new String
BBSOLines bBSOLinesSearch = new BBSOLines
{
OrderNbr = new StringSearch
{
Condition = StringCondition.Contains,
Value = orderNumber
},
POOrderNbr = new StringValue(),
CustomFields = new[]
{
new CustomStringField
{
fieldName = "UsrKNPOOrderNbr",
viewName = "Document",
Value = new StringValue(),
}
},
ReturnBehavior = ReturnBehavior.All,
Detail = new Details[]
{
new Details
{
CustomFields = new[]
{
new CustomStringField
{
fieldName = "UsrKNPOOrderNbr",
viewName = "Transactions",
Value = new StringValue(),
}
},
InventoryID = new StringValue(),
ReturnBehavior = ReturnBehavior.All
}
}
};
BBSOLines bBSOLines = (BBSOLines)soapClient.Get(bBSOLinesSearch);
foreach (Details detail in bBSOLines.Detail)
{
newOrderPOList = "";
foreach (CustomStringField customStringField in detail.CustomFields)
{
if (customStringField.fieldName == "UsrKNPOOrderNbr")
{
string[] pOOnOrder = customStringField.Value.Value.Split(',');
for (int i = 0; i < pOOnOrder.Length; i++)
{
if (pOOnOrder[i] == pONumber)
pOOnOrder[i] = newPONumber;
if (!newOrderPOList.Equals(string.Empty))
newOrderPOList += ",";
newOrderPOList += pOOnOrder[i];
}
customStringField.Value.Value = newOrderPOList;
}
}
}
soapClient.Put(bBSOLines);
BBSOLines bbsolinesearch=新的BBSOLines
{
OrderNbr=新字符串搜索
{
条件=StringCondition.Contains,
值=订单号
},
POOrderNbr=新的StringValue(),
CustomFields=new[]
{
新CustomStringField
{
fieldName=“usrknpoordenbr”,
viewName=“文档”,
值=新的StringValue(),
}
},
ReturnBehavior=ReturnBehavior.All,
详细信息=新的详细信息[]
{
新细节
{
CustomFields=new[]
{
新CustomStringField
{
fieldName=“usrknpoordenbr”,
viewName=“事务”,
值=新的StringValue(),
}
},
InventoryID=新的StringValue(),
ReturnBehavior=ReturnBehavior.All
}
}
};
bbsolinesbsolines=(BBSOLines)soapClient.Get(bBSOLinesSearch);
foreach(详情见bBSOLines.detail)
{
newOrderPOList=“”;
foreach(CustomStringField CustomStringField详细信息。CustomFields)
{
如果(customStringField.fieldName==“USRKNPORDENBR”)
{
string[]pOOnOrder=customStringField.Value.Value.Split(',');
for(int i=0;i