CE PLUS - Nota 006237

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Fatura Mercadoria

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

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

Descrição da Nota: REPLICAÇÃO DE FORNECEDOR/FABRICANTE NO ITEM DA FATURA

Sintoma

 

Replicação de fornecedor/fabricante no item da fatura

 

Solução

 

Nova funcionalidade para replicação de fabricante nos itens da fatura de mercadoria

Versões Tratadas

7.0

Informações Complementares

 

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

Nota Número 06237 Data: 25/03/2008 Hora: 16:24:27

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

 

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

Nota Número              : 06237

Categoria                : Melhoria

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00005

Agrupamento              : 00040

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

REPLICAÇÃO DE FORNECEDOR/FABRICANTE NO ITEM DA FATURA

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

Palavras Chave:

REPLICAÇÃO - FORNECEDOR -  FABRICANTE - ITEM DA FATURA

 

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

Objetos da nota:

CUAD /PWS/SAPMZYCI003

DYNP /PWS/SAPMZYCI003                        0450

REPS /PWS/MZYCI003F01

REPS /PWS/MZYCI003F02

REPS /PWS/MZYCI003I01

REPS /PWS/MZYCI003O01

REPS /PWS/MZYCI003TOP

REPS /PWS/MZYCI003X01

REPT /PWS/SAPMZYCI003

 

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

Modificações efetuadas em CUAD /PWS/SAPMZYCI003

 

 

*Criado o código de função no detalhe do item na tela 0400

 

Código de função     Tecla F Tecla de função                Código de função     Texto

 

000005               21      Shift-F9                       REPL                 Replicação

 

*Criado um botão na barra de botões - tela 0400

Code de objeto       Code Item Tecla de função                Código de função     Id   Exibição

Texto

 

000005               0001 05   Shift-F9                       REPL

 

*Criado os seguintes textos de informações - tela 0400

 

Texto informativo  Funções ativas CI - Detalhe do Item

 

     Status               Código de função

 

     400                  REPL

 

*Criado o pf-status 0450

 

Texto informativo  Teclas de função Replicar Fornecedor

 

     Código de função     Tecla F Tecla de função                Código de função     Texto

 

     000009               00      ENTER                          ENTE                 Ok

     000009               02      F2                             ENTE                 Ok

     000009               06      F6                             CHECK                Marcar Tudo

     000009               07      F7                             UNCHECK              Desmarcar

     000009               27      Ctrl-F3                        BACK                 Voltar

 

*Criado o Status Gui 0450

 

Status               Tipo Code de objeto       Code de objeto            Descrição

 

0450                 D    000009               000009               0001 Replicar Fornecedor

 

 

*Criado os seguintes textos de informações - tela 0450

 

Texto informativo  Funções ativas Replicar Fornecedor

 

     Status               Código de função

 

     0450                 BACK

     0450                 CHECK

     0450                 ENTE

     0450                 UNCHECK

 

*Características dos botões - tela 0450

 

Código de função     Categoria Res. Nome campo p/texto GUI dinâmico

 

BACK                                ICON_ARROW_LEFT

CHECK                               ICON_SELECT_ALL

REPL                                ICON_WORKFLOW_FORK

UNCHECK                             ICON_DESELECT_ALL

 

 

*Criado o seguinte título - tela 0450

 

Título

 

     Code título          Título

 

     0450                 Replicar Fabricante

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCI003                        0450

 

INCLUIR TELA 0450

Descrição                CI - Replicar Fabricante

Tela seguinte            0450

Altura atual (linhas)    27

Largura atual (colunas)  120

 

INCLUIR CONTROLE DE TABELA "TC_IREP"

Altura                   12

Comprimento Visível      59

Linha                    2

Coluna                   7

 

INCLUIR TEXTO "TIT" em tbl.contr./tabstr.

Altura                   55

Comprimento Visível      5

Linha                    1

Formato                  CHAR

Texto                    Itens

 

INCLUIR TEXTO "TEXT001" em tbl.contr./tabstr.

Altura                   13

Comprimento Visível      8

Linha                    1

Coluna                   1

Formato                  CHAR

Texto                    Embarque

 

INCLUIR TEXTO "TEXT002" em tbl.contr./tabstr.

Altura                   12

Comprimento Visível      6

Linha                    1

Coluna                   2

Formato                  CHAR

Texto                    Pedido

 

INCLUIR TEXTO "TEXT003" em tbl.contr./tabstr.

Altura                   8

Comprimento Visível      4

Linha                    1

Coluna                   3

Formato                  CHAR

