Tabela OPOR no SAP Business One (Pedido de compra (cabeçalho))

OPOR é a tabela do SAP Business One que guarda o cabeçalho de cada pedido de compra: fornecedor, datas, totais e status. As linhas ficam na POR1, relacionadas por DocEntry, e o tipo de objeto é 22. Os recebimentos de mercadorias (OPDN/PDN1) e as notas fiscais de entrada (OPCH/PCH1) copiados do pedido apontam para ele por BaseType, BaseEntry e BaseLine.

Campos-chave da OPOR

CampoO que contém
DocEntryChave interna. Relaciona com POR1.DocEntry.
DocNumNúmero do pedido de compra que os usuários veem.
DocDateData de lançamento do pedido.
DocDueDateData de entrega prevista.
CardCodeFornecedor. Relaciona com OCRD.CardCode.
DocTotalTotal do pedido com imposto.
DocStatusO = em aberto, C = fechado (recebido por completo ou fechado manualmente).
CANCELEDY se o pedido foi cancelado.
POR1.ItemCodeItem pedido. Relaciona com OITM.ItemCode.
POR1.QuantityQuantidade pedida na linha.
POR1.OpenQtyQuantidade que falta receber.
POR1.LineStatusO = em aberto, C = fechada.
POR1.WhsCodeDepósito de recebimento. Relaciona com OWHS.

Como a OPOR se relaciona com outras tabelas

OPOR é o cabeçalho e POR1 as linhas, relacionadas por DocEntry e identificadas por LineNum. Quando um recebimento de mercadorias ou uma nota fiscal de entrada é criado a partir do pedido, cada linha de destino grava BaseType = 22, BaseEntry = o POR1.DocEntry e BaseLine = o POR1.LineNum. No sentido contrário, POR1.TargetType e TrgetEntry mostram o documento para o qual a linha foi copiada (20 = recebimento de mercadorias, 18 = nota fiscal de entrada).

Joins mais comuns

  • OPOR T0 INNER JOIN POR1 T1 ON T0.DocEntry = T1.DocEntry (linhas)
  • PDN1 T2 ON T2.BaseType = 22 AND T2.BaseEntry = T1.DocEntry AND T2.BaseLine = T1.LineNum (recebimentos de mercadorias criados a partir do pedido)
  • PCH1 T3 ON T3.BaseType = 22 AND T3.BaseEntry = T1.DocEntry AND T3.BaseLine = T1.LineNum (notas fiscais de entrada copiadas direto do pedido)
  • OPOR T0 INNER JOIN OCRD T4 ON T0.CardCode = T4.CardCode (fornecedor)

Quando usar a tabela OPOR

Use a OPOR e a POR1 para o acompanhamento de fornecedores (follow-up), os recebimentos previstos por depósito, o valor dos compromissos em aberto e a revisão de preços de compra. Trabalhe com as linhas para tudo que envolve quantidades, porque um pedido de compra costuma ser recebido em várias entregas.

Consulta de exemplo: linhas de pedidos de compra em aberto com valor a receber

SQL Server

SELECT T0.DocNum, T0.DocDueDate, T0.CardCode, T0.CardName,
  T1.ItemCode, T1.Dscription, T1.Quantity, T1.OpenQty, T1.WhsCode,
  T1.OpenQty * T1.Price AS OpenValue
FROM OPOR T0
INNER JOIN POR1 T1 ON T0.DocEntry = T1.DocEntry
WHERE T0.DocStatus = 'O' AND T0.CANCELED = 'N' AND T1.LineStatus = 'O'
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",
  T1."OpenQty" * T1."Price" AS "OpenValue"
FROM OPOR T0
INNER JOIN POR1 T1 ON T0."DocEntry" = T1."DocEntry"
WHERE T0."DocStatus" = 'O' AND T0."CANCELED" = 'N' AND T1."LineStatus" = 'O'
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 cabeçalho continua em aberto enquanto houver uma linha em aberto

OPOR.DocStatus continua 'O' até que todas as linhas estejam fechadas, então um relatório só de cabeçalho mostra um pedido 90% recebido como totalmente pendente. Use POR1.OpenQty e LineStatus. E ao rastrear recebimentos, compare os três campos base (BaseType, BaseEntry, BaseLine): o BaseEntry sozinho também coincide com outros tipos de documento que usam o mesmo número. Veja Consulta de pedidos de compra em aberto.

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

Tabelas relacionadas

OPCH (Nota fiscal de entrada (cabeçalho)) · 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.