cancel
Showing results for 
Search instead for 
Did you mean: 

SPED Nota 1604145

Former Member
0 Kudos

Boa tarde,

Após a aplicação da nota 1604145, uma de suas novas funcionalidades é uma seleção de cfops em novas views criadas, somente exibindo notas com cfop listados la.

Verifiquei o código, foram criados após a aplicação da nota, mas na sua logica ele retorna um campo (cv_valid algo asism) pra dizer se a nota é valida ou não para utilização (pela verificação de cfops form FILTER_NF_BY_CFOP ). Ate ai tudo bem, mas não vejo esse parametro em outro lugar, ou seja, esta fazendo a verificação mas mesmo assim exibindo notas com todos os cfops. Ex: Registro 0400, C170.

Alguma luz?

Grato!

Augusto

Accepted Solutions (1)

Accepted Solutions (1)

former_member182114
Active Contributor
0 Kudos

Bom dia Augusto,

Dei uma olhada no código e o valor de cv_valid é passado ao parm lv_skip_nfdoc fazendo não ser processado no fill_register_nf código abaixo logo após o perform get_block:

  IF lv_skip_nfdoc <> abap_true.

Não está funcionando? Faça um debug e dê feedback...

Atenciosamente, Fernando Da Ró

jose_sequeira
Active Participant
0 Kudos

Bom dia Fernando,

Estava com o user de um colega.

Vou explicar melhor o fluxo:

Analisando apartir do momento que ele chama o perform get_block (form fill_registers_nf).

Ele chama o get_block passando como um dos parametros o lv_skip_nfdoc que vai permitir ou não o processamento.

Dentro do get_block, o cv_nf_valid está declarado localmente (DATA cv_nf_valid TYPE abap_bool VALUE abap_true).

E é ele (O cv_nf_valid) que é passado como parametro para o perform filter_nf_by_cfop, onde é feito o processamento do cfop (lá como cv_valid).

La dentro, ele é atribuido ao lv_has_valid_items (cv_valid = lv_has_valid_items). O lv_has_valid_items vem do retorno

da verificação de cfop ( form validate_cfop).

Após seu retorno (do form filter_nf_by_cfop), ele não tem verificação se o cv_nf_valid é abap_true ou abap_false ou se é abap_false faz o lv_skip_nfdoc = 'X', para continuar ou parar o processamento .

Somente o lv_skip_nfdoc (que pode ser alterado via BADI) pode parar ou continuar o processo.

Sendo assim, as mudanças eu fiz no metodo select_block, fazendo a mesma verificação que validate_cfop faz, se não acha o cfop ele altera o cv_skip_nfdoc (que é o unico parametro de verificação após o perform get_block no form fill_registers_nf para processar as notas) = 'X' para não processar a nota.

Veja se consegue fazer o fluxo igual, talvez seja algo do ambiente aqui (falta de nota) ou erro mesmo.

Att.

J. Augusto

former_member182114
Active Contributor
0 Kudos

Bom dia J. Augusto,

Após seu retorno (do form filter_nf_by_cfop), ele não tem verificação se o cv_nf_valid é abap_true ou abap_false ou se é abap_false faz o lv_skip_nfdoc = 'X', para continuar ou parar o processamento.

Tem este teste:

  IF cv_nf_valid IS NOT INITIAL.                          "1598967

onde faz todo o processamento dos blocos, e para o else faz:

    ELSE.                                                 "1584962
      cv_skip_nfdoc = abap_true.                          "1584962

  ENDIF. "1585025

Verifique se você tem estas três notas referenciadas aplicadas: 1598967, 1584962 e 1585025.

Atenciosamente, Fernando Da Ró

jose_sequeira
Active Participant
0 Kudos

Bom dia Fernando,

As notas na teoria estão implementadas corretamente, mas verifiquei esse bloco do código e não foi inserido.

Na nota 1598967, na alteração do objeto J_1BPIS_MAIN_SEL_NF, form get_block, a ultima inserção e eliminação não foi criada que é justamente a verificação IF cv_nf_valid IS NOT INITIAL. "1598967

Problema resolvido, vou logar com o user do colega para lhe atribuir os pontos.

Abs.,

J.Augusto

Answers (0)