Skip to main content
 首页 » 编程设计

C# NetSuite Web 服务 : Get value from custom field in saved search (ItemSearchAdvanced)

2024年02月06日26虾米姐

我正在使用 C# MVC 通过他们的 WebServices API 连接到 NetSuite。我有一些当前代码可以调用已保存的库存项目搜索。这是当前运行良好的代码:

ItemSearchAdvanced searchItems = new ItemSearchAdvanced(); 
searchItems.savedSearchId = "128"; 
SearchResult result = netSuiteSvc.search(searchItems); 
int totalRecords = 0; 
int processedRecords = 0; 
 
UpdateNetsuitePriceListModel returnObj = new UpdateNetsuitePriceListModel(); 
returnObj.NewPriceList = new List<NetSuitePriceListRecord>(); 
if (result.status.isSuccess) 
{ 
    SearchRow[] searchRows = result.searchRowList; 
    if (searchRows != null && searchRows.Length >= 1) 
    { 
        for (int i = 0; i < searchRows.Length - 1; i++) 
        { 
            ItemSearchRow itemRow = (ItemSearchRow)searchRows[i]; 
            if (itemRow.basic.itemId != null && itemRow.basic.mpn != null && itemRow.basic.basePrice != null && itemRow.basic.salesDescription != null) 
            { 
                returnObj.NewPriceList.Add(new NetSuitePriceListRecord() 
                { 
                    ItemId = itemRow.basic.itemId[0].searchValue, 
                    ManufacturerPartNumber = itemRow.basic.mpn[0].searchValue, 
                    ContractPrice = Convert.ToDecimal(itemRow.basic.basePrice[0].searchValue), 
                    Cost = CalculateProductCostForIngram(Convert.ToDecimal(itemRow.basic.basePrice[0].searchValue)), 
                    Description = itemRow.basic.salesDescription[0].searchValue 
                }); 
                processedRecords++; 
            } 
            totalRecords++; 
        } 
    } 
    else 
    { 
        throw new Exception("NetSuite Part List Blank"); 
    } 
} 
else 
{ 
    throw new Exception("NetSuite Part List Search Failure"); 
} 

现在我需要从自定义添加的字段而不是默认的 itemId 字段中提取 itemId。

显然,因为这是自定义字段,所以它不是 ItemSearchRowBasic 的属性。看起来我可以选择“customFieldList”而不是属性,它是“SearchColumnCustomField”的数组。如果我为数组选择一个索引,我可以看到 SearchColumnCustomField 包含:

  • 自定义标签
  • 内部编号
  • 脚本编号

我想我应该能够获取 SearchColumnCustomField 的 internalId 并以某种方式使用它来获取该自定义列的搜索值,但我在找到适合的示例时遇到了一些问题。

此自定义字段是添加到所有库存项目的自由格式文本字段。

请您参考如下方法:

尝试使用字段 ID(“custitem_xyz”)设置 scriptId。那应该有效。

2013年以前会用internalId,后来改成了scriptId。