Coleção Moda
Objetivo/Resumo
Coleção moda é uma empresa de inovação que oferece soluções tecnológicas por meio de um software para empresas do ramo têxtil e da moda.
Criando um fluxo utilizando o conector Coleção Moda
Para utilizar o conector da conexão moda, é necessário incluir no cabeçalho o Authorization com o Bearer Token do cliente dentro da Coleção Moda.
Configurando fluxo Coleção Moda
Crie um fluxo e arraste o conector Coleção Moda para o canvas. OBS: Clique aqui e acesse nosso passo a passo para saber como criar um fluxo. Selecione o conector e na aba de Parametrização preencha os seguintes parâmetros de configuração: • Recurso: entidade para qual será realizada a ação. No momento o conector dispões quatro recursos sendo eles, Fluxos de Execução, Fornecedores, Produtos e Tecidos;
• Operação: ação que será realizada para o recurso selecionado.
• Operações disponíveis para recurso Fluxos de Execução:
◦ Atualizar Fluxo de Execução: requer o um body com a mensagem a ser atualizada no workflow e requer também o ID do Workflow a ser atualizado;
• Operações disponiveis para recurso Fornecedores:
• Criar ou Atualizar Fornecedor: requer um body com o json que contém as informações dos fornecedores a ser criados ou atualizados, aceita até 10 fornecedores por body.
• Operações disponiveis para recurso Produto:
• Buscar Produto: requer o ID do produto.
• Operações disponiveis para recurso Tecidos:
• Criar ou Atualizar Tecidos: requer um body com o json que contém as informações dos fornecedores a ser criados ou atualizados, aceita até 100 tecidos por body.
Em Cabeçalhos inclua o Authorization com o Bearer Token do cliente dentro da Coleção Moda.
Na prática
Neste tópico criaremos dois exemplos de fluxos utilizando o conector da Coleção Moda.
Produto
O fluxo terá apenas um passo que será responsável pela busca de um produto na Coleção Moda.

Passo 'busca-produto'
Este primeiro e único passo irá realizar a busca de um produto na Coleção Moda. Assim ficará a Parametrização do busca-pedido:


Conclusão
Com o passo configurado basta disparar o fluxo:

Após o disparo, o resultado do fluxo aparecerá em realtime no canvas:

Ao clicar em detalhes, temos a requisição e a resposta retornada pela Coleção Moda:

Fornecedores e Tecidos
O fluxo terá 10 passos, porém 2 são os os enviam os dados para a Coleção Moda, os quais serão exemplificados abaixo:
Passo “envia-fornecedores”
Este passo insere ou atualiza o cadastro de fornecedores na Coleção Moda. Assim ficará a Parametrização do envia-fornecedores:


Para tratar os dados e montar json da requisição que a operação espera utilizamos o Template: Assim ficou o Template:
{{$i := add1 .steps.loopf.body.index | int64 -}}
{{$inicio := sub (mul 10 $i) 10 -}}
{{$fim := sub (mul 10 $i) 1 -}}
{{$corpo := .steps.payload.body.suppliers -}}
{{$suppliers := list -}}
{
"suppliers": [
{{range $index, $val := $corpo -}}
{{if ge $index $inicio}}
{{if le $index $fim -}}
{{$suppliers = append $suppliers $val -}}
{ {end -}}
{ {end -}}
{{end -}}
{{range $index, $forncedor := $suppliers -}}
{{if ne $i 0}}
{{if $index -}}
,
{{end -}}
{{$forncedor | toJson -}}
{{end -}}
{{end -}}
]
}Passo “envia-insumos”
Este passo insere ou atualiza o cadastro de tecidos na Coleção Moda. Assim ficará a Parametrização do envia-insumos:
Para tratar os dados e montar json da requisição que a operação espera utilizamos o Template: Assim ficou o Template:
{{$corpo := .steps.select.body -}}
{{$i := add1 .steps.loopm.body.index -}}
{{$inicio := sub (mul 100 $i) 100 -}}
{{$fim := sub (mul 100 $i) 1 -}}
{{$materials := list -}}
{{range $index, $val := $corpo -}}
{{if ge $index $inicio}}
{{if le $index $fim -}}
{{$materials = append $materials $val -}}
{{end -}}
{{end -}}
{{end -}}
{
"materials": [
{{range $index, $material := $materials -}}
{{if ne $i 0 -}}
{{if $index -}}
,
{{end -}}
{{$input_type := ""}}
{{ if eq ($material.GRUPO | trim ) "AVIAMENTO" -}}
{{$input_type = "trim"}}
{{else -}}
{{$input_type = "fabric" -}}
{{end -}}
{{$lista_composicao := splitList "," (regexFindAll `\d+%\s*([A-Za-z]+)` (trim ($material.DESC_COMPOSICAO)) -1 | toString | replace "%" "," | replace " " "," | replace "%" "" | replace "[" "" | replace "]" "") -}}
{{$texto_inicial := regexFindAll `\d+%\s*([A-Za-z]+)` (trim ($material.DESC_COMPOSICAO)) -1 | toString | replace "%" " " | replace "[" "" | replace "]" "" -}}
{
"code": "{{$material.MATERIAL | trim}}",
"integration_id": "{{trim (cat $material.MATERIAL $material.COR_MATERIAL )}}",
"colors": [
{
"code": "{{trim ($material.COR_MATERIAL)}}",
"hex": "fffffe",
"integration_id": "{{trim ($material.COR_MATERIAL)}}",
"name": "{{trim ($material.DESC_COR_MATERIAL)}}",
"pantone": ""
}
],
"compositions": [
{{if gt (len $lista_composicao) 1 -}}
{{$list_quantity := regexFindAll `\b\d+(\.\d+)?\b` ($texto_inicial) -1 -}}
{{$list_name := splitList "," (trim (trimAll "," (regexReplaceAll (regexFindAll `\b\d+(\.\d+)?\b` $texto_inicial -1 | toString | replace " " "$") $texto_inicial ",") | replace ",," "," | replace ",," "," | replace ",," "," | replace ",," "," | replace ",," "," | replace " ," ",")) -}}
{{range $index, $val := $list_name -}} {{if $index -}},{{end -}}
{
"name": "{{trim (index $list_name $index) -}}",
"quantity": {{trim (index $list_quantity $index) -}}
}
{{end -}}
{{else -}}
{
"name": "{{trim (index $lista_composicao 0) -}}",
"quantity": 0
}
{{end -}}
],
"description": "",
"input_type": "{{$input_type -}}",
"name": "{{$material.DESC_MATERIAL | trim -}}",
"supplier_integration_ids": ["{{$material.COD_FORNECEDOR -}}"],
"weight": 0,
"width": {{regexFindAll `\d+(\.\d+)?` ($material.LARGURA | replace "," "." ) -1 | toString | replace "[" "" | replace "]" "" | float64 -}},
"prices" : [
{
"type": "{{if eq ( and (eq ($material.UNID_ESTOQUE | trim) ("KG")) (eq ($input_type) ("fabric")) ) true -}}{{"kg" -}}{{else -}}{{if eq ($input_type) ("fabric") -}}{{"meter" -}}{{else -}}{{if eq ( and (eq ($material.UNID_ESTOQUE | trim) ("MT")) (eq ($input_type) ("trim")) ) true -}}{{"meter" -}}{{else -}}{{if eq ( and (eq ($material.UNID_ESTOQUE | trim) ("PAR")) (eq ($input_type) ("trim")) ) true -}}{{"pair" -}}{{else -}}{{if eq ($input_type) ("trim") }}{{"quantity" -}}{{end -}}{{end -}}{{end -}}{{end -}}{{end -}}",
"value": {{$material.CUSTO_A_VISTA -}}
}
]
}
{{end -}}
{{end -}}
]
}Conclusão
Com o passo configurado basta disparar o fluxo, não é preciso enviar body, pois os dados serão pegos de passos anteriores que fazem select no banco de dados do cliente e montará o body para envio a CM, abaixo exemplos dos bodys e retornos da CM:
Passo “envia-fornecedores”

Passo “envia-insumos”

