# 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: [![image.png](https://wiki.agilityflow.io/uploads/images/gallery/2025-01/scaled-1680-/image.png)](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**
InspeçãoForm onde ao salvar será criada as taskx\_inspection
Inspeção Itens Form onde está tudo que foi inspecionado. Os itens que estiverem PENDING, será gerado uma tarefa no checklist do form ao aprovar. x\_inspection\_item
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()); } ```