Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Introdução

Configuração

Para a configuração da Folha Tarefa / Associação Tarefa nos clientes deve-se criar as tabelas padrão, configurar o menu de Folha Tarefa e o de Atividade x Méticas, e configurar o link para a tela Atividade X Métrica, para que a funcionalidade seja utilizada da forma correta e sem problemas. Estes itens estão descritos em detalhes nos tópicos abaixo:

Criação das Tabelas

[!NOTE] OBS: As configurações descritas no código segue o modelo padrão de nomenclatura de tabelas, mas existem bases onde as tabelas tem o prefixo MO na nomenclatura, para que funcione é necessário configurar os nomes das tabelas na tabela nfs_core_par_parametros para subtituir na configuração original como no exemplo abaixo:

      NOME                                   CONTEUDO
 -----------------------------------------------------------------
 ASSOCIATION_TASK_OPER               |  MO_OPER
 -----------------------------------------------------------------
 ASSOCIATION_TASK_OPER_GRUPO         |  MO_OPER_GRUPO
 -----------------------------------------------------------------
 ASSOCIATION_TASK_OPER_GRUPO_METRICA |  MO_OPER_GRUPO_METRICA
 -----------------------------------------------------------------
 ASSOCIATION_TASK_OPER_OPER_GRUPO    |  MO_OPER_MO_OPER_GRUPO

1. app_oper

CREATE TABLE `app_oper` (
  `SEQ_DB` bigint unsigned NOT NULL AUTO_INCREMENT,
  `EMPRESA` int NOT NULL,
  `FILIAL` int NOT NULL,
  `LOCAL` int NOT NULL,
  `INS_DH` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `INS_USUARIO_SEQ_DB` bigint unsigned NOT NULL,
  `UPD_DH` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  `UPD_USUARIO_SEQ_DB` bigint unsigned DEFAULT NULL,
  `SOURCE` varchar(50) DEFAULT NULL,
  `ATIVO` tinyint(1) DEFAULT '1',
  `DELETED` tinyint(1) DEFAULT '0',
  `RO` tinyint(1) DEFAULT '0',
  `ID` int unsigned NOT NULL,
  `CODIGO` varchar(50) DEFAULT NULL,
  `DESCRICAO` varchar(250) DEFAULT NULL,
  `UNIDADE_MEDIDA_SEQ_DB` bigint unsigned DEFAULT NULL,
  `QIG_DISPLAY` tinyint unsigned DEFAULT '1',
  `REVISAO_DH` timestamp NULL DEFAULT NULL,
  `MO_APT_FKL` bigint unsigned DEFAULT NULL,
  `MO_APT_FKL_DH` timestamp NULL DEFAULT NULL,
  `MO_APT_PRODUCAO_FKL` bigint unsigned DEFAULT NULL,
  `MO_APT_PRODUCAO_FKL_DH` timestamp NULL DEFAULT NULL,
  `INDICE` decimal(11,2) DEFAULT NULL,
  PRIMARY KEY (`EMPRESA`,`FILIAL`,`LOCAL`,`ID`),
  UNIQUE KEY `SEQ_DB_UNIQUE` (`SEQ_DB`),
  KEY `fk_oper_unidade_medida` (`UNIDADE_MEDIDA_SEQ_DB`),
  CONSTRAINT `app_oper_ibfk_1` FOREIGN KEY (`UNIDADE_MEDIDA_SEQ_DB`) REFERENCES `app_unidade_medida` (`SEQ_DB`)
) ENGINE=InnoDB AUTO_INCREMENT=22439 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=COMPACT;

2. app_oper_grupo