Texto                    Item

 

INCLUIR TEXTO "TEXT004" em tbl.contr./tabstr.

Altura                   18

Comprimento Visível      8

Linha                    1

Coluna                   4

Formato                  CHAR

Texto                    Material

 

INCLUIR CAIXA DE VERIFICAÇÃO "WA_REPL-MARK" em tbl.contr./tabstr.

Altura                   1

Comprimento Visível      1

Linha                    1

Formato                  CHAR

Texto                    _

 

INCLUIR CAMPO TEXTO "WA_REPL-EBELN" em tbl.contr./tabstr.

Altura                   13

Comprimento Visível      10

Linha                    1

Coluna                   1

Formato                  CHAR

Texto                    __________

 

INCLUIR CAMPO TEXTO "WA_REPL-NRSEQ" em tbl.contr./tabstr.

Altura                   12

Comprimento Visível      10

Linha                    1

Coluna                   2

Formato                  CHAR

Texto                    __________

 

INCLUIR CAMPO TEXTO "WA_REPL-EBELP" em tbl.contr./tabstr.

Altura                   8

Comprimento Visível      5

Linha                    1

Coluna                   3

Formato                  NUMC

Texto                    _____

 

INCLUIR CAMPO TEXTO "WA_REPL-MATNR" em tbl.contr./tabstr.

Altura                   18

Comprimento Visível      18

Linha                    1

Coluna                   4

Formato                  CHAR

Texto                    __________________

Código função

 

INCLUIR OKCODE ""

 

MODIFICAR LÓGICA DE PROCESSAMENTO TELA 0450

* >> Início da inclusão:

PROCESS BEFORE OUTPUT.

  MODULE : screen_lines,

           status_screen.

loop at itab_repl with control tc_irep.

     module: carrega_estrutura.

endloop.

PROCESS AFTER INPUT.

loop at itab_repl.

     module: carrega_itab.

endloop.

 MODULE USER_COMMAND_0450.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI003F01

 

...

 

FORM exibe_item.

  CLEAR v_consiste.

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

  CLEAR itab_itens_aux.

  REFRESH itab_itens_aux.

  move itab_zycit003[] to itab_itens_aux[].

 

  LOOP AT itab_zycit003 ." WHERE marc EQ 'X'.

    IF itab_zycit003-marc EQ 'X'.

      v_index_det = sy-tabix.

      v_consiste = v_consiste + 1.

    ENDIF.

    MOVE-CORRESPONDING itab_zycit003 TO itab_itens_aux.

    APPEND itab_itens_aux.

  ENDLOOP.

* << Fim da inclusão

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

  LOOP AT itab_zycit003 WHERE marc EQ 'X'.

      v_index_det = sy-tabix.

      v_consiste = v_consiste + 1.

  ENDLOOP.

* << Fim da exclusão

 

  IF sy-subrc EQ 0 AND v_consiste = '1'.

    MOVE-CORRESPONDING itab_zycit003 TO /pws/zycie003.

    IF /pws/zycie006-fabricante = '2'.

      IF /pws/zycie003-flagfabr = 'S'.

      ELSE.

        CLEAR /pws/zycie003-lifnrfabr.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI003F02

 

...

 

* >> Início da inclusão:

FORM carrega_estrutura_0450.

  wa_repl-nrseq = itab_repl-nrseq.

  wa_repl-ebeln = itab_repl-ebeln.

  wa_repl-ebelp = itab_repl-ebelp.

  wa_repl-matnr = itab_repl-matnr.

  wa_repl-mark  = itab_repl-mark .

ENDFORM.

MODULE user_command_0450 INPUT.

  CASE sy-ucomm.

    WHEN 'BACK'.

      SET SCREEN 0.

      LEAVE SCREEN.

    WHEN 'CHECK'.

      LOOP AT itab_repl.

        itab_repl-mark = 'X'.

        MODIFY itab_repl.

      ENDLOOP.

    WHEN 'UNCHECK'.

      LOOP AT itab_repl.

        itab_repl-mark = ' '.

        MODIFY itab_repl.

      ENDLOOP.

    WHEN 'ENTE'.

      MOVE itab_zycit003 TO wa_zycie003.

      LOOP AT itab_repl WHERE mark EQ 'X'.

        READ TABLE itab_zycit003 WITH KEY ebeln = itab_repl-ebeln

                                          ebelp = itab_repl-ebelp.

        IF sy-subrc EQ 0.

          itab_zycit003-fabric    =  wa_zycie003-fabric   .

          itab_zycit003-lifnrfabr =  /pws/zycie003-lifnrfabr.

          itab_zycit003-descfab   =  /pws/zycie003-descfab  .

          itab_zycit003-paisfab   =  /pws/zycie003-paisfab  .

          itab_zycit003-paquis    =  /pws/zycie003-paquis   .

          MODIFY itab_zycit003

          TRANSPORTING fabric lifnrfabr descfab paisfab paquis

          WHERE ebeln = itab_zycit003-ebeln

          AND   ebelp = itab_zycit003-ebelp.

        ENDIF.

      ENDLOOP.

      MOVE wa_zycie003 TO itab_zycit003.

      LEAVE TO SCREEN 0.

  ENDCASE.

