Histórico da Página
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|
(Obrigatório)
Informações Gerais
Especificação | |||
Produto | PIMS CS | Módulo | BIA |
Segmento Executor | Agroindústria | ||
Projeto1 | IRM1 | ||
Requisito1 | Subtarefa1 | ||
Chamado2 |
| ||
Release de Entrega Planejada | Réplica |
| |
País | ( X ) Brasil ( ) Argentina ( ) Mexico ( ) Chile ( ) Paraguai ( ) Equador ( ) USA ( ) Colombia ( ) Outro _____________. | ||
Outros | <Caso necessário informe outras referências que sejam pertinentes a esta especificação. Exemplo: links de outros documentos ou subtarefas relacionadas>. |
Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos).
Objetivo
A plataforma GoodData possibilita a criação e consulta de dados dos ERPs do segmento Agroindústria da TOTVS por meio de gráfico, tabelas e indicadores.
Pode-se elaborar reports, que são relatórios que expressam informações e valores de diferentes módulos das aplicações Agro. Tais reports podem ser incorporados como elementos de dashboards, que são relatórios gerenciais que centralizam diferentes relatórios com base em um conceito e/ou escopo.
Este documento de especificação apresenta todos os passos para a criação do projeto GoodData para Agroindústria
Definição da Regra de Negócio
1. Criação do modelo do projeto no CloudConnect
Para criar o modelo do projeto no CloudConnect é necessário:
1. Na estrutura do projeto do CloudConnect, clique no botão direito do mouse na pasta Model > New > Logical Data Model
2. Na janela “New Logical Data Model” informe o diretório para o modelo no campo “Folder” e o título do modelo no campo “Title”. Para finalizar a criação do modelo clique no botão “Finish”;
3. Observe na estrutura do projeto do CloudConnect a criação do arquivo do modelo. A extensão do arquivo modelo é .ldm
Para criação das Dimensões e das Fatos no modelo utilize “Add Dataset”
O Dataset permite adicionar atributo e fator
Para criação da dimensão de Data/Período utilize “Add Date”:
Exemplo de dimensão
Observação: Para definir a chave da dimensão, selecione o tipo do atributo como “Connection Point”.
Exemplo de fato
Exemplo de modelo completo
2. Publicação do modelo na nuvem GoodData
Para publicar o modelo do projeto GoodData na nuvem é necessário:
- Abra o modelo do projeto;
2. No modelo, clique no botão direito do mouse e selecione a opção Publish model do server;
3. Caso solicitado, selecione o projeto Good Data referente ao modelo e clique no botão “OK”
4. A janela “Publish model to server” lista as mudanças realizadas no modelo do projeto e a esturtura de dados será publicada no servidor GoodData após clicar no botão “Publish”.
5. Caso a atualização do modelo seja realizada com sucesso uma pop up é exibida informando que as mudanças foram aplicadas.
3. Criação do gráfico do projeto no CloudConnect
Para criar o gráfico do projeto no CloudConnect é necessário:
- Na estrutura do projeto do CloudConnect, clique no botão direito do mouse na pasta graph > New > Graph;
2. Na janela “New Graph Wizard” espefique o nome do gráfico no campo “Name” e a descrição no campo “Description”. Em seguida, clique no botão “Next”;
3. Para finalizar a criação do arquivo do gráfico, clique no botão “Finish”. A extensão do gráfico é .GRF
4. Na estrutura do projeto do CloudConnect, observe o arquivo de gráfico criado.
4. Criação da conexão com a base de dados no projeto no CloudConnect
Para criar a conexão com a base de dados do projeto no CloudConnect é necessário:
- Selecionar o arquivo de gráfico.
- Na guia “Outline”, clique no botão direto do mouse em Connections > Connections > Create DB connection
3. Na janela “Database connection”, especifique o JDBC e as propriedades necessária para a criação da conexão com a base de dados. Para testar a conexão clique no botão “Validate connection”. Com a conexão validada com sucesso clique no botão “Finish”.
Observação: O CloudConnect possibilita várias conexões.
TOTVS Agroindústria
Dimensões
Instância
Tabela PMINSTANCIAS | Dimensão Instância | ||
Campo | Tipo de Dado | Atributo | Tipo |
INSTANCIA (PK) | VARCHAR2(5) | Código da Instância | String |
DE_INSTANCIA | VARCHAR2(40) | Instância | String |
SQL Query:
SELECT INSTANCIA, DE_INSTANCIA FROM PMINSTANCIAS ORDER BY INSTANCIA
Unidade Industrial
Tabela UNIDIND | Dimensão Unidade Industrial | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_UNID_IND (PK) | NUMBER(3) | Código da Unidade Industrial | Integer |
DE_UNID_IND | VARCHAR2(40) | Unidade Industrial | String |
SQL Query:
SELECT CD_UNID_IND, DE_UNID_IND FROM UNIDIND ORDER BY CD_UNID_IND
Empresa
Tabela EMPRESAS | Dimensão Empresa | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_EMPRESA (PK) | VARCHAR2(5) | Código da Empresa | String |
DE_EMPRESA | VARCHAR2(25) | Empresa | String |
SQL Query:
SELECT CD_EMPRESA, DE_EMPRESA FROM EMPRESAS ORDER BY CD_EMPRESA
Fazenda
Tabela UPNIVEL1 | Dimensão Fazenda | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_UPNIVEL1 (PK) | VARCHAR2(6) | Código da Fazenda | String |
DE_UPNIVEL1 | VARCHAR2(70) | Fazenda | String |
SQL Query:
SELECT CD_UPNIVEL1, DE_UPNIVEL1 FROM UPNIVEL1 ORDER BY CD_UPNIVEL1
Tipo de Propriedade
Tabela TIPOPROPRI | Dimensão Tipo de Propriedade | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_TP_PROPR (PK) | NUMBER(3) | Código do Tipo de Propriedade | Integer |
DE_TP_PROPR | VARCHAR2(20) | Tipo de Propriedade | String |
SQL Query:
SELECT CD_TP_PROPR, DE_TP_PROPR FROM TIPOPROPRI ORDER BY CD_TP_PROPR
Ocupação
Tabela OCUPACAO | Dimensão Ocupação | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_OCUP (PK) | NUMBER(2) | Código da Ocupação | Integer |
DE_OCUP | VARCHAR2(25) | Ocupação | String |
SQL Query:
SELECT CD_OCUP, DE_OCUP FROM OCUPACAO ORDER BY CD_OCUP
Variedade
Tabela
VARIEDADES | Dimensão Variedade | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_VARIED (PK) | NUMBER(3) | Código da Variedade | Integer |
DE_VARIED | VARCHAR2(12) | Variedade | String |
SQL Query:
SELECT CD_VARIED, DE_VARIED FROM VARIEDADES ORDER BY CD_VARIED
Estágio
Tabela ESTAGIOS | Dimensão Estágio | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_ESTAGIO (PK) | NUMBER(2) | Código do Estágio | Integer |
DE_ESTAGIO | VARCHAR2(20) | Estágio | String |
SQL Query:
SELECT CD_ESTAGIO, DE_ESTAGIO FROM ESTAGIOS ORDER BY CD_ESTAGIO
Sistema de Colheita
Tabela SISTCOLH | Dimensão Sistema de Colheita | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_SIST_COLH (PK) | NUMBER(2) | Código do Sistema de Colheita | Integer |
DE_SIST_COLH | VARCHAR2(20) | Sistema de Colheita | String |
SQL Query:
SELECT CD_SIST_COLH, DE_SIST_COLH FROM SISTCOLH ORDER BY CD_SIST_COLH
Frente de Transporte
Tabela FRENTRANSP | Dimensão Frente de Transporte | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_FREN_TRAN (PK) | NUMBER(3) | Código da Frente de Transporte | Integer |
DE_FREN_TRAN | VARCHAR2(30) | Frente de Transporte | String |
SQL Query:
SELECT CD_FREN_TRAN, DE_FREN_TRAN FROM FRENTRANSP ORDER BY CD_FREN_TRAN
Fornecedor
Tabela FORNECS | Dimensão Fornecedor | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_FORNEC (PK) | NUMBER(8) | Código do Fornecedor | Integer |
DE_FORNEC | VARCHAR2(70) | Fornecedor | String |
SQL Query:
SELECT CD_FORNEC, DE_FORNEC FROM FORNECS ORDER BY CD_FORNEC
Grupo Operativo
Tabela GRUOPERATI | Dimensão Grupo Operativo | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_GRUPO_OP (PK) | NUMBER(3) | Código do Grupo Operativo | Integer |
DE_GRUPO_OP | VARCHAR2(25) | Grupo Operativo | String |
SQL Query:
SELECT CD_GRUPO_OP, DE_GRUPO_OP FROM GRUOPERATI ORDER BY CD_GRUPO_OP
Marca
Tabela MARCAS | Dimensão Marca | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_MARCA (PK) | NUMBER(5) | Código da Marca | Integer |
DE_MARCA | VARCHAR2(25) | Marca | String |
SQL Query:
SELECT CD_MARCA, DE_MARCA FROM MARCAS ORDER BY CD_MARCA
Modelo
Tabela MODELOS | Dimensão Modelo | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_MODELO (PK) | NUMBER(5) | Código do Modelo | Integer |
DE_MODELO | VARCHAR2(25) | Modelo | String |
CD_GRUPO_OP (FK) | NUMBER(3) | Grupo Operativo | Integer |
CD_MARCA (FK) | NUMBER(5) | Marca | Integer |
SQL Query:
SELECT CD_MODELO, DE_MODELO, CD_GRUPO_OP, CD_MARCA FROM MODELOS ORDER BY CD_MODELO
Categoria Operacional
Tabela CATEG_OPER | Dimensão Categoria Operacional | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_CATEG_OPER (PK) | NUMBER(5) | Código da Categoria Operacional | Integer |
DE_CATEG_OPER | VARCHAR2(25) | Categoria Operacional | String |
SQL Query:
SELECT CD_CATEG_OPER, DE_CATEG_OPER FROM CATEG_OPER ORDER BY CD_CATEG_OPER
Equipamento
Tabela EQUIPTOS | Dimensão Equipamento | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_EQUIPTO (PK) | NUMBER(8) | Equipamento | Integer |
FG_TP_EQUIP | VARCHAR2(1) | Tipo do Equipamento | String |
CD_MODELO (FK) | NUMBER(5) | Modelo | Integer |
CD_CATEG_OPER (FK) | NUMBER(5) | Categoria Operacional | Integer |
SQL Query:
SELECT CD_EQUIPTO, FG_TP_EQUIP, CD_MODELO, CD_CATEG_OPER FROM EQUIPTOS
ORDER BY CD_EQUIPTO
Composição
Tabela TPCOMPOSI | Dimensão Composição | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_TP_COMPO (PK) | NUMBER(2) | Código da Composição | Integer |
DE_TP_COMPO | VARCHAR2(20) | Composição | String |
FG_VEICULO | VARCHAR2(1) | Tipo do Caminhão | String |
SQL Query:
SELECT CD_TP_COMPO, DE_TP_COMPO, FG_VEICULO FROM TPCOMPOSI ORDER BY CD_TP_COMPO
Recurso
Tabela NUM_RECURSO | Dimensão Recurso | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_TP_RECURSO (PK) | VARCHAR2(2) | Tipo de Recurso | String |
DE_EQUIPTO | VARCHAR2(2) | Equipamento do Recurso | String |
DE_OPERADOR | VARCHAR2(15) | Operador do Recurso | String |
SQL Query:
SELECT CD_TP_RECURSO, DE_EQUIPTO, DE_OPERADOR FROM NUM_RECURSO ORDER BY CD_TP_RECURSO
Classe de Manutenção
Tabela CLASMANU | Dimensão Classe de Manutenção | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_CLASMANU (PK) | NUMBER(2) | Código da Classe de Manutenção | Integer |
DE_CLASMANU | VARCHAR2(25) | Equipamento do Recurso | String |
SQL Query:
SELECT CD_CLASMANU, DE_CLASMANU FROM CLASMANU ORDER BY CD_CLASMANU
Motivo de Entrada
Tabela MOTIVOENTR | Dimensão Motivo de Entrada | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_MOTENTR (PK) | NUMBER(3) | Código do Motivo de Entrada | Integer |
DE_MOTENTR | VARCHAR2(20) | Motivo de Entrada | String |
SQL Query:
SELECT CD_MOTENTR, DE_MOTENTR FROM MOTIVOENTR ORDER BY CD_MOTENTR
Período Entressafra
Tabela MOTIVOENTR | Dimensão Período de Entressafra | ||
Campo | Tipo de Dado | Atributo | Tipo |
ID_ENTRES_PER (PK) | VARCHAR2(15) | Identificador do Período de Entressafra | String |
INSTANCIA (FK) | VARCHAR2(5) | Instância | String |
CD_SAFRA | NUMBER(5) | Código da Safra | Integer |
DE_SAFRA | VARCHAR2(250) | Safra | String |
DT_INICIO | DATE | Data de Início da Entressafra | Date |
DT_FIM | DATE | Data de Fim da Entressafra | Date |
SQL Query:
SELECT INSTANCIA || '***' || CD_SAFRA ID_ENTRES_PER, INSTANCIA, CD_SAFRA, DE_SAFRA, DT_INICIO, DT_FIM
FROM MNF_ENTRES_PER ORDER BY INSTANCIA, CD_SAFRA
Ramo
Agrupador por tipo de centro de custo, por exemplo – industria, agricola e administrativo.
Tabela RAMOCUSTO | Dimensão Ramo | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_RAMO (PK) | VARCHAR2(2) | Código do Ramo | String |
DE_RAMO | VARCHAR2(15) | Ramo | String |
SQL Query:
SELECT CD_RAMO, DE_RAMO FROM RAMOCUSTO ORDER BY CD_RAMO
Fase
Agrupador de processos, por exemplo - formação de lavoura, colheita, administração de colheita, administração geral, fabricação de açúcar, fabricação de álcool e cogeração de energia.
Tabela FASES | Dimensão Fase | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_FASE (PK) | NUMBER(3) | Código da Fase | Integer |
DE_FASE | VARCHAR2(25) | Fase | String |
SQL Query:
SELECT CD_FASE, DE_FASE FROM FASES ORDER BY CD_FASE
Tipo de Centro de Custo
Tabela CC_CSTG | Dimensão Tipo de Centro de Custo | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_TP_CCUSTO (PK) | VARCHAR2(1) | Código do Tipo de Centro de Custo | String |
DE_TP_CCUSTO | VARCHAR2(50) | Tipo de Centro de Custo | String |
SQL Query:
SELECT FG_TP_CCUSTO CD_TP_CCUSTO,
CASE
WHEN FG_TP_CCUSTO = '1' THEN 'Produtivo'
WHEN FG_TP_CCUSTO = '2' THEN 'Auxiliar'
WHEN FG_TP_CCUSTO = '3' THEN 'Administrativo'
WHEN FG_TP_CCUSTO = '4' THEN 'Comercial'
ELSE 'N/A'
END DE_TP_CCUSTO
FROM (SELECT DISTINCT FG_TP_CCUSTO FROM CC_CSTG)
ORDER BY FG_TP_CCUSTO
Componente
Agrupador de recursos, por exemplo - equipamentos, insumos e mão de obra.
Tabela COMPONEN | Dimensão Componente | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_COMPO (PK) | NUMBER(9) | Código do Componente | Integer |
DE_COMPO | VARCHAR2(60) | Componente | String |
CD_UNIMED | VARCHAR2(3) | Unidade de Medida | String |
SQL Query:
SELECT CD_COMPO, DE_COMPO, CD_UNIMED FROM COMPONEN
UNION
SELECT -1 CD_COMPO, '' DE_COMPO, '' CD_UNIMED FROM DUAL ORDER BY CD_COMPO
Operação
Tabela OPERACOES | Dimensão Operação | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_OPERACAO (PK) | NUMBER(5) | Código da Operação | Integer |
DE_OPERACAO | VARCHAR2(25) | Operação | String |
CD_UNIMED | VARCHAR2(3) | Unidade de Medida | String |
SQL Query:
SELECT CD_OPERACAO, DE_OPERACAO, CD_UNIMED FROM OPERACOES ORDER BY CD_OPERACAO
Conta
Tabela CTA_CSTO | Dimensão Conta | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_CONTA (PK) | VARCHAR2(11) | Código da Conta | String |
DE_CONTA | VARCHAR2(25) | Conta | String |
SQL Query:
SELECT CD_CONTA, DE_CONTA FROM CTA_CSTO
UNION
SELECT '-1' CD_CONTA, ' ' DE_CONTA FROM DUAL ORDER BY CD_CONTA
Centro de Custo
Tabela CC_CSTG | Dimensão Centro de Custo | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_CCUSTO (PK) | NUMBER(20) | Código do Centro de Custo | Long |
DE_CCUSTO | VARCHAR2(25) | Centro de Custo | String |
FG_INTERP | VARCHAR2(1) | Final de Processo | String |
FG_TP_CCUSTO (FK) | VARCHAR2(1) | Código do Tipo de Centro de Custo | String |
CD_RAMO (FK) | VARCHAR2(2) | Código do Ramo | String |
CD_FASE (FK) | NUMBER(3) | Código da Fase | Integer |
CD_EMPRESA (FK) | VARCHAR2(5) | Código da Empresa | String |
SQL Query:
SELECT CD_CCUSTO, DE_CCUSTO, FG_INTERP, FG_TP_CCUSTO, CD_RAMO, CD_FASE, CD_EMPRESA
FROM CC_CSTG ORDER BY CD_CCUSTO
Centro de Custo de Origem
Tabela CC_CSTG | Dimensão Centro de Custo de Origem | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_CCUSTO (PK) | NUMBER(20) | Código do Centro de Custo de Origem | Long |
DE_CCUSTO | VARCHAR2(25) | Centro de Custo de Origem | String |
FG_INTERP | VARCHAR2(1) | Final de Processo | String |
FG_TP_CCUSTO (FK) | VARCHAR2(1) | Código do Tipo de Centro de Custo | String |
CD_RAMO (FK) | VARCHAR2(2) | Código do Ramo | String |
CD_FASE (FK) | NUMBER(3) | Código da Fase | Integer |
CD_EMPRESA (FK) | VARCHAR2(5) | Código da Empresa | String |
SQL Query:
SELECT CD_CCUSTO, DE_CCUSTO, FG_INTERP, FG_TP_CCUSTO, CD_RAMO, CD_FASE, CD_EMPRESA
FROM CC_CSTG
Centro de Custo de Destino
Tabela CC_CSTG | Dimensão Centro de Custo de Destino | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_CCUSTO (PK) | NUMBER(20) | Código do Centro de Custo de Destino | Long |
DE_CCUSTO | VARCHAR2(25) | Centro de Custo de Destino | String |
FG_INTERP | VARCHAR2(1) | Final de Processo | String |
FG_TP_CCUSTO (FK) | VARCHAR2(1) | Código do Tipo de Centro de Custo | String |
CD_RAMO (FK) | VARCHAR2(2) | Código do Ramo | String |
CD_FASE (FK) | NUMBER(3) | Código da Fase | Integer |
CD_EMPRESA (FK) | VARCHAR2(5) | Código da Empresa | String |
SQL Query:
SELECT CD_CCUSTO, DE_CCUSTO, FG_INTERP, FG_TP_CCUSTO, CD_RAMO, CD_FASE, CD_EMPRESA
FROM CC_CSTG
Base de Rateio
Tabela BRATE_HE | Dimensão Base de Rateio | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_BRATEIO (PK) | NUMBER(9) | Código da Base de Rateio | Integer |
DE_BRATEIO | VARCHAR2(25) | Base de Rateio | String |
FG_TIPO | VARCHAR2(2) | Tipo da Base de Rateio | String |
CD_COMPO (FK) | NUMBER(9) | Código do Componente | Integer |
SQL Query:
SELECT BR.CD_BRATEIO, BR.DE_BRATEIO, BR.FG_TIPO, DECODE(BR.CD_COMPO, NULL, -1, BR.CD_COMPO) CD_COMPO
FROM BRATE_HE BR
UNION
SELECT -1, ' ' DE_BRATEIO, ' ' FG_TIPO, -1 CD_COMPO FROM DUAL
Centro de Custo e Base de Rateio
Tabela CC_CSTG / PLCPRDOP / CC_BRATE | Dimensão Centro de Custo e Base de Rateio | ||
Campo | Tipo de Dado | Atributo | Tipo |
RELAC (PK) | NUMBER(20) | Código de Relacionamento | Long |
CD_CCUSTO (FK) | NUMBER(20) | Código do Centro de Custo | Long |
CD_BRATEIO (FK) | NUMBER(9) | Código da Base de Rateio | Integer |
DT_HISTORI | DATE | Data | Date |
SQL Query:
SELECT TO_NUMBER(TO_CHAR(PERIODO.DT_HISTORI, 'MMYYYY') || TO_CHAR(CB.CD_CCUSTO)) RELAC,
CB.CD_CCUSTO, PERIODO.DT_HISTORI, DECODE(CB.CD_BRAT_FX, NULL, -1, CB.CD_BRAT_FX) CD_BRATEIO
FROM (
SELECT CC2.CD_CCUSTO, CB2.DT_REFER, CB2.CD_BRAT_FX
FROM CC_CSTG CC2
LEFT OUTER JOIN CC_BRATE CB2 ON CC2.CD_CCUSTO = CB2.CD_CCUSTO
) CB
LEFT OUTER JOIN (
SELECT CC.CD_CCUSTO, MAX(P.DT_HISTORI) DT_HISTORI
FROM PLCPRDOP P, CC_CSTG CC
GROUP BY CC.CD_CCUSTO, TO_CHAR(P.DT_HISTORI, 'MM/YYYY')
) PERIODO
ON CB.CD_CCUSTO = PERIODO.CD_CCUSTO
WHERE (
CB.DT_REFER = (
SELECT MAX(CC1.DT_REFER)
FROM CC_BRATE CC1
WHERE CC1.CD_CCUSTO = PERIODO.CD_CCUSTO
AND CC1.DT_REFER <= PERIODO.DT_HISTORI
) OR CB.DT_REFER IS NULL)
Fatos – Custos Agroindustriais
Custo Primário e Custo de Rateio
Tabela PLCPRIM / PLCRAT | Dimensão Custo Primário e Custo de Rateio | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_RELAC (FK) | NUMBER(30) | Código de Relacionamento | Long |
CD_CCUSTO (FK) | NUMBER(20) | Código do Centro de Custo | Long |
CD_CONTA (FK) | VARCHAR2(11) | Código da Conta | String |
CD_CCDE (FK) | NUMBER(20) | Código do Centro de Custo de Origem | Long |
DT_HISTORI | DATE | Data | Date |
VL_CONSUMO | NUMBER(18,4) | Valor do Consumo | Decimal |
SQL Query:
SELECT TO_NUMBER(TO_CHAR(DT_HISTORI, 'MMYYYY') || TO_CHAR(CD_CCUSTO)) CD_RELAC,
CD_CCUSTO,
CD_CONTA,
CD_CCDE,
DT_HISTORI,
SUM(VL_CONSUM0) VL_CONSUM0
FROM
(SELECT P.CD_CCUSTO,
P.CD_CONTA,
-1 AS CD_CCDE,
MAX(P.DT_HISTORI) AS DT_HISTORI,
SUM(P.VL_DIRE) VL_CONSUM0
FROM PLCPRIM P
WHERE P.FG_PLA_CST = 'C'
GROUP BY P.CD_CCUSTO,
P.CD_CONTA,
TO_CHAR(P.DT_HISTORI, 'MM/YYYY')
UNION
SELECT P.CD_CCPARA CD_CCUSTO,
'-1' AS CD_CONTA,
P.CD_CCDE,
MAX(P.DT_HISTORI) AS DT_HISTORI,
SUM(P.VL_CONSUM) VL_CONSUM0
FROM PLCRAT P
WHERE P.FG_PLA_CST = 'C'
GROUP BY P.CD_CCPARA,
P.CD_CCDE,
TO_CHAR(P.DT_HISTORI, 'MM/YYYY')
)
WHERE VL_CONSUM0 != 0
GROUP BY TO_NUMBER(TO_CHAR(DT_HISTORI, 'MMYYYY') || TO_CHAR(CD_CCUSTO)),
CD_CCUSTO,
CD_CONTA,
CD_CCDE,
DT_HISTORI
RDER BY CD_CCUSTO,
DT_HISTORI
Custo
Tabela
| Fato Custo | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_CCUSTO (FK) | NUMBER(20) | Centro de Custo | Long |
CD_OPERAC (FK) | NUMBER(5) | Operação | Integer |
CD_COMPO (FK) | NUMBER(9) | Componente | Integer |
DT_HISTORI | DATE | Data | Date |
VALOR_CONSUMO | NUMBER(18,4) | Valor do Consumo | Decimal |
QT_CONSUMIDA | NUMBER(16,5) | Quantidade Consumida | Decimal |
SQL Query:
SELECT CD_CCUSTO,
CD_OPERAC,
CD_COMPO,
TO_DATE('01/'|| TO_CHAR(DT_HISTORI, 'MM/yyyy'), 'dd/MM/yyyy') DT_HISTORI,
VL_CONSUM AS VALOR_CONSUMO,
SUM(QT_CONSUM) AS QT_CONSUMIDA
FROM PLCOPER
WHERE FG_PLA_CST = 'C'
AND CD_OPERAC != 0
AND CD_COMPO != 0
GROUP BY CD_CCUSTO,
CD_OPERAC,
CD_COMPO,
VL_CONSUM,
TO_CHAR(DT_HISTORI, 'MM/yyyy')
Produção da Operação
Tabela
| Fato Produção da Operação | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_CCUSTO (FK) | NUMBER(20) | Código do Centro de Custo | Long |
CD_OPERAC (FK) | NUMBER(5) | Código da Operação | Integer |
DT_HISTORI | DATE | Data | Date |
QT_PRODUCAO_OPER | NUMBER(13,2) | Produção da Operação | Decimal |
SQL Query:
SELECT P.CD_CCUSTO,
P.CD_OPERAC,
MAX(P.DT_HISTORI) AS DT_HISTORI,
SUM(P.QT_PRODUC) QT_PRODUCAO_OPER
FROM PLCPRDOP P
WHERE P.FG_PLA_CST = 'C'
AND P.CD_COMPO = 0
GROUP BY P.CD_CCUSTO,
P.CD_OPERAC,
TO_CHAR(P.DT_HISTORI, 'MM/YYYY')
Produção do Componente
Tabela
| Fato Produção do Componente | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_CCUSTO (FK) | NUMBER(20) | Código do Centro de Custo | Long |
CD_OPERAC (FK) | NUMBER(5) | Código da Operação | Integer |
CD_COMPO (FK) | NUMBER(9) | Código do Componente | Integer |
DT_HISTORI | DATE | Data | Date |
QT_PRODUCAO_COMPO | NUMBER(16,5) | Produção do Componente | Decimal |
SQL Query:
SELECT P.CD_CCUSTO,
P.CD_OPERAC,
P.CD_COMPO,
TO_DATE('01/'|| TO_CHAR(P.DT_HISTORI, 'MM/yyyy'), 'dd/MM/yyyy') AS DT_HISTORI,
SUM(NVL(P.QT_PRD_INS,0)) QT_PRODUCAO_COMPO
FROM PLCOPER P
INNER JOIN COMPONEN CO ON CO.CD_COMPO = P.CD_COMPO
WHERE P.FG_PLA_CST = 'C'
AND P.CD_OPERAC != 0
AND CO.FG_TP_COMP = 'I'
GROUP BY P.CD_CCUSTO,
P.CD_OPERAC,
P.CD_COMPO,
TO_CHAR(P.DT_HISTORI, 'MM/yyyy')
UNION
SELECT P.CD_CCUSTO,
P.CD_OPERAC,
P.CD_COMPO,
TO_DATE('01/'|| TO_CHAR(P.DT_HISTORI, 'MM/yyyy'), 'dd/MM/yyyy') AS DT_HISTORI,
SUM(NVL(PL.QT_PRODUCAO,0)) QT_PRODUCAO
FROM (
(SELECT CD_CCUSTO,
CD_OPERAC,
CD_COMPO,
MAX(DT_HISTORI) AS DT_HISTORI
FROM PLCOPER
WHERE FG_PLA_CST = 'C'
AND CD_OPERAC != 0
GROUP BY CD_CCUSTO,
CD_OPERAC,
CD_COMPO,
TO_CHAR(DT_HISTORI, 'MM/yyyy')
) P INNER JOIN COMPONEN CO ON CO.CD_COMPO = P.CD_COMPO AND CO.FG_TP_COMP != 'I')
LEFT OUTER JOIN
(SELECT CD_CCUSTO,
CD_OPERAC,
TO_CHAR(DT_HISTORI, 'MM/yyyy') DT_HISTORI,
SUM(NVL(QT_PRODUC,0)) QT_PRODUCAO
FROM PLCPRDOP
WHERE FG_PLA_CST = 'C'
AND CD_COMPO = 0
GROUP BY CD_CCUSTO,
CD_OPERAC,
TO_CHAR(DT_HISTORI, 'MM/yyyy')
) PL
ON PL.CD_CCUSTO = P.CD_CCUSTO
AND PL.CD_OPERAC = P.CD_OPERAC
AND TO_CHAR(P.DT_HISTORI, 'MM/yyyy') = PL.DT_HISTORI
GROUP BY P.CD_CCUSTO,
P.CD_OPERAC,
P.CD_COMPO,
TO_CHAR(P.DT_HISTORI, 'MM/yyyy')
Produção do Centro de Custo Produtivo
Tabela
| Fato Produção do Centro de Custo Produtivo | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_RELAC (FK) | NUMBER(30) | Código de Relacionamento | Long |
CD_CCUSTO (FK) | NUMBER(20) | Código do Centro de Custo | Long |
CD_UNIMED | VARCHAR2(3) | Código da Unidade de Medida | String |
DT_HISTORI | DATE | Data | Date |
QT_PRODUCAO | NUMBER(13,2) | Produção do Centro de Custo Produtivo | Decimal |
SQL Query:
SELECT TO_NUMBER(TO_CHAR(P.DT_HISTORI, 'MMyyyy') || TO_CHAR(P.CD_CCUSTO)) CD_RELAC,
P.CD_CCUSTO,
OP.CD_UNIMED,
MAX(P.DT_HISTORI) AS DT_HISTORI,
SUM(P.QT_PRODUC) QT_PRODUCAO
FROM PLCPRDOP P,
OPERACOES OP
WHERE P.FG_PLA_CST = 'C'
AND P.CD_COMPO = 0
AND (P.INSTANCIA, P.CD_CCUSTO, P.CD_OPERAC) IN
(SELECT INSTANCIA, CD_CCUSTO, CD_OP_PROD FROM CC_PROD)
AND OP.CD_OPERACAO = P.CD_OPERAC
GROUP BY TO_CHAR(P.DT_HISTORI, 'MMyyyy') || TO_CHAR(P.CD_CCUSTO),
P.CD_CCUSTO,
OP.CD_UNIMED,
TO_CHAR(P.DT_HISTORI, 'MM/yyyy')
UNION
SELECT TO_NUMBER(TO_CHAR(TO_DATE('01/' || D.DATA_PROD, 'dd/MM/yyyy'), 'MMyyyy')
|| TO_CHAR(CC.CD_CCUSTO)),
CC.CD_CCUSTO,
' ' CD_UNIMED,
TO_DATE('01/' || D.DATA_PROD, 'dd/MM/yyyy') DT_HISTORI,
0 QT_PRODUCAO
FROM CC_CSTG CC,
(SELECT DISTINCT TO_CHAR(DT_HISTORI, 'MM/yyyy') DATA_PROD
FROM PLCPRDOP
WHERE FG_PLA_CST = 'C'
) D
WHERE CC.FG_TP_CCUSTO = '1'
AND CC.FG_INTERP = 'S'
AND (CC.CD_CCUSTO, D.DATA_PROD) NOT IN
(SELECT DISTINCT P.CD_CCUSTO,
TO_CHAR(P.DT_HISTORI, 'MM/yyyy')
FROM PLCPRDOP P
WHERE P.FG_PLA_CST = 'C'
AND P.CD_COMPO = 0
AND (P.INSTANCIA, P.CD_CCUSTO, P.CD_OPERAC) IN
(SELECT INSTANCIA, CD_CCUSTO, CD_OP_PROD FROM CC_PROD)
)
Produção do Centro de Custo Auxiliar
Tabela
| Fato Produção do Centro de Custo Auxiliar | ||
Campo | Tipo de Dado | Atributo | Tipo |
CD_RELAC (FK) | NUMBER(30) | Código de Relacionamento | Long |
CD_CCUSTO (FK) | NUMBER(20) | Código do Centro de Custo | Long |
CD_UNIMED | VARCHAR2(3) | Código da Unidade de Medida | String |
DT_HISTORI | DATE | Data | Date |
CONSUMO | NUMBER(14,6) | Produção do Centro de Custo Auxiliar | Decimal |
CONSUMO2 | NUMBER(14,6) | Produção do Centro de Custo Auxiliar 2 | Decimal |
SQL Query:
SELECT TO_NUMBER(TO_CHAR(P.DT_HISTORI, 'MMYYYY') || TO_CHAR(P.CD_CCUSTO)) CD_RELAC,
P.CD_CCUSTO,
CO.CD_UNIMED,
MAX(P.DT_HISTORI) AS DT_HISTORI,
SUM(QT_CONSUM) CONSUMO,
SUM(DECODE(CO.FG_TP_COMP, 'Q', QT_CONSUM2, 0)) CONSUMO2
FROM PLCCCEQ P
INNER JOIN COMPONEN CO ON P.CD_COMPO = CO.CD_COMPO
WHERE P.FG_PLA_CST = 'C'
GROUP BY TO_CHAR(P.DT_HISTORI, 'MMYYYY') || TO_CHAR(P.CD_CCUSTO),
P.CD_CCUSTO,
CO.CD_UNIMED,
TO_CHAR(P.DT_HISTORI, 'MM/YYYY')
UNION
SELECT TO_NUMBER(TO_CHAR(TO_DATE('01/' || P.DT_HISTORI, 'DD/MM/YYYY'), 'MMYYYY') ||
TO_CHAR(CC.CD_CCUSTO)) CD_RELAC,
CC.CD_CCUSTO,
DECODE(CO.CD_UNIMED, NULL, ' ', CO.CD_UNIMED) CD_UNIMED,
TO_DATE('01/' || P.DT_HISTORI, 'DD/MM/YYYY') AS DT_HISTORI,
0 CONSUMO,
0 CONSUMO2
FROM CC_CSTG CC
LEFT OUTER JOIN COMPONEN CO ON CC.CD_CCUSTO = CO.CD_CCUSTO,
(SELECT TO_CHAR(P.DT_HISTORI, 'MM/YYYY') DT_HISTORI
FROM PLCCCEQ P
WHERE P.FG_PLA_CST = 'C'
) P
WHERE CC.FG_TP_CCUSTO = '2'
AND (CC.CD_CCUSTO, P.DT_HISTORI) NOT IN
(SELECT P.CD_CCUSTO, TO_CHAR(P.DT_HISTORI,'MM/YYYY')
FROM PLCCCEQ P
INNER JOIN COMPONEN CO ON P.CD_COMPO = CO.CD_COMPO
WHERE P.FG_PLA_CST = 'C'
)
Rateio
Tabela
| Fato Rateio | ||
Campo | Tipo de Dado | Atributo | Tipo |
DT_HISTORI | NUMBER(30) | Data | Date |
CD_CCDE (FK) | NUMBER(20) | Centro de Custo de Origem | Long |
CD_CCPARA (FK) | VARCHAR2(3) | Centro de Custo de Destino | String |
VL_TAXA | NUMBER(13,6) | Valor da Taxa | Date |
VL_CONSUM | NUMBER(18,4) | Valor do Consumo | Decimal |
SQL Query:
SELECT DT_HISTORI, CD_CCDE, CD_CCPARA, VL_TAXA, VL_CONSUM
FROM PLCRAT
WHERE FG_PLA_CST = 'C' AND FG_FX_VR = 'V'
Fatos – Manutenção de Frota
Curva S de Entressafra
Tabela MNF_MEMCALC_PV_ENTRES/ APT_OS_HE | Fato Curva S de Entressafra | ||
Campo | Tipo de Dado | Atributo | Tipo |
ID_ENTRES_PER (PK) | VARCHAR2 (20) | Identificador do Período de Entressafra | String |
CD_EQUIPTO (FK) | NUMBER(8) | Equipamento | Integer |
DATA | DATE | Data | Date |
QT_HR_PLAN | NUMBER(20,4) | Hora Planejada | Decimal |
QT_HR_REAL | NUMBER(20,4) | Hora Realizada | Decimal |
SQL Query:
SELECT INSTANCIA || '***' || CD_SAFRA ID_ENTRES_PER,
CD_EQUIPTO,
DATA,
NVL( SUM( QT_HR_PLAN ), 0 ) QT_HR_PLAN,
NVL( SUM( QT_HR_REAL ), 0 ) QT_HR_REAL
FROM
(SELECT MEM.INSTANCIA,
MEM.CD_SAFRA,
MEM.CD_EQUIPTO,
MEM.DT_PREV_EXEC DATA,
ROUND( NVL( SUM( MEM.HR_FIM_FUNC - MEM.HR_INICIO_FUNC ) * 24, 0 ), 2 ) QT_HR_PLAN,
NULL QT_HR_REAL
FROM MNF_MEMCALC_PV_ENTRES MEM
INNER JOIN ( EQUIPTOS EQU
INNER JOIN ( MODELOS MOD INNER JOIN GRUOPERATI GRU ON MOD.CD_GRUPO_OP = GRU.CD_GRUPO_OP ) ON EQU.CD_MODELO = MOD.CD_MODELO
INNER JOIN CATEG_OPER CAT
ON EQU.CD_CATEG_OPER = CAT.CD_CATEG_OPER )
ON MEM.CD_EQUIPTO = EQU.CD_EQUIPTO
WHERE MEM.FG_GRAVADO = 'S'
AND MEM.NO_OS IS NOT NULL
GROUP BY MEM.INSTANCIA,
MEM.CD_SAFRA,
MEM.CD_EQUIPTO,
MEM.DT_PREV_EXEC
UNION ALL
SELECT MEM.INSTANCIA,
MEM.CD_SAFRA,
HE.CD_EQUIPTO,
DE.DT_OPER_INI DATA,
NULL QT_HR_PLAN,
ROUND( NVL( SUM( DE.HR_OPER_FIN - DE.HR_OPER_INI ) * 24, 0 ), 2 ) QT_HR_REAL
FROM APT_OS_HE HE
INNER JOIN ( APT_OS_DE DE
INNER JOIN
(SELECT MEM.INSTANCIA,
MEM.CD_SAFRA,
MEM.NO_OS,
PL.CD_OPERACAO
FROM MNF_MEMCALC_PV_ENTRES MEM
INNER JOIN ( EQUIPTOS EQU
INNER JOIN ( MODELOS MOD
INNER JOIN GRUOPERATI GRU
ON MOD.CD_GRUPO_OP = GRU.CD_GRUPO_OP )
ON EQU.CD_MODELO = MOD.CD_MODELO
INNER JOIN CATEG_OPER CAT
ON EQU.CD_CATEG_OPER = CAT.CD_CATEG_OPER )
ON MEM.CD_EQUIPTO = EQU.CD_EQUIPTO
INNER JOIN MNF_PM_ENTRES PL
ON ( MEM.NO_IDENTIF = PL.NO_IDENTIF
AND MEM.NO_SEQ = PL.NO_SEQ )
WHERE MEM.FG_GRAVADO = 'S'
AND MEM.NO_OS IS NOT NULL
GROUP BY MEM.INSTANCIA,
MEM.CD_SAFRA,
MEM.NO_OS,
PL.CD_OPERACAO
) MEM ON ( DE.INSTANCIA = MEM.INSTANCIA
AND DE.NO_BOLETIM = MEM.NO_OS
AND DE.CD_OPERACAO = MEM.CD_OPERACAO ) ) ON ( HE.INSTANCIA = DE.INSTANCIA
AND HE.NO_BOLETIM = DE.NO_BOLETIM )
WHERE HE.FG_OBJETO = '1'
GROUP BY MEM.INSTANCIA,
MEM.CD_SAFRA,
HE.CD_EQUIPTO,
DE.DT_OPER_INI
)
GROUP BY INSTANCIA,
CD_SAFRA,
CD_EQUIPTO,
DATA
ORDER BY INSTANCIA,
CD_SAFRA,
CD_EQUIPTO,
DATA
Métrica:
· Hora Planejada
MAQL: SELECT SUM(Hora Planejada)
Metric Format: #,##0.00
· Acumulado de Hora Planejada
MAQL: SELECT RUNSUM(Hora Planejada)
Metric Format: #,##0.00
· Hora Realizada
MAQL: SELECT SUM(Hora Realizada)
Metric Format: #,##0.00
· Acumulado de Hora Realizada
MAQL: SELECT RUNSUM(Hora Realizada)
Metric Format: #,##0.00
· SPI
MAQL: SELECT SUM (Acumulado de Hora Realizada / Acumulado de Hora Planejada)
Metric Format: #,##0.00
Sumário de Ordem de Serviço
Tabela APT_OS_HE | Fato Sumário de Ordem de Serviço | ||
Campo | Tipo de Dado | Atributo | Tipo |
FG_ORIGEM | VARCHAR2(1) | Código da Origem | String |
DE_ORIGEM | VARCHAR2(30) | Origem | String |
INSTANCIA (FK) | VARCHAR2(5) | Instância | Date |
CD_CLASMANU (FK) | NUMBER(2) | Classe de Manutenção | Integer |
CD_MOTENTR (FK) | NUMBER(3) | Motivo de Entrada | Integer |
DT_ENTRADA | DATE | Data de Entrada | Date |
DT_SAIDA | DATE | Data de Saída | Date |
QUANTIDADE | NUMBER(15) | Quantidade de Ordem de Serviço | Long |
SQL Query:
SELECT INSTANCIA,
FG_ORIGEM,
DECODE(FG_ORIGEM, 'I', 'Interna', 'C', 'Campo', 'T', 'Terceiro', 'E', 'Concessionária', NULL) DE_ORIGEM,
CD_CLASMANU,
CD_MOTENTR,
DT_ENTRADA,
DT_SAIDA,
COUNT(NO_BOLETIM) QUANTIDADE
FROM APT_OS_HE
GROUP BY INSTANCIA,
FG_ORIGEM,
CD_CLASMANU,
CD_MOTENTR,
DT_ENTRADA,
DT_SAIDA
ORDER BY INSTANCIA,
FG_ORIGEM,
CD_CLASMANU,
CD_MOTENTR,
DT_ENTRADA,
DT_SAIDA
Métrica:
· Quantidade de Ordem de Serviço
MAQL: SELECT SUM(Quantidade de Ordem de Serviço)
Metric Format: #,##0.00
Índice de Planejamento
Tabela APT_OS_HE/ MNF_PANORAMA/ MNF_MEMCALC_PV_ENTRES | Fato Índice de Planejamento | ||
Campo | Tipo de Dado | Atributo | Tipo |
INSTANCIA (FK) | VARCHAR2(5) | Instância | String |
CD_EQUIPTO (FK) | NUMBER(8) | Equipamento | Integer |
DATA | DATE | Data | Date |
QT_OS_TOT | NUMBER(15) | Quantidade Total de Ordem de Serviço | Long |
QT_OS_PLAN | NUMBER(15) | Quantidade Planejada de Ordem de Serviço | Long |
SQL Query:
SELECT INSTANCIA,
CD_EQUIPTO,
DATA,
NVL( SUM( QT_OS_TOT ), 0 ) QT_OS_TOT,
NVL( SUM( QT_OS_PLAN ), 0 ) QT_OS_PLAN
FROM
(SELECT INSTANCIA,
CD_EQUIPTO,
DT_ENTRADA DATA,
COUNT( NO_BOLETIM ) QT_OS_TOT,
NULL QT_OS_PLAN
FROM APT_OS_HE
WHERE FG_OBJETO = '1'
GROUP BY INSTANCIA,
CD_EQUIPTO,
DT_ENTRADA
UNION ALL
SELECT HE.INSTANCIA,
HE.CD_EQUIPTO,
HE.DT_ENTRADA DATA,
NULL QT_OS_TOT,
COUNT( HE.NO_BOLETIM ) QT_OS_PLAN
FROM APT_OS_HE HE
WHERE HE.FG_OBJETO = '1'
AND HE.CD_CLASMANU =
(SELECT TO_NUMBER( NVL( TRIM( PAR.VALOR ), 0 ) )
FROM PARAMETROS PAR
WHERE PAR.INSTANCIA = HE.INSTANCIA
AND SECAO = 'MNF_MAN'
AND ENTRADA = 'CD_CLASMANU_COR_PROG'
)
GROUP BY HE.INSTANCIA,
HE.CD_EQUIPTO,
HE.DT_ENTRADA
UNION ALL
SELECT INSTANCIA,
CD_EQUIPTO,
TRUNC( DT_PREV_EXEC ) DATA,
NULL QT_OS_TOT,
COUNT( DISTINCT NO_OS ) QT_OS_PLAN
FROM MNF_PANORAMA
WHERE NO_OS IS NOT NULL
GROUP BY INSTANCIA,
CD_EQUIPTO,
TRUNC( DT_PREV_EXEC )
UNION ALL
SELECT INSTANCIA,
CD_EQUIPTO,
MIN( TRUNC( DT_PREV_EXEC ) ) DATA,
NULL QT_OS_TOT,
COUNT( DISTINCT NO_OS ) QT_OS_PLAN
FROM MNF_MEMCALC_PV_ENTRES
WHERE NO_OS IS NOT NULL
GROUP BY INSTANCIA,
CD_EQUIPTO,
NO_OS
)
GROUP BY INSTANCIA,
CD_EQUIPTO,
DATA
ORDER BY INSTANCIA,
CD_EQUIPTO,
DATA
Métrica:
· Quantidade Planejada de Ordem de Serviço
MAQL: SELECT SUM(Quantidade Planejada de Ordem de Serviço)
Metric Format: #,##0.00
· Quantidade Total de Ordem de Serviço
MAQL: SELECT SUM(Quantidade Total de Ordem de Serviço)
Metric Format: #,##0.00
· Índice de Planejamento
MAQL: SELECT SUM(Quantidade Planejada de Ordem de Serviço / Quantidade Total de Ordem de Serviço) * 100
Metric Format: #,##0.00
Dimensões – Processo Industrial
Empresa
Tabela MSIEMPRE | Dimensão PI Empresa | ||
Campo | Tipo de Dado | Atributo | Tipo |
EMP_CODEMP (PK) | CHAR(3) | Código da Empresa | String |
EMP_DESCRIC | CHAR(40) | Empresa | String |
SQL Query:
SELECT E.EMP_CODEMP, E.EMP_DESCRIC FROM MSIEMPRE E ORDER BY E.EMP_CODEMP, E.EMP_DESCRIC
Fonte
Tabela PROFONTE | Dimensão PI Fonte | ||
Campo | Tipo de Dado | Atributo | Tipo |
ID_PROFONTE (PK) | VARCHAR2(15) | Identificador da Fonte | String |
EMP_CODEMP (FK) | CHAR(3) | Empresa | String |
FON_CODIGO | CHAR(3) | Código da Fonte | String |
FON_DESCRI | CHAR(30) | Fonte | String |
FON_ORDEM | CHAR(3) | Ordem da Fonte | String |
FON_STATUS | CHAR(1) | Status da Fonte | String |
*FON_STATUS: [A – Ativo]; [I - Inativo]
SQL Query:
SELECT F.EMP_CODEMP || '***' || F.FON_CODIGO ID_PROFONTE,
F.EMP_CODEMP,
F.FON_CODIGO,
F.FON_DESCRI,
F.FON_ORDEM,
F.FON_STATUS
FROM PROFONTE F
ORDER BY ID_PROFONTE,
F.EMP_CODEMP,
F.FON_CODIGO,
F.FON_DESCRI,
F.FON_ORDEM,
F.FON_STATUS
Subfonte
Tabela PROSUFON | Dimensão PI Subfonte | ||
Campo | Tipo de Dado | Atributo | Tipo |
ID_PROSUFON (PK) | VARCHAR2(20) | Identificador da Subfonte | String |
ID_PROFONTE (FK) | VARCHAR2(15) | Fonte | String |
EMP_CODEMP (FK) | CHAR(3) | Empresa | String |
SUF_CODIGO | CHAR(2) | Código da Subfonte | String |
SUF_DESCRI | CHAR(30) | Subfonte | String |
SQL Query:
SELECT S.EMP_CODEMP || '***' || S.FON_CODIGO || '***' || S.SUF_CODIGO ID_PROSUFON,
S.EMP_CODEMP || '***' || S.FON_CODIGO ID_PROFONTE,
S.EMP_CODEMP,
S.SUF_CODIGO,
S.SUF_DESCRI
FROM PROSUFON S
ORDER BY ID_PROSUFON,
ID_PROFONTE,
S.EMP_CODEMP,
S.SUF_CODIGO,
S.SUF_DESCRI
Variável
Tabela PROVARIA | Dimensão PI Variável | ||
Campo | Tipo de Dado | Atributo | Tipo |
ID_PROVARIA (PK) | VARCHAR2(20) | Identificador da Variável | String |
EMP_CODEMP (FK) | CHAR(3) | Empresa | String |
FON_CODIGO (FK) | CHAR(3) | Fonte | String |
VAR_CODIGO | CHAR(10) | Código da Variável | String |
VAR_DESCRI | CHAR(50) | Variável | String |
SQL Query:
SELECT V.EMP_CODEMP || '***' || V.VAR_CODIGO ID_PROVARIA,
V.EMP_CODEMP || '***' || V.FON_CODIGO ID_PROFONTE,
V.EMP_CODEMP,
V.VAR_CODIGO,
V.VAR_DESCRI
FROM PROVARIA V
INNER JOIN PROORREL R ON (R.EMP_CODEMP = V.EMP_CODEMP AND R.VAR_CODIGO = V.VAR_CODIGO)
WHERE R.REL_CODIGO = '999'
AND V.VAR_CODIGO != ('00TEXTOREL')
GROUP BY V.EMP_CODEMP || '***' || V.VAR_CODIGO,
V.EMP_CODEMP || '***' || V.FON_CODIGO,
V.EMP_CODEMP,
V.VAR_CODIGO,
V.VAR_DESCRI
Fatos – Processo Industrial
Valores de Processo Industrial
Tabela PROGOODDATA01 | Fato PI Valores de Processo Industrial | ||
Campo | Tipo de Dado | Atributo | Tipo |
EMP_CODEMP (FK) | CHAR(3) | Código da Empresa | String |
REL_CODIGO | CHAR(3) | Código do Relatório | String |
ORR_COLUNA | CHAR(2) | Ordem da Coluna | String |
VAR_CODIGO (FK) | CHAR(10) | Identificador da Variável | String |
FON_CODIGO (FK) | CHAR(3) | Identificador da Fonte | String |
SUF_CODIGO (FK) | CHAR(2) | Identificador da Subfonte | String |
ORR_ORDEM | CHAR(3) | Ordem da Ordem | String |
GDATA | DATE | Data do Boletim | Date |
LAN_VALOR | NUMBER(20,8) | Valor | Decimal |
META | NUMBER(18,8) | Meta | Decimal |
*Identificador da Fonte: EMP_CODEMP "***" FON_CODIGO
*Identificador da Subfonte: EMP_CODEMP "***" FON_CODIGO "***" SUF_CODIGO
*Identificador da Variável: EMP_CODEMP "***" VAR_CODIGO
SQL Query:
SELECT G.EMP_CODEMP,
G.REL_CODIGO,
G.ORR_COLUNA,
G.VAR_CODIGO,
G.FON_CODIGO,
G.SUF_CODIGO,
G.ORR_ORDEM,
G.GDATA,
G. LAN_VALOR,
G.META
FROM PROGOODDATA01 G
Package:
CREATE OR REPLACE PACKAGE PK_GOODDATA AS
V_IP VARCHAR2(20) := FIP;
PROCEDURE PR_GOODDATA01(PV_RELATORIO IN VARCHAR2, PD_DATA IN DATE, PN_DIAS IN NUMBER);
PROCEDURE PR_GOODDATA02;
FUNCTION F_METADIA(PC_EMP_CODEMP IN CHAR, PC_VAR_CODIGO IN CHAR, PC_SUF_CODIGO IN CHAR, PD_DATA IN DATE) RETURN NUMBER;
END PK_GOODDATA;
CREATE OR REPLACE PACKAGE BODY PK_GOODDATA AS
PROCEDURE PR_GOODDATA01(PV_RELATORIO IN VARCHAR2, PD_DATA IN DATE, PN_DIAS IN NUMBER) IS
D_DATAF DATE;
CURSOR CEMPRESA IS
SELECT EMP_CODEMP FROM MSIEMPRE ORDER BY EMP_CODEMP;
RCEMPRESA CEMPRESA%ROWTYPE;
CURSOR CRELATORIO IS
SELECT R.EMP_CODEMP,
R.REL_CODIGO,
R.ORR_COLUNA,
R.VAR_CODIGO,
R.FON_CODIGO,
R.SUF_CODIGO,
R.ORR_ORDEM,
BUSCAMEDREL(R.EMP_CODEMP, D_DATAF, R.VAR_CODIGO, R.SUF_CODIGO,'XXXX') VALOR,
F_METADIA(R.EMP_CODEMP, R.VAR_CODIGO, R.SUF_CODIGO, D_DATAF) META
FROM PROORREL R,
PROVARIA V
WHERE R.EMP_CODEMP = V.EMP_CODEMP
AND R.VAR_CODIGO = V.VAR_CODIGO
AND V.VAR_TIPOVAR IN ('M','E','C','N')
AND V.VAR_STATUS = 'A'
AND R.ORR_INATIVA = 'A'
AND R.REL_CODIGO = PV_RELATORIO
AND R.EMP_CODEMP = RCEMPRESA.EMP_CODEMP
ORDER BY R.ORR_ORDEM;
RCRELATORIO CRELATORIO%ROWTYPE;
BEGIN
DELETE PROGOODDATA01 WHERE REL_CODIGO = PV_RELATORIO;
OPEN CEMPRESA;
LOOP
FETCH CEMPRESA INTO RCEMPRESA;
EXIT WHEN CEMPRESA%NOTFOUND;
D_DATAF := PD_DATA - CASE WHEN PN_DIAS < 0 THEN 0 WHEN PN_DIAS > 100 THEN 0 ELSE PN_DIAS END;
LOOP
EXIT WHEN D_DATAF > PD_DATA;
DELETE PROCALCULO WHERE CAL_IP = V_IP;
INSERT INTO PROCALCULO
(EMP_CODEMP, CAL_IP, CAL_TIPO, CAL_DATA, CAL_HORA, SUF_CODIGO, CAL_DATAF, CAL_PERIODO)
VALUES
(RCEMPRESA.EMP_CODEMP, V_IP, 'C', D_DATAF, 'XXXX', '01', D_DATAF, 'D');
OPEN CRELATORIO;
LOOP
FETCH CRELATORIO INTO RCRELATORIO;
EXIT WHEN CRELATORIO%NOTFOUND;
INSERT INTO PROGOODDATA01
(EMP_CODEMP, REL_CODIGO, ORR_COLUNA, VAR_CODIGO, FON_CODIGO, SUF_CODIGO,
LAN_VALOR, ORR_ORDEM, GDATA, META)
VALUES
(RCRELATORIO.EMP_CODEMP, RCRELATORIO.REL_CODIGO, RCRELATORIO.ORR_COLUNA,
RCRELATORIO.VAR_CODIGO, RCRELATORIO.FON_CODIGO, RCRELATORIO.SUF_CODIGO,
RCRELATORIO.VALOR, RCRELATORIO.ORR_ORDEM, D_DATAF, RCRELATORIO.META);
END LOOP;
CLOSE CRELATORIO;
D_DATAF := D_DATAF + 1;
END LOOP;
END LOOP;
DELETE PROCALCULO WHERE CAL_IP = V_IP;
COMMIT;
CLOSE CEMPRESA;
EXCEPTION
WHEN OTHERS THEN BEGIN
ROLLBACK;
IF CEMPRESA%ISOPEN THEN
CLOSE CEMPRESA;
END IF;
IF CRELATORIO%ISOPEN THEN
CLOSE CRELATORIO;
END IF;
END;
END PR_GOODDATA01;
-- X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X
PROCEDURE PR_GOODDATA02 IS
D_DATAF DATE := TO_DATE('02/10/2009','DD/MM/YYYY') - 1;
N_LAN_VALOR NUMBER(20,8) := 0;
I NUMBER(2) := 0;
D_DATAI DATE;
CURSOR CEMPRESA IS
SELECT EMP_CODEMP FROM MSIEMPRE ORDER BY EMP_CODEMP;
RCEMPRESA CEMPRESA%ROWTYPE;
BEGIN
DELETE PROGOODDATA02;
OPEN CEMPRESA;
LOOP
FETCH CEMPRESA INTO RCEMPRESA;
EXIT WHEN CEMPRESA%NOTFOUND;
D_DATAI := D_DATAF - 10;
WHILE D_DATAI <= D_DATAF LOOP
DELETE PROCALCULO WHERE CAL_IP = V_IP;
INSERT INTO PROCALCULO
(EMP_CODEMP, CAL_IP, CAL_TIPO, CAL_DATA, CAL_HORA, SUF_CODIGO, CAL_DATAF, CAL_PERIODO)
VALUES
(RCEMPRESA.EMP_CODEMP, V_IP, 'C', D_DATAI, 'XXXX', '01', D_DATAI, 'D');
SELECT BUSCAMEDREL(RCEMPRESA.EMP_CODEMP, D_DATAI, '000CANMOI1', '01','XXXX')
INTO N_LAN_VALOR FROM DUAL;
INSERT INTO PROGOODDATA02 (EMP_CODEMP, VAR_CODIGO, LAN_DATA, LAN_VALOR)
VALUES(RCEMPRESA.EMP_CODEMP, '000CANMOI1', D_DATAI, NVL(N_LAN_VALOR,0));
D_DATAI := D_DATAI + 1;
END LOOP;
END LOOP;
COMMIT;
CLOSE CEMPRESA;
EXCEPTION
WHEN OTHERS THEN BEGIN
ROLLBACK;
IF CEMPRESA%ISOPEN THEN
CLOSE CEMPRESA;
END IF;
END;
END PR_GOODDATA02;
-- X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X
FUNCTION F_METADIA(PC_EMP_CODEMP IN CHAR, PC_VAR_CODIGO IN CHAR, PC_SUF_CODIGO IN CHAR, PD_DATA IN DATE) RETURN NUMBER IS
NRET NUMBER := 0;
CURSOR CMETA IS
SELECT NVL(DIA_DIARIO, 0) META_DIA
FROM PRODIAGNOSTICO
WHERE EMP_CODEMP = PC_EMP_CODEMP
AND VAR_CODIGO = LPAD(PC_VAR_CODIGO,10,'0')
AND SUF_CODIGO = PC_SUF_CODIGO
AND DIA_DATA = (SELECT MAX(DIA_DATA)
FROM PRODIAGNOSTICO
WHERE EMP_CODEMP = PC_EMP_CODEMP
AND VAR_CODIGO = LPAD(PC_VAR_CODIGO,10,'0')
AND SUF_CODIGO = PC_SUF_CODIGO
AND DIA_DATA <= PD_DATA);
RCMETA CMETA%ROWTYPE;
BEGIN
OPEN CMETA;
FETCH CMETA INTO RCMETA;
IF CMETA%FOUND THEN
NRET := RCMETA.META_DIA;
END IF;
CLOSE CMETA;
RETURN NRET;
EXCEPTION
WHEN OTHERS THEN BEGIN
IF CMETA%ISOPEN THEN
CLOSE CMETA;
END IF;
RETURN NRET;
END;
END F_METADIA;
END PK_GOODDATA;
Parâmetros:
O arquivo “parametrosfatovaloresprocessoindustrial.prm” contêm os parâmetros:
- CODIGO_RELATORIO: Parâmetro responsável por definir o código do relatório do processo industrial a ser executado.
- QUANTIDADE_DIAS_ANTERIORES: Parâmetro responsável por definir a quantidade de dias anteriores à data atual o relatório do processo industrial deve carregar.
DB Execute:
Executa a procedure “PR_GOODDATA01” pertencente ao pacote “PK_GOODDATA” passando como parâmetros o código do relatório (${CODIGO_RELATORIO}), a data atual (SYSDATE)e a quantidade de dias anteriores a data atual (${QUANTIDADE_DIAS_ANTERIORES}), para carregar os dados para a fato de valores de processo industrial.
CALL PK_GOODDATA.PR_GOODDATA01 (
${CODIGO_RELATORIO},
SYSDATE,
${QUANTIDADE_DIAS_ANTERIORES}
)
Dimensões – Manutenção Industrial
Empresa
Tabela MCPEMPRE | Dimensão MI Empresa | ||
Campo | Tipo de Dado | Atributo | Tipo |
EMP_CODEMP (PK) | NUMBER(2) | Código da Empresa | String |
EMP_DESCRIC | VARCHAR2(40) | Empresa | String |
SQL Query:
SELECT E.EMP_CODEMP, E.EMP_DESCRIC FROM MCPEMPRE E ORDER BY E.EMP_CODEMP, E.EMP_DESCRIC
Setor
Tabela MCPSETOR | Dimensão MI Setor | ||
Campo | Tipo de Dado | Atributo | Tipo |
SET_CODSET (PK) | VARCHAR2(5) | Código do Setor | String |
SET_DESSET | VARCHAR2(40) | Setor | String |
SQL Query:
SELECT S.SET_CODSET, S.SET_DESSET FROM MCPSETOR S ORDER BY S.SET_CODSET, S.SET_DESSET
Área
Tabela MCPAREA | Dimensão MI Área | ||
Campo | Tipo de Dado | Atributo | Tipo |
ID_AREA (PK) | VARCHAR2(15) | Identificador da Área | String |
ARE_CODIGO | VARCHAR2(4) | Código da Área | String |
ARE_DESCRI | VARCHAR2(40) | Área | String |
SQL Query:
SELECT A.SET_CODSET || '***' || A.ARE_CODIGO ID_AREA, A.ARE_CODIGO, A.ARE_DESCRI
FROM MCPAREA A
ORDER BY ID_AREA, A.ARE_CODIGO, A.ARE_DESCRI
Causa
Tabela MCPCAUSA | Dimensão MI Causa | ||
Campo | Tipo de Dado | Atributo | Tipo |
CAU_CODIGO (PK) | VARCHAR2(3) | Código da Causa | String |
CAU_DESCRI | VARCHAR2(40) | Causa | String |
SQL Query:
SELECT C.CAU_CODIGO, C.CAU_DESCRI FROM MCPCAUSA C ORDER BY C.CAU_CODIGO, C.CAU_DESCRI
Equipamento
Tabela MCPEQPTO | Dimensão MI Equipamento | ||
Campo | Tipo de Dado | Atributo | Tipo |
ID_EQPTO (PK) | NUMBER(12) | Identificador do Equipamento | Long |
EQP_CODEQP | VARCHAR2(10) | Código do Equipamento | String |
EQP_DESCRI | VARCHAR2(80) | Equipamento | String |
SQL Query:
SELECT E.ID_EQPTO, E.EQP_CODEQP, E.EQP_DESCRI
FROM MCPEQPTO E
ORDER BY E.ID_EQPTO, E.EQP_CODEQP, E.EQP_DESCRI
Conjunto
Tabela MCPCONJUNTO | Dimensão MI Conjunto | ||
Campo | Tipo de Dado | Atributo | Tipo |
ID_CONJU (PK) | NUMBER(12) | Identificador do Conjunto | Long |
CON_CODIGO | NUMBER(3) | Código do Conjunto | Integer |
CON_DESCRI | VARCHAR2(50) | Conjunto | String |
SQL Query:
SELECT C.ID_CONJU, C.CON_CODIGO, C.CON_DESCRI
FROM MCPCONJUNTO C
ORDER BY C.ID_CONJU, C.CON_CODIGO, C.CON_DESCRI
Subconjunto
Tabela MCPSUBCONJUNTO | Dimensão MI Subconjunto | ||
Campo | Tipo de Dado | Atributo | Tipo |
ID_SUBCONJU (PK) | VARCHAR2(30) | Identificador do Subconjunto | String |
SUB_DESCRI | VARCHAR2(50) | Subconjunto | String |
* Identificador do Conjunto: [ID_CONJU || '***' || ID_SUBCONJU]
SQL Query:
SELECT S.ID_CONJU || '***' || S.ID_SUBCONJU ID_SUBCONJU, S.SUB_DESCRI
FROM MCPSUBCONJUNTO S
ORDER BY ID_CONJU, S.SUB_DESCRI
Modalidade de Equipe
Tabela MCPMODAL | Dimensão MI Modalidade de Equipe | ||
Campo | Tipo de Dado | Atributo | Tipo |
MOD_CODMOD (PK) | VARCHAR2(3) | Código da Modalidade de Equipe | String |
MOD_DESMOD | VARCHAR2(40) | Modalidade de Equipe | String |
SQL Query:
SELECT M.MOD_CODMOD, M.MOD_DESMOD FROM MCPMODAL M ORDER BY M.MOD_CODMOD, M.MOD_DESMOD
Modalidade de Defeito
Tabela MCPMODALDEF | Dimensão MI Modalidade de Defeito | ||
Campo | Tipo de Dado | Atributo | Tipo |
MOD_CODMODDEF (PK) | VARCHAR2(3) | Código da Modalidade de Defeito | String |
MOD_DESMODI | VARCHAR2(40) | Modalidade de Defeito | String |
SQL Query:
SELECT M.MOD_CODMODDEF, M.MOD_DESMODI FROM MCPMODALDEF M ORDER BY M.MOD_CODMODDEF, M.MOD_DESMODI
Modalidade de Manutenção Preventiva
Tabela MCPMODPERIOD | Dimensão MI Modalidade de Manutenção Preventiva | ||
Campo | Tipo de Dado | Atributo | Tipo |
MOD_CODMODPER (PK) | VARCHAR2(3) | Código da Modalidade de Manutenção Preventiva | String |
MOD_DESMOD | VARCHAR2(40) | Modalidade de Manutenção Preventiva | String |
SQL Query:
SELECT M.MOD_CODMODPER, M.MOD_DESMOD
FROM MCPMODPERIOD M
ORDER BY M.MOD_CODMODPER, M.MOD_DESMOD
Ordem de Serviço
Tabela MCPORDEM | Dimensão MI Ordem de Serviço | ||
Campo | Tipo de Dado | Atributo | Tipo |
ID_ORDEM (PK) | VARCHAR2(15) | Identificador da Ordem de Serviço | String |
ORD_CODOS | NUMBER(7) | Código da Ordem de Serviço | Long |
ORD_DESCRI | VARCHAR2(80) | Ordem de Serviço | String |
ORD_TIPO | VARCHAR2(1) | Tipo de Ordem de Serviço | String |
ORD_STATUS | VARCHAR2(1) | Status da Ordem de Serviço | String |
*Tipo de Ordem de Serviço: [R – Registro de Serviços]; [P - Preventiva e Preditiva]; [M-Manutenção Corretiva];
[X – Serviços Externos]; [E - Entressafra];
*Status da Ordem de Serviço: [4 – Encerrada]; [5 -Cancelada]; [ != 4 e != 5 - Pendente];
SQL Query:
SELECT O.EMP_CODEMP || '***' || O.ORD_CODOS ID_ORDEM,
O.ORD_CODOS, O.ORD_DESCRI, O.ORD_TIPO, O.ORD_STATUS
FROM MCPORDEM O
ORDER BY O.EMP_CODEMP, O.ORD_CODOS, O.ORD_DESCRI, O.ORD_TIPO, O.ORD_STATUS
Defeito
Tabela MCPDEFEITO | Dimensão MI Defeito | ||
Campo | Tipo de Dado | Atributo | Tipo |
MOD_CODMODDEF (PK) | VARCHAR2(3) | Código do Defeito | String |
DEF_DESCRICAO | VARCHAR2(10) | Defeito | String |
SQL Query:
SELECT D.DEF_CODIGO, D.DEF_DESCRICAO FROM MCPDEFEITO D ORDER BY D.DEF_CODIGO, D.DEF_DESCRICAO
Funcionário
Tabela MCPEQUIPE | Dimensão MI Funcionário | ||
Campo | Tipo de Dado | Atributo | Tipo |
ID_FUNCI (PK) | NUMBER(12) | Identificador do Funcionário | Long |
FUN_NOME | VARCHAR2(40) | Funcionário | String |
FUN_CRACHA | VARCHAR2(12) | Cracha do Funcionário | String |
SQL Query:
SELECT F.ID_FUNCI,
F.FUN_NOME,
F.FUN_CRACHA
FROM MCPFUNCI F
INNER JOIN MCPMOGASTA G ON (G.EMP_CODEMP = F.EMP_CODEMP AND G.ID_FUNCI = F.ID_FUNCI)
GROUP BY F.ID_FUNCI, F.FUN_NOME, F.FUN_CRACHA
ORDER BY F.FUN_NOME
Equipe
Tabela MCPEQUIPE | Dimensão MI Equipe | ||
Campo | Tipo de Dado | Atributo | Tipo |
ID_EQUIPE (PK) | NUMBER(12) | Identificador da Equipe | Long |
EQU_CODIGO | VARCHAR2(5) | Código da Equipe | String |
EQU_DESCRI | VARCHAR2(40) | Equipe | String |
EQU_STATUS | VARCHAR2(1) | Status da Equipe | String |
EQU_ATUA | VARCHAR2(1) | Atuação da Equipe | String |
* EQU_STATUS: [1 – Ativa]; [0 - Inativa];
* EQU_ATUA: [S - Safra]; [E - Entressafra]
SQL Query:
SELECT E.ID_EQUIPE,
E.EQU_CODIGO,
E.EQU_DESCRI,
DECODE ( E.EQU_STATUS, 0, 'Inativa', 1, 'Ativa') EQU_STATUS,
DECODE ( E.EQU_ATUA,'S', 'Safra', 'E', 'Entressafra', ' ') EQU_ATUA
FROM MCPEQUIPE E
ORDER BY E.EQU_CODIGO
Conta
Tabela MCPCONTA | Dimensão MI Conta | ||
Campo | Tipo de Dado | Atributo | Tipo |
ID_CONTA (PK) | VARCHAR2(24) | Identificador da Conta | String |
CON_CONTA | VARCHAR2(10) | Conta | String |
CON_DESCRI | VARCHAR2(40) | Descrição da Conta | String |
* ID_CONTA: C.EMP_CODEMP || '***' || C.CAL_SAFRA || '***' || C.ID_CONTA;
SQL Query:
SELECT C.EMP_CODEMP || '***' || C.CAL_SAFRA || '***' || C.ID_CONTA ID_CONTA,
C.CON_CONTA,
C.CON_DESCRI
FROM MCPCONTA C
ORDER BY ID_CONTA,
C.CON_CONTA,
C.CON_DESCRI
Subcusto
Tabela MCPMIS | Dimensão MI Subcusto | ||
Campo | Tipo de Dado | Atributo | Tipo |
ID_SCUSTO (PK) | NUMBER(12) | Identificador do Subcusto | Long |
SUB_CODIGO | VARCHAR2(20) | Código do Subcusto | String |
SUB_DESCRI | VARCHAR2(40) | Subcusto | String |
SQL Query:
SELECT SC.ID_SCUSTO, SC.SUB_CODIGO, SC.SUB_DESCRI
FROM MCPSUBCUSTO SC
ORDER BY SC.SUB_CODIGO, SC.SUB_DESCRI
Lubrificante
Tabela MCPMATERIAL | Dimensão MI Lubrificante | ||
Campo | Tipo de Dado | Atributo | Tipo |
MAT_CODIGO (PK) | VARCHAR2(13) | Código do Lubrificante | String |
MAT_DESCRI | VARCHAR2(60) | Lubrificante | String |
UNM_CODUNM | VARCHAR2(8) | Unidade de Medida do Lubrificante | String |
SQL Query:
SELECT DISTINCT M.MAT_CODIGO,
M.MAT_DESCRI,
NVL (M.UNM_CODUNM, 'N/A') UNM_CODUNM
FROM MCPMATERIAL M
INNER JOIN VW_RELCONSLUB VW on (VW.MAT_CODIGO = M.MAT_CODIGO)
ORDER BY M.MAT_CODIGO, M.MAT_DESCRI, UNM_CODUNM
M.I.S. (Máquina, Instalação e Sistema)
Tabela MCPMIS | Dimensão MI M.I.S | ||
Campo | Tipo de Dado | Atributo | Tipo |
ID_MIS (PK) | NUMBER(10) | Identificador da M.I.S. | Long |
MIS_CODIGO | VARCHAR2(7) | Código da M.I.S. | String |
MIS_DESCRI | VARCHAR2(40) | M.I.S. | String |
SQL Query:
SELECT M.ID_MIS, M.MIS_CODIGO, M.MIS_DESCRI
FROM MCPMIS M
ORDER BY M.MIS_CODIGO, M.MIS_DESCRI
Fatos – Manutenção Industrial
Disponibilidade de Funcionário
Tabela MCPMOGASTA | Fato MI Disponibilidade de Funcionário | ||
Campo | Tipo de Dado | Atributo | Tipo |
EMP_CODEMP (FK) | NUMBER(2) | Código da Empresa | Integer |
ID_FUNCI (FK) | NUMBER(12) | Identificador do Funcionário | Long |
%APROV | CHAR(2) | Disponibilidade do Funcionário | Number |
SQL Query:
SELECT F.EMP_CODEMP,
F.ID_FUNCI,
TRUNC ( NVL ( ( SUM(MOG_MINUTO) / 60 ), '0') / NVL( FDISPMOPERFUNCI ( F.ID_FUNCI, TO_DATE (
( SELECT DISTINCT S.CAL_INIANOSAFRA
FROM MCPCALENSAFRA S
WHERE S.CAL_SAFRA = (SELECT MAX (CAL_SAFRA) FROM MCPCALENSAFRA)
), 'DD/MM/YYYY'),
SYSDATE
), '0') * 100 , 0) "%APROV"
FROM MCPMOGASTA G
INNER JOIN MCPFUNCI F ON (F.ID_FUNCI = G.ID_FUNCI)
LEFT JOIN MCPEQUIPE E ON (E.ID_EQUIPE = G.ID_EQUIPE)
LEFT JOIN MCPMODAL M ON (M.MOD_CODMOD = E.MOD_CODMOD)
INNER JOIN MCPORDEM O ON (O.EMP_CODEMP = G.EMP_CODEMP AND O.ORD_CODOS = G.ORD_CODOS)
LEFT JOIN MCPSUBCUSTO SC ON (SC.ID_SCUSTO = O.ID_SCUSTO)
WHERE E.MOD_CODMOD IS NOT NULL
AND G.MOG_DATA >= TO_DATE (
(
SELECT DISTINCT S.CAL_INIANOSAFRA
FROM MCPCALENSAFRA S
WHERE S.CAL_SAFRA = (SELECT MAX (CAL_SAFRA) FROM MCPCALENSAFRA)
), 'DD/MM/YYYY')
AND G.MOG_DATA <= SYSDATE
GROUP BY F.EMP_CODEMP,
F.ID_FUNCI,
F.FUN_CRACHA,
F.FUN_NOME,
F.FUN_TIPO
ORDER BY F.EMP_CODEMP,
F.ID_FUNCI
Backlog de Equipe
Tabela MCPSEORD | Fato MI Backlog de Equipe | ||
Campo | Tipo de Dado | Atributo | Tipo |
EMP_CODEMP (FK) | NUMBER(2) | Código da Empresa | Integer |
ID_EQUIPE (FK) | NUMBER(12) | Identificador da Equipe | Long |
MOD_CODMOD (FK) | VARCHAR2(3) | Código da Modalidade de Equipe | String |
BACKLOG | NUMBER(12,1) | Backlog da Equipe | Number |
SQL Query:
SELECT EMP_CODEMP,
ID_EQUIPE,
MOD_CODMOD,
FBACKLOGDIA(EMP_CODEMP, RECURSO, SUM(NHH * (100 - NPROGRESSO) / 100)) BACKLOG
FROM
(SELECT O.EMP_CODEMP,
E.MOD_CODMOD,
E.ID_EQUIPE,
E.EQU_ATUA,
FRECURSO(O.ID_EQUIPE) RECURSO,
(FHORCENT(O.SER_DURPREV) * O.SER_NUMPESSOAS) NHH,
FPROGRESSO(O.ID_SEROS, O.SER_DURPREV, O.SER_NUMPESSOAS, O.SER_STATUS) NPROGRESSO
FROM MCPSEORD O
INNER JOIN MCPEQUIPE E ON (E.ID_EQUIPE = O.ID_EQUIPE)
INNER JOIN MCPMODAL M ON (M.MOD_CODMOD = E.MOD_CODMOD)
WHERE E.EQU_STATUS = '1'
AND O.SER_STATUS < '4'
)
GROUP BY EMP_CODEMP,
ID_EQUIPE,
MOD_CODMOD,
RECURSO,
EQU_ATUA
ORDER BY EMP_CODEMP,
ID_EQUIPE,
BACKLOG
Backlog de Modalidade de Equipe
Tabela MCPSEORD | Fato MI Backlog de Modalidade | ||
Campo | Tipo de Dado | Atributo | Tipo |
EMP_CODEMP (FK) | NUMBER(2) | Código da Empresa | Integer |
MOD_CODMOD (FK) | VARCHAR2(3) | Código da Modalidade de Equipe | String |
BACKLOG | NUMBER(12,1) | Backlog da Equipe | Number |
SQL Query:
SELECT EMP_CODEMP,
MOD_CODMOD,
FBACKLOGDIA(EMP_CODEMP, FRECURSOMODEQUIPEATIVA(EMP_CODEMP, MOD_CODMOD, 'SEA'), SUM(NHH * (100 - NPROGRESSO) / 100)) BACKLOG
FROM
(SELECT O.EMP_CODEMP,
E.MOD_CODMOD,
M.MOD_DESMOD,
E.EQU_CODIGO,
E.EQU_DESCRI,
E.EQU_ATUA,
(O.SER_DURPREV * O.SER_NUMPESSOAS) NHH,
FPROGRESSO(O.ID_SEROS, O.SER_DURPREV, O.SER_NUMPESSOAS, O.SER_STATUS) NPROGRESSO
FROM MCPSEORD O
INNER JOIN MCPEQUIPE E ON (E.ID_EQUIPE = O.ID_EQUIPE)
INNER JOIN MCPMODAL M ON (M.MOD_CODMOD = E.MOD_CODMOD)
WHERE E.EQU_STATUS = '1'
AND O.SER_STATUS < '4'
)
GROUP BY EMP_CODEMP,
MOD_CODMOD,
MOD_DESMOD
ORDER BY EMP_CODEMP,
MOD_CODMOD,
MOD_DESMOD
Disponibilidade de M.I.S.
Tabela MCPORDEM | Fato MI Disponibilidade de M.I.S. | ||
Campo | Tipo de Dado | Atributo | Tipo |
EMP_CODEMP (FK) | NUMBER(2) | Código da Empresa | Integer |
ID_MIS (FK) | NUMBER(10) | Identificador da M.I.S. | Long |
DISPMEDIA% | NUMBER(3,6) | Disponibilidade Média (%) | Number |
SQL Query:
SELECT O.EMP_CODEMP,
O.ID_MIS,
(FCALCDISPONMEDIA(O.EMP_CODEMP, O.ID_MIS, NULL, TO_DATE (
( SELECT DISTINCT S.CAL_INIANOSAFRA
FROM MCPCALENSAFRA S
WHERE S.CAL_SAFRA = (SELECT MAX (CAL_SAFRA) FROM MCPCALENSAFRA)
), 'DD/MM/YYYY'),
SYSDATE
)) "DISPMEDIA%"
FROM MCPORDEM O
INNER JOIN MCPMIS M ON (M.ID_MIS = O.ID_MIS)
INNER JOIN MCPFAMMIS F ON (F.FAM_CODIGO = M.FAM_CODIGO)
INNER JOIN MCPAREA A ON (A.SET_CODSET = O.SET_CODSET AND A.ARE_CODIGO = O.ARE_CODIGO)
INNER JOIN MCPSETOR S ON (S.SET_CODSET = A.SET_CODSET)
WHERE O.ORD_TIPO = 'M'
AND O.ORD_DTINICIO >= TO_DATE (
(SELECT DISTINCT S.CAL_INIANOSAFRA
FROM MCPCALENSAFRA S
WHERE S.CAL_SAFRA = (SELECT MAX (CAL_SAFRA) FROM MCPCALENSAFRA)
), 'DD/MM/YYYY')
AND O.ORD_DTINICIO <= SYSDATE
AND O.ORD_DTFIM IS NOT NULL
AND O.ID_MIS IS NOT NULL
GROUP BY O.EMP_CODEMP,
O.ID_MIS
Consumo e Custo de Lubrificante
Tabela VW_RELCONSLUB | Fato MI Consumo e Custo de Lubrificante | ||
Campo | Tipo de Dado | Atributo | Tipo |
EMP_CODEMP (FK) | NUMBER(2) | Código da Empresa | Integer |
MAT_CODIGO (FK) | NUMBER(10) | Código do Lubrificante | Long |
ID_SCUSTO | NUMBER(12) | Identificador do Subcusto | Long |
DATA | DATE | Data do Consumo do Lubrificante | Date |
QUANTIDADE_LUB | NUMBER(12, 4) | Consumo de Lubrificante | Number |
CUSTO_LUB | NUMBER(12, 4) | Custo do Lubrificante | Number |
SQL Query:
SELECT V.EMP_CODEMP,
V.MAT_CODIGO,
V.ID_SCUSTO,
V.DATA,
ROUND(SUM (V.QTDREAL), 3) QUANTIDADE_LUB,
ROUND(SUM (V.QTDREAL * V.CUSUNIREP), 3) CUSTO_LUB
FROM VW_RELCONSLUB V
WHERE V.MAT_CODIGO IS NOT NULL
AND V.QTDREAL IS NOT NULL
AND V.QTDREAL != 0
HAVING SUM(V.QTDREAL) > 0
GROUP BY V.EMP_CODEMP,
V.DATA,
V.ID_SCUSTO,
V.MAT_CODIGO,
V.UNM_CODUNM
ORDER BY V.EMP_CODEMP,
V.ID_SCUSTO,
V.MAT_CODIGO,
V.DATA
Custo de Manutenção
Tabela VW_RELCONSLUB | Fato MI Custo de Manutenção | ||
Campo | Tipo de Dado | Atributo | Tipo |
EMP_CODEMP (FK) | NUMBER(2) | Código da Empresa | Integer |
ID_CONTA (PK) | VARCHAR2(24) | Identificador da Conta | String |
ORD_DTGERACAOOS | DATE | Data de Custo de Manutenção | Date |
CUSTOTAL | NUMBER(12, 4) | Custo de Manutenção | Number |
SQL Query:
SELECT VW.EMP_CODEMP,
VW.EMP_CODEMP || '***' || VW.CAL_SAFRA || '***' || VW.ID_CONTA ID_CONTA,
VW.ORD_DTGERACAOOS,
SUM(VW.CUSTOMOPROP + VW.CUSTOMATERPROP + VW.CUSTOMOTERC + VW.CUSTOMATERTERC + VW.CUSTOMOLUB + VW.CUSTOMATERLUB) CUSTOTAL
FROM VW_CUSTO VW
INNER JOIN MCPCONTA C ON (C.ID_CONTA = VW.ID_CONTA)
GROUP BY VW.EMP_CODEMP,
VW.EMP_CODEMP || '***' || VW.CAL_SAFRA || '***' || VW.ID_CONTA,
VW.ORD_DTGERACAOOS
ORDER BY VW.EMP_CODEMP,
ID_CONTA,
VW.ORD_DTGERACAOOS
Situação da Ordem de Serviço
Tabela MCPORDEM | Fato MI Sistuação da Ordem de Serviço | ||
Campo | Tipo de Dado | Atributo | Tipo |
ID_ORDEM (FK) | VARCHAR2(15) | Identificador da Ordem de Serviço | Integer |
EMP_CODEMP | NUMBER(2) | Código da Empresa | Integer |
SET_CODSET | VARCHAR2(5) | Código do Setor | String |
ID_AREA | VARCHAR2(15) | Identificador da Área | String |
ID_SCUSTO | NUMBER(12) | Identificador do Subcusto | Long |
ID_CONTA | VARCHAR2(30) | Identificador da Conta | String |
ID_EQPTO | NUMBER(12) | Identificador do Equipamento | Long |
ID_MIS | NUMBER(10) | Identificador de M.I.S. | Long |
ID_CONJU | NUMBER(12) | Identificador do Conjunto | Long |
ID_SUBCONJU | VARCHAR2(30) | Identificador do Subconjunto | String |
MOD_CODMODPER | VARCHAR2(3) | Código da Modalidades de Manutenção Preventiva | String |
MCPMODALDEF | VARCHAR2(3) | Código da Modalidade de Defeito | String |
DEF_CODIGO | VARCHAR2(3) | Código do Defeito | String |
CAU_CODIGO | VARCHAR2(3) | Código da Causa | String |
MOD_CODMOD | VARCHAR2(3) | Código da Modalidade | String |
SQL Query:
SELECT O.EMP_CODEMP || '***' || O.ORD_CODOS ID_ORDEM,
O.EMP_CODEMP,
O.SET_CODSET,
O.SET_CODSET || '****' || O.ARE_CODIGO ID_AREA,
O.ID_SCUSTO,
O.EMP_CODEMP || '***' || O.CAL_SAFRA || '***' || O.ID_CONTA ID_CONTA,
O.ID_EQPTO,
O.ID_MIS,
O.ID_CONJU,
O.ID_CONJU || '***' || O.ID_SUBCONJU ID_SUBCONJU,
O.MOD_CODMODPER,
O.MOD_CODMODDEF,
O.DEF_CODIGO,
O.CAU_CODIGO,
O.MOD_CODMOD
ROM MCPORDEM O
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|