0

我目前正在通过连接多个表的 C# 执行 SuiteTalk 搜索,其中一个用于销售订单。在 SalesOrder 记录上执行典型的 GET 时,属性 customFieldList 会填充交易自定义字段/等的数组。我很好奇在进行以下搜索时如何获得相同的结果:

SearchResult searchResult = Client.Service.search(new TransactionSearchAdvanced()
{
    criteria = new TransactionSearch()
    {
        basic = new TransactionSearchBasic()
        {
            type = new SearchEnumMultiSelectField()
            {
                @operator = SearchEnumMultiSelectFieldOperator.anyOf,
                operatorSpecified = true,
                searchValue = new String[] { "_salesOrder" },
            },
            lastModifiedDate = new SearchDateField()
            {
                @operator = SearchDateFieldOperator.after,
                operatorSpecified = true,
                searchValue = fromLastModifiedDateTime.ToUniversalTime(),
                searchValueSpecified = true
            }
        },
    },
    columns = new TransactionSearchRow()
    {
        basic = new TransactionSearchRowBasic()
        {
            internalId = new SearchColumnSelectField[] { new SearchColumnSelectField() },
            tranId = new SearchColumnStringField[] { new SearchColumnStringField() },
            tranDate = new SearchColumnDateField[] { new SearchColumnDateField() },
            dateCreated = new SearchColumnDateField[] { new SearchColumnDateField() },
            item = new SearchColumnSelectField[] { new SearchColumnSelectField() },
            quantity = new SearchColumnDoubleField[] { new SearchColumnDoubleField() },
            lastModifiedDate = new SearchColumnDateField[] { new SearchColumnDateField() },
            email = new SearchColumnStringField[] { new SearchColumnStringField() },
            //customFieldList = new SearchColumnCustomField[] { },
        },
        itemJoin = new ItemSearchRowBasic()
        {
            itemId = new SearchColumnStringField[] { new SearchColumnStringField() },
            type = new SearchColumnEnumSelectField[] { new SearchColumnEnumSelectField() },
        },
        customerJoin = new CustomerSearchRowBasic()
        {
            internalId = new SearchColumnSelectField[] { new SearchColumnSelectField() },
            billAddress = new SearchColumnStringField[] { new SearchColumnStringField() },
            companyName = new SearchColumnStringField[] { new SearchColumnStringField() },
            phone = new SearchColumnStringField[] { new SearchColumnStringField() },
            email = new SearchColumnStringField[] { new SearchColumnStringField() },
        },
        customSearchJoin = new CustomSearchRowBasic[] 
        {

        },
    }
});

我要填充的属性在 TransactionSearchRowBasic 对象中被注释掉: //customFieldList = new SearchColumnCustomField[] { },

有任何想法吗?先感谢您!

4

1 回答 1

0

搜索操作返回的信息不如 SuiteTalk Web 服务上的 GET 操作多。

对于 SearchResult 中返回的每条记录,请使用 internalId 或文档编号来获取该记录。这应该包括您的自定义字段。

NetSuiteService _service = new NetSuiteService();
ReadResponse res = _service.get(new RecordRef { internalId = internalID, type = RecordType.salesOrder, typeSpecified = true });
于 2018-05-07T11:02:55.360 回答