Tabela ORDR no SAP Business One (Pedido de venda (cabeçalho))

ORDR é a tabela do SAP Business One que guarda o cabeçalho de cada pedido de venda: cliente, datas, totais e status. As linhas ficam na RDR1, relacionadas por DocEntry, e o tipo de objeto é 17.

Campos-chave da ORDR

CampoO que contém
DocEntryChave interna. Relaciona com RDR1.DocEntry.
DocNumNúmero do pedido que os usuários veem.
DocDateData de lançamento do pedido.
DocDueDateData de entrega solicitada.
CardCodeCliente. Relaciona com OCRD.CardCode.
CardNameNome do cliente como aparece impresso no pedido.
DocTotalTotal do pedido com imposto.
DiscPrcntPercentual de desconto do cabeçalho.
DocStatusO = em aberto, C = fechado (entregue ou faturado por completo, ou fechado manualmente).
CANCELEDY se o pedido foi cancelado.
SlpCodeVendedor. Relaciona com OSLP.

Como a ORDR se relaciona com outras tabelas

ORDR é o cabeçalho e RDR1 as linhas, relacionadas por DocEntry. Nas linhas, OpenQty é a quantidade que falta entregar e LineStatus indica se a linha está em aberto. Quando uma entrega ou uma nota fiscal é copiada do pedido, as linhas de destino gravam BaseType = 17 e BaseEntry = ORDR.DocEntry.

Joins mais comuns

  • ORDR T0 INNER JOIN RDR1 T1 ON T0.DocEntry = T1.DocEntry (linhas)
  • ORDR T0 INNER JOIN OCRD T2 ON T0.CardCode = T2.CardCode (cliente)
  • INV1 T3 ON T3.BaseType = 17 AND T3.BaseEntry = T1.DocEntry AND T3.BaseLine = T1.LineNum (notas fiscais criadas a partir do pedido)

Quando usar a tabela ORDR

Use a ORDR e a RDR1 para listas de pedidos pendentes, planejamento de expedição, entrada de pedidos por período e revisão do estoque confirmado. Para “o que ainda falta expedir”, trabalhe com as linhas (RDR1.OpenQty) em vez do status do cabeçalho, porque um pedido pode estar parcialmente entregue.

Pedidos vindos de uma loja virtual ou de um portal entram pela DI API (objeto Documents, oOrders) ou pelo Service Layer (Orders). Editar por código um pedido fechado retorna -1029 “Field cannot be updated” (o campo não pode ser atualizado), por exemplo em ORDR.VatSum, então verifique o DocStatus antes de oferecer uma edição. Veja -1029 e outros erros da DI API.

Consulta de exemplo: linhas de pedidos de venda em aberto com quantidade pendente

SQL Server

SELECT T0.DocNum, T0.DocDueDate, T0.CardCode, T0.CardName,
  T1.ItemCode, T1.Dscription, T1.Quantity, T1.OpenQty, T1.WhsCode
FROM ORDR T0
INNER JOIN RDR1 T1 ON T0.DocEntry = T1.DocEntry
WHERE T0.DocStatus = 'O' AND T1.LineStatus = 'O' AND T1.OpenQty > 0
ORDER BY T0.DocDueDate, T0.DocNum

SAP HANA (nomes de colunas entre aspas duplas)

SELECT T0."DocNum", T0."DocDueDate", T0."CardCode", T0."CardName",
  T1."ItemCode", T1."Dscription", T1."Quantity", T1."OpenQty", T1."WhsCode"
FROM ORDR T0
INNER JOIN RDR1 T1 ON T0."DocEntry" = T1."DocEntry"
WHERE T0."DocStatus" = 'O' AND T1."LineStatus" = 'O' AND T1."OpenQty" > 0
ORDER BY T0."DocDueDate", T0."DocNum"

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: O status do cabeçalho não basta com entregas parciais

Um pedido continua com DocStatus = 'O' enquanto alguma linha estiver em aberto, então um relatório só de cabeçalho mostra o pedido inteiro como pendente. Use RDR1.LineStatus e OpenQty para ver o que realmente falta entregar. Veja Consulta de pedidos de venda em aberto.

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

Tabelas relacionadas

RDR1 (Pedido de venda (linhas)) · ODLN (Entrega (cabeçalho)) · OINV (Nota fiscal de saída (cabeçalho)) · OITW (Estoque do item por depósito) · OCRD (Parceiros de negócios) · 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.