CREATE TABLE `app_oper_grupo` (
  `SEQ_DB` bigint unsigned NOT NULL AUTO_INCREMENT,
  `EMPRESA` int NOT NULL,
  `FILIAL` int NOT NULL,
  `LOCAL` int NOT NULL,
  `INS_DH` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `INS_USUARIO_SEQ_DB` bigint unsigned NOT NULL,
  `UPD_DH` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  `UPD_USUARIO_SEQ_DB` bigint unsigned DEFAULT NULL,
  `SOURCE` varchar(50) DEFAULT NULL,
  `ATIVO` tinyint(1) DEFAULT '1',
  `DELETED` tinyint(1) DEFAULT '0',
  `RO` tinyint(1) DEFAULT '0',
  `ID` int unsigned NOT NULL,
  `CODIGO` varchar(100) DEFAULT NULL,
  `DESCRICAO` varchar(250) DEFAULT NULL,
  `TIPO` char(1) DEFAULT '',
  `OPER_GRUPO_SEQ_DB` bigint unsigned DEFAULT NULL,
  `REVISAO_DH` timestamp NULL DEFAULT NULL,
  `ETAPA_SEQ_DB` bigint unsigned DEFAULT NULL,
  `MO_APT_FKL` bigint unsigned DEFAULT NULL,
  `MO_APT_FKL_DH` timestamp NULL DEFAULT NULL,
  `MO_APT_PRODUCAO_FKL` bigint unsigned DEFAULT NULL,
  `MO_APT_PRODUCAO_FKL_DH` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`EMPRESA`,`FILIAL`,`LOCAL`,`ID`),
  UNIQUE KEY `SEQ_DB_UNIQUE` (`SEQ_DB`),
  KEY `FK_app_oper_grupo_app_oper_grupo` (`OPER_GRUPO_SEQ_DB`),
  KEY `fk_oper_grupo_etapa` (`ETAPA_SEQ_DB`),
  CONSTRAINT `FK_app_oper_grupo_app_oper_grupo` FOREIGN KEY (`OPER_GRUPO_SEQ_DB`) REFERENCES `app_oper_grupo` (`SEQ_DB`) ON DELETE RESTRICT,
  CONSTRAINT `fk_oper_grupo_etapa` FOREIGN KEY (`ETAPA_SEQ_DB`) REFERENCES `app_etapa` (`SEQ_DB`) ON DELETE RESTRICT
) ENGINE=InnoDB AUTO_INCREMENT=4865 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;

3. app_oper_grupo_metrica

CREATE TABLE `app_oper_grupo_metrica` (
  `SEQ_DB` bigint unsigned NOT NULL AUTO_INCREMENT,
  `EMPRESA` int NOT NULL,
  `FILIAL` int NOT NULL,
  `LOCAL` int NOT NULL,
  `INS_DH` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `INS_USUARIO_SEQ_DB` bigint unsigned NOT NULL,
  `UPD_DH` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  `UPD_USUARIO_SEQ_DB` bigint unsigned DEFAULT NULL,
  `SOURCE` varchar(50) DEFAULT NULL,
  `ATIVO` tinyint(1) DEFAULT '1',
  `DELETED` tinyint(1) DEFAULT '0',
  `RO` tinyint(1) DEFAULT '0',
  `ID` int unsigned NOT NULL,
  `OPER_SEQ_DB` bigint unsigned DEFAULT NULL,
  `OPER_GRUPO_SEQ_DB` bigint unsigned DEFAULT NULL,
  `FOLHA_TAREFA_SEQ_DB` bigint unsigned DEFAULT NULL,
  `METRICA1` decimal(10,2) DEFAULT NULL,
  `METRICA2` int DEFAULT NULL,
  PRIMARY KEY (`EMPRESA`,`FILIAL`,`LOCAL`,`ID`),
  UNIQUE KEY `SEQ_DB_UNIQUE` (`SEQ_DB`),
  KEY `fk_oper_grupo_metrica_folha_tarefa` (`FOLHA_TAREFA_SEQ_DB`),
  KEY `fk_oper_grupo_metrica_oper` (`OPER_SEQ_DB`),
  KEY `fk_oper_grupo_metrica_oper_grupo` (`OPER_GRUPO_SEQ_DB`),
  CONSTRAINT `fk_oper_grupo_metrica_folha_tarefa` FOREIGN KEY (`FOLHA_TAREFA_SEQ_DB`) REFERENCES `app_folha_tarefa` (`SEQ_DB`),
  CONSTRAINT `fk_oper_grupo_metrica_oper` FOREIGN KEY (`OPER_SEQ_DB`) REFERENCES `app_oper` (`SEQ_DB`),
  CONSTRAINT `fk_oper_grupo_metrica_oper_grupo` FOREIGN KEY (`OPER_GRUPO_SEQ_DB`) REFERENCES `app_oper_grupo` (`SEQ_DB`)
) ENGINE=InnoDB AUTO_INCREMENT=467 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;

4. app_oper_n_oper_grupo

