ApontamentoMaoObra
Execução de Apontamento de Mão de Obra / Tempo (rotina automática
MATA681) e consulta dos apontamentos resultantes na
tabela SH6. Substitui a User Function legada
U_GAIZ681 (_incorporar/Execauto/GAIZ_MATA681.prw)
por um endpoint REST no padrão da biblioteca, na forma ação +
read-only: apenas POST de execução e três rotas
GET de consulta — sem PUT nem DELETE,
porque apontamento é movimento irreversível pelo próprio MATA681.
https://erpapi.jetme.com.br/api/99/01
Empresa 99 · Filial 01
Endpoint OAuth2
Sem credenciais? Você pode pegar o token rodando
./src/scripts/get-token.sh na biblioteca e
colar o access_token aqui no campo de refresh
(ou clique em "Logout" para limpar e voltar ao fake).
Convenções
Ação irreversível. O POST dispara
MATA681, que grava em SH6 e atualiza
SC2 (C2_QUJE/C2_QUREFUG). Não há
rotina de estorno automática nesta revisão (ver
PROXIMOS-PASSOS.md §8). Por esta razão o endpoint não
expõe PUT nem DELETE — só execução e
consulta. Para "desfazer" um apontamento equivocado é necessário rodar
a rotina inversa manualmente no ERP.
Quatro modos de apontamento. O campo
tipo (1..4) seleciona o modo, herdado sem alteração
semântica do legado GAIZ681:
tipo=1— normal (default):horaIni+horaFin+qtd+perda.tipo=2— tempo com horas e datas:horaIni+horaFin(sem quantidade).tipo=3— tempo total:tempo(stringHH:MM; sem horas individuais).tipo=4— apenas quantidade:qtd(datas para auditoria).
Quando tipo é omitido, assume 1.
Marker H6_OBSERVA. O legado preenchia
H6_OBSERVA = "GMATA681|<ident>|<seq>" para
permitir reconciliação posterior. Comportamento preservado: o endpoint
aceita ident e seq opcionais no payload e
monta o marker. Se ambos ausentes, vira "GMATA681||".
Formato de datas e horas. emissao é
string YYYYMMDD de 8 dígitos (pattern
^\d{8}$) — preenche
H6_DTAPONT/H6_DATAINI/H6_DATAFIN.
horaIni/horaFin/tempo são
strings HH:MM. Não há conversão ISO — o formato é o
mesmo do dicionário Protheus.
Paginação e delta-sync. /_list usa
page/pageSize (default 50, máx
500). Para sincronização incremental, alterne para
orderBy=recno e use since/cursor
conforme o nextCursor retornado.
Identificador externo. A rota
/WsApontamentoMaoObra/{op} usa o número da Ordem de
Produção (H6_OP) como chave. Para resolver uma linha
específica de SH6 use /_byid?tipo=recno&valor=…
(msuid ainda não está disponível no padrão atual da
tabela — retorna 501).
Apontamento
Execução do MATA681 (movimento irreversível)Descrição
Executa MsExecAuto sobre MATA681. O wrapper
U_MT681Exc aplica Pergunte("MTA680",.F.) antes
da chamada, neutralizando o grupo de perguntas interativo. O modo do
apontamento é controlado pelo campo tipo (1..4) — ver
Convenções.
Pré-checks aplicados antes do MsExecAuto:
- Produto (
SB1) existe e não está bloqueado (B1_MSBLQL). - Operação (
SG2) existe para o produto. - Recurso (
SH1) cadastrado. - Ordem de Produção (
SC2) existente, em aberto e com saldo. - Local (
SBE) cadastrado — só quandolocalé informado.
Request body
op, produto, operacao,
recurso, emissao obrigatórios. Campos opcionais variam
conforme tipo — ver
ApontamentoPayload.
POST https://erpapi.jetme.com.br/api/99/01/WsApontamentoMaoObra Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "tipo": 1, "op": "TST00100101", "produto": "PA001", "operacao": "10", "recurso": "REC001", "emissao": "20991231", "horaIni": "08:00", "horaFin": "10:00", "qtd": 1.0, "perda": 0.0, "local": "01", "ident": "TST", "seq": "0001" }
POST https://erpapi.jetme.com.br/api/99/01/WsApontamentoMaoObra Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "tipo": 2, "op": "TST00100101", "produto": "PA001", "operacao": "10", "recurso": "REC001", "emissao": "20991231", "horaIni": "08:00", "horaFin": "12:00", "ident": "TST", "seq": "0002" }
POST https://erpapi.jetme.com.br/api/99/01/WsApontamentoMaoObra Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "tipo": 3, "op": "TST00100101", "produto": "PA001", "operacao": "10", "recurso": "REC001", "emissao": "20991231", "tempo": "04:00", "ident": "TST", "seq": "0003" }
POST https://erpapi.jetme.com.br/api/99/01/WsApontamentoMaoObra Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Content-Type: application/json Accept: application/json { "tipo": 4, "op": "TST00100101", "produto": "PA001", "operacao": "10", "recurso": "REC001", "emissao": "20991231", "qtd": 0.5, "perda": 0.0, "ident": "TST", "seq": "0004" }
Respostas
ExecResponse com a chave técnica da SH6 (recno) e flag pt (P=Parcial, T=Total).emissao fora do pattern ^\d{8}$. Tier: validation-error.post-no-op.json, post-op-fechada.json.MsExecAuto não classificada (stack do AutoLog em data).Consulta
Leitura da SH6 — por OP, por filtro paginado, por id técnicoDescrição
Retorna todos os apontamentos (linhas SH6) registrados
para a OP informada. Útil para auditar quanto já foi apontado em uma
Ordem de Produção, conferir C2_QUJE versus
C2_QUANT, ou reconciliar markers H6_OBSERVA.
Path parameter
C2_NUM+C2_ITEM+C2_SEQUEN).Chamada de exemplo
GET https://erpapi.jetme.com.br/api/99/01/WsApontamentoMaoObra/TST00100101 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
Respostas
{ success: true, data: { filial, op, count, linhas[] } } — cada linha conforme Linha.op ausente. Tier: validation-error.Descrição
Lista apontamentos com filtros opcionais por filial,
op, produto, recurso. Suporta dois
modos de ordenação:
orderBy=chave(default) — paginação porpage/pageSize.orderBy=recno— delta-sync, usasince/cursorcomnextCursorretornado.
Retorna o schema enxuto ListItem
(campos lowercased) — para o registro SH6 completo use
/_byid ou /{op}.
Query parameters
xFilial("SH6").B1_COD).SH1).1, mínimo 1).50, máx 500).chave.chaverecnoorderBy=recno).nextCursor de página anterior.Chamada de exemplo
GET https://erpapi.jetme.com.br/api/99/01/WsApontamentoMaoObra/_list?op=TST00100101&page=1&pageSize=50 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
GET https://erpapi.jetme.com.br/api/99/01/WsApontamentoMaoObra/_list?orderBy=recno&since=0&pageSize=200 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
Respostas
data (array de ListItem), page, pageSize, count, opcionalmente nextCursor.orderBy inválido, pageSize > 500).Descrição
Busca uma linha específica da SH6 por id técnico — útil
para integrações que persistem recno (ou
msuid quando disponível na release) e querem
reconfirmar o registro sem reconstruir a chave de negócio.
Disponibilidade: msuid requer
índice/coluna específica que pode não estar presente na release atual
— retorna 501 nesse caso. recno sempre
disponível.
Query parameters
recnomsuidtipo=recno, string quando tipo=msuid).Chamada de exemplo
GET https://erpapi.jetme.com.br/api/99/01/WsApontamentoMaoObra/_byid?tipo=recno&valor=1234 Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
GET https://erpapi.jetme.com.br/api/99/01/WsApontamentoMaoObra/_byid?tipo=msuid&valor=9f7a3e2c4b8d1a0e Authorization: Bearer eyJhbGciOiJIUzI1NiIs… Accept: application/json
Respostas
{ success: true, data: Linha }.tipo/valor ausentes ou tipo fora do enum.msuid requer índice/coluna não disponível no ambiente.Schemas
Definições canônicas — campos com origemSX3 rastreável
POST /WsApontamentoMaoObra. Obrigatórios:
op, produto, operacao,
recurso, emissao. Demais campos variam
conforme o valor de tipo — ver Convenções.
1. 1=normal · 2=tempo com horas · 3=tempo total · 4=apenas qtd.1234C2_NUM+C2_ITEM+C2_SEQUEN).SB1).SG2 índice 3: filial+produto+operação).SH1) — máquina, posto, célula.YYYYMMDD (8 dígitos). Pattern ^\d{8}$. Preenche também H6_DATAINI e H6_DATAFIN.HH:MM). Obrigatório em tipo=1 e tipo=2.HH:MM). Obrigatório em tipo=1 e tipo=2.HH:MM). Obrigatório em tipo=3.tipo=1 e tipo=4.0.SBE). Quando informado, é validado no pré-check.H6_OBSERVA = "GMATA681|<ident>|<seq>". Útil para reconciliar com sistemas externos.PROXIMOS-PASSOS.md §8 — geração automática planejada).SH6 — retornada
nos GETs /{op} e /_byid. Composição
allOf = campos H6_* + ids técnicos
(recno, msuid, msuidt).
HH:MM).HH:MM).P=Parcial · T=Total (encerra a operação)."GMATA681|<ident>|<seq>" quando vindo deste endpoint.msuid./_list. Campos lowercased (sem
prefixo H6_) para reduzir payload em listagens longas.
Para o registro completo da SH6 use Linha.
"GMATA681|...").POST. data traz
o resumo do apontamento gerado (chave da SH6 + flag parcial/total),
suficiente para o cliente referenciar a linha sem novo GET.
true em resposta de sucesso."Apontamento realizado").1234P) ou Total (T). T indica encerramento da operação na SC2.PT/_byid?tipo=recno&valor=….data pode conter o
NomeAutoLog do MsExecAuto (stack do MATA681)
quando aplicável, útil para diagnóstico programático.
false em erros.NomeAutoLog).