segunda-feira, 23 de julho de 2018

Se não tem como, dá se um Gtin nnnn

Rejeição GTINno ambiente de homologação

Rejeição 611: GTIN (cEAN) inválido [nItem:999]
Rejeição 612: GTIN da unidade tributável (cEANTrib) inválido [nItem:999]
Rejeição 882: GTIN (cEAN) com prefixo inválido [nItem:999]
Rejeição 883: GTIN (cEAN) sem informação [nItem:999]
Rejeição 884: GTIN da unidade tributável (cEANTrib) com prefixo inválido [nItem:999]
Rejeição 885: GTIN informado, mas não informado o GTIN da unidade tributável [nItem:999]
Rejeição 886: GTIN da unidade tributável informado, mas não informado o GTIN [nItem:999]
Rejeição 887: Informado GTIN de agrupamento de produtos homogêneos (GTIN-14) no GTIN da unidade tributável [nItem:999]
Rejeição 888: GTIN da unidade tributável (cEANTrib) sem informação [nItem:999]
Rejeição 889: Obrigatória a informação do GTIN para o produto [nItem:999]
Rejeição 890: GTIN inexistente no Cadastro Centralizado de GTIN (CCG) [nItem:999]
Rejeição 891: GTIN incompatível com a NCM [nItem:999]
Rejeição 892: GTIN incompatível com CEST [nItem:999]
Rejeição 893: GTIN da unidade tributável diverge do GTIN de nível inferior cadastrado no CCG [nItem:999]
Rejeição 894: GTIN da unidade tributável inexistente no Cadastro Centralizado de GTIN (CCG) [nItem:999]
Rejeição 895: GTIN da unidade tributável incompatível com a NCM [nItem:999]
Rejeição 896: GTIN da unidade tributável incompatível com CEST [nItem:999]

No sap preencha o código EAN no cadastro de materiais. Certifique que a NCM esteja condizente com a tributação e verifique o Cest na J1BTAX

Se não tem com, dá se um Gtin nnnnn
Para no Abab e prencha a Tag. A regra é clara a Sefaz já ativou!

Os sys-da-vida giram em torno do ABAP.

Na linguagem ABAP existem códigos que são de utilização obrigatória para qualquer programa que faça alterações no PRD. Não que você venha a usar todos. Mas os principais você deve e pode conhecer.


SY-SUBRC - Orienta se uma determinada ação obteve sucesso. No ABAP, a expressão lógica "IS INITIAL" nos indica que o operador contém seu valor inicial. Isso retorna um teste lógico. Neste ponto você cria o seu "se".
SY-UNAME - Retorna o nome do usuário. Essa é boa para relatórios, cargas e cargas.SY-DATUM - Retorna a data do sistema. Sempre bom saber que dia a "caca" foi feita!SY-UZEIT -   Retorna a hora, minuto e segundo do sistema - Horário exato da "caca"SY-TCODE - Retorna código da transação atual. Usado quando seu código quer testar a transação. Quero que valide pela XK01, coloco isso! A XK02 nem passa.SY-TABIX - Retorna o número da linha da tabela atual (Normalmente usando dentro de loop.) - Regra cuidado com loop de loop, and select de loop e loopppp e loooppppp... SY-LANGU - Retorna o idioma de logon do usuário. Quase não usado quando regionalizado então, nem pisca.SY-DYNNR - Retorna o número da tela atual. Boa. Quero a tela a telaaaa ... essaaa telaaaaa!SY-UCOMM - Retorna o nome de um botão pressionado (OKCODE). Se clicar no X da direita fecha, mas e o X da esquerda. Eu disse somente no dá direitaaaaa. Na dúvida coloque o nome do botão!
Mais abap deste ponto para baixo, mas é bom conhecer. Isso não te ocupará espaço!
SY-MANDT - Retorna o mandante do sistema. Trava este código somente neste mandante!
SY-REPID - Retorna o nome do programa. 
SY-CPROG - Nome do programa principal.
SY-FDPOS - Utilizado na comparação de Strings.SY-BATCH - Indica a execução de um programa em background.SY-LINNO - Retorna a linha corrente de um relatório.SY-LISEL - Retorna a linha selecionada em relatórios interativos.SY-MANDT - Retorna o mandante do sistema.SY-PAGNO - Retorna a página atual de um relatório.SY-TVAR0 .. SY-TVAR9 - Retorna elementos de textos ou títulos de relatórios.SY-VLINE - Efetua a fechamento de bordas em um relatório.SY-ULINE(N) - Imprime uma linha com n posições.SY-DBCNT - Dentro de SELECT, contém o contador de interação.

