Как искать местоположение NetSuite по списку названий местоположений через SOAP - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь найти записи местоположения NetSuite по списку имен местоположений через SOAP.Согласно документации Схема местоположения , столбец поиска 'name' имеет тип 'text', но не список, поэтому я пытаюсь использовать метод 'getList'.

Согласнодокумент сообщения, схема getList выглядит следующим образом:

<complexType name="GetListRequest">
    <sequence>
        <element name="baseRef" type="platformCore:BaseRef" minOccurs="1" maxOccurs="unbounded"/>
    </sequence>
</complexType>

, а документ BaseRef выглядит следующим образом:

<complexType name="BaseRef" abstract="true">
    <sequence>
        <element name="name" type="xsd:string" minOccurs="0"/>
        <!-- record name -->
    </sequence>
</complexType>

Итак, я построил тело SOAP:

<soap:Body>
    <platformMsgs:getList xmlns:platformCore="urn:core_2016_2.platform.webservices.netsuite.com"  xmlns:listRel="urn:relationships_2016_2.lists.webservices.netsuite.com" xmlns:platformMsgs="urn:messages_2016_2.platform.webservices.netsuite.com"    xmlns:listAcct="urn:accounting_2016_2.lists.webservices.netsuite.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <platformMsgs:baseRef xsi:type="platformCore:RecordRef" type="location">
            <platformCore:name>some name</platformCore:name>
        </platformMsgs:baseRef>
    </platformMsgs:getList>
</soap:Body>

И получил сообщение об ошибке:

<soapenv:Body>
    <getListResponse xmlns="urn:messages_2016_2.platform.webservices.netsuite.com">
        <readResponseList>
            <platformCore:status isSuccess="true" xmlns:platformCore="urn:core_2016_2.platform.webservices.netsuite.com"/>
            <readResponse>
                <platformCore:status isSuccess="false" xmlns:platformCore="urn:core_2016_2.platform.webservices.netsuite.com">
                    <platformCore:statusDetail type="ERROR">
                        <platformCore:code>INVALID_KEY_OR_REF</platformCore:code>
                        <platformCore:message>The specified key is invalid.</platformCore:message>
                    </platformCore:statusDetail>
                </platformCore:status>
            </readResponse>
        </readResponseList>
    </getListResponse>
</soapenv:Body>

Я думаю, что я неправильно понял что-то об использовании метода getList, но я не могу найти ответ с помощью поиска Google или StackOverflow, любой информации иПредложение будет с благодарностью, заранее спасибо!И извините за изображения не могут быть показаны как встроенные из-за моей низкой оценки репутации.

1 Ответ

0 голосов
/ 29 августа 2019

Вы не можете фильтровать в команде getList.Вместо этого вам нужно запустить LocationSearchBasic (, вот документация ), которая позволит вам фильтровать по имени.

Вот пример того, как сгенерировать этот поиск, используя NetSuite ruby ​​gem :

search = NetSuite::Records::Location.search(
  basic: [
    {
      field: 'name',
      operator: 'is',
      value: 'some name'
    }
  ]
)

search.results
...