C# NetSuite SuiteTalk已加入对自定义对象的搜索
我有两个自定义对象。父对象是一个C# NetSuite SuiteTalk已加入对自定义对象的搜索,c#,netsuite,suitetalk,C#,Netsuite,Suitetalk,我有两个自定义对象。父对象是一个顺序,它有一个与之关联的部分类型列表。我试图获取一个字段中带有值“Inventory Item”的零件列表,但仅针对特定的订单 我有订单的名称和数字内部ID,但问题是这些字段(据我所知)不是可搜索的“字段”,没有“内部ID”来告诉它搜索其中一个字段 在下面的代码中,如果我没有尝试在订单上搜索,它就可以正常工作。我可以使用“库存项目”类型获取所有零件 我想我需要使用联合搜索?我的尝试如下。这会在运行时产生SOAP错误: Additional information:
顺序
,它有一个与之关联的部分
类型列表。我试图获取一个字段中带有值“Inventory Item”的零件列表,但仅针对特定的订单
我有订单
的名称
和数字内部ID
,但问题是这些字段(据我所知)不是可搜索的“字段”,没有“内部ID”来告诉它搜索其中一个字段
在下面的代码中,如果我没有尝试在订单上搜索,它就可以正常工作。我可以使用“库存项目”类型获取所有零件
我想我需要使用联合搜索?我的尝试如下。这会在运行时产生SOAP错误:
Additional information: org.xml.sax.SAXException: 'customizationRef' on
{urn:common_2015_1.platform.webservices.netsuite.com}CustomSearchJoin is
required
代码
private static SearchResult NetSuiteSearchOrderItems(NetSuiteService netSuiteService, string order_name, string order_internalId)
{
CustomRecordSearch searchParts = new CustomRecordSearch();
CustomRecordSearchBasic basicRecordSearchParts = new CustomRecordSearchBasic();
basicRecordSearchParts.recType = new RecordRef { internalId = "64" }; //"Order Item" NetSuite Type ID
//adding a search filter on a String Custom Field
SearchStringCustomField partTypeFieldSearch = new SearchStringCustomField();
partTypeFieldSearch.@operator = SearchStringFieldOperator.@is;
partTypeFieldSearch.internalId = "896"; //ID of the Part object's "Type" field
partTypeFieldSearch.operatorSpecified = true;
partTypeFieldSearch.searchValue = "Inventory Item"; //only want inventory item parts
//Show me only parts on a certain Order
CustomSearchJoin orderSearchJoin = new CustomSearchJoin();
CustomRecordSearchBasic orderBasicSearch = new CustomRecordSearchBasic();
orderBasicSearch.recType = new RecordRef { internalId = "56" }; //"Order" NetSuite Type ID
//-- WHAT GOES HERE INSTEAD OF SearchStringCustomField?
//adding a search filter on a String Custom Field
SearchStringCustomField fsoItemTypeSearch = new SearchStringCustomField();
fsoItemTypeSearch.@operator = SearchStringFieldOperator.@is;
fsoItemTypeSearch.internalId = "name"; //I have the "name" and numeric "internal id" of the order available.
fsoItemTypeSearch.operatorSpecified = true;
fsoItemTypeSearch.searchValue = order_name;//search filter value
orderSearchJoin.searchRecordBasic = orderBasicSearch;
//add in the things we want to search on
basicRecordSearchParts.customFieldList = new SearchCustomField[] { partTypeFieldSearch };
//add the basic search and join search and then perform the search
searchParts.basic = basicRecordSearchParts;
searchParts.customSearchJoin = new CustomSearchJoin[] { orderSearchJoin };
SearchResult response = netSuiteService.search(searchParts);
return response;
}