E para que uso isso??? Como bom especificador, todo Z criado no sistema deve possuir no mínimo alguns destes no código. Imagine que você crie um programa para dar uma carga de dados. E se a carga falhar? E se... e se... Seeeeeee .... Fudxxx!
Claro que não. Se for fazer um Z para gravar alguma coisa, peça ao abap para internamente no programa gravar em uma tabela Z de log acrescentado o antes e o depois em uma coluna marcada com X, o SY-UNAME, SY-DATUM, SY-UZEIT. Pronto, você fez o programa e qualquer um que o executar deixará gravado o que foi feito.
Na dúvida, no erro... Basta desfazer a caca! (ahhhhhh não previu isso). Ainda assim, seu dia foi salvo porque todas alterações foram gravadas. Isso é o que importa!


SRET SAP

SRET


Arvore de relatórios... Cada um com seu cada um, cada um... Um susto.

NFe 4.0 Rejeição 833


A rejeição está ocorrendo no QAS.

Rejeição 883: GTIN (cEAN) sem informação [nItem:999] - Como resolver?
Quando for emitida uma NF-e (modelo 55) ou NFC-e (modelo 65) e o GTIN (Campo: cEAN) não for informado, haverá a rejeição 883 - GTIN (cEAN) sem informação [nItem:999].

Exceções e Observações
Para essa Regra de Validação não há exceções. Para produtos que não possuem GTIN, utilizar a informação de "SEM GTIN".

Regra de Validação da Sefaz 833

Exemplo
Foi emitida uma NF-e sem o preenchimento o campo cEAN. Nessas condições, a NF-e foi rejeitada pelo motivo 883.
Trecho de XML: 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<prod>
    <cProd>272128RA</cProd>
    <!-- GTIN (Global Trade Item Number) do produto, antigo código
EAN ou código de barras -->
    <cEAN/>
    <xProd>J.B. Impressora Officeprint 1420</xProd>
    <NCM>94034000</NCM>
    <CFOP>6107</CFOP>
    <uCom>PC</uCom>
    <qCom>1.0000</qCom>
    <vUnCom>118.90000000</vUnCom>
    <vProd>118.90</vProd>
    <!-- GTIN (Global Trade Item Number) da unidade tributável, antigo código
EAN ou código de barras -->
    <cEANTrib>SEM GTIN</cEANTrib>
    <uTrib>UN</uTrib>
    <qTrib>1.0000</qTrib>
    <vUnTrib>118.90000000</vUnTrib>
    <indTot>1</indTot>
</prod>

Como resolver?
Caso o seu sistema ERP faça o cálculo / geração automática do GTIN de cada produto, é importante reportar essa situação a sua equipe de suporte / desenvolvimento para que seja corrigido o problema.
No exemplo apresentado, para resolução foi preenchido "SEM GTIN".
Trecho de XML que deverá ser alterado: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<prod>
    <cProd>272128RA</cProd>
    <!-- GTIN (Global Trade Item Number) do produto, antigo código
EAN ou código de barras -->
    <cEAN>SEM GTIN</cEAN>
    <xProd>J.B. Impressora Officeprint 1420</xProd>
    <NCM>94034000</NCM>
    <CFOP>6107</CFOP>
    <uCom>PC</uCom>
    <qCom>1.0000</qCom>
    <vUnCom>118.90000000</vUnCom>
    <vProd>118.90</vProd>
    <!-- GTIN (Global Trade Item Number) da unidade tributável, antigo código
EAN ou código de barras -->
    <cEANTrib>SEM GTIN</cEANTrib>
    <uTrib>UN</uTrib>
    <qTrib>1.0000</qTrib>
    <vUnTrib>118.90000000</vUnTrib>
    <indTot>1</indTot>
</prod>


Após a correção da NF-e, faça o reenvio do documento. No ambiente QAS do ECC o sistema foi parametrizado para fazer o mesmo que hoje está em PRD. Informando a tag Ean “SEM GTIN” na geração do xml.

Embora no ambiente de homologação o sistema da Sefaz esteja validando está informação. A Nota Técnica 2017.001_v1.30 prorroga o prazo para dezembro de 2018.

Ambiente de homologação 02/07/2018 – Aceita no QAS a informação sem Gtin ou material preenchido com EAN
Ambiente de produção 01/12/2018 - Será obrigatória em PRD e deverá ser criado demanda para atuação desta necessidade.

No SAP ECC PRD foi implementado um código na BADI ADD DATA que insere a informação “SEM GTIN” (abapimente falando)

CLASSE ZGE_CL_J_1BNF_ADD_DATA
Método ADD_DATA

Atenção:
Esse código não passa via bapi e shdb na J1B1N