Как получить транзакции переоценки валюты с помощью веб-службы SuiteTalk

Одним из типов транзакций в NetSuite является «Валютная переоценка», и есть примеры таких транзакций (например, см. Транзакции с InternalID 3335, 3346 и 3347 в образце данных NetSuite testdrive, Honeycomb Mfg). Я хотел бы знать, как получить эти транзакции с помощью API веб-службы SuiteTalk. Я могу очень легко получить другие типы транзакций, например, используя следующий код Java (упрощенный для ясности):

TransactionSearchBasic srch = new TransactionSearchBasic();
srch.setRecordType(new SearchStringField(RecordType._invoice, SearchStringFieldOperator.is));
SearchResult res = stub.search(srch);
if (res.getStatus().isIsSuccess()) {
    for (Record rec : res.getRecordList().getRecord()) {
        Invoice inv = (Invoice) rec;
        // ... do things with inv ...
    }
}

Теперь проблема в том, что, хотя в SuiteTalk есть много разных типов записей транзакций, таких как приведенный выше (RecordType.invoice и класс Invoice), похоже, нет типа записи для переоценки валюты, определенного в веб-сервисе. Как их искать?


person Klitos Kyriacou    schedule 03.09.2015    source источник
comment
Вы пробовали использовать fxreval?   -  person Rockstar    schedule 03.09.2015
comment
@Rockstar да, я сделал. Не существует такой вещи, как RecordType._fxReval (или любого подобного написания), а параметр recordtype является обязательным. Также не существует класса FxReval. Я попытался взломать его, создав свой собственный экземпляр FxReval RecordType, в результате чего веб-служба вернула код состояния ошибки с сообщением о том, что я использовал недопустимое имя типа записи.   -  person Klitos Kyriacou    schedule 03.09.2015
comment
Не уверен, но var rec = nlapiLoadRecord('fxreval',3335); для меня отлично работает в отладчике. Вы также можете увидеть ответ в формате xml, представляющий запись: <record recordType="fxreval" id="3335" perm="4"   -  person Rockstar    schedule 04.09.2015
comment
Спасибо @Rockstar, но ваше решение использует SuiteScript, а я использую SuiteTalk, веб-службу SOAP. Я использую его в приложении Java, хотя могу получать ответы с помощью SuiteTalk на C # или на любом другом языке. Я взял вашу строку кода SuiteScript и попытался использовать ее в операции SuiteTalk "get" SOAP, но получил следующее сообщение об ошибке: RemoteException: org.xml.sax.SAXException: fxreval не является допустимым значением для {urn: types .core_2015_1.platform.webservices.netsuite.com} RecordType.   -  person Klitos Kyriacou    schedule 04.09.2015


Ответы (1)


Если транзакция, которая вам нужна в этом случае fxreval, отсутствует в разделе браузера схемы, вы не можете получить к ней доступ из веб-службы.

https://system.na1.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2016_2/schema/record/fairvalueprice.html

person Pedro Bustos    schedule 01.12.2016