cancel
Showing results for 
Search instead for 
Did you mean: 

Cancelamento de NF de entrada

Former Member
0 Kudos

Bom dia pessoal.

Não estão conseguindo cancelar uma nf de entrada o SAP retorna o seguinte erro:

(1) Nota Fiscal deve-se basear em um pedido de compras ou Recebimento de Mercadoria

Sendo que a NF ja esta baseada em um pedido de compra, só não tem recebimento.

Accepted Solutions (1)

Accepted Solutions (1)

fbio_bilicki
Active Contributor

Bom dia,


Você tem que verificar suas Transactions, suas consultas e relatórios.

Antigamente era possível cancelar uma nota de entrada somente copiando ela para Dev. Nota Fiscal de Entrada, ou seja,
OPCH (Objeto 18) para ORPC (Objeto 19), então em uma trava básica de nota fiscal de entrada, teremos.

IF (@error = 0) AND (@sObjTyp ='18') AND (@sTraTyp IN ('U','A'))
BEGIN
  SELECT @error = 1, .....
  FROM [dbo].[OPCH] T0 
  WHERE T0.DocEntry = @sKeyVal AND ....
END


Com o novo tipo de cancelamento (botão direito, cancelar), o SAP gera o registro na mesma tabela, OPCH, com mesmo objeto, mas um detalhe é que ele gera o registro com o campo CANCELED = "F" e, altera o campo CANCELED do registro original para "C".

Exemplo:
Nota Fiscal Entrada: OPCH (DocEntry=17422, CANCELED="N")

Ao cancelar método antigo, canceled não é alterado: OPCH (DocEntry=17422, CANCELED="N"), cria o ORPC (Objeto 19)
Ao cancelar método novo (botão direito, cancelar)
OPCH (DocEntry=17422, CANCELED="Y") - Canceled é alterado para "Y"
OPCH (DocEntry=17423, CANCELED="C") - Gera um novo registro de cancelamento co Canceled "F" (um "substituto" do ORPC).

Uma trava especifica de uma nota fiscal de entrada, ignorando o cancelamento seria

IF (@error = 0) AND (@sObjTyp ='18') AND (@sTraTyp IN ('U','A'))
BEGIN
  SELECT @error = 1, .....
  FROM [dbo].[OPCH] T0 
  WHERE T0.DocEntry = @sKeyVal AND T0.CANCELED = "N" AND ....
END


Muitos relatórios e consultas fiscais tenho o seguinte filtro (tive que revisar todos quando mudamos o SAP para versão 9).

SELECT
.....
FROM OPCH T0
WHERE 

T0.DocEntry NOT IN (SELECT 
TB1.BaseEntry FROM ORPC TB0 INNER JOIN RPC1 TB1 ON TB0.DocEntry = 
TB1.DocEntry WHERE TB1.BaseEntry IS NOT NULL and TB0.SeqCode = 1) -- Não
 entra nota cancelada SAP 8/9

AND T0.CANCELED = 'N' -- Não entra nota cancelada SAP 9


[]'s

Fabio

SAP 9.1 PL11 / SAP 9.2 PL05 (test)


....

Answers (3)

Answers (3)

duduvictorino
Explorer
0 Kudos

Olá, boa tarde!

Estou precisando dessa transaction, já manda ela ai?

Obrigado

Former Member
0 Kudos

Seu eu comentar ele eu consigo?

Former Member
0 Kudos

Ricardo, bom dia!

Essa mensagem ocorre quando tem uma Transaction, necessário corrigir o trecho no SQL.