Integromat — динамически отображать спецификацию коллекции из rpc

#json #automation #integromat #integromat-apps

#json #автоматизация #integromat #integromat-приложения

Вопрос:

Я пытаюсь динамически отображать spec (спецификацию) a collection из RPC. Не удается заставить ее работать. Здесь я прикрепил код как «модуль-> отображаемые параметры», так и «удаленная процедура-> связь».

модуль -> отображаемые параметры

 [
    {
        "name": "birdId",
        "type": "select",
        "label": "Bird Name",
        "required": true,
        "options": {
            "store": "rpc://selectbird",
            "nested": [
                {
                    "name": "variables",
                    "type": "collection",
                    "label": "Bird Variables",
                    "spec": [
                        "rpc://birdVariables"
                    ]
                }
            ]
        }
    }
]
 

удаленная процедура -> связь

 {
    "url": "/bird/get-variables",
    "method": "POST",
    "body": {
        "birdId": "{{parameters.birdId}}"
    },
    "headers": {
        "Authorization": "Apikey {{connection.apikey}}"
    },
    "response": {
        "iterate":{
            "container": "{{body.data}}"
        },
        "output": {
            "name": "{{item.name}}",
            "label": "{{item.label}}",
            "type": "{{item.type}}"
        }
    }
}
 

Заранее спасибо.

Ответ №1:

Просто попробовал следующее, и это сработало. Согласно документам Integromat, вы можете использовать wrapper директиву для rpc подобных целей:

 {
    "url": "/bird/get-variables",
    "method": "POST",
    "body": {
        "birdId": "{{parameters.birdId}}"
    },
    "headers": {
        "Authorization": "Apikey {{connection.apikey}}"
    },
    "response": {
        "iterate":"{{body.data}}",
        "output": {
            "name": "{{item.name}}",
            "label": "{{item.label}}",
            "type": "{{item.type}}"
        },
        "wrapper": [{
          "name": "variables",
          "type": "collection",
          "label": "Bird Variables",
          "spec": "{{output}}"
        }]
    }
}
 

mappable parameters Тогда ваш будет выглядеть так:

 [
    {
        "name": "birdId",
        "type": "select",
        "label": "Bird Name",
        "required": true,
        "options": {
            "store": "rpc://selectbird",
            "nested": "rpc://birdVariables"
        }
    }
]
 

Ответ №2:

Нуждаюсь в этом сам. Извлечение пользовательских полей, которые имеют разные типы, но хотели бы, чтобы все они отображались, чтобы пользователь мог обновлять пользовательские поля или при создании контакта иметь возможность их обновлять. Не уверен, что лучше всего показать их все или выбрать выпадающий список, а затем позволить пользователю использовать карту более чем для одного.

Вот мой ответ из Get для пользовательских полей. Не могли бы вы показать, как должен выглядеть мой код. Немного запутался, так как обычно ищу добавить значение в вывод и нужны ли вам два отдельных RPC в integromat? Заметил, что ваше хранилище и вложенные были разными.

 
    {
    "customFields": [
        {
            "id": "5sCdYXDx5QBau2m2BxXC",
            "name": "Your Experience",
            "fieldKey": "contact.your_experience",
            "dataType": "LARGE_TEXT",
            "position": 0
        },
        {
            "id": "RdrFtK2hIzJLmuwgBtAr",
            "name": "Assisted by",
            "fieldKey": "contact.assisted_by",
            "dataType": "MULTIPLE_OPTIONS",
            "position": 0,
            "picklistOptions": [
                "Tom",
                "Jill",
                "Rick"
            ]
        },
        {
            "id": "uyjmfZwo0PCDJKg2uqrt",
            "name": "Is contacted",
            "fieldKey": "contact.is_contacted",
            "dataType": "CHECKBOX",
            "position": 0,
            "picklistOptions": [
                "I would like to be contacted"
            ]
        }
    ]
}