How to use Jestor.update()

Manoel has asked:

  1. (1) Estamos conseguindo usar o Jestor.generatePDF pra geração de um arquivo PDF e assim salvar ele numa tabela através do Jestor.create(). Porém, ainda não tá funcionando pro Jestor.update(), mas entendo que deveria funcionar, certo? (edited)

  2. (2) Outra dúvida, é possível criar um trick para uma tabela onde este trick move automaticamente o card no Kanban de uma coluna de status para outra, de forma automática e baseado apenas num intervalo, por exemplo, 15 dias antes de uma data definida na referida tabela (field tipo Date)?


@fernando.nakandakari replied:

(1) Testei aqui e está funcionando para o update(). Qual o problema que você está encontrando? Para referência, meu código de teste foi esse:

$documento = “TextoDoDocumento”;
$file = Jestor.generatePDF($documento, [0, 0, 842, 595]);
Jestor.update(‘invoices’,[‘id_invoices’ => 21, ‘name’ => $objectNew[‘name’],‘amount’ => 1000, ‘due_date’ => date(‘Y-m-d’),‘status’ => ‘Pending’, ‘attachment’ => $file]);

(2) Via trick puramente no-code ainda não (mas nosso time já está trabalhando em uma feature nesse sentido!), mas você consegue usando uma combinação de trick e low-code usando uma trick de Schedule actions + Run a Function

Ex: você tem um kanban chamado Reservas e quer mexer um card da fase “Reservado” para “Check-In” um dia antes da data no campo checkin. Eu criaria uma function em low-code que roda o seguinte código:

$date = date(‘Y-m-d’,strtotime(’+1 day’));
$searchRes = Jestor.loadData(‘reservas’,[‘where’ => [‘checkin’ => $date, ‘status’ => ‘Reservado’]]);
foreach($searchRes as $res){
Jestor.update(‘reservas’,[‘id_reservas’=>$res[‘id_reservas’], ‘status’ => ‘Check-In’]);
}

Aí na configuração do trick eu colocaria Schedule actions como rodar todo dia de manhã (type days, interval 1, first run 2022-01-27 06:00), e no Run a Function chamaria essa função que eu criei. Aí todo dia ele veria que reservas são pro dia seguinte e estão com o status Reservado, e jogaria automaticamente no status Check-In


Manoel questions:

(1) Continua não rodando aqui.
(a) Esse seu código copiado roda numa back-end function? Ou em um trigger?
Nós estamos precisando em uma backend-function.
(b) Esse seu update ocorre em um campo do tipo File que está vazio ou previamente ocupado? O nosso campo estaria vazio.

(2) Iremos tentar a sugestão ainda. Obrigado.

Hey @manoelpereiraeng

  1. (a) I did in a trigger, but just tested with a back-end function and it worked just fine. Can you send us the update part of your code so I can understand what could be going on?
    (b) Works in both scenarios.

Cheers


Opa @manoelpereiraeng

  1. (a) Fiz numa trigger, mas acabei de testar em uma back-end function e funcionou certinho. Pode nos enviar a parte do update do seu código para eu entender o que pode estar acontecendo?
    (b) Funciona nos dois casos.

Abraços

Os comentarios na imagem ilustram a situação. Basicamente quando tento fazer o update nesta tabela usando o novo PDF, dá error na request e o update não ocorre. Sem o pdf, funciona normal o update.

@manoelpereiraeng

Hmm, understood. I’ll have the tech team look into this.

Is this an old file field (only one attachment is possible) or the new file field (multiple attachments)?


Hmm, entendi. Vou pedir pro time técnico dar uma olhada.

Esse é um campo de arquivo antigo (apenas um arquivo permitido) ou um campo de arquivo novo (múltiplos anexos)?

Okie. Ty.
We are using the new file field (multiple attachments allowed).

Any news regarding this issue? Still not working for us.

@fernando.nakandakari any updates on this issue?

Hi @manoelpereiraeng @danielcspaiva

We still haven’t been able to replicate the issue :confused:

Is it still happening for you? I’ve tested similar things in more than one account and it manages to pass the file through an update() just fine.

@fernando.nakandakari
Still the same for us.
Just tested it and when we try to update the table (with the generated PDF into it), We get the following response:

image

Summarized context:

  1. We have a “reservas_2” table. It has its own entries and when the given backend function is called, one of those entries needs to be updated with 2 new values. For that, we need:
    (a) a PDF generated thru Jestor.generatePDF($html, ‘A4’, ‘portrait’) into a “File” field called ‘anexo_portaria’ . The field was previously empty.
    (b) a string value ‘y’ into a “List” field status called “status”. The field was previously with the status ‘x’.

  2. When we comment the 1. (a), the Jestor.update() works just fine, which means the our code is properly working for: (i) fetching the entry id; (ii) updating the correct table; (iii) updating the “status” field.

  3. When we leave the piece of code 1. (a) active, the Jestor.update() breaks and return the error 404 of the image above. Nothing is updated in this scenario.

  4. We have tried with the simplest html file possible.

  5. The same generatePDF() in the same code works well with a Jestor.create() into a different table that we have created (“anexos_portaria” table) that has a “File” field as well.

Conclusion: We just can’t make a Jestor.generatePDF() generated file and Jestor.update() work together. And we need it :smiling_face_with_tear:.

Hey @manoelpereiraeng

Just a quick update, I’ve escalated and asked for priority to the tech team. I wasn’t able to replicate it, and as the code works on other tables, it may be an specific bug/conflict with the way your table is structured.

They’re going to look at it more carefully. I’ll keep you updated.

2 Likes