on 07-19-2011 8:56 PM
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
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ó
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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ó
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
User | Count |
---|---|
6 | |
5 | |
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.