API de Apontamentos¶
Disponibilizar API que automatize o apontamento de produção, com a menor interferência possível do Operador da máquina neste processo, integrando assim, o FoccoERP com ferramentas de gerenciamento fabril.
Escopo da Integração¶
-
Permite realizar o apontamento das ordens de fabricação com outros softwares e integrar os dados retornados com o FoccoERP.
-
Permite que o analista de PCP acompanhe os apontamentos das ordens de fabricação.
-
Permite filtrar os apontamentos por ordem de fabricação, centro de trabalho, recurso, operador, data, item.
-
Permite realiza serviço de apontamento das ordens de fabricação através de ferramentas de apontamento, retornando para o FoccoERP:
-
Data de importação da Ordem;
-
Número da Ordem;
-
Código do Item da Ordem;
-
Descrição da Operação;
-
Quantidade na operação da Ordem;
-
Quantidade apontada na operação da Ordem;
-
Quantidade Pendente na Operação da Ordem – Quantidade Apontada;
-
Quantidade de Refugo apontada na operação da Ordem;
-
Motivo do Refugo no retorno.
-
Situações não tratadas¶
As situações não tratadas pelo produto estão listadas abaixo:
-
Operações de retrabalho;
-
Destinar refugos
Chamadas WebService¶
Autenticação¶
Autenticação
POST
~/Authentication/RequestAccess?User=API&Password={senha usuário API}&AllowNewSession=true
Retorno
{
"Token": {token},
"ErrorReason": 0,
"CustomErrorMessage": null,
"IsSuccessful": true
}
Logout¶
Logout
POST
~/Authentication/Logout
Header
Authorization
Bearer { token}
Buscar Centros de Trabalho¶
Buscar Centros de Trabalho
POST
~/api/Commands/Manufatura.Engenharia.GetCentrosTrabalhoCommand
Header
Authorization
Bearer { token}
Content-Type
application/json
X-EMPR-ID
{ID da Empresa}
Body (JSON)
skip
Quantidade de registros para “saltar”
take
Quantidade de registros que serão retornados
Retorno
{
"$values": [
{
"Codigo": "10",
"Descricao": "FURAÇÃO",
"Empresa": {
"Codigo": 10,
"NomeFantasia": "BRASILEIRA S/A (TESDES)",
"RazaoSocial": "FOCCOERP_ORIG_3_17",
"ID": 10
},
"ID": 39
}
]
}
Buscar Recursos (Máquinas)¶
Buscar Recursos (Máquinas)
POST
~/api/Commands/Manufatura.Producao. GetRecursosIndustriaisByTipoCommand
Header
Authorization
Bearer { token}
Content-Type
application/json
X-EMPR-ID
{ID da Empresa}
Body (JSON)
skip
Quantidade de registros para “saltar”
take
Quantidade de registros que serão retornados
tipoRecursoIndustrial
“ID”: “M”
Retorno
{
"$values": [
{
"$id": "45107",
"Codigo": "100",
"Descricao": "APARELHO DE SOLDA 250A TCM 325",
"Tipo": {
"ID": "M"
},
"ID": 58,
}
]
}
Buscar Ordens de Produção Abertas¶
Buscar Ordens de Produção Abertas
POST
~/api/Commands/Manufatura.Producao.GetOrdensAbertasCommand
Header
Authorization
Bearer { token}
Content-Type
application/json
X-EMPR-ID
{ID da Empresa}
Body (JSON)
getOrdensRequest
"skip": 0,
"take": 10,
"DtEmissGreaterThanOrEqual":"2010-01-01T00:00:00",
"DtEmissLesserThanOrEqual":"2018-06-31T00:00:00",
"CodigoItem":"",
"MascID": "",
"CodMaquina":"",
"CodCentroTrabalho": ""
Retorno
Para buscar as ordens de produção abertas, no body deve conter o filtro abaixo.
Observação
Os campos podem ser adicionados conforme necessidade de filtro.
Atenção para o formato de data.
{
"getOrdensRequest":
{
"Take":1,
"Skip":0,
"DtEmissGreaterThanOrEqual": "2015-06-28T00:00:00",
"DtEmissLesserThanOrEqual": "",
"CodigoItem": "CANETA",
"MascaraID": "",
"CodigoMaquina": "",
"CodigoCentroTrabalho": "",
"OrdemID": "",
"NumeroOrdem": ""
}
}
Abaixo, um exemplo do retorno:
{"$values": [{
"Item": {
"ItemMascara": {
"$id": "50981",
"Mascara": "AZUL#CILÍNDRICO",
"Ativo": true,
"Engenharia": {
"$id": "50982"
"ItemEngenharia": {
"PesoLiquido": 0,
"PesoBruto": 0,
"Cubagem": 0,
"ID": 31733},
"PesoLiquido": 0,
"PesoBruto": 0,
"Cubagem": 0,
"ID": 204212},
"ItemEmpresa": {
"CadastroItem": {
"Codigo": "CANETA",
"DescTecnica": "ITEM INDUSTRIAL C/ ESTR",
"Ativo": true,
"ID": 31520},
"Empresa": {
"Codigo": 10,
"NomeFantasia": "BRASILEIRA S/A (TESDES)",
"RazaoSocial": "FOCCOERP_ORIG_3_17",
"ID": 10 },
"ItemPDM": {},
"Engenharia": {},
"Planejamento": {
},
"ID": 31467}, "ID": 32449
}, "ID": 30861
},
"Mascara": "AZUL#CILÍNDRICO",
"MascaraID": 30861,
"Engenharia": {},
"IsItemConfigurado": true,
"ItemEmpresa": {},
"Codigo": "CANETA",
"DescTecnica": "ITEM INDUSTRIAL C/ ESTR"
},
"Numero": 1006,
"Quantidade": 2,
"DtEmissao": "2016-12-12T00:00:00-02:00",
"Observacao": null,
"TipoOrdem": {
"$id": "50989",
"ID": "OFM",
"Type":
},
"Finalizada": false,
"RoteirosProducao": {
"$id": "50990"},
"ID": 400505
}
]
}
Buscar Ordem pelo ID¶
Buscar Ordem pelo ID
GET
~/api/Entities/Manufatura.Producao.OrdemProducao/{ID}
Header
Authorization
Bearer { token}
Content-Type
application/json
Retorno
{
"Item": {
"$type": ,
"ItemMascara": {
"Mascara": "AZUL#CILÍNDRICO",
"Ativo": true,
"Engenharia": {
"ItemConfigurado": null,
"ItemEngenharia": {
"ItemEmpresa": null,
"PesoLiquido": 0,
"PesoBruto": 0,
"Cubagem": 0,
"ID": 31733},
"PesoLiquido": 0,
"PesoBruto": 0,
"Cubagem": 0,
"ID": 204212},
"ItemEmpresa": {
"CadastroItem": {
"Codigo": "CANETA",
"DescTecnica": "ITEM INDUSTRIAL C/ ESTR",
"Ativo": true,
"ID": 31520},
"Empresa": {
"Codigo": 10,
"NomeFantasia": "BRASILEIRA S/A (TESDES)",
"RazaoSocial": "FOCCOERP_ORIG_3_17",
"ID": 10},
"ItemPDM": {},
"Engenharia": {},
"Planejamento": {
"ItemEmpresa": {},
"ID": 31467},
"ID": 32449},
"ID": 30861},
"Mascara": "AZUL#CILÍNDRICO",
"MascaraID": 30861,
"Engenharia": {},
"ItemEmpresa": {},
"Codigo": "CANETA",
"DescTecnica": "ITEM INDUSTRIAL C/ ESTR"
},
"Numero": 1006,
"Quantidade": 2,
"DtEmissao": "2016-12-12T00:00:00-02:00",
"Observacao": null,
"TipoOrdem": {
"ID": "OFM",
"Type":
},
"Finalizada": false,
"RoteirosProducao": {},
"ID": 400505
}
Buscar Recurso pelo ID¶
Buscar Recurso pelo ID
GET
~/api/Entities/Manufatura.Producao.RecursoIndustrial/{ID}
Header
Authorization
Bearer { token}
Content-Type
application/json
Retorno
{
"Codigo": "100",
"Descricao": "APARELHO DE SOLDA 250A TCM 325",
"Tipo": {
"ID": "M"
},
"ID": 58
}
Buscar Centro de Trabalho pelo ID¶
Buscar Centro de Trabalho pelo ID
GET
~/api/Entities/Manufatura.Engenharia.CentroTrabalho/{ID}
Header
Authorization
Bearer { token}
Content-Type
application/json
Retorno
{
"Codigo": "10",
"Descricao": "FURAÇÃO",
"Empresa": {
"Codigo": 10,
"NomeFantasia": "BRASILEIRA S/A (TESDES)",
"RazaoSocial": "FOCCOERP_ORIG_3_17",
"ID": 10
},
"ID": 39
}
Causa de Refugo¶
Causa de Refugo
POST
~/api/Commands/Manufatura.Producao.Apontamento.GetCausasRefugoCommand
Header
Authorization
Bearer { token}
Content-Type
application/json
X-EMPR-ID
{ID da Empresa}
Body (JSON)
skip
Quantidade de registros para “saltar”
take
Quantidade de registros que serão retornados
Retorno
{
"$values":[
{
"Codigo": 1,
"Descricao": "MATÉRIA PRIMA COM PROBLEMA",
"Empresa": null,
"ID": 1
}
]
}
Motivos de Refugo¶
Motivos de Refugo
POST
~/api/Commands/Manufatura.Producao.Apontamento.GetMotivosRefugoCommand
Header
Authorization
Bearer { token}
Content-Type
application/json
X-EMPR-ID
{ID da Empresa}
Body (JSON)
skip
Quantidade de registros para “saltar”
take
Quantidade de registros que serão retornados
Retorno
{
"$values": [
{
"Codigo": 1,
"Descricao": "FURAÇÃO ERRADA",
"GrupoMotivoRefugo": null,
"Ativo": true,
"ID": 6
},
{
"Codigo": 2,
"Descricao": "DIMENSÃO ERRADA",
"GrupoMotivoRefugo": null,
"Ativo": true,
"ID": 7
},
{
"Codigo": 3,
"Descricao": "FALHA MATÉRIA PRIMA",
"GrupoMotivoRefugo": null,
"Ativo": true,
"ID": 8
}
]
Funcionários¶
Funcionários
POST
~/api/Commands/Utilitarios.Funcionario.GetFuncionariosCommand
Header
Authorization
Bearer { token}
Content-Type
application/json
X-EMPR-ID
{ID da Empresa}
Body (JSON)
skip
Quantidade de registros para “saltar”
take
Quantidade de registros que serão retornados
Retorno
{“$values”: [{
"Codigo": ”1”,
"Nome": "FOCCO3I",
"Ativo": true,
"Usuario": {
"Login": "FOCCO3I",
"LoginLDAP": null,
"Nome": "FOCCO3I",
"Email": "teste@focco.com.br",
"Ativo": true,
"DtInicio": "1980-01-01T00:00:00-02:00",
"DtFim": "2020-12-01T00:00:00-02:00",
"ID": 1},
"Funcoes": [{
"ID": "CMPR",
"Description": "Comprador"},
{
"ID": "FUNC",
"Description": "Funcionário"},],
"ID": 1369
}]}
Apontamentos por Operação da Ordem¶
Apontamentos por Operação da Ordem
POST
~/api/Commands/Manufatura.Producao.Apontamento.GetApontamentosByOrdemRoteiroCommand
Header
Authorization
Bearer { token}
Content-Type
application/json
X-EMPR-ID
{ID da Empresa}
Body (JSON)
skip
Quantidade de registros para “saltar”
take
Quantidade de registros que serão retornados
ordemRoteiroID
ID do roteiro da Ordem
Retorno
{
"$values": [
{
"Quantidade": 1,
"DataApontamento": "2018-07-06T00:00:00-03:00",
"TipoApontamento": {
"ID": "TP",
"Description": "Tempo Padrão"
},
"DataHoraInicio": null,
"DataHoraFim": null,
"Tempo": null,
"Intervalo": 0,
"Funcionario": {
"Codigo": "1",
"Nome": "FOCCO3I",
"ID": 1369
},
"Final": true,
"Usuario": "JOAO (MAQUINA-043) / joao.silva / DOMINIO\\MAQUINA-043",
"QuantidadeRefugos": 2,
"Refugos": {
"$values": [
{
"Quantidade": 2,
"Motivo": {
"Codigo": 3,
"Descricao": "FALHA MATÉRIA PRIMA",
"Ativo": true,
"ID": 8
},
"Causa": {
"Codigo": 1,
"Descricao": "MATÉRIA PRIMA COM PROBLEMA",
"ID": 1
},
"ID": 97
}
]
},
"OrigemApontamento": "API",
"ApontamentoMaquina": {
"Maquina": {
"$id": "33",
"Codigo": "110",
"Descricao": "FURADEIRA",
"Ativo": true,
"Tipo": {
"ID": "M",
"Description": "Máquina"
},
"ID": 68,
},
"ID": 329625
},
"ID": 266503
}
]
Incluir Apontamento¶
Incluir Apontamento
POST
~/api/Entities/Manufatura.Producao.Apontamento.ApontamentoProducao
Header
Authorization
Bearer { token}
Content-Type
application/json
Body (JSON)
Enviar Json do apontamento conforme exemplos abaixo
Retorno
{
"ConcurrencyErrorOccurred": false,
"Succeeded": false,
"AnySucceeded": false,
"Failed": true,
"AllFailed": true,
"BaseErrorMessage": null,
"ErrorMessage": {mensagem do erro},
"Exception": null
}
JSON Incluir Apontamento Tempo Padrão¶
JSON Incluir Apontamento Tempo Padrão
{
"OrdemRoteiro": {
"ID":332945
},
"Quantidade": 1,
"DataApontamento": "2018-07-06T11:01:14-03:00",
"TipoApontamento": {
"ID": "TP"
},
"DataHoraInicio": null,
"DataHoraFim": null,
"Tempo": null,
"Intervalo": 0,
"Funcionario": {
"ID": 1369
},
"Final": false,
"Usuario": "Apontamento API",
"Refugos": {
"$values": []
},
"OrigemApontamento": "API",
"ApontamentoMaquina": {
"Maquina": {
"ID": 68
}
}
}
JSON Incluir Apontamento Intervalo de Hora¶
JSON Incluir Apontamento Intervalo de Hora
{
"OrdemRoteiro": {
"ID":333479
},
"Quantidade": 1,
"DataApontamento": null,
"TipoApontamento": {
"ID": "IH"
},
"DataHoraInicio": "2018-07-06T08:00:00-03:00",
"DataHoraFim": "2018-07-06T09:00:00-03:00",
"Tempo": null,
"Intervalo": 0,
"Funcionario": {
"ID": 1369
},
"Final": false,
"Usuario": "Apontamento API",
"Refugos": {
"$values": []
},
"OrigemApontamento": "API",
"ApontamentoMaquina": {
"Maquina": {
"ID": 68
}
}
JSON Incluir Apontamento Tempo Total¶
JSON Incluir Apontamento Tempo Total
{
"OrdemRoteiro": {
"ID":333479
},
"Quantidade": 1,
"DataApontamento": null,
"TipoApontamento": {
"ID": "TT"
},
"DataHoraInicio": null,
"DataHoraFim": null,
"Tempo": 1,
"Intervalo": 0,
"Funcionario": {
"ID": 1369
},
"Final": false,
"Usuario": "Apontamento API",
"Refugos": {
"$values": []
},
"OrigemApontamento": "API",
"ApontamentoMaquina": {
"Maquina": {
"ID": 68
}
}
JSON Incluir Apontamento com Refugo¶
JSON Incluir Apontamento com Refugo
{
"OrdemRoteiro": {
"ID":333479
},
"Quantidade": 0,
"DataApontamento": null,
"TipoApontamento": {
"ID": "TT"
},
"DataHoraInicio": null,
"DataHoraFim": null,
"Tempo": 1,
"Intervalo": 0,
"Funcionario": {
"ID": 1369
},
"Final": false,
"Usuario": "Apontamento API",
"Refugos": {
"$values": [
{
"Quantidade": 2,
"Motivo": {
"ID": 8
},
"Causa": {
"ID": 1
}
}
]
},
"OrigemApontamento": "API",
"ApontamentoMaquina": {
"Maquina": {
"ID": 68
}
}
JSON Incluir Apontamento com Ferramenta¶
JSON Incluir Apontamento com Ferramenta
{
"OrdemRoteiro": {
"ID":332945
},
"Quantidade": 1,
"DataApontamento": "2018-07-06T11:01:14-03:00",
"TipoApontamento": {
"ID": "TP"
},
"DataHoraInicio": null,
"DataHoraFim": null,
"Tempo": null,
"Intervalo": 0,
"Funcionario": {
"ID": 1369
},
"Final": false,
"Usuario": "Apontamento API",
"Refugos": {
"$values": []
},
"OrigemApontamento": "API",
"ApontamentoMaquina": {
"Maquina": {
"ID": 68
},
"ApontamentoFerramentas": {
"$values": [
{
"Ferramenta":{
"ID": 70
}
}
]
}
}
}
Excluir Apontamento¶
Excluir Apontamento
DELETE
~/api/Entities/Manufatura.Producao.Apontamento.ApontamentoProducao/{ID}
Header
Authorization
Bearer { token}
Content-Type
application/json
Retorno
{
"ConcurrencyErrorOccurred": false,
"Succeeded": false,
"AnySucceeded": false,
"Failed": true,
"AllFailed": true,
"BaseErrorMessage": null,
"ErrorMessage": {mensagem do erro},
"Exception": null
}
Retornar Lista de Motivos de Paradas de Máquina¶
Retornar Lista de Motivos de Paradas de Máquina
POST
~/api/Commands/Manufatura.Producao.CadastrosAuxiliares. GetMotivosApontParadaMaquina
Header
Authorization
Bearer { token}
Content-Type
application/json
X-EMPR-ID
{ID da Empresa}
Body (JSON)
getOrdensRequest "skip": 0,
"take": 0
Retorno
{
"$values": [
{
"Codigo": 100,
"Descricao": "ABASTECIMENTO",
"ID": 184
}
]
}
Retornar Lista das Paradas de Máquina¶
Retornar Lista das Paradas de Máquina
POST
~/api/Commands/Manufatura.Producao. GetApontamentosParadaByMaquinaCommand
Header
Authorization
Bearer { token}
Content-Type
application/json
X-EMPR-ID
{ID da Empresa}
Body (JSON)
getOrdensRequest
"maquinaID": 100,
"skip": 0,
"take": 0,
Retorno
{
"$values": [
{
"DataHoraInicio": "2018-07-17T08:00:00-03:00",
"DataHoraFim": "2018-07-17T09:00:00-03:00",
"Maquina": {
"Codigo": "100",
"Descricao": "APARELHO DE SOLDA 250A TCM 325",
"Ativo": true,
"Tipo": {
"ID": "M",
"Description": "Máquina"
},
"ID": 58
},
"Funcionario": {
"Codigo": "1",
"Nome": "FOCCO3I",
"Ativo": true,
"Funcoes": [
{
"ID": "CMPR",
"Description": "Comprador"
},
{
"ID": "DIRE",
"Description": "Diretor"
}
],
"ID": 1369
},
"OrdemProducao": null,
"OrdemRoteiro": null,
"MotivoApontParadaMaquina": {
"Codigo": 100,
"Descricao": "ABASTECIMENTO",
"ID": 184
},
"Tempo": 1,
"ID": 164
},
]
}
Inclusão de Parada de Máquina¶
Inclusão de Parada de Máquina
POST
~/api/Entities/Manufatura.Producao. ApontamentoParadaMaquina
Header
Authorization
Bearer { token}
Content-Type
application/json
Body
{
"Empresa": {
"ID":10
},
"DataHoraInicio": "2018-07-17T08:00:00-03:00",
"DataHoraFim": "2018-07-17T09:00:00-03:00",
"Maquina": {
"ID": 58
},
"Funcionario": {
"ID": 1369
},
"OrdemProducao": {
"ID": 15442
},
"OrdemRoteiro": {
"ID": 30587
},
"MotivoApontParadaMaquina": {
"ID": 184
}
}
Retorno
{
"ConcurrencyErrorOccurred": false,
"Succeeded": false,
"AnySucceeded": false,
"Failed": true,
"AllFailed": true,
"BaseErrorMessage": null,
"ErrorMessage": {mensagem do erro},
"Exception": null
}
Exclusão de Parada de Máquina¶
Exclusão de Parada de Máquina
DELETE
~/api/Entities/Manufatura.Producao. ApontamentoParadaMaquina/{ID}
Header
Authorization
Bearer { token}
Content-Type
application/json
Retorno
{
"ConcurrencyErrorOccurred": false,
"Succeeded": false,
"AnySucceeded": false,
"Failed": true,
"AllFailed": true,
"BaseErrorMessage": null,
"ErrorMessage": {mensagem do erro},
"Exception": null
}