0

We have a custom record which has a List/Record field that references a customer record. How can I do a search in SuiteTalk to get some fields from the customer record plus all the instances of that custom record which refer to that customer record?

If it helps to make it clearer: We have custom record type C. It has field CF, which is List/Record referring to Customer record. I want to do a search in SuiteTalk which gets Customer where internalid = 1 and all instances of C which have CF referring to Customer with internalid = 1.

cja
  • 9,512
  • 21
  • 75
  • 129

1 Answers1

0

You'll have to perform two different searches; one for the custom records (C) and another for the Customer record. Once you've retrieved the results you can combine them however you'd like.

Customer search:

var customerAdvancedSearch = new CustomerSearchAdvanced
{
    columns = new CustomerSearchRow
    {
        basic = new CustomerSearchRowBasic
        {
            internalId = new SearchColumnSelectField[] { new SearchColumnSelectField() },
            firstName = new SearchColumnStringField[] { new SearchColumnStringField() },
            // etc.
        }
    },
    criteria = new CustomerSearch
    {
        basic = new CustomerSearchBasic
        {
            internalId = new SearchMultiSelectField
            {
                // internalId of the Customer
                searchValue = new RecordRef[] { new RecordRef { internalId = "1234" } }, 
                @operator = SearchMultiSelectFieldOperator.anyOf,
                operatorSpecified = true
            }
        }
    }
};

Custom record search (you can also use a CustomRecordSearchAdvanced here if you only want specific columns):

var customRecordBasicSearch = new CustomRecordSearch
{
    basic = new CustomRecordSearchBasic
    {
        customFieldList = new SearchCustomField[]
        {
            new SearchMultiSelectCustomField {
                // your Customer internalId
                searchValue = new ListOrRecordRef[] { new ListOrRecordRef { internalId = "1234" } },
                scriptId = "your_field_id",
                @operator = SearchMultiSelectFieldOperator.anyOf,
                operatorSpecified = true
            }
        }
    }
};
  • Thanks for this. I know about basic searching, unfortunately I need a join since I'm processing large numbers of customers at a time. I think it's impossible but maybe someone will know a way ... – cja May 16 '20 at 07:14