/Methods/GetTableData

<< Click to Display Table of Contents >>

Navigation:  API MasterSCADA 4D > Подключение к исполнительной системе по JSON > HTTP API MasterPLC > Справочники >

/Methods/GetTableData

Читает данные основного справочника и всех связанных с ним справочников, на которые ссылаются запрошенные поля. Связи (ref-поля) возвращаются отдельно, чтобы клиент мог сопоставить внешние значения.

HTTP: POST /Methods/GetTableData

Запрос

{
  "table": 12345,
  "filter": "{IDModel.Name}='Меркурий 230'",
  "fields": [
    "Serial",
    "IDModel.NomReestr",
    "IDModel.Name",
    "IDModel.IDProduser.Name"
  ]
}

Поля запроса

Поле

Тип

Обязательное

По умолчанию

Описание

table

integer

да

Идентификатор справочника в VMInfo

fields

array<string>

да

Список полей; непустой. Путь через точку задаёт поле связанного справочника

recId

integer

нет

Идентификатор конкретной записи основного справочника

filter

string

нет

Условие фильтрации; ссылки на поля — в фигурных скобках {Поле}

Ответ

{
  "main": "Meters",
  "refs": {
    "IDModel.NomReestr": { "table": "Models", "field": "NomReestr" },
    "IDModel.Name": { "table": "Models", "field": "Name" },
    "IDModel.IDProduser.Name": { "table": "Produce", "field": "Name" }
  },
  "tables": {
    "Meters": {
      "pk": { "name": "IDMeters", "type": "DINT" },
      "fields": [
        { "name": "Serial", "type": "STRING" },
        { "name": "IDModel.NomReestr", "type": "DINT", "ref": true },
        { "name": "IDModel.Name", "type": "DINT", "ref": true },
        { "name": "IDModel.IDProduser.Name", "type": "DINT", "ref": true }
      ],
      "data": {
        "1": ["gsdf45", 2, 2, 1],
        "2": ["65748", 1, 1, 1]
      }
    },
    "Models": {
      "displayField": "Name",
      "pk": { "name": "IDModel", "type": "DINT" },
      "fields": [
        { "name": "Name", "type": "STRING" },
        { "name": "NomReestr", "type": "DINT" }
      ],
      "data": {
        "1": ["Меркурий 230 АМ", 467584],
        "2": ["Меркурий 234 ART2 PQR", 4566587]
      }
    },
    "Produce": {
      "pk": { "name": "IdProduce", "type": "DINT" },
      "fields": [
        { "name": "Name", "type": "STRING" }
      ],
      "data": {
        "1": ["Меркурий 230 АМ"],
        "2": ["Тепловодохран"]
      }
    }
  },
  "code": 0
}

Поля ответа

Поле

Тип

Условие

Описание

main

string

успех

Имя основного справочника

refs

object

успех

Связи ref-полей основного справочника со справочниками из tables

refs.<поле>.table

string

в записи

Имя связанного справочника в tables

refs.<поле>.field

string

в записи

Имя поля связанного справочника, используемого как значение

tables

object

успех

Данные всех справочников запроса; ключ — имя справочника

tables.<имя>.displayField

string

у справочника задано отображаемое поле

Имя отображаемого поля

tables.<имя>.pk

object

всегда

Первичный ключ: { name, type }

tables.<имя>.fields

array

всегда

Описания полей

tables.<имя>.fields[].name

string

в записи

Имя (путь) поля

tables.<имя>.fields[].type

string

в записи

SCADA-тип поля

tables.<имя>.fields[].ref

bool

поле — внешняя связь

true для ref-поля

tables.<имя>.data

object

всегда

Ключ — значение первичного ключа (строка); значение — массив значений в порядке fields

code

integer

всегда

Результат метода

Поведение и ограничения

pk — объект { name, type } (в старой справке был строкой).

Значения data всегда представлены массивом, даже если поле одно (в старой справке отдельные справочники показывались скалярами).

displayField выводится только для справочников, у которых оно задано.

Отсутствие table/fields, пустой fields, а также справочник без первичного ключа возвращают OpcUa_BadRequestHeaderInvalid.