Fluxo com muitos IF's



  • Olá pessoal,

    estou trabalhando em um fluxo na camada servidor e gerou o erro "code too large", procurei saber e o problema é que está extenso demais o código gerado.

    Abri o arquivo (.java) e notei que o código gerado ficou grande porque o fluxo possui vários IF's, e foi criado um dentro do outro.

    Por exemplo, quero verificar se as variáveis que tenho estão com valor maior que 0 (zero), e atribuir para um contador, meu fluxo:

    [img]http://uploaddeimagens.com.br/images/000/252/405/original/Sem_t%C3%ADtulo.jpg[/img]

    O Maker gera o fonte + ou - assim (modelo):
    *Retirei as funções utilizadas, quero mostrar a estrutura dos IF's
    [code] if(A > 0) { CONTADOR++; if(B > 0) { CONTADOR++; return null; } else { return null; } } else { if(B > 0) { CONTADOR++; return null; } else { return null; } } [/code] Mas não quero fazer dessa maneira, um dentro do outro, quero que fique assim (modelo):
    [code] if(A > 0) { CONTADOR++; } else { } if(B > 0) { CONTADOR++; } else { } return null; [/code] Alguém me ajuda?


  • Qual o problema real? O Maker não retorna correto ou a preocupação é o código gerado?


  • Com o código que é gerado, pois estou desenvolvendo um fluxo que possui muitas verificações, e pra cada verificação para o Maker é uma decisão com caminho diferente.

    O problema disso é que acarreta um tamanho grande e como a função Java tem um limite, acaba gerando o erro.

    Outra situação até mesmo destacável é que não precisa ser gerado dessa forma, e sim fazer a verificação e continuar, conforme descrevi no segundo código.


  • Entendi.

    Bom, a forma como o código é montado, a gente não interfere, isso é feito internamente. O que você pode fazer, é modularizar suas verificações, quebrando em subfluxos. Certamente irá resolver.


  • Então, estou lendo um XML da NFe, e preciso fazer várias verificações. O maior problema é que aja subfluxo, e consequentemente, aja nome de fluxo.

    Mas beleza, vou ver a melhor forma.

Log in to reply