# Como criar itens / tarefas automaticamente nos Checklists dos formulários?
Com esse exemplo, vc será capaz de criar itens / tarefas na aba Checklists dos formulários.
Como na imagem abaixo:
[](https://wiki.agilityflow.io/uploads/images/gallery/2025-01/image.png)
Nesse exemplo, vamos inserir registros em 2 tabelas.
1. **tbl\_formulario\_checklist** Essa tabela tabela conteém o nome do checklist e a relação com o formulario que será apresentado
2. **tbl\_formulario\_checklist\_item** Essa tabela contém todas os itens de um checklist
No exemplo, eu criei 2 forms, sendo o form **Inspeção** um Workflow e o **Inspeção Itens** sendo filho do **Inspeção**
As etapas do Workflow são:
1. Solicitação de inspeção
2. Execução da Inspeção
3. **\[Business Rules\]** Criação do Checklist de Pendências
4. Execução da Lista de Pendências
5. Finalização
Abaixo está o código utilizado na Regra de Negócio do FormContext que deve foi adicionada dentro da etapa **\[Business Rules\] Criação do Checklist de Pendências** do Workflow, logo após a etapa de Execução da Inspeção.
```c#
public async Task ExecuteAsync(){
var userId = FormContext.GetUsuarioLogadoId();
var recordId = FormContext.FormId;
var checklistId = System.Guid.NewGuid();
var inspectionTypeId = Guid.Parse(FormContext.GetValue("inspection_type_id"));
var paramsQuery = new List();
paramsQuery.Add(new NpgsqlParameter("@id", checklistId));
paramsQuery.Add(new NpgsqlParameter("@formularioId", IdFormulario));
paramsQuery.Add(new NpgsqlParameter("@recordId", recordId));
paramsQuery.Add(new NpgsqlParameter("@userId", userId));
paramsQuery.Add(new NpgsqlParameter("@inspectionTypeId", inspectionTypeId));
await FormContext.SqlScript.ExecuteAsync(@"
insert into tbl_formulario_checklist (
id,
efr_id,
frm_id,
tmp_form_id,
nome,
ordem,
log_data_criacao,
log_usu_criacao
)
select
@id,
@formularioId,
@recordId,
uuid_generate_v4(),
""name"" || ' - verify while inspecting',
1,
CURRENT_DATE,
@userId
from x_inspection_type where id = @inspectionTypeId limit 1
", paramsQuery.ToArray());
var paramsQueryItem = new List();
paramsQueryItem.Add(new NpgsqlParameter("@checklistId", checklistId));
paramsQueryItem.Add(new NpgsqlParameter("@userId", userId));
paramsQueryItem.Add(new NpgsqlParameter("@inspectionTypeId", inspectionTypeId));
await FormContext.SqlScript.ExecuteAsync(@"
insert into tbl_formulario_checklist_item (
id,
id_checklist,
checked,
nome,
ordem,
log_data_criacao,
log_usu_criacao
)
select uuid_generate_v4(), @checklistId, 0, ""name"", 1, CURRENT_DATE, @userId
FROM x_inspection_item
where inspection_type_id = @inspectionTypeId and status = 'pending'
limit 200", paramsQueryItem.ToArray());
}
```