При выполнении запроса исторических данных от веб-служб Datastream™ из Refinitiv™ иногда запрос возвращает ошибку вместо данных. Этот рабочий процесс используется для доступа к сообщениям об ошибках веб-служб Datastream.
history функция возвращает ошибки в matlab.net.http.ResponseMessage объект. Например, предположим, что введено недопустимое имя безопасности для sec входной аргумент. Результирующие выходные данные имеют следующую форму:
d =
ResponseMessage with properties:
StatusLine: 'HTTP/1.1 200 OK'
StatusCode: OK
Header: [1×6 matlab.net.http.HeaderField]
Body: [1×1 matlab.net.http.MessageBody]
Completed: 0
Доступ к Body с использованием точечной нотации.
d.Body
ans =
MessageBody with properties:
Data: [1×1 struct]
Payload: []
ContentType: [1×1 matlab.net.http.MediaType]
ContentCoding: [0×0 string]Чтобы получить доступ к тексту сообщения об ошибке, откройте вложенную структуру. DataResponse хранится в Data собственность.
d.Body.Data.DataResponse
ans =
struct with fields:
AdditionalResponses: []
DataTypeNames: []
DataTypeValues: [3×1 struct]
Dates: []
SymbolNames: []
Tag: ''Затем перейдите к SymbolValues в поле DataTypeValues структурный массив.
d.Body.Data.DataResponse.DataTypeValues(1).SymbolValues
ans =
struct with fields:
Currency: []
Symbol: 'YYY'
Type: 0
Value: '$$ER: E100,INVALID CODE OR EXPRESSION ENTERED'Исправьте код на основе сообщения об ошибке в Value поле.