on 09-01-2015 6:34 PM
Olá,
fiz uma busca nas notas sap ( 1746671 1965381 2000511 2026066 ) e em tópicos pela internet/scn mas não encontrei solução para o meu problema.
Trata-se de um cenário de recebimento Nfe que não precisa ser validada pela SEFAZ:
Registra-se no SAP uma NFe emitida por um fornecedor pelo tipo de emissão 1, ou seja quando a NFe foi emitida a SEFAZ não se encontrava em regime SVC ou contingência, a NFe foi emitido como TPEMIS = 1. A chave da nfe esta autorizada na SEFAZ como 1.
O problema ocorre quando a minha empresa ao receber a NFe se encontra no momento do registro (J1B1N, MIGO, MB0A) em regime de SVC ativo, mas prestem atenção, SVC ativo para EMITIR NFe com característica de "saída".
Acontece que a NFe é registrada mas o TPEMIS é alterado automaticamente para 6, porque o SVC naquele momento esta ativo. Digo 6 porque estou em MG, mas na unidade do PR o erro é o mesmo, pois lá o TPEMIS muda para 7 na gravação da NFe.
Quando não estou no regime SVC ativo a NFe de entrada não apresenta erros obviamente.
Procurei via spro algum parâmetro (categoria de nota principalmente ) e via código alguma condição que avaliasse o DIRECT da NFe antes de entrar na lógica abap abaixo, já que entendo que só devo checar a condição da SEFAZ em notas de saida ou notas de entrada QUE tenham a obrigatoriedade de serem enviadas a SEFAZ, como por exemplo um registro de devolução sobre a minha nfe de saida que o cliente rejeitou antes de receber.
Vamos então ao debug...
Dentro da função J_1B_NFE_GET_ACTIVE_SERVER
*begin changes for note 2000511 - SVC
IF NOT ls_active_server-svc_active IS INITIAL OR
NOT ls_active_server-svc_rs_active IS INITIAL OR
NOT ls_active_server-svc_sp_active IS INITIAL.
a primeira condição é atendida como 'X' e o SAP chama então a função J_1B_NFE_PREPARE_SVC.
aqui tenho o efeito cascata que vai gerar o problema do registro. O serviço ativo é identificado como 05
CASE 'X'.
WHEN ls_active_server-svc_sp_active.
cs_acttab-active_service = '03'.
WHEN ls_active_server-svc_rs_active.
cs_acttab-active_service = '04'.
WHEN ls_active_server-svc_active.
cs_acttab-active_service = '05'.
WHEN OTHERS.
RAISE no_numbering.
ENDCASE.
chama-se então a função J_1B_NFE_GET_TPEMIS que com a condição acima recupera o LV_TPEMIS = 6 e depois temos mais uma função que muda na estrutura o valor.
* Set TPEMIS and realculate check digit
CALL FUNCTION 'J_1BDFE_SET_TPEMIS
A lógica acima esta corretíssima, mas não sei como evita-la para o meu caso.
Como estou apenas realizando a escrituração de uma NFe de entrada e independente de estarmos ou não em regime SVC o que deve prevalecer é o tipo de emissão que se encontra na NFe que estou registrando.
Já conferi os passos manuais das notas SAP e não consegui encontrar nenhuma outra que me ajude.
Em anexo exemplo das duas categorias de nota de entrada que tenho aqui. A primeira que não precisa homologar na SEFAZ e a segunda que precisa.
Prezado(a),
O TPEMIS somente deveria ser manipulado para NF-es com categoria de nota que tenha um FORM atribuído. Todas as outras terão esta informação preenchida manualmente (via MIGO, MB*, MIRO ou J1B*n) ou automaticamente quando recebida via automação.
Qualquer comportamento diferente deste ou é desenvolvimento (como parece ser o caso) ou erro do software.
Abs,
Eduardo
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Rubia,
Era exatamente o que estava acontecendo, a categoria de nota não tem nenhum FORM atribuído, consequentemente não deveria ter tido qualquer tipo de intervenção por parte do desenvolvimento criado para o cliente.
Os usuários fizeram os testes, e o ajuste efetuado atende as necessidades do cliente.
Agradeço pela atenção
Abs
Alvaro Duarte
Olá, bom dia
Caro cliente, analisando o seu ambiente pude perceber que alguns enhancementes foram criados na transação J1b1N e transações subsquentes para atender a sua necessidades, o campo TPMIS está sendo alterado por causa de um enhancement (ZEH_NFE_NEW) que foi criado dentro do módulo de função J_!B_BFE_FILL_MONITOR_TABLE que é chamado no momento da gravação.
O enhancemente criado no final da função chama outro módulo de função 'J_1BDFE_SERVER_DETERMINATION' que alterava o código do tipo de emissão para o cadastrado no SVC.
Como solução do seu problema usamos um field-symbol verificando se o flag de entrada de nf (ou seja, se a NF e emitida ou não por sua empresa) não estiver marcado, o enhancement que existia não chamará mais a função para modificar o dado, respeitando a regra utillizada pelo usuário para o campo TPEMIS.
A solução está pronta para testes do usuário e uso de vossa empresa.
Em caso de dúvidas favor me procurar no projeto de vossa empresa
att,
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
15 | |
4 | |
2 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.