CE PLUS - Nota 004265

Módulo: DRAWBACK

Funcionalidade: Forecast

Data/Hora da Publicação: 24/07/2007 00:00:00

Data/Hora Última Alteração: 01/03/2010 17:41:03

Descrição da Nota: EXPLOSÃO DA LISTA TÉCNICA MULTINÍVEL

Sintoma

 

O programa não está explodindo a Lista Técnica em todos os níveis.

 

Solução

 

Criada consistencia para verificar se a lista técnica esta ativa.

Versões Tratadas

7.0

Informações Complementares

 

----------------------------------------------------------------------------------------------------

Nota Número 04265 Data: 24/07/2007 Hora: 15:43:26

----------------------------------------------------------------------------------------------------

 

----------------------------------------------------------------------------------------------------

Nota Número              : 04265

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00002

Agrupamento              : 00005

----------------------------------------------------------------------------------------------------

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

----------------------------------------------------------------------------------------------------

EXPLOSÃO DA LISTA TÉCNICA MULTINÍVEL

----------------------------------------------------------------------------------------------------

Palavras Chave:

EXPLOSÃO LISTA TÉCNICA NIVEIS /PWS/ZYCIR106 FORECAST

 

----------------------------------------------------------------------------------------------------

Objetos da nota:

REPS /PWS/ZYCIR106

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/ZYCIR106

 

...

      werks  LIKE marc-werks ,

      stlan  LIKE stpox-stlan,

      stlnr  LIKE stpo-stlnr ,

      stlal  LIKE stpox-stlal,

      capid  LIKE tc04-capid .

DATA: END OF it_materiais.

DATA : BEGIN OF i_mat OCCURS 0,

       matnr  LIKE mara-matnr,

       werks  LIKE marc-werks,

       mtart  LIKE mara-mtart,

* >> Início da inclusão:

       stlal TYPE mast-stlal,

* << Fim da inclusão

       qtde   type /pws/zycit245-qtd_iten,

       meins  LIKE mara-meins,

       postp  LIKE stpo-postp.

DATA : END OF i_mat.

DATA : BEGIN OF i_final OCCURS 0,

         insumo  LIKE mara-matnr,

         produto   LIKE stpox-idnrk,

         centro    LIKE stpox-werks,

         ncm       LIKE marc-steuc,

         qtunit    type /pws/zycit245-qtd_iten,

...

 

...

                                      pnivel.

      ENDLOOP.

      EXPORT i_final TO MEMORY ID idmemory2.

      FREE MEMORY ID idmemory1.

    ELSE.

      FREE MEMORY ID idmemory2.

    ENDIF.

  ENDIF.

FORM f_lista_tecnica USING v_item v_centro v_mtart

                           v_dtval v_tipo v_meins v_prim_nivel.

* >> Início da inclusão: FORM F_LISTA_TECNICA

  DATA: BEGIN OF itab_t415s OCCURS 0.

  DATA: stlst TYPE t415s-stlst.

  DATA: END OF itab_t415s.

  DATA: BEGIN OF itab_list OCCURS 0.

  DATA: stlst TYPE stko-stlst,

        stlal TYPE mast-stlal.

  DATA: END OF itab_list.

  SELECT stlst FROM t415s INTO TABLE itab_t415s

      WHERE kzbdp EQ 'X' AND

            kzpaf EQ 'X' AND

            kzklf EQ 'X' AND

            kzapf EQ 'X' AND

            kzauf EQ 'X' .

* << Fim da inclusão

  CLEAR i_mat.

  REFRESH i_mat.

  i_mat-matnr = v_item.

  i_mat-werks = v_centro.

  i_mat-mtart = v_mtart.

  i_mat-qtde  = 1.

  i_mat-meins = v_meins.

  APPEND i_mat.

  LOOP AT i_mat.

    v_qtdeaux = i_mat-qtde.

    REFRESH i_stb.

    CLEAR   i_stb.

* >> Início da inclusão: FORM F_LISTA_TECNICA

    IF NOT i_mat-stlal IS INITIAL.

      v_stlal = i_mat-stlal.

    ENDIF.

* << Fim da inclusão

    IF NOT i_mat-mtart IS INITIAL AND i_mat-mtart EQ wa_zycit321-mtart.

      PERFORM f_explosao USING i_mat-werks

                               wa_zycit321-capid1

                               wa_zycit321-stlan1

                               v_dtval.

    ELSE.

      PERFORM f_explosao USING i_mat-werks

                               wa_zycit321-capid2

                               wa_zycit321-stlan2

                               v_dtval.

    ENDIF.

* >> Início da exclusão: FORM F_LISTA_TECNICA

    v_stlal = '01'.

* << Fim da exclusão

    IF sy-subrc NE 0 OR i_stb[] IS INITIAL.

      IF v_tipo EQ space AND sy-subrc EQ 5 OR

         v_tipo EQ space AND sy-subrc EQ 7 OR

         ( i_stb[] IS INITIAL and sy-subrc EQ 0 ).

        i_final-produto  = v_item.

        i_final-insumo = i_mat-matnr.

        i_final-centro   = i_mat-werks.

        i_final-qtunit   = i_mat-qtde.

        i_final-meins    = i_mat-meins.

        SELECT SINGLE a~steuc INTO i_final-ncm

...

 

...

            APPEND i_mat.

          ENDIF.

        ELSE.

          v_centro = i_stb-werks.

          PERFORM f_busca_centro USING i_stb-idnrk v_centro.

          i_mat-matnr = i_stb-idnrk.

          i_mat-werks = v_centro.

          i_mat-mtart = i_stb-mtart.

          i_mat-qtde  = v_quant.

          i_mat-meins = i_stb-meins.

* >> Início da inclusão: FORM F_LISTA_TECNICA

          REFRESH itab_list.

          CLEAR: itab_list, itab_t415s.

          SELECT b~stlst b~stlal FROM mast AS a INNER JOIN stko AS b ON

            a~stlnr EQ b~stlnr AND

            a~stlal EQ b~stlal

            INTO TABLE itab_list

              WHERE a~matnr EQ i_stb-idnrk

                AND a~werks EQ v_centro.

          LOOP AT itab_list.

            READ TABLE itab_t415s WITH KEY stlst = itab_list-stlst.

            IF sy-subrc EQ 0.

              exit.

            ENDIF.

          ENDLOOP.

          IF NOT itab_t415s IS INITIAL.

            i_mat-stlal = itab_list-stlal.

* << Fim da inclusão

          APPEND i_mat.

* >> Início da inclusão: FORM F_LISTA_TECNICA

          ELSE.

            i_final-produto  = v_item.

            i_final-insumo = i_stb-idnrk.

            i_final-centro   = i_stb-werks.

            i_final-qtunit   = v_quant.

            i_final-meins    = i_stb-meins.

            SELECT SINGLE a~steuc INTO i_final-ncm

                   FROM ( marc AS a INNER JOIN t001w AS b ON

                          a~werks EQ b~werks )

                   WHERE a~matnr EQ i_final-produto

                     AND a~steuc NE space

                     AND b~land1 EQ t001w-land1.

            PERFORM carrega_umncm_real USING i_final-insumo

                                    CHANGING i_final-meins

                                             i_final-qtunit.

            IF NOT i_final-qtunit IS INITIAL.

              COLLECT i_final.

            ENDIF.

          ENDIF.

* << Fim da inclusão

        ENDIF.

      ENDIF.

    ENDLOOP.

  ENDLOOP.

ENDFORM.

FORM f_explosao USING v_centro v_capid v_stlan v_dtval.

  CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'

       EXPORTING

            altvo                 = 'X'

            capid                 = v_capid

...