Tabela OBTN no SAP Business One (Números de lote (cadastro))

OBTN é a tabela do SAP Business One que guarda o cadastro de números de lote: uma linha por item e lote, com o número do lote, as datas de fabricação e de validade e o status. Ela não informa onde está o estoque: as quantidades por depósito ficam na OBTQ, relacionada por OBTQ.MdAbsEntry = OBTN.AbsEntry (ou por ItemCode mais SysNumber).

Campos-chave da OBTN

CampoO que contém
AbsEntryChave interna do lote. OBTQ.MdAbsEntry aponta para ela.
ItemCodeItem ao qual o lote pertence. Relaciona com OITM.ItemCode.
SysNumberNúmero interno do lote por item. Junto com ItemCode, identifica o lote.
DistNumberO número do lote que os usuários veem e imprimem.
MnfSerialAtributo de lote 1 (muitas vezes o lote do fabricante).
LotNumberAtributo de lote 2.
ExpDateData de validade.
MnfDateData de fabricação.
InDateData em que o lote foi recebido.
Status0 = liberado, 1 = sem acesso, 2 = bloqueado.
OBTQ.WhsCodeDepósito que tem a quantidade.
OBTQ.QuantityQuantidade do lote nesse depósito.
OBTQ.CommitQtyQuantidade confirmada em documentos em aberto.

Como a OBTN se relaciona com outras tabelas

OBTN é o cadastro de lotes, e a OBTQ tem uma linha por lote e depósito com Quantity, CommitQty e CountQty. Relacione as duas por OBTQ.MdAbsEntry = OBTN.AbsEntry, ou por ItemCode e SysNumber juntos. Só os itens controlados por lote têm linhas aqui. As posições de depósito, quando usadas, acrescentam outro nível de quantidades por posição.

Joins mais comuns

  • OBTN T0 INNER JOIN OBTQ T1 ON T1.MdAbsEntry = T0.AbsEntry (quantidade por depósito)
  • OBTN T0 INNER JOIN OBTQ T1 ON T1.ItemCode = T0.ItemCode AND T1.SysNumber = T0.SysNumber (mesmo join, por item e lote)
  • OBTN T0 INNER JOIN OITM T2 ON T2.ItemCode = T0.ItemCode (cadastro de itens)
  • OBTQ T1 INNER JOIN OWHS T3 ON T3.WhsCode = T1.WhsCode (depósito)

Quando usar a tabela OBTN

Use a OBTN com a OBTQ para relatórios de validade (separação FEFO), estoque por lote e depósito, listas de recolhimento quando um fornecedor faz recall de um lote e para garantir que lotes bloqueados ou sem acesso não sejam vendidos. Empresas de alimentos, farmacêuticas e químicas rodam esses relatórios todos os dias.

Consulta de exemplo: estoque por lote e depósito com dias até o vencimento

SQL Server

SELECT T0.ItemCode, T2.ItemName, T0.DistNumber AS BatchNumber, T0.ExpDate,
  T1.WhsCode, T1.Quantity, DATEDIFF(day, GETDATE(), T0.ExpDate) AS DaysLeft
FROM OBTN T0
INNER JOIN OBTQ T1 ON T1.MdAbsEntry = T0.AbsEntry
INNER JOIN OITM T2 ON T2.ItemCode = T0.ItemCode
WHERE T1.Quantity > 0
ORDER BY T0.ExpDate, T0.ItemCode

SAP HANA (nomes de colunas entre aspas duplas)

SELECT T0."ItemCode", T2."ItemName", T0."DistNumber" AS "BatchNumber", T0."ExpDate",
  T1."WhsCode", T1."Quantity", DAYS_BETWEEN(CURRENT_TIMESTAMP, T0."ExpDate") AS "DaysLeft"
FROM OBTN T0
INNER JOIN OBTQ T1 ON T1."MdAbsEntry" = T0."AbsEntry"
INNER JOIN OITM T2 ON T2."ItemCode" = T0."ItemCode"
WHERE T1."Quantity" > 0
ORDER BY T0."ExpDate", T0."ItemCode"

Cole qualquer uma das duas versões em Ferramentas → Consultas → Gerador de consultas. Precisa do outro dialeto para a sua própria consulta? Use o conversor de SQL para HANA.

Erro comum: A OBTN sozinha mostra lotes que já acabaram

Todo lote já recebido permanece na OBTN, inclusive lotes vendidos ou consumidos há muito tempo; por isso, um relatório só sobre a OBTN lista todos eles. Faça o join com a OBTQ e filtre Quantity > 0 para ver o estoque real, e agrupe por depósito, porque o mesmo lote pode estar distribuído em vários depósitos. Relacionar só por ItemCode, sem SysNumber nem MdAbsEntry, multiplica as linhas. Veja Consulta de lotes próximos do vencimento.

Consultas prontas que usam a OBTN (em inglês)

Tabelas relacionadas

OITM (Itens (cadastro de itens)) · OITW (Estoque do item por depósito) · pesquisar todas as tabelas do SAP Business One

Fontes: Documentação e SDK do SAP Business One (referência das tabelas do banco de dados da DI API), SAP Help Portal.

Pronto para começar?

Diga do que você precisa. Você recebe uma resposta técnica clara, um escopo fechado e um preço, normalmente em até 24 horas.