Skip to Content

Vou detalhar aqui um problema que já enfrentei em três diferentes empresas com relação a aplicação das notas do ECD para o layout 3.00.

Problema:

O arquivo é gerado com sucesso no SAP, porém ao submeter o arquivo no Validador da receita, na versão 3.18, é apresentado o seguinte erro: java.lang.StringIndexOutOfBoundsException: String index out of range: 1 …

Captura de Tela 2015-05-25 às 16.33.30.png

Causa:

Há um erro na geração da linha I010, onde a versão do layout não está sendo informada e este erro não é tratado pelo validador.

Linha gerada pelo SAP: |I010|G||

Linha esperada pelo validador: |I010|G|3.00|

Origem do problema:

As notas SAP, quando aplicadas manualmente, recomendam logar no idioma EN para criação e modificação de objetos. Desta forma não é realizada a tradução dos objetos para o idioma PT.

Nos passos manuais da Sapnote 2154499, há a alteração do domínio J_1BECD_COD_VER. Nesta modificação deve ser incluído um novo valor individual na aba Intervalos de Valores.

Val. Fixo Descrição Breve
003 3.00

De acordo com a versão informada na tela de seleção do extrator, o campo da linha I010 será preenchido com a descrição breve contida neste domínio. Até aí tudo perfeito.

O que ocorre é que a modificação foi feita no idioma EN, e quando o usuário está executando o extrator, provavelmente está fazendo no idioma PT. (Referência: FORM get_domain_text, Include J_1BECD_MAIN_F04) Com isso, já que não existe a tradução do texto no idioma PT, o campo fica com o valor branco.

Solução

É bem simples: basta traduzir o domínio para o idioma PT. 🙂

Abaixo vou detalhar como realizar a tradução, e mais importante, como incluí-la em uma request para transporte.

A primeira parte do processo também pode ser feita na SE63, mas optei pela SE11 por considerar mais simples.

Na transação SE11, marcar a opção Domínio e preencher com o nome J_1BECD_COD_VER. Depois ir no menu Ir Para > Tradução.

No popup que abrir, preencher o idioma de destino PT.

Captura de Tela 2015-05-25 às 16.55.11.png

Na tela seguinte, deve aparecer um item em vermelho, dentro de <VALU> Valores Fixos:

Captura de Tela 2015-05-25 às 17.02.32.png

Clicar duas vezes no nome do domínio J_1BECD_COD_VER para ir na tela de tradução.

Captura de Tela 2015-05-25 às 17.24.39.png

Com isso basta preencher a tradução com o mesmo texto 3.00 e clicar no botão Salvar.

Dessa forma a tradução está pronta, mas precisamos incluí-la em uma request para transportar aos outros ambientes.

Abrir a transação SLXT.

Bem em cima há um campo fechado para digitação com o idioma de destino. Porém é possível alterá-lo clicando no Search Help (F4).

Selecione o idioma ptBR:

Captura de Tela 2015-05-25 às 17.06.56.png

Preencher o texto descritivo da request que será criada. É possível escolher o tipo de request também, sugiro manter transporte de cópias.

Captura de Tela 2015-05-25 às 17.09.10.png

Para filtrar apenas o objeto traduzido, é possível filtrar pela data do processamento e informar o Tipo de Objeto “VALU” (Valores do Domínio) e também o seu usuário.

Captura de Tela 2015-05-25 às 17.12.37.png

Feito isso, basta executar o programa que a request será criada.

Você pode então consultar a request na transação SE10 para conferir se o objeto foi incluído corretamente.

Captura de Tela 2015-05-25 às 17.15.53.png

Dependendo da configuração do seu ambiente, você precisa definir na aba Caracts dessa request o destino, para que ao liberá-la o transporte seja feito corretamente para os outros ambientes.

Os passos descritos acima podem ser utilizados, com algumas poucas alterações, para traduzir outros textos do programa J_1BECD_MAIN ou dos domínios criados.

Espero ter ajudado.

Frisoni

To report this post you need to login first.

1 Comment

You must be Logged on to comment or reply to a post.

Leave a Reply