CREATE TABLE `app_oper_n_oper_grupo` (
  `SEQ_DB` bigint unsigned NOT NULL AUTO_INCREMENT,
  `EMPRESA` int NOT NULL,
  `FILIAL` int NOT NULL,
  `LOCAL` int NOT NULL,
  `INS_DH` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `INS_USUARIO_SEQ_DB` bigint unsigned NOT NULL,
  `UPD_DH` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  `UPD_USUARIO_SEQ_DB` bigint unsigned DEFAULT NULL,
  `SOURCE` varchar(50) DEFAULT NULL,
  `ATIVO` tinyint(1) DEFAULT '1',
  `DELETED` tinyint(1) DEFAULT '0',
  `RO` tinyint(1) DEFAULT '0',
  `ID` int unsigned NOT NULL,
  `OPER_GRUPO_SEQ_DB` bigint unsigned DEFAULT NULL,
  `OPER_SEQ_DB` bigint unsigned DEFAULT NULL,
  `DESCRICAO` varchar(250) DEFAULT NULL,
  `REVISAO_DH` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`EMPRESA`,`FILIAL`,`LOCAL`,`ID`),
  UNIQUE KEY `SEQ_DB_UNIQUE` (`SEQ_DB`),
  KEY `FK_app_oper_n_oper_grupo_app_oper_grupo` (`OPER_GRUPO_SEQ_DB`),
  KEY `FK_app_oper_n_oper_grupo_app_oper` (`OPER_SEQ_DB`),
  CONSTRAINT `FK_app_oper_n_oper_grupo_app_oper` FOREIGN KEY (`OPER_SEQ_DB`) REFERENCES `app_oper` (`SEQ_DB`),
  CONSTRAINT `FK_app_oper_n_oper_grupo_app_oper_grupo` FOREIGN KEY (`OPER_GRUPO_SEQ_DB`) REFERENCES `app_oper_grupo` (`SEQ_DB`)
) ENGINE=InnoDB AUTO_INCREMENT=12044 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;

IMPORTANTE! Esse modelo de tabelas é o padrão, não podendo ser alterado, pois esta funcionalidade ainda não é customizável. {.is-danger}

Configuração dos menus Folha Tarefa e Atividade x Métricas

A configuração dos menus é feita na tabela nfs_core_menu, o exemplo abaixo é referente ao que foi cadastrado na base Egenko:

OBS:Não deve ser copiado e executado, pois em outras bases os campos podem não ser correspondentes fazendo com que não funcione como o esperado, este é apenas um exemplo.

  INSERT INTO {{minha base}}.nfs_core_menu (EMPRESA,FILIAL,`LOCAL`,DESCRICAO,`TYPE`,ATIVO,FATHER,MENUORDER,URL,`FILTER`,ICON) VALUES
    (9999,9999,9999,'Folha Tarefa','CRUD',1,3,5,NULL,'{"allowed":[
    "FOLHA_TAREFA",
    "OPER_GRUPO_METRICA"
    ]
  }','fa fa-users'),
    (9999,9999,9999,'Folha Tarefa','LINK',1,500,NULL,'reports/parte_diaria/filters',NULL,'fa fa-file-text-o'),
    (9999,9999,9999,'Folha Tarefa','CRUD',1,3,5,NULL,'{"allowed":[
    "FOLHA_TAREFA"
    ]
  }','fa fa-users'),
    (9999,9999,9999,'Atividades','CRUD',1,3,4,NULL,'{"allowed":[
    "OPER",
    "UNIDADE_MEDIDA",
    "OPER_GRUPO",
    "OPER_OPER_GRUPO",
    "ETAPA"
  ]}',NULL);

Configuração do Link Atividade x Métricas

Para configurar o link Atividade x Métrica deve-se inserir na tabela nfs_core_ds_tabela_campo a configuração abaixo:

  INSERT INTO {{minha base}}.nfs_core_ds_tabela_campo (TABELA_NOME,NOME,SEQ,SYS,SEND_XMOVA,GRID,GRID_MOBILE,DESCRICAO,DESCRICAO_RESUMIDA,TIPO,OBRIGATORIO,TAMANHO,TAMANHO_DECIMAL,MASCARA,INSERT_UPDATE,DISABLED,HINT,LINK,VALIDACAO,OPCOES,VALOR_DEFAULT,VALIDACAO_VIEW,FILTRO_VIEW,TOOLTIP_MESSAGE,PROPERTIES) VALUES
    ('FOLHA_TAREFA','LINK_ATIVIDADE_METRICAS',11,0,1,0,1,'Métricas Folha Tarefa','Métricas Folha Tarefa','LINK',NULL,NULL,NULL,NULL,'IU','0',NULL,'FOLHA_TAREFA','','type:GET_URL;url:associationtask;p1:taskSheet;v1:SEQ_DB;icon:fa fa-link',NULL,NULL,NULL,NULL,NULL);

