Additional Blogs by SAP
cancel
Showing results for 
Search instead for 
Did you mean: 
pedrofreitas
Advisor
Advisor

Informações Gerais

A nota 400000 - "FAQ: Transaction VF11: Cancellation of SD billing documents" descreve a resposta padrão do sistema quando fazendo o estorno do documento de faturamento e contém informações de auxílio para análise dos erros. Por favor leia essa nota para informações gerais e para tópicos comuns como:

  • Nova determinação de preço / nova determinação de conta em documentos de estorno
  • VF11 em background
  • Estorno de item
  • Campos VBRK-SFAKN e VBRK-FKSTO não preenchidos
  • VBRK-RFBSK = 'E'

Se você tem problemas na compensação automática, leia as seções abaixo.



Qual o processo de estorno que é executado?


A partir da versão 4.6 o sistema ERP contém um novo processo de estorno, que faz a compensação automática dos documentos contábeis para o documento de faturamento de origem e o estorno do documento de faturamento em FI. O sistema sempre tenta executar o novo processo de estorno quando documentos de faturamento são estornados. Se o novo processo de estorno não puder ser executado por alguma razão (as possíveis razões para isso estão descritas nas notas 1259505 pergunta 3 e nota 309208), o processo antigo de estorno será executado.

Quando o novo processo de estorno é executado


  • o documento de FI original e os documentos de estorno de FI estão ligados pelo conteúdo dos campos BKPF-STBLG e BKPF-STJAH do cabeçalho do documento
  • o item de cliente do documento de estorno de FI tem chave de lançamento 12 ('Reverse invoice')
  • o tipo de documento FI é sempre determinado em FI, baseado no tipo de documento do documento de FI a ser estornado (T003-STBLA)
  • o item do cliente do documento de FI estornado e o item do cliente do documento de estorno de FI são compensados automaticamente

Quando o processo antigo de estorno é executado


  • o documento de FI original e os documentos de estorno de FI não estão ligados pelo conteúdo dos campos BKPF-STBLG e BKPF-STJAH do cabeçalho do documento
  • o item de cliente do documento de estorno de FI tem chave de lançamento 11 ('Credit memo')
  • o tipo de documento FI é sempre determinado em SD e passado para FI (TVFK-BLART)
  • o item do cliente do documento de FI estornado e o item do cliente do documento de estorno de FI não são compensados automaticamente


A mensagem de erro VF208 ("Automatic clearing of billing document &1 and canc. doc. &2 not poss." ou em português "Compensação automática doc.faturamento &1 e estorno &2 não é possível.") é exibida em SD nesses casos. Essa mensagem de erro só informa o fato de que a compensação automática do documento de faturamento e documento de estorno falhou. Para entender porque o novo estorno não foi possível e que tipo de mensagem de erro dispara a VF208, veja a seção a seguir. Quando o processo antigo é executado, você precisa fazer a compensação dos documentos contábeis manualmente em FI (por exemplo, transação F-32).


Como descobrir porque não ocorreu o novo processo de estorno


A causa pode estar tanto no lado de SD ou de FI:


  1. As causas para que não ocorra o novo processo de estorno em SD estão detalhadas na nota 1259505 ponto 3.
  2. As causas para que não ocorra o novo processo de estorno em FI estão detalhadas na nota 309208.


Se você ainda não conseguiu identificar a causa, leia a seção a seguir para entender como depurar (debug) porque não ocorreu o novo procedimento de estorno.


Depurar (Debug) porque não ocorreu o novo procedimento de estorno


Possíveis causas para a falta do novo procedimento de estorno do lado de SD

Nesse código fonte estão definidas as causas que não permitem o novo procedimento de estorno do lado de SD.

Ver a nota 1259505 ponto 3.

Código fonte do programa LV60BU01

Function RV_ACCOUNTING_DOCUMENT_CREATE
...
* new cancellation
* sfakn is only set, when the whole invoice is cancelled
  if not vbrk-sfakn is initial and not vbrk-fktyp eq con_fktyp_p and
     rule_new_cancel ne con_a and new_acct_det is initial.                      <<< BREAKPOINT 
    if not rrrel is initial.
      nonewcancel = 'X'.
    endif.

    if nonewcancel is initial.
...
call function 'AC_DOCUMENT_REVERSE‘

...

  • O campo rule_new_cancel é blank por padrão.
  • A nota 339928 explica como setar o campo rule_new_cancel e o efeito disso




Possíveis causas para a falta do novo procedimento de estorno do lado de FI


Quando o sistema tenta liberar o documento de estorno para a contabilidade o seguinte programa é chamado:


Código fonte do programa LV60BU01
FUNCTION RV_ACCOUNTING_DOCUMENT_CREATE
...
call function 'AC_DOCUMENT_REVERSE'                               <<< BREAKPOINT  
  EXPORTING     
    i_accrev           = loc_accrev    
    i_comp             = i_comp  
  EXCEPTIONS    
    reverse_impossible = 1    
    error_message      = 2   
    others             = 3.


...
Se a função AC_DOCUMENT_REVERSE encerrar com sy-subrc = 0  os documentos de faturamento são automaticamente compensados. A função AC_DOCUMENT_REVERSE pode retornar exceções:


  • reverse_impossible
  • error_message
  • outros


No caso de “reverse_impossible” ou “outros” o sistema irá prosseguir com o procedimento de estorno antigo.


A mensagem de erro VF208 é eventualmente lançada no caso de “error_message” e dependendo do tipo de mensagem:


  • Abend message -> sempre pára a transação
  • Error message -> pára a transação, ou prossegue com o procedimento de estorno antigo dependendo do que estiver setado em rule_new_cancel (ver nota 339928)
  • Outros tipos de mensagens -> prossegue com o procedimento de estorno antigo

...
if sy-subrc eq 1 or sy-subrc = 3.          <<< BREAKPOINT   
   if check eq con_x.     
      message id 'VF' type 'I' number '208'     
      with vbrk-sfakn vbrk-vbeln.   
    else.     
      o_new_cancel_fail = 'X'.   
   endif.
endif.
...

Para encontrar que erro está por trás da mensagem VF208, a maneira mais simples é setar um breakpoint na função AC_DOCUMENT_REVERSE dentro do FORM routine CALL_DISPATCHER_STORNO_P.

Source code of   LRWCLF10
FORM CALL_DISPATCHER_STORNO_P
...
CALL FUNCTION lt_trwpr-function          <<< BREAKPOINT   
   CHANGING     
     i_accrev           = r_accrev   
   EXCEPTIONS     
     reverse_impossible = 1     
     error_message      = 2.
IF NOT sy-subrc IS INITIAL.          <<< BREAKPOINT (checar SY-MSGID, SY-MSGNO)
...

A variável LT_TRWPR-FUNCTION é usada para a chamada de funções individuais.
O conteúdo do campo LT_TRWPR-FUNCTION é o nome da função onde a exceção REVERSE_IMPOSSIBLE está ocorrendo.

Se a compensação automática não é possível, o indicador será setado como REVERSE_IMPOSSIBLE = 1. No segundo breakpoint é recomendado checar o conteúdo dos campos SY-MSGID e SY-MSGNO que indicam o número da mensagem de erro.

Lembrando que as possíveis causas que não permitem o novo procedimento de estorno (do lado de FI) estão listadas na nota 309208.

4 Comments