ENDMODULE.

FORM fill_itab_repl.

  CLEAR itab_repl.

  REFRESH itab_repl.

  LOOP AT itab_itens_aux WHERE

       ( ebeln NE itab_zycit003-ebeln OR

        ebelp NE itab_zycit003-ebelp ).

    itab_repl-nrseq = itab_itens_aux-nrseq.

    itab_repl-ebeln = itab_itens_aux-ebeln.

    itab_repl-ebelp = itab_itens_aux-ebelp.

  CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT'

       EXPORTING

            input  = itab_itens_aux-matnr

       IMPORTING

            output = itab_repl-matnr

          .

IF sy-subrc <> 0.

ENDIF.

    APPEND itab_repl .

  ENDLOOP.

  SORT itab_repl BY ebeln ebelp.

ENDFORM.

FORM comm_repl.

  READ TABLE itab_itens_aux WITH KEY ebeln = itab_repl

                                     ebelp = itab_repl.

  IF sy-subrc EQ 0.

    itab_itens_aux-fabric    = itab_zycit003-fabric    .

    itab_itens_aux-lifnrfabr = itab_zycit003-lifnrfabr .

    itab_itens_aux-descfab   = itab_zycit003-descfab   .

    itab_itens_aux-paisfab   = itab_zycit003-paisfab   .

  ENDIF.

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI003I01

 

...

        READ TABLE itab_zycit003 INDEX v_index_det.

        MOVE-CORRESPONDING itab_zycit003 TO /pws/zycie003.

      ENDIF.

    WHEN 'ULTI'.

      DESCRIBE TABLE itab_zycit003 LINES v_index_det.

      READ TABLE itab_zycit003 INDEX v_index_det.

      MOVE-CORRESPONDING itab_zycit003 TO /pws/zycie003.

    WHEN 'BACK' OR 'EXIT'.

      CLEAR /pws/zycie003.

      LEAVE TO SCREEN '0100'.

* >> Início da inclusão: MODULE USER_COMMAND_0400

    WHEN 'REPL'.

      DESCRIBE TABLE itab_zycit003 LINES v_line.

      IF v_line EQ 1.

        MESSAGE s015 WITH text-187.

        exit.

      ELSE.

        perform fill_itab_repl.

        CALL SCREEN '0450' STARTING AT 5 2.

      ENDIF.

* << Fim da inclusão

  ENDCASE.

ENDMODULE.

 

...

 

...

 

* >> Início da inclusão:

module carrega_itab input.

case sy-dynnr.

when '0450'.

  itab_repl-mark = wa_repl-mark.

  MODIFY itab_repl INDEX tc_irep-current_line TRANSPORTING mark.

endcase.

endmodule.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI003O01

 

...

 

MODULE status_0400 OUTPUT.

* >> Início da exclusão: MODULE STATUS_0400

  SET PF-STATUS '400'.

* << Fim da exclusão

* >> Início da inclusão: MODULE STATUS_0400

  IF /pws/zycie006-tpfatura EQ '01' AND

     /pws/zycie006-fabricante EQ '2'.

    SET PF-STATUS '400' .

  ELSE.

    SET PF-STATUS '400' EXCLUDING 'REPL'.

  ENDIF.

* << Fim da inclusão

ENDMODULE.

...

 

...

 

* >> Início da inclusão:

module Screen_lines output.

case sy-dynnr.

  when '0450' .

      DESCRIBE TABLE itab_zycit003 LINES v_line.

      tc_irep-lines = v_line.

endcase.

endmodule.

module status_screen output.

  CASE sy-dynnr.

    WHEN '0450'.

      SET TITLEBAR '0450'.

      SET PF-STATUS '0450'.

  endcase.

endmodule.

module carrega_estrutura output.

  CASE sy-dynnr.

    WHEN '0450'.

     perform carrega_estrutura_0450.

  endcase.

