SearchColumnSelectCustomField

SearchColumnSelectCustomField

我有一个小型应用程序,它迭代“保存的搜索”的结果,以从几个“自定义列”(简化的示例)中检索值:

var results = searchResults.Select(a => new
{
    X = ((SearchColumnBooleanCustomField)a.basic.customFieldList
        .First(b => b.scriptId == "custentityX")).searchValue
    Y = ((SearchColumnDateCustomField)a.basic.customFieldList
        .First(b => b.scriptId == "custentityY")).searchValue
    Z = ((SearchColumnSelectCustomField)a.basic.customFieldList
        .First(b => b.scriptId == "custentityZ")).searchValue.name
}


对于大多数返回的列类型,我得到的值与type(bool / date / etc ...)一致,但是对于“ SearchColumnSelectCustomField”,我在返回的“ searchValue.name”中没有任何值,但是它始终为null始终填充“ searchValue.internalID”列。因此由于某种原因,它会得到选择,但不会从该选择中返回值。

如何从SuiteTalk(“ searchValue.name”)从NetSuite界面中看到文本值?我是否必须执行另一个查询来检索与该internalID相关的所有值键对?对于每个自定义字段?如果是这样,那么名称字段的目的是什么?

我已经尝试过搜索这个问题,但是实际上并没有关于该主题的文档分配(或通常在SuiteTalk上),在其他语言(PHP / Java)中,人们提到“ getSelectValue”(here,并简要地here ),我可以在C#中尝试此操作,但是我不确定这些方法是否适用,或者是否可以针对自定义值选择进行此操作。
然后在搜索之前有一些确定值的参考,this在我看来似乎过头了,真的那么难吗?我想在最终应用程序中访问数十个CustomField。似乎应该有一个更简单的方法...

最佳答案

据我所知,Web服务响应将仅包含SearchColumnSelectCustomField的internalId和typeId。为了获得名称,您必须首先查询NetSuite以查找所有自定义列表及其值。

您可以使用CustomListSearch进行此操作,并将bodyFieldsOnly搜索首选项设置为false。不传递任何条件到CustomListSearch,您将返回每个自定义列表及其值。只需将结果存储在内存中,然后从已保存的搜索中读取列值即可参考。

关于c# - NetSuite SuiteTalk-从“SearchColumnSelectCustomField”中检索值字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40496157/

10-13 06:30