Lembrando que no campo OPCOES deve conter o seguinte : {.is-warning}

type:GET_URL;url:associationtask;p1:taskSheet;v1:SEQ_DB;icon:fa fa-link

Após realizar os passos acima corretamente o ambiente já estará configurado para utilizar a ferramenta Folha Tarefa/Atividade x Métricas.

Associação de tarefas (custom)

Podemos fazer a configuração das tabelas que irão corresponder a cada nivel/camada da “arvore de atividades” na associação de tarefas, para utilizar basta configurar o parâmetro na tabela nfs_core_par_parametros e criar o link através da tabela nfs_core_ds_tabela_campo. exemplo de arquivo de configuração na tabela nfs_core_par_parametros:

INSERT INTO nfs_homol_civilmaster_mo_construmobil.nfs_core_par_parametros
(EMPRESA, FILIAL, `LOCAL`, NOME, CONTEUDO, TIPO)
VALUES(9999, 9999, 9999, 'TREE_VIEW', '{
   "layers":{
      "1":{
         "table":"AREA",
         "associationTable":"DISTRIBUICAO_OBJETO"
      },
      "2":{
         "table":"OBJETO",
         "associationTable":"DETALHAMENTO_OBJETO"
      },
      "3":{
         "table":"OPER",
         "isTask":true
      }
   }
}', 1);

agora basta adicionar o link ao registro:

INSERT INTO nfs_homol_milplanengenharia_construmobil.nfs_core_ds_tabela_campo(TABELA_NOME, NOME, SEQ, SYS, SEND_XMOVA, GRID, GRID_MOBILE, DESCRICAO, DESCRICAO_RESUMIDA, TIPO, OBRIGATORIO, TAMANHO, TAMANHO_DECIMAL, MASCARA, INSERT_UPDATE, DISABLED, HINT, LINK, VALIDACAO, OPCOES, VALOR_DEFAULT, VALIDACAO_VIEW, FILTRO_VIEW, TOOLTIP_MESSAGE, PROPERTIES)
VALUES('FOLHA_TAREFA', 'LINK_ATIVIDADE_METRICAS', 11, 0, 1, 0, 1, 'Métricas Folha Tarefa', 'Métricas Folha Tarefa', 'LINK', NULL, NULL, NULL, NULL, 'IU', '0', NULL, 'FOLHA_TAREFA', '', 'type:GET_URL;url:associationtask;p1:taskSheet;v1:SEQ_DB;icon:fa fa-link', NULL, NULL, NULL, NULL, NULL);

Configuração

config.png Legendas:

  1. layers(camadas): Atributo onde serão definidas as tabelas de cada camada, bem como a tabela que fara a associação com os níveis “filho”(subnivel do nivel atual), quando for uma task, usaremos o propriedade isTask: true no lugar ta tabela de associação;

  2. niveis: Os niveis sempre irão contar no menos para o maior, na estrutura de arvore o nivel 1 seria a raiz(ou root), não possuindo pai e de onde os proximos niveis serão ramificados;

  3. nivel: Um nível corresponde a alguma tabela que será usada para para relacionar um nivel aos demais, fazendo a ligação entre os nós “pai”(que antecedem) e “filhos”(que sucedem);

  4. Campos que serão utilizados como métricas.

  5. valores padrão(default): permite difinir um valor padrão para as metricas, possuindo os seguintes tipos:

    • value: um valor fixo que será utilizado ao abrir o modal para inserção das metricas;
    • field: o nome de um campo da tabela de atividade;
    • taskSheet: o nome de um campo correspondente aos campos da folha tarefa.

Caso queira definir a tabela final onde sera salva a metrica, basta adicionar a propriedade metricAssociationTable desta forma:

{ 
	 'metricAssociationTable':"OPER_GRUPO_METRICA",
   'layers':{
      "1":{
         "table":"AREA",
         "associationTable":"DISTRIBUICAO_OBJETO"
      },
      "2":{
         "table":"OBJETO",
         "associationTable":"DETALHAMENTO_OBJETO"
      },
      "3":{
         "table":"OPER",
         "isTask":true
      }
   }
   ...
}