endmodule.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI003TOP

 

...

  ts_faturas TYPE TABSTRIP,

  tc_faturas TYPE TABLEVIEW USING SCREEN '0001',

  tc_ccambio TYPE TABLEVIEW USING SCREEN '0103',

  tc_rof     TYPE TABLEVIEW USING SCREEN '0104',

  tc_itens   TYPE TABLEVIEW USING SCREEN '0106',

  tc_desp    TYPE TABLEVIEW USING SCREEN '0107',

  tc_banco   TYPE TABLEVIEW USING SCREEN '0108',

  tc_ded     TYPE TABLEVIEW USING SCREEN '0109',

  tc_fat_parc TYPE TABLEVIEW USING SCREEN '0111',

  tc_imp     TYPE TABLEVIEW USING SCREEN '0113',

* >> Início da exclusão:

  tc_cambio  TYPE TABLEVIEW USING SCREEN '0350',

  tc_pg_ant   TYPE TABLEVIEW USING SCREEN '0500'.

* << Fim da exclusão

* >> Início da inclusão:

  tc_cambio   TYPE TABLEVIEW USING SCREEN '0350',

  tc_pg_ant   TYPE TABLEVIEW USING SCREEN '0500',

  tc_irep     TYPE TABLEVIEW USING SCREEN '0450'.

* << Fim da inclusão

DATA:

  wa_cols    TYPE cxtab_column.

DATA:  gv_subscreen_0050   TYPE sy-dynnr VALUE '0051',

       gv_subscreen_0100_1 TYPE sy-dynnr,

       gv_subscreen_0300_2 TYPE sy-dynnr.

CONSTANTS: BEGIN OF gc_subscreen,

             prog     TYPE sy-dynnr VALUE '0100',

             help     TYPE sy-dynnr VALUE '0053',

           END OF gc_subscreen.

DATA:  gv_html_help TYPE REF TO cl_gui_html_viewer.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI003X01

 

...

DATA: BEGIN OF itab_zycit003 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycie003.

DATA: total LIKE /pws/zycit036-vldif,

      livre(1) TYPE c,

      invoiced LIKE /pws/zycie263-qtd_iten,

      toinv    LIKE /pws/zycie263-qtd_iten,

      vlfre_aux LIKE /pws/zycit036-vlmov,

      vlseg_aux LIKE /pws/zycit036-vlmov,

      marc.

DATA: END OF itab_zycit003.

* >> Início da inclusão:

 DATA: BEGIN OF itab_itens_aux OCCURS 0 .

         INCLUDE STRUCTURE /pws/zycie003.

 DATA: total LIKE /pws/zycit036-vldif,

       livre(1) TYPE c,

       invoiced LIKE /pws/zycie263-qtd_iten,

       toinv    LIKE /pws/zycie263-qtd_iten,

       vlfre_aux LIKE /pws/zycit036-vlmov,

       vlseg_aux LIKE /pws/zycit036-vlmov,

       marc.

 DATA: END OF itab_itens_aux.

 

DATA: wa_zycie003 like itab_zycit003 .

* << Fim da inclusão

DATA: BEGIN OF itab_zycit047 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit047.

DATA: END OF itab_zycit047.

DATA BEGIN OF itab_zycit132 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit132.

DATA: compensado,

      mark TYPE c.

DATA END OF itab_zycit132.

DATA: BEGIN OF itab_zycbt035 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycbe035.

...

 

...

  DATA: value(132).

  DATA: BEGIN OF f_tab OCCURS 10.

          INCLUDE STRUCTURE help_value.

  DATA: END OF f_tab.

  DATA: BEGIN OF v_tab OCCURS 200,

          value(40) TYPE c,

  END OF v_tab.

  DATA: BEGIN OF itab_rateio OCCURS 0.

          INCLUDE STRUCTURE /pws/zycit391.

  DATA: END OF itab_rateio.

* >> Início da inclusão:

DATA: BEGIN OF itab_repl OCCURS 0,

         nrseq       LIKE /pws/zycie003-nrseq,

         ebeln       LIKE /pws/zycie003-ebeln,

         ebelp       LIKE /pws/zycie003-ebelp,

         matnr       like /pws/zycie003-matnr,

         mark,

      END OF itab_repl.

  data wa_repl like itab_repl.

* << Fim da inclusão

  DATA v_del.

DATA: END OF COMMON PART.

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCI003

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 187

 

Texto: (29 caracteres)

"Fatura possui apenas um item."

 

Comprimento máximo: 29