Дифференцировать выпадающий множественный выбор (без заданных опций) с обычными текстовыми столбцами - PullRequest
0 голосов
/ 03 октября 2019

Есть ли способ отличить столбцы с выпадающим множественным выбором типа от обычных текстовых столбцов:

Предполагается, что это выпадающий список с множественным выбором без какой-либо опции:

    "id": 5414087443146628,
    "version": 2,
    "index": 2,
    "title": "Column3",
    "type": "TEXT_NUMBER",
    "validation": false,
    "width": 150

Тот же вопрос относится к списку с несколькими контактами без опций контактов.

Ответы [ 3 ]

0 голосов
/ 03 октября 2019

Если вы рассматриваете мультиконтакт или мульти-выпадающий список как новые версии различных запросов GET, то проще вернуть правильные значения. Для мульти раскрывающегося списка вы используете комбинацию параметров запроса "level = 3" и "include = objectValue", тогда вы увидите изменение типа столбца на MULTI_PICKLIST вместо TEXT. (Значение TEXT - для обеспечения обратной совместимости.)

Так что, по сути, ваш запрос будет выглядеть примерно так:

0 голосов
/ 03 октября 2019

Провел несколько тестов и уровень 3 недоступен: https://api.smartsheet.com/2.0/sheets/{sheetId}?level=3:

{
  "errorCode": 1018,
  "message": "The value '3' was not valid for the parameter 'level'.",
  "refId": "1godowa5cigf1"
}

Хотя я пробовал с уровнем 2 и получил информацию: https://api.smartsheet.com/2.0/sheets/{sheetId}?level=2&include=objectValue

Результаты для мульти выпадающего списка:

{
        "id": 5414087443146628,
        "version": 2,
        "index": 2,
        "title": "Column3",
        "type": "MULTI_PICKLIST",
        "options": [
            "a",
            "b"
        ],
        "validation": false,
        "width": 150
    }
0 голосов
/ 03 октября 2019

Чтобы проверить сценарий, который вы описали, я создал следующую структуру листа в Smartsheet, где имена столбцов указывают тип каждого столбца:

enter image description here

Затем я использовал Postman для выдачи Get Sheet запроса на этот лист:

GET https://api.smartsheet.com/2.0/sheets/5831916227192708

Часть columns ответа API выглядит следующим образом:

{
    "id": 5831916227192708,
    ...
    "columns": [
        {
            "id": 1256050323154820,
            "version": 0,
            "index": 0,
            "title": "Description",
            "type": "TEXT_NUMBER",
            "primary": true,
            "validation": false,
            "width": 124
        },
        {
            "id": 5759649950525316,
            "version": 0,
            "index": 1,
            "title": "Type=Text/Number",
            "type": "TEXT_NUMBER",
            "validation": false,
            "width": 128
        },
        {
            "id": 1323283741206404,
            "version": 0,
            "index": 2,
            "title": "Type=Dropdown (single select)",
            "type": "PICKLIST",
            "validation": false,
            "width": 111
        },
        {
            "id": 7741495861110660,
            "version": 2,
            "index": 3,
            "title": "Type=Dropdown (multiple select)",
            "type": "TEXT_NUMBER",
            "validation": false,
            "width": 113
        },
        {
            "id": 3048711514285956,
            "version": 0,
            "index": 4,
            "title": "Type=Contact List (single select)",
            "type": "CONTACT_LIST",
            "validation": false,
            "width": 122
        },
        {
            "id": 3992195570132868,
            "version": 1,
            "index": 5,
            "title": "Type=Contact List (multiple select)",
            "type": "TEXT_NUMBER",
            "validation": false,
            "width": 125
        }
    ],
    ...
}

В этом ответе мы видим следующее:

  • Если тип столбца указан как Текст / Число , значение атрибута typeравно TEXT_NUMBER
  • Если тип столбца указан как Раскрывающийся список (одиночный выбор) , значение атрибута type равно PICKLIST
  • Если тип столбца указан как Раскрывающийся список (множественный выбор) , значение атрибута type равно TEXT_NUMBER
  • Если тип столбца указан как Список контактов (одиночный выбор) , type значение атрибута CONTACT_LIST
  • Если тип столбца указан как Список контактов (множественный выбор) , атрибут typeзначение TEXT_NUMBER

Следовательно, программно не представляется возможным дифференцировать выпадающий список (множественный выбор) от Текст / Число столбец или Список контактов (множественный выбор) столбец из Текст / Число столбец, основанный только на метаданных столбца. IMO, похоже на ошибку для раскрывающегося списка (множественный выбор) тип столбца и список контактов (множественный выбор) тип столбца для возврата type: TEXT_NUMBER. Возможно, кто-то с Smartsheet может прокомментировать здесь, чтобы лучше понять это поведение.

...