Atributo do tipo Blob

Olá,

Estou tentando enviar um state com atributo do tipo Blob, mas obtenho o seguinte erro: The data for a provided attribute is not valid for that attribute’s data type.

O atributo é um array com tamanho 4096, já tentei usando {{format}}, JSON.stringfy, JSON.stringfy.toString(‘base64’), JSON.stringfy.toString(‘utf-8’), com o bloco de Json: Encode e utilizando os seguintes tipos de atributo:

String
Blob - text/plain
Blob - text/plain;charset=UTF-8
Blob - text/csv
Blob - application/javascript
Blob - application/json

Agora estou tentando enviar apenas um Lorem Ipsum gigante com {{encodeBase64}} e mesmo assim ele não reconhece o tipo como text/plain.

Alguma outra forma de mandar um array como atributo?

Desde já agradeço o suporte.

1 Curtida

Boa noite Ana,

Neste caso você deve utilizad o Handlebar helper “encodeBase64”, mas com 3 “{{{” e “}}}”, observe o procedimento abaixo:

  1. Criamos uma aplicação de teste na Sandbox
    image

  2. Criamos um Device do Tipo Standalone e um atributo do tipo Blob
    image

  3. Criamos um Workflow para simular a submissão do blob
    image

Conteúdo do arquivo:
image

  1. Como converter uma String em Base64
  1. Exemplo:
    image

  2. Resultado:
    image

  3. Arquivo:
    image

O mesmo se aplica a outros formatos, como o JSON, mais informações disponível em https://docs.app.wnology.io/workflows/accessing-payload-data/#json-templates

Mais dúvidas estamos a sua disposição.

Atenciosamente.

Prezados, boa tarde.

Aproveitando deste exemplo, gostaria de criar um botão em meu dashboard que, ao ser clicado, rode um botão virtual em meu workflow que acesse todos meus atributos e sua condição atual e gere um documento (excel, word, pdf, csv, …). Isso é possível?

Capturarweg

o nó Device Get eu configurei o caminho de saída e defini de qual device eu quero ler as informações pelo ID dele.

no Device State eu coloquei o mesmo código que foi realizado no exemplo (que gerou a saída [object Object]). Como a conversão do exemplo era para String imaginei que não fosse funcionar mesmo… Poderia dar um exemplo de como seria esta conversão?

De todo retorno do Debug, estou interessado nos valores dentro de “compositeState”

Muito obrigado pela ajuda.

Bom dia Thiago,

Nesse caso seria possível converter os valores do compositeState para uma lista de valores, e utilizar o bloco CSV: Encode para converter a lista de valores em um csv válido, e após isso criar um arquivo com esse conteúdo, utilizando o bloco File: Create Node, ou então utilizar o bloco Device: State para publicar um atributo blob com o formato text/csv.

Para gerar documentos no formato excel, word, pdf seria um pouco mais complexo, pois as mesmas possuem uma codificação que depende de bibliotecas para a conversão.

Segue o link de exemplo de workflow para fazer isso: state-to-csv-develop.zip (1,6,KB)

flow_

2 Curtidas

Muito obrigado pela ajuda e rápido retorno! :clap: :clap: