on 09-22-2015 5:55 PM
Boa tarde!
estou com um problema curioso e estranho. Todas as NF-es que emito estão saindo com a TAG <dhEmi> com horário UTC (ou seja 3 horas a frente). Utlizamos Mastersave e, nele, o horário está correto, mas no arquivo XML está errado. O mais curioso é que o SEFEZ aprova a Nota, sem problemas. Só percebemos alguns erros no final do mês, nas últimas três horas do mês.
Abaixo segue exemplos da coisa toda.
O que percebi é que no ABAP, ele usa uma função para converter para UTC e, debugando, é nesse momento que ele muda o horário. Não entendi porque tem esse código. Se vocês repararem, foi uma nota aplicada e depois outra. Mas ficou coisa da nota mais antiga, exatamente essa função de conversão.
Tudo está configurado como Time Zone do Brasil, ou seja UTC-03:00. Tanto o usuário que roda quanto as empresas.
Obrigado,
Matheus.
Message was edited by: Renan Correa
Oi Matheus,
O ERP envia para a mensageria a data no formato UTC 0.
A mensageria SAP NF-e converte esse horário para o timezone da região que está emitindo a nota. Neste caso você precisaria que o Mastersaf fizesse a mesma conversão.
Outra opção seria implementar a nota 2135414 - [3.10] NF-e: Issuing hour not available for modification e preencher via BAdI o horário com o timezone da região antes de enviar para o Mastersaf.
att,
Renan Correa
Message was edited by: Renan Correa
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Renan,
No Mastersaf, o timezone está como UTC - 3. Se eu coloco como UTC - 0, o horário na console de administração pula 3 horas a frente, fica igual o XML.
Após implementar a nota que você mencionou, como faço para preencher via BAdI o horário antes de enviar para o Mastersaf? Vou ter que colocar algum passo no meio?
Valeu,
Matheus Caldeira.
Oi Matheus,
Sim, o SAP ERP envia para NF-e's do layout 3.10 a data/hora no formato UTC 0.
Normalmente existem dois tipos de mensageria:
1- Uma na qual se utiliza o mapeamento standard do ERP para enviar estruturas de dados via RFC para um sistema externo que monta e assina o XML.
2- Outra na qual um sistema externa utiliza um "robô" extrator de dados para buscar as informações das tabelas do ERP e montar/assinar o XML.
No caso 1 o mapeamento da SAP é com o UTC, então as opção seriam ajuste na mensageria ou na BAdI.
att,
Renan Correa
Oi Matheus,
Para preencher via BAdI você vai precisar que o ABAP crie um código para alterar o campo hemi no método FILL_HEADER adicionando as três horas. Você precisa também incluir na lógica tratamento de execeções caso emita notas em mais de um fuso e também para o horário de verão.
att,
Renan Correa
Message was edited by: Renan Correa
Renan,
Deixa eu ver se entendi, vou responder seus dois posts aqui, ok?
O SAP sempre vai mandar a data com UTC, ou seja 3 horas a mais, isso é definitivo e sempre assim. Entendi. Por isso chama aquele form convert_timespam_to_utc, certo?
Estou com uma dúvida, na nota que você mandou, diz para eu alterar a estrutura J_1BNFE_S_BADI_LAYOUT_310 e criar o campo HEMI. Mas quando entro no método FILL_ITEM, ele está usando outra estrutura e nessa entrutura também não tem o HEMI.
Obrigado,
Matheus
Oi Renan,
eu tenho um problema parecido com o do Matheus, mas no meu caso eu uso o GRC da SAP e estou no SP17.
O que acontece comigo, é que como o GRC é gerenciado pela Alemanha, meus XMLs saem com 3,4 ou 5 horas a mais, dependendo da época devido aos horários de verão daqui e de lá.
O problema é que agora, quando eu emito uma nf depois das 19hs daqui, a SEFAZ rejeita, porque tá indo já com data do dia seguinte, pois soma as benditas 5horas... a gente já tentou alterar em tudo quanto é lugar mas ainda estamos meio perdidos.
VC acha que se eu aplicar a nota 2135414 vai resolver este problema? ela deve ser aplicada no GRC ou no ERP?
obrigada!!!
Lúcia
Oi Lúcia,
No seu caso você usa mensageria da SAP então o caso é diferente. Eu recomendo verificar se todas as notas com DHEMI estão implementadas no ERP e GRC, verificar o timezone da planta onde foi feito o faturamento no ERP e conferir se está com o mesmo timezone da região no GRC. Isso deve corrigir o problema.
att,
Renan Correa
Renan,
só uma pergunta. Me surgiu uma dúvida agora... Você disse no seu post (http://scn.sap.com/community/portuguese/sped-and-nf-e/blog/2015/03/10/campo-hemi-habilitado-na-badi-...) que no include LJ_1B_NFE72, ele verifica se a data foi preenchida na BAdI e posteriormente convertida para UTC. Se eu alterar a BAdI para ele trazer o horário com o UTC-3, ele vai converter do mesmo jeito depois??
Agora fiquei na roça... hehehe!
Oi Matheus,
Na verdade a alteração que você vai fazer é pra "driblar" o sistema.
A conversão pra UTC é feita da seguinte maneira: O programa identifica qual o timezone ( ls_addr1_val-time_zone ) e então faz o offset das horas entre o timezone e o UTC 0.
No caso do timezone Brazil ( GMT -3 ) esse offset é adicionar 3 horas. Por exemplo, você está emitindo a nota as 18:00 , então na BAdI você altera para 15:00, o código irá fazer o offset para 18:00 que é o horário que você quer passar para a mensageria.
É meio confuso mas deve funcionar.
att,
Renan Correa
User | Count |
---|---|
13 | |
2 | |
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.