C # NetSuite WebServices: Wert aus benutzerdefiniertem Feld in gespeicherter Suche abrufen (ItemSearchAdvanced)

Ich verwende C # MVC, um über die WebServices-API eine Verbindung zu NetSuite herzustellen. Ich habe einen aktuellen Code, der eine gespeicherte Suche nach Inventargegenständen aufruft. Hier ist der aktuelle Code, der perfekt funktioniert:

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");
}

Nun muss ich die itemId aus einem benutzerdefinierten hinzugefügten Feld und nicht aus dem standardmäßigen itemId-Feld ziehen.

Da dies ein benutzerdefiniertes Feld ist, ist es offensichtlich keine Eigenschaft von ItemSearchRowBasic. Anstelle der Eigenschaft kann ich "customFieldList" auswählen, ein Array von "SearchColumnCustomField". Wenn ich einen Index für das Array wähle, kann ich sehen, dass SearchColumnCustomField enthält:

customLabel internalId scriptId

Ich stelle mir vor, ich sollte in der Lage sein, die internalId des SearchColumnCustomField zu erhalten und irgendwie den Suchwert für diese benutzerdefinierte Spalte zu verwenden, aber ich hatte einige Probleme, Beispiele zu finden, die bisher passen.

Dieses benutzerdefinierte Feld ist ein Freiform-Textfeld, das allen Inventarelementen hinzugefügt wird.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage