PW.TP - Nota 006232

Módulo: GERAL

Funcionalidade: Atual. Estr. Lista Técnica

Data/Hora da Publicação: 25/03/2008 00:00:00

Data/Hora Última Alteração: 16/02/2011 11:01:18

Descrição da Nota: EXPLOSÃO DA LISTA TÉCNICA DE MATERIAIS

Sintoma

O programa não faz a explosão do material semi-acabado se o mesmo estiver em outro centro.

 

 

Solução

Novo tratamento para a explosão do semi-acabado de outro centro.

 

Versões Tratadas

Não Usar - 2.00.0000


Pré-Requisitos

Produto:

Nota

Descrição

ATUALIZAR ESTRUTURA DE LISTA TÉCNICA

LOG DE EXECUÇÃO

REVISÃO CODE INSPECTOR

Informações Complementares

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

Nota Número 06232 Data: 25/03/2008 Hora: 11:05:50

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

 

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

Nota Número              : 06232

Categoria                : Melhoria

Prioridade               : Alta

Versão PW.TP             : 2.0

Pacote                   : 00026

Agrupamento              : 00014

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

Referência às notas relacionadas:

Número - Ordem - Versão - Pacote - Descrição Breve

 

02660  - 00002 - 2.0    - 00023  - LOG DE EXECUÇÃO

04548  - 00001 - 2.0    - 00026  - REVISÃO CODE INSPECTOR

05595  - 00003 - 2.0    - 00026  - ATUALIZAR ESTRUTURA DE LISTA TÉCNICA

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

EXPLOSÃO DA LISTA TÉCNICA DE MATERIAIS

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

Palavras Chave:

EXPLOSAO LISTA TECNICA

 

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

Objetos da nota:

FUNC /PWS/ZYTP_BOM_EXPL_MAT_V2

REPS /PWS/LZYTPGF3F01

REPS /PWS/LZYTPGF3TOP

REPS /PWS/LZYTPGF3UXX

REPS /PWS/ZYTPC003

 

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

Modificações efetuadas em FUNC /PWS/ZYTP_BOM_EXPL_MAT_V2

CRIAR MÓDULO DE FUNÇÃO: /PWS/ZYTP_BOM_EXPL_MAT_V2

CARACTERÍSTICAS

 

CLASSIFICAÇÃO:

GRUPO DE FUNÇÕES: /PWS/ZYTPGF3

TEXTO BREVE: BOM explosion for material

 

TIPO DE EXECUÇÃO:

(X) - MÓDULO DE FUNÇÃO NORMAL

(_) - MÓDULO DE ACESSO REMOTO

(_) - MÓDULO DE ATUALIZAÇÃO

     (X) - INÍCIO IMEDIATO

     (_) - INÍCIO IMEDIATO-SEM ATUAL.POSTER.

     (_) - INÍC. RETARDADO

     (_) - PROCES. CLOETIVO

 

DADOS GERAIS:

(_) - BLOQUEIO PROCESSO

(_) - GLOBAL

 

IMPORTAÇÃO:

NOME   PARAM. ATRIB. TIPO REFERÊNCIA  VL. PROPOSTO OPCIONAL TRANSF. TEXT

 

CAPID LIKE       TC04-CAPID    'STD1'                    ID da aplicação

DATUV LIKE       STKO-DATUV    00000000   X        X       Data de validade

MEHRS LIKE       CSDATA-XFELD    SPACE      X        X       Explosão multi-nível

MTNRV LIKE       MARA-MATNR    SPACE      X        X       Material

WERKS LIKE       MARC-WERKS    SPACE      X        X       Centro

KZKFK LIKE       DMARC-KZKFK    SPACE      X        X       Considerar fator de conversão

EHNDL LIKE       CSDATA-XFELD    SPACE      X        X       Campo de seleção

EMENG LIKE       STKO-BMENG    0        X        X       Quantidade de base

MMORY LIKE       CSDATA-XFELD    SPACE       X        X       Campo de seleção

POSTP LIKE       STPO-POSTP    SPACE      X        X       Ctg.item (lista técnica)

 

 

EXPORTAÇÃO:

NOME     PARAM. ATRIB. TIPO REFERÊNCIA   TRANSF.  TEXTO BREVE

 

TOPMAT  LIKE         CSTMAT       X        Data for start material

 

TABELAS:

NOME    PARAM. ATRIB. TIPO REFERÊNCIA  OPCIONAL TEXTO BREVE

 

STB LIKE         STPOX     X        Collective item data table

MATCAT LIKE         CSCMAT     X        Material catalog (sub-assemblies)

 

EXCEÇÕES:

EXCEÇÃO                    TEXTO BREVE

ALT_NOT_FOUND             Alternative not found

CALL_INVALID               Incorrect parameter combination

MATERIAL_NOT_FOUND      Material not found

MISSING_AUTHORIZATION      No authorization (bill of material)

NO_BOM_FOUND               No BOM for this material

NO_PLANT_DATA             Material not maintained in plant

NO_SUITABLE_BOM_FOUND      BOM does not exist

CONVERSION_ERROR           Conversion error

 

TEXTO FONTE

 

* >> Início da inclusão:

FUNCTION /pws/zytp_bom_expl_mat_v2.

  DATA l_tabix  TYPE sy-tabix.

  DATA l_stufe  TYPE stpox-stufe.

  CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'

       EXPORTING

            capid                 = capid

            datuv                 = datuv

            ehndl                 = ehndl

            mehrs                 = mehrs

            mtnrv                 = mtnrv

            werks                 = werks

            emeng                 = emeng

            mmory                 = mmory

            postp                 = postp

       IMPORTING

            topmat                = topmat

       TABLES

            stb                   = stb

            matcat                = matcat

       EXCEPTIONS

            alt_not_found         = 1

            call_invalid          = 2

            material_not_found    = 3

            missing_authorization = 4

            no_bom_found          = 5

            no_plant_data         = 6

            no_suitable_bom_found = 7

            conversion_error      = 8

            OTHERS                = 9.

  IF kzkfk EQ 'X'.

    LOOP AT stb.

      IF NOT topmat-bmeng IS INITIAL.

        stb-menge = stb-menge / topmat-bmeng.

        MODIFY stb INDEX sy-tabix.

      ENDIF.

    ENDLOOP.

  ENDIF.

  IF sy-subrc EQ 0 AND mehrs EQ 'X'.

    l_stufe = 1.

    LOOP AT stb

      WHERE stufe EQ l_stufe.

      MOVE sy-tabix TO l_tabix.

      PERFORM bom_level_check

        USING stb[]

              stb

              matcat[]

              l_tabix

              l_stufe

              capid

              datuv

              mehrs

              kzkfk

              ehndl

              emeng

              mmory

              postp.

    ENDLOOP.

  ENDIF.

ENDFUNCTION.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/LZYTPGF3F01

 

* >> Início da inclusão:

FORM bom_level_check

  USING    t_stb    TYPE tt_stb

           p_stb    TYPE ty_stb

           t_matcat TYPE tt_matcat

           p_tabix  TYPE sy-tabix

           p_stufe  TYPE stpox-stufe

           p_capid  TYPE tc04-capid

           p_datuv  TYPE stko-datuv

           p_mehrs  TYPE csdata-xfeld

           p_kzkfk  TYPE dmarc-kzkfk

           p_ehndl  TYPE csdata-xfeld

           p_emeng  TYPE stko-bmeng

           p_mmory  TYPE csdata-xfeld

           p_postp  TYPE stpo-postp.

  DATA:

    t_stbx    TYPE tt_stb,

    w_stb     TYPE ty_stb,

    t_matcatx TYPE tt_matcat,

    w_marc    TYPE marc,

    w_t460a   TYPE t460a,

    w_topmat  TYPE cstmat,

    l_tabix   TYPE sy-tabix,

    l_stufe   TYPE stpox-stufe.

  IF p_stb-xtlnr IS INITIAL.

    SELECT SINGLE *

      INTO w_marc

      FROM marc

      WHERE matnr EQ p_stb-idnrk

        AND werks EQ p_stb-werks.

    IF sy-subrc EQ 0.

      SELECT SINGLE *

        INTO w_t460a

        FROM t460a

        WHERE werks EQ w_marc-werks

          AND sobsl EQ w_marc-sobsl

          AND beskz EQ w_marc-beskz

          AND wrk02 NE w_marc-werks.

      IF sy-subrc EQ 0.

        CALL FUNCTION '/PWS/ZYTP_BOM_EXPL_MAT_V2'

             EXPORTING

                  capid                 = p_capid

                  datuv                 = p_datuv

                  mehrs                 = p_mehrs

                  mtnrv                 = p_stb-idnrk

                  werks                 = w_t460a-wrk02

                  kzkfk                 = p_kzkfk

                  ehndl                 = p_ehndl

                  emeng                 = p_emeng

                  mmory                 = p_mmory

                  postp                 = p_postp

             IMPORTING

                  topmat                = w_topmat

             TABLES

                  stb                   = t_stbx

                  matcat                = t_matcatx

             EXCEPTIONS

                  alt_not_found         = 1

                  call_invalid          = 2

                  material_not_found    = 3

                  missing_authorization = 4

                  no_bom_found          = 5

                  no_plant_data         = 6

                  no_suitable_bom_found = 7

                  conversion_error      = 8

                  OTHERS                = 9.

        LOOP AT t_stbx

          INTO w_stb.

          w_stb-menge = w_stb-menge * p_stb-menge.

          w_stb-stufe = w_stb-stufe + p_stb-stufe.

          MODIFY t_stbx FROM w_stb INDEX sy-tabix.

        ENDLOOP.

        IF sy-subrc EQ 0.

          l_stufe = p_stufe + 1.

          LOOP AT t_stbx

            INTO w_stb

            WHERE stufe EQ l_stufe.

            MOVE sy-tabix TO l_tabix.

            PERFORM bom_level_check

              USING t_stbx[]

                    w_stb

                    t_matcatx[]

                    l_tabix

                    l_stufe

                    p_capid

                    p_datuv

                    p_mehrs

                    p_kzkfk

                    p_ehndl

                    p_emeng

                    p_mmory

                    p_postp.

          ENDLOOP.

          l_tabix = p_tabix + 1.

          INSERT LINES OF t_stbx INTO t_stb INDEX l_tabix.

          APPEND LINES OF t_matcatx TO t_matcat.

        ENDIF.

      ENDIF.

    ENDIF.

  ELSE.

    l_stufe = p_stufe + 1.

    LOOP AT t_stb

      INTO w_stb

      WHERE stufe EQ l_stufe

        AND stlnr EQ p_stb-xtlnr.

      MOVE sy-tabix TO l_tabix.

      PERFORM bom_level_check

        USING t_stb[]

              w_stb

              t_matcat[]

              l_tabix

              l_stufe

              p_capid

              p_datuv

              p_mehrs

              p_kzkfk

              p_ehndl

              p_emeng

              p_mmory

              p_postp.

    ENDLOOP.

  ENDIF.

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/LZYTPGF3TOP

 

...

      v_name_in LIKE tbtcjob-jobname,

      v_name_fi LIKE tbtcjob-jobname,

      v_nameant LIKE tbtcjob-jobname,

      v_count LIKE tbtcjob-jobcount.

DATA: w_mandt LIKE sy-mandt.

RANGES: r_mandt FOR sy-mandt.

RANGES: r_sysid  FOR sy-sysid,

        r_bukrsg FOR /pws/zytpt021-bukrs_g,

        r_bukrs  FOR t001-bukrs,

        r_branch FOR j_1bbranch-branch.

* >> Início da inclusão:

TYPES:

  ty_stb    TYPE stpox,

  ty_matcat TYPE cscmat,

  tt_stb    TYPE STANDARD TABLE OF ty_stb,

  tt_matcat TYPE STANDARD TABLE OF ty_matcat.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/LZYTPGF3UXX

 

...

INCLUDE /PWS/LZYTPGF3U14.

INCLUDE /PWS/LZYTPGF3U15.

INCLUDE /PWS/LZYTPGF3U16.

INCLUDE /PWS/LZYTPGF3U17.

INCLUDE /PWS/LZYTPGF3U18.

INCLUDE /PWS/LZYTPGF3U19.

INCLUDE /PWS/LZYTPGF3U20.

INCLUDE /PWS/LZYTPGF3U21.

INCLUDE /PWS/LZYTPGF3U22.

INCLUDE /PWS/LZYTPGF3U23.

* >> Início da inclusão:

INCLUDE /PWS/LZYTPGF3U24.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/ZYTPC003

 

...

                     sysid DESCENDING.

  DELETE ADJACENT DUPLICATES FROM t_zytpt025

         COMPARING zexit.

ENDFORM.

FORM f_processa_materiais.

  DATA t_bom_item   TYPE STANDARD TABLE OF stpo_api02

    WITH HEADER LINE.

  DATA t_bom_header TYPE STANDARD TABLE OF stko_api02

    WITH HEADER LINE.

  DATA v_valid_from TYPE csap_mbom-datuv.

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

  DATA: t_matcat  TYPE TABLE OF cscmat WITH HEADER LINE.

* << Fim da inclusão

  WRITE p_dt_ini TO v_valid_from.

  SORT: t_zytpt901 BY matnr,

        t_zytpt907 BY matnr.

  REFRESH t_matnr.

  LOOP AT t_zytpt907.

    CLEAR t_matnr.

    t_matnr-matnr = t_zytpt907-matnr.

    t_matnr-bwkey = t_zytpt907-werks_sd.

    APPEND t_matnr.

  ENDLOOP.

...

 

...

  ELSE.

    LOOP AT t_zytpt907.

      IF  p_inativ IS INITIAL.

        PERFORM f_verificar_unidade_medida.

        IF w_subrc = 99.

          WRITE: /001 'Problemas na Conversão de Unidade do Pai:'(m15),

                    t_zytpt907-matnr, 'Componente:'(m14), messtab-msgv1.

          CONTINUE.

        ENDIF.

        REFRESH: t_stb. CLEAR t_stb.

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

        CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'

* << Fim da exclusão

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

        CALL FUNCTION '/PWS/ZYTP_BOM_EXPL_MAT_V2'

* << Fim da inclusão

             EXPORTING

                  capid                 = p_capid

                  datuv                 = p_dt_exp

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

                  ehndl                 = '1'

* << Fim da exclusão

                  mehrs                 = 'X'

                  mtnrv                 = t_zytpt907-matnr

                  werks                 = t_zytpt907-werks_pp

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

                  emeng                 = /pws/zytpt000-qtd_f

                  sanfr                 = ' '

* << Fim da exclusão

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

                  kzkfk                 = 'X'

                  ehndl                 = '1'

                  emeng                 = 1

* << Fim da inclusão

                  mmory                 = '1'

                  postp                 = 'L'

             IMPORTING

                  topmat                = w_cstmat

             TABLES

                  stb                   = t_stb

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

                  matcat                = t_matcat

* << Fim da inclusão

             EXCEPTIONS

                  alt_not_found         = 1

                  call_invalid          = 2

                  material_not_found    = 3

                  missing_authorization = 4

                  no_bom_found          = 5

                  no_plant_data         = 6

                  no_suitable_bom_found = 7

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

                  OTHERS                = 8.

* << Fim da exclusão

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

                  conversion_error      = 8

                  OTHERS                = 9.

        LOOP AT t_stb.

          t_stb-menge = t_stb-menge * /pws/zytpt000-qtd_f.

          MODIFY t_stb TRANSPORTING menge.

        ENDLOOP.

* << Fim da inclusão

      ELSE.

        REFRESH:

          t_stb,

          t_bom_header,

          t_bom_item.

        CALL FUNCTION 'DMU_MAT_BOM_READ'

             EXPORTING

                  material   = t_zytpt907-matnr

                  plant      = t_zytpt907-werks_pp

                  bom_usage  = p_stlan

...

 

...

          t_zytpt905-versao      = ''.

          t_zytpt905-werks_pp    = t_zytpt907-werks_pp.

          t_zytpt905-matnr_o     = t_stb-idnrk.

          t_zytpt905-matnr_f     = t_zytpt907-matnr.

          t_zytpt905-valido_de   = p_dt_ini.

          t_zytpt905-valido_ate  = p_dt_fim.

          t_zytpt905-tp_lista    = '2'.

          t_zytpt905-werks       = t_zytpt907-werks_pp.

          t_zytpt905-qtd_f       = /pws/zytpt000-qtd_f.

          t_zytpt905-unidade_f   = w_cstmat-bmein.

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

          t_zytpt905-qtd_o       = t_stb-mnglg.

* << Fim da exclusão

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

          t_zytpt905-qtd_o       = t_stb-menge.

* << Fim da inclusão

          t_zytpt905-unidade_o   = t_stb-meins.

          t_zytpt905-unidade_o   = t_stb-mmein.

          t_zytpt905-refugo_o    = t_stb-kausf.

          t_zytpt905-refugo_f    = t_stb-ausss.

          READ TABLE t_zytpt025 WITH KEY zexit = 'ZTPUNIDNEG'

               BINARY SEARCH.

          IF sy-subrc = 0.

            IF NOT t_zytpt025-programa IS INITIAL.

             PERFORM (t_zytpt025-form) IN PROGRAM (t_zytpt025-programa)

                                       TABLES t_matnr

...