Esse fluxo permite formar um plug-in de formulário com uma lista de seleção dinâmica para todos os canais.
Sobre a função node “Set Initial Params” (Definir parâmetros iniciais)
Nesse node, os objetos necessários serão criados:
* msg.count ⇾ Contador necessário para enumerar a lista dinâmica.
* msg.dynamicCallbackLabel ⇾ Objeto que armazenará o "callback_label" para canais assíncronos.
* msg.dynamicSelectOptions ⇾ Objeto que armazenará as opções para canais síncronos.
Sobre a função node “Data Mockup - Users List” (Maquete de dados - Lista de usuários)
O objeto msg.data é definido, o que simula a resposta de um endpoint.
Sobre a função node de loop “Users Loop” (Loop de usuários)
Esse node itera o objeto msg.data que contém o mockup de dados.
Sobre a função node "Build The List" (Criar a lista)
A variável "lineBreak" contém a quebra de linha para as opções de canal assíncrono.
A função "getNumberEmoji" recebe um valor numérico e retorna um emoji numérico.
O contador é incrementado.
Os valores são armazenados dinamicamente nos objetos "msg.dynamicCallbackLabel" e "msg.dynamicSelectOptions".
Sobre o node de formulário
Esse node é usado para gerar a estrutura básica de um formulário dentro do objeto "plugins".
Sobre o node de função "Set Form Options" (Definir opções do formulário)
Esse node substitui os parâmetros estáticos "callback_label" e "options" pelos objetos criados dinamicamente no node"Build The List".
Para implementar este fluxo:
*Basta executar o node de injeção para ver o resultado no console de “debug”.
*A configuração do node de função "Set Initial Params" não deve ser modificada.
*O node de função "Data mockup - User list" deve ser substituído pelos dados obtidos de uma solicitação (nodoe de solicitação http).
*Os dados obtidos pelo node de solicitação http estarão no objeto "payload".
*Esses dados devem ser armazenados em outro objeto diferente do "payload" (no exemplo: msg.data), pois esse objeto será substituído em cada iteração do nó Loop.
*Dentro do node "Build The List", a opção será armazenada dinamicamente em cada iteração do loop (no exemplo: msg.payload.name).
*Dessa forma, os objetos que conterão as listas de seleção serão criados (no exemplo: msg.dynamicCallbackLabel e msg.dynamicSelectOptions).
*Por fim, esses objetos substituirão os parâmetros do formulário.
Respectivamente:
- msg.payload.complements[0].param[0].callback_label = msg.dynamicCallbackLabel
- msg.payload.complements[0].param[0].options = msg.dynamicSelectOptions
Faça o download do fluxo clicando neste link.