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:
Se você tem problemas na compensação automática, leia as seções abaixo.
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.
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).
A causa pode estar tanto no lado de SD ou de FI:
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.
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‘
...
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:
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:
...
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.