Regras de Parametrização
Last updated
Last updated
A maior parte das chamadas utilizadas em módulos de conectores são parametrizadas. Dessa forma você consegue utilizar valores obtidos em módulos anteriores de um fluxo como parâmetros de execução para os módulos subsequentes. A parametrização e substituição dos valores seguem algumas regras.
Quando especificamos um módulo, definimos os parâmetros externos que eles receberão. Durante a construção de um fluxo definimos como esses parâmetros serão preenchidos através da utilização de valores que já estão disponíveis até a execução do módulo.
Ao construir um módulo, definimos os parâmetros que deverão ser preenchidos por valores que serão fornecidos em tempo de execução para a sua correta execução. Por exemplo, podemos definir um parâmetro de identificador de cidade para um módulo REST que necessite desse valor na chamada da URL. Fazemos isso colocando um marcador de parâmetro na posição da URL que deve recebê-lo. No exemplo abaixo, "Size" é um parâmetro. Ao clicá-lo, é possível visualizar detalhes sobre o parâmetro.
Em tempo de execução de um fluxo, a plataforma substitui esse marcador pelo dado especificado na construção do fluxo. Esse dado deverá estar disponível no plano de dados de execução do fluxo. Esse plano de dados é composto por todos os dados previamente obtidos nos módulos anteriores além das variáveis que são definidas em tempo de configuração.
Quando construímos um fluxo, definimos quais dados serão utilizados para cada parâmetro necessário em cada módulo.
No exemplo anterior, podemos definir que o valor de CityId num determinado fluxo será fornecido dentro do body do webhook que inicializa o fluxo. Quando estamos configurando esse módulo em um fluxo precisamos determinar quais dados serão mapeados para quais parâmetros.
Observe que esse módulo possui dois parâmetros a serem configurados: User-Key e CityId. Eles aparecem à direita sob "Configuração de Parâmetros". Você pode especificar um parâmetro de forma estática, como demostrado em User-Key. Para isso, basta entrar com o valor desejado no parâmetro.
Entretanto é mais comum utilizarmos valores dinâmicos que são determinados em cada execução do fluxo, assim como está ilustrado para o parâmetro CityId. Nesse exemplo ele será sempre preenchido em tempo de execução pelo valor city_id que vem no body do webhook que inicializa o fluxo. Observe que à esquerda da tela de configuração vemos as variáveis (Parâmetros de Fluxo ou Flow Parameters) além de todos os módulos já executados e os dados recebidos em cada módulo. Neste caso vemos o Gatilho Webhook e temos acesso ao conteúdo do seu body, onde está a propriedade city_id que contém o valor desejado.
A medida que o fluxo é executado, o plano de dados vai recebendo todos os dados que os módulos obtêm. Eles se tornam imediatamente disponíveis para serem consumidos pelos parâmetros dos módulos subsequentes.
Observe que iniciamos um fluxo apenas com as variáveis (Parâmetros de Fluxo), que são valores determinados pelo operador em tempo de configuração. Além disso, o próprio evento externo pode trazer informação, como é o caso do webhook ou de uma chamada de API. Todos esses valores estão disponível no plano de dados da execução.
O primeiro módulo após o Gatilho dispõe das variáveis (Parâmetros de Fluxo) e dos eventuais dados que o Gatilho trás para serem utilizados como parâmetros. Esse módulo pode fazer manipulações de dados e eventualmente interagir com algum sistema externo e assim obter mais dados durante a sua execução.
O segundo módulo que vem na sequência de execução pode utilizar todos os dados obtidos pelo fluxo até então, o que inclui as variáveis (Parâmetros de Fluxo), as informações do Gatilho, bem como todos os dados obtidos pelo Módulo 01. Esse segundo módulo por sua vez pode interagir com sistemas externos e também receber dados adicionais que poderão ser utilizados por todos os módulos na sequência. Esse processo ocorre para todos os módulos de um fluxo.
Os parâmetros podem ser especificados em diversas chamadas de módulos. Podemos ter uma URL de uma requisição REST que utiliza um parâmetro, assim como podemos ter uma query a um banco de dados que também esteja parametrizada.
Para identificarmos um parâmetro do Flow Studio utilizamos símbolos específicos que funcionam como marcadores de início e fim. O conteúdo entre esses símbolos identifica o nome do parâmetro. Exemplo:
Neste caso, o nome do parâmetros chama-se CityId e os símbolos de marcação são os sinais de maior e menor. Toda vez que o Flow Studio encontrar essa marcação, irá substituir esses símbolos pelo valor atual do parâmetro.
Por exemplo, no caminho de requisição REST abaixo encontramos a especificação desse parâmetro:
Para executar esse módulo, a plataforma irá substituir o marcador do parâmetro pelo seu valor do dado que deve ser utilizado. Se por exemplo esse valor for igual a 999999, a plataforma utilizará o seguinte caminho:
Tipos de Marcação de Parâmetros e Dados
Existem basicamente três tipos de marcação que identificam parâmetros e dados no Flow Studio.
<>parameter</>
Parâmetro: Especificação de parâmetros utilizada durante a construção de módulos. É como especificamos que determinados valores deverão ser substituídos por valores fornecidos em tempo de execução.
{}module : parameter{/}
Dado de Execução: Dados obtidos em tempo de execução de um fluxo. O Flow Studio irá substituir esse marcador pelo valor do dado no momento da execução. O nome do dado é uma composição entre o identificador do módulo em que ele foi gerado e o nome da propriedade.
[]module : parameter[/]
Variável: São valores que o operador pode definir em tempo de configuração através dos Parâmetros de Fluxo. São variáveis permanentes e portanto são mantidos entre execuções distintas de um fluxo. O módulo de "Update Parameter" também permite que um fluxo altere diretamente o valor de um parâmetros de fluxo.
Substituição de Parâmetros
É importante observar como os marcadores de parâmetros são substituídos pelos dados durante a execução de um fluxo. A plataforma utiliza apenas o conteúdo do dado especificado para preencher a posição do parâmetro.
Exemplos:
Parâmetro string em URL
Parameter Name: CityId
Parameter Type: string
Endpoint: baseURL/ Cities/<>CityId</>
Data: []GXpfha3Z : city_id[/]
Data Type: string
Data Content: “XXXXXXX”
Replacement:
Parâmetro string em body JSON
Parameter: CityId
Parameter Type: string
Body: { “city” : “<>CityId</>” }
Data: []GXpfha3Z : city_id[/]
Data Type: string
Data Content: “XXXXXXX”
Replacement:
Para que as strings do objeto final possuam aspas, é necessário incluí-las na definição do Body. O Flow Studio não coloca aspas automaticamente em strings.
Parâmetro object em Data Transformation
Parameter Name: DATA
DATA Example:
Data: {}trigger : body{/}
Data Type: object
Data Content:
Replacement: