C#学习教程:NetSuiteSuiteTalk-从“SearchColumnSelectCustomField”中检索值字符串>new{X=((SearchColumnBooleanCustomField)a.basic.customFieldList.First(b=>b.scriptId=="custentityX")).searchValueY=((SearchColumnDateCustomField)a.basic.customFieldList.First(b=>b.scriptId=="custentityY")).searchValueZ=((SearchColumnSelectCustomField)a.basic.customFieldList.First(b=>b.scriptId=="custentityZ")).searchValue.name}对于大多数返回的列类型我得到一个与类型(bool/date/etc...)一致的值,但对于“SearchColumnSelectCustomField”,我在返回的“searchValue.name”中收到错误,它始终为空,但“searchValue.internalID”列总是被填充。所以出于某种原因,它正在获取选择但不返回该选择的值。如何从SuiteTalk("searchValue.name")访问NetSuite界面中可见的文本值?我是否必须执行另一个查询来检索与该internalID相关的所有值键对?每个自定义字段?如果是这样,首先名称字段的目的是什么?我试过用谷歌搜索这个,但是没有关于这个主题的真正文档(或者一般的SuiteTalk),并且在其他语言(PHP/Java)中,人们提到“getSelectValue”(在这里,简要地),我有可能在C#中试试这个,但我不确定这些是否有效,或者是否可以自定义值选择。然后有一些参考来确定搜索前的价值,这对我来说似乎有点过分,真的有那么难吗?我想在最终应用程序中访问数十个CustomFields。似乎应该有一种更简单的方法...据我所知,Web服务响应仅包含SearchColumnSelectCustomField的internalId和typeId。要获取名称,您必须首先向NetSuite查询所有自定义列表及其值。您可以使用CustomListSearch执行此操作并将bodyFieldsOnly搜索首选项设置为false。在没有条件传递给CustomListSearch的情况下,您将返回每个自定义列表及其值。只需将结果存储在内存中,并在从保存的搜索中读取列值时参考它。我尝试了@Adud123发布的答案,它工作正常,代码如下:以上是C#学习教程:NetSuiteSuiteTalk-从“SearchColumnSelectCustomField”中检索值字符串了解更多关于C#学习教程,我希望你会付出更多注意——publicDictionary>getCustomFieldLists(){returnnsService.search(newCustomListSearch()).recordList.Select(a=>(CustomList)a).ToDictionary(a=>a.internalId,a=>a.customValueList.customValue.ToDictionary(b=>b.valueId,c=>c.value));}varvalueLookup=getCustomFieldLists();varresults=searchResults.Select(a=>new{Z=(a.basic.customFieldList.Where(b=>b.scriptId=="custentityZ").Select(a=>(SearchColumnSelectCustomField)a).Select(a=>valueLookup[a.searchValue.typeId][a.searchValue.internalId]).First()}本文采集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除,转载请注明出处:
