CE PLUS - Nota 001350

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Embarque

Data/Hora da Publicação: 16/05/2006 00:00:00

Data/Hora Última Alteração: 20/06/2011 12:28:00

Descrição da Nota: AJUSTES DE CAMPOS E CONSISTÊNCIAS NO EMBARQUE DE NACIONALIZAÇÃO.

Sintoma

1- Na vinculação da DA no embarque, aparece a tela com os lotes, mas para vários embarques o lote

aparece duplicado.

2- Não está permitindo vincular 2 lotes do mesmo item. Aparece um erro

3- Quando seleciona 1 lote e a quantidade e da enter, aparece ok o valor do embarque. Mas ao entrar

novamente no embarque, o valor está zerado

4-Não podemos deixar alterar a quantidade na tela do embarque, apenas na tela do lote

5- O Icone da DA está vindo com o nome  Centro de Trabalho  Trocar para Entreposto

6- Se o tipo  de embarque for MA no entreposto, não pode deixar trocar para TA

7- No  campo modalidade  foi digitado 01, mas ao tentar salvar, o campo fica com 1 e da erro. Tenho

de voltar a digitar 01 e salvar

 

 

 

Solução

1 - Ajustes feitos para lotes duplicados

2 - Ajustes feitos para vincular dois lotes da mesma DA

3 - Ajustado o valor do embarque.

4 - O campo quantidade permanecerá fechado.

5 - Ajustada a descrição do ícone de DA

6 - Feito consistência com a Modalidade do embarque com a da DA

7 - Não trará mais a modalidade da DA, pois são diferentes.

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

APÓS SALVAR O EMBARQUE COM REGIME 16, O SALDO DA DA E O VALOR PLANEJADO

Informações Complementares

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

Nota Número 01350 Data: 16/05/2006 Hora: 16:10:31

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

 

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

Nota Número              : 01350

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 6.0

Pacote                   : 00023

Agrupamento              : 00114

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

Referência às notas relacionadas:

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

 

01353  - 00001 - 6.0    - 00023  - APÓS SALVAR O EMBARQUE COM REGIME 16, O SALDO DA DA E O VALOR PLA

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

AJUSTES DE CAMPOS E CONSISTÊNCIAS NO EMBARQUE DE NACIONALIZAÇÃO.

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

Palavras Chave:

 

 

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

Objetos da nota:

CUAD /PWS/SAPMZYCI001

DYNP /PWS/SAPMZYCI001                        0111

REPS /PWS/MZYCI001F01

REPS /PWS/MZYCI001F03

REPS /PWS/MZYCI001I01

REPS /PWS/MZYCI001O01

REPS /PWS/MZYCI001TOP

REPS /PWS/MZYCI001X01

REPT /PWS/SAPMZYCI001

 

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

Modificações efetuadas em CUAD /PWS/SAPMZYCI001

 

*Foi alterado o texto do ícone ICON_WORK_CENTER para 'DA'.

 

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCI001                        0111

 

           Nome

           Ctg.      Linha   Coluna  CmprDf  CmVis   Altura  Format Dict  Modif At.Des.Só At

           Gr1 Gr2 Gr3 Gr4  SPA GPA ID parâm             Cód.F                TCmp   TpoLoopExbLoop

           Outros atributos

 

Modific.   BTNT0102_06

              Push       1       12      17       2       1     CHAR

                                                              SELE_DA

              Ícn.=ICON_WORK_CENTER

Inserido   BTNT0102_04

              Push       1       18      28       2       1     CHAR

              RC                                            SELE_RC

              Ícn.=ICON_IMPORT

Modific.   /PWS/ZYCIE003-QTD_ITEN

              I/O        1        5      19      14       1     DEC    X           Ent Off

              Alinh.à dir., Elem.TC

 

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

Modificações efetuadas em REPS /PWS/MZYCI001F01

 

...

        WHEN 2.

          MESSAGE a015 WITH text-024.

      ENDCASE.

    ENDLOOP.

  ENDIF.

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

  if /pws/zycie001-regime eq '14'.

     perform recuperando_itens_da.

  endif.

* << Fim da inclusão

ENDFORM.

FORM selecionar_itens.

  DATA: itab_werks LIKE itab_zycit003 OCCURS 0 WITH HEADER LINE,

        itab_t001w LIKE t001w OCCURS 0 WITH HEADER LINE.

  DATA: v_nolin TYPE i VALUE IS INITIAL,

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI001F03

 

...

      where nrseqda = itab_da-nrseqda and

            ebeln = itab_da-ebeln and

            ebelp = itab_da-ebelp.

      modify itab_da.

    endloop.

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

    MOVE ITAB_DA[] TO ITAB_DA_AUX[].

* << Fim da exclusão

else.

  SELECT /pws/zycit442~nrseqda /pws/zycit442~nrdi /pws/zycit442~bukrs

         /pws/zycit442~dtdesemb /pws/zycit460~lifnr /pws/zycit443~ebeln

         /pws/zycit443~ebelp /pws/zycit443~matnr /pws/zycit463~lote_forn

         /pws/zycit463~numfatura /pws/zycit463~qtd_lote

...

 

...

      AND /pws/zycit442~nrdi    IN so_nrda

      AND /pws/zycit443~ebeln   IN so_beln

      AND /pws/zycit443~ebelp   IN so_belp

      AND /pws/zycit443~matnr   IN so_matn.

  endif.

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

  sort itab_da by nrseqda ebeln ebelp matnr lote .

  delete adjacent duplicates from itab_da comparing

          nrseqda ebeln ebelp matnr lote.

* << Fim da inclusão

  IF NOT itab_da[] IS INITIAL.

    MOVE ITAB_DA[] TO ITAB_DA_AUX[].

    if /pws/zycie001-regime eq '14'.

    loop at itab_da.

       if itab_da-qtd_lote is initial.

...

 

...

          ENDIF.

          MOVE:itab_zycit003-ebeln    TO itab_zycit003_del-ebeln,

               itab_zycit003-ebelp    TO itab_zycit003_del-ebelp,

               itab_zycit003-qtd_iten TO itab_zycit003_del-qtd_iten.

          APPEND itab_zycit003_del.

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

          DELETE itab_zycit003 INDEX v_tabix.

          CLEAR itab_zycit003.

* << Fim da inclusão

        ELSE.

          MESSAGE w015 WITH text-190.

          EXIT.

        ENDIF.

      ENDLOOP.

...

 

...

        IF sy-subrc = 0 AND NOT /pws/zycie001-nrseq IS INITIAL.

          screen-input = 0.

          MODIFY SCREEN.

        ELSE.

          screen-input = 1.

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

          MODIFY SCREEN.

        ENDIF.

        IF /pws/zycie001-regime EQ '14' .

          screen-input = 0.

* << Fim da inclusão

          MODIFY SCREEN.

        ENDIF.

      ENDIF.

      IF /pws/zycie001-regime EQ '14' or /pws/zycie001-regime EQ '16'.

        IF screen-group2 EQ 'DA'.

...

 

...

  ENDLOOP.

ENDFORM.

FORM atualiza_itens_da.

ENDFORM.

FORM trata_screen_0111.

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

  LOOP AT SCREEN.

    CASE screen-group1.

      WHEN 'RC'.

        IF /pws/zycie001-regime NE '16'.

          screen-invisible = '1'.

          MODIFY SCREEN.

        ENDIF.

    ENDCASE.

  ENDLOOP.

* << Fim da inclusão

  IF v_status_s = 0.

    LOOP AT tc_da-cols INTO wa_cols.

      wa_cols-screen-input = '0'.

      MODIFY tc_da-cols FROM wa_cols.

    ENDLOOP.

...

 

...

       /pws/zycit442-agente     TO /pws/zycie001-agente      ,

       /pws/zycit442-bukrs      TO /pws/zycie001-bukrs       ,

       /pws/zycit442-dtsaida    TO /pws/zycie001-dtsaida     ,

       /pws/zycit442-inco1      TO /pws/zycie001-inco1       ,

       /pws/zycit442-meiotransp TO /pws/zycie001-meioemba    ,

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

       /pws/zycit442-moddesps   TO /pws/zycie001-modalidade  ,

* << Fim da exclusão

       /pws/zycit442-embarca    TO /pws/zycie001-navio      .

  ENDIF.

  loop at itab_da.

    MOVE : itab_da-ebeln   TO itab_nac-ebeln,

           itab_da-ebelp   TO itab_nac-ebelp,

...

 

...

     itab_zycit443-qtd_da         to    itab_zycit003-menge ,

     itab_zycit443-netpr          to    itab_zycit003-V_FOB ,

     /pws/zycie001-nrseq          TO    itab_zycit003-nrseq .

     IF NOT ITAB_ZYCIT443-QTD_DA IS INITIAL.

         itab_zycit003-ntgew = (  itab_zycit443-ntgew /

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

                  itab_zycit443-qtd_da ) * itab_zycit003-qtd_iten.

          itab_zycit003-v_fob = ( itab_zycit443-netpr /

* << Fim da exclusão

                  itab_zycit443-qtd_da ) * itab_zycit003-qtd_iten.

     ENDIF.

     itab_zycit003-sld_da   =  itab_zycit443-QTD_SLD =

        itab_zycit443-qtd_da - itab_zycit443-qtd_util -

        itab_zycit443-qtd_iten.

...

 

...

  SELECT MAX( nrseq ) INTO (v_nrseq) FROM /pws/zycit006

                                     WHERE nrseq LIKE v_ano1.

  v_count = v_nrseq+0(7) + 1.

  CONCATENATE v_count 'I' sy-datum+2(2) INTO /pws/zycit006-nrseq.

endform.

* >> Início da inclusão:

FORM recuperando_itens_da.

  LOOP AT itab_zycit003.

    PERFORM load_pttext USING itab_zycit003-matnr

                              sy-langu.

    IF itab_zycit003-j_1bnbm IS INITIAL.

      IF t001-land1 EQ 'BR'.

        SELECT SINGLE steuc FROM marc INTO itab_zycit003-j_1bnbm

             WHERE  matnr = itab_zycit003-matnr.

      ELSE.

        SELECT SINGLE steuc FROM marc INTO itab_zycit003-j_1bnbm

             WHERE  matnr = itab_zycit003-matnr

               AND  werks = ekpo-werks.

      ENDIF.

    ENDIF.

    MODIFY itab_zycit003.

    v_netpr = ( itab_zycit003-v_fob * itab_zycit003-qtd_iten ).

    PERFORM tratar_decimais USING   itab_zycit003-waers

                           CHANGING v_netpr.

    /pws/zycie001-netpr = /pws/zycie001-netpr + v_netpr.

    IF /pws/zycie001-netpr < 0.

      CLEAR /pws/zycie001-netpr.

      MESSAGE e061 WITH text-235 text-236.

    ENDIF.

  ENDLOOP.

ENDFORM.

FORM selecionar_rc.

  DATA:

    BEGIN OF itab_rc_aux OCCURS 100,

      cod_matriz      TYPE /pws/zycie442-bukrs,

      cod_filial      TYPE /pws/zycie442-j_1bbranch,

      num_da_di       TYPE /pws/zycie442-nrdi,

      num_adicao      TYPE /pws/zycie443-adicao,

      num_item_adicao TYPE /pws/zycie455-itseqda,

    END OF itab_rc_aux.

  REFRESH itab_da.

  SELECT *

    INTO TABLE itab_rc

    FROM /pws/zyrct025

    WHERE cod_matriz      EQ pa_matri

      AND cod_filial      EQ pa_filia

      AND num_da_di       IN so_numda

      AND num_adicao      IN so_adica

      AND num_item_adicao IN so_itadi.

  LOOP AT itab_rc.

    MOVE-CORRESPONDING itab_rc TO itab_rc_aux.

    COLLECT itab_rc_aux.

  ENDLOOP.

  IF NOT itab_rc_aux[] IS INITIAL.

    SELECT /pws/zycit442~nrseqda /pws/zycit442~nrdi

           /pws/zycit442~bukrs /pws/zycit442~dtdesemb

           /pws/zycit460~lifnr /pws/zycit443~ebeln

           /pws/zycit443~ebelp /pws/zycit443~matnr

           /pws/zycit463~lote_forn /pws/zycit463~numfatura

           /pws/zycit463~qtd_lote /pws/zycit463~qtd_nac

      INTO TABLE itab_da

      FROM ( /pws/zycit442 INNER JOIN /pws/zycit460 ON

             /pws/zycit442~nrseqda = /pws/zycit460~nrseqda

             INNER JOIN /pws/zycit443 ON

             /pws/zycit442~nrseqda = /pws/zycit443~nrseqda

             INNER JOIN /pws/zycit463 ON

             /pws/zycit463~nrseqda = /pws/zycit443~nrseqda  )

      FOR ALL entries IN itab_rc_aux

      WHERE /pws/zycit442~bukrs      EQ itab_rc_aux-cod_matriz

        AND /pws/zycit442~j_1bbranch EQ itab_rc_aux-cod_filial

        AND /pws/zycit442~nrdi       EQ itab_rc_aux-num_da_di

        AND /pws/zycit443~adicao     EQ itab_rc_aux-num_adicao.

  ENDIF.

  IF NOT itab_da[] IS INITIAL.

    DESCRIBE TABLE itab_da LINES v_line.

    CALL SCREEN '0003'.

  ELSE.

    MESSAGE s015 WITH text-259.

  ENDIF.

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI001I01

 

...

               FROM /pws/zycit001

               INTO /pws/zycie001-status

               WHERE nrseq = /pws/zycie001-nrseq.

      WHEN 'SELE_DA'.

        CALL SELECTION-SCREEN '0700'.

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

      WHEN 'SELE_RC'.

        CALL SELECTION-SCREEN '0701'.

* << Fim da inclusão

    ENDCASE.

  ENDIF.

  CLEAR okcode.

ENDMODULE.

MODULE user_command_0002 INPUT.

...

 

...

   if itab_da-qtd_nac gt itab_da-qtd_lote.

      message e015 with text-258.

   endif.

  CLEAR: v_sld.

  move itab_da[] to itab_da_aux[].

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

  move itab_da[] to itab_da_aux2[].

* << Fim da exclusão

  describe table itab_da_aux lines v_line.

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

  loop at itab_da_aux .

    v_tabix = sy-tabix.

    loop at itab_da_aux2 .

       if v_tabix ne sy-tabix.

          if itab_da_aux-nrseqda ne itab_da_aux2-nrseqda

             and not itab_da_aux2-qtd_nac is initial.

* << Fim da exclusão

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

  LOOP AT itab_da_aux where not qtd_nac is initial.

        IF itab_da_aux-nrseqda NE itab_da-nrseqda.

* << Fim da inclusão

             v_dif = 'X'.

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

          endif.

* << Fim da exclusão

       endif.

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

    endloop.

* << Fim da exclusão

  endloop.

  if v_dif = 'X'.

     MESSAGE i015 WITH text-254.

     clear itab_da-qtd_nac.

     clear v_dif.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI001O01

 

...

    it_code-fcode = 'DI'. APPEND it_code.

    SET PF-STATUS '0100' EXCLUDING 'DI'.

  ENDIF.

  IF /pws/zycie001-tpdecl EQ 'DSI' .

    it_code-fcode = 'DA'. APPEND it_code.

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

  ENDIF.

  IF /pws/zycie001-regime EQ '16' .

    it_code-fcode = 'BL'. APPEND it_code.

* << Fim da inclusão

  ENDIF.

  SELECT SINGLE land1 INTO v_land1 FROM t001

  WHERE bukrs = /pws/zycie001-bukrs.

  SET PF-STATUS '0100' EXCLUDING it_code.

  EXPORT v_status_s TO MEMORY ID '060'.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI001TOP

 

...

  /pws/zycie396,

  /pws/zycit395,

  /pws/zycie442,

  /pws/zycie443,

  /pws/zycie463,

* >> Início da inclusão:

  /pws/zyrct025,

* << Fim da inclusão

  eket.

DATA: BEGIN OF itab_zycit013 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycie013.

DATA: END OF itab_zycit013.

DATA: BEGIN OF itab_zycit395 OCCURS 0.

...

 

...

      so_nrda  FOR /pws/zycie442-nrdi ,

      so_beln FOR /pws/zycie443-ebeln,

      so_belp FOR /pws/zycie443-ebelp,

      so_matn FOR /pws/zycie443-matnr.

SELECTION-SCREEN END OF SCREEN 0700.

* >> Início da inclusão:

SELECTION-SCREEN BEGIN OF SCREEN 0701.

PARAMETERS:

  pa_matri TYPE /pws/zyrct025-cod_matriz,

  pa_filia TYPE /pws/zyrct025-cod_filial.

SELECT-OPTIONS:

  so_numda FOR /pws/zyrct025-num_da_di,

  so_adica FOR /pws/zyrct025-num_adicao,

  so_itadi FOR /pws/zyrct025-num_item_adicao.

SELECTION-SCREEN END OF SCREEN 0701.

* << Fim da inclusão

AT SELECTION-SCREEN OUTPUT.

  IF sy-dynnr EQ '0300'.

    LOOP AT SCREEN.

* >> Início da exclusão:

      IF

* << Fim da exclusão

* >> Início da inclusão:

      IF ( screen-name EQ 'SO_INCO1-LOW' AND

* << Fim da inclusão

* >> Início da exclusão:

         ( screen-name EQ 'SO_INCO1-LOW' AND

* << Fim da exclusão

           NOT /pws/zycie001-inco1 IS INITIAL ) OR

         ( screen-name EQ 'PA_BUKRS' ).

      screen-input = '0'.

      MODIFY SCREEN.

    ELSE.

      screen-input = '1'.

* >> Início da inclusão:

      ENDIF.

    ENDLOOP.

  ENDIF.

  IF sy-dynnr EQ '0701'.

    SET TITLEBAR '0701'.

    MOVE:

      /pws/zycie001-bukrs      TO pa_matri,

      /pws/zycie001-j_1bbranch TO pa_filia.

    LOOP AT SCREEN.

      IF ( screen-name EQ 'PA_MATRI' AND

           NOT pa_matri IS INITIAL ) OR

         ( screen-name EQ 'PA_FILIA' AND

           NOT pa_filia IS INITIAL ).

        screen-input = '0'.

        MODIFY SCREEN.

* << Fim da inclusão

    ENDIF.

  ENDLOOP.

ENDIF.

AT SELECTION-SCREEN.

  CASE sy-dynnr .

...

 

...

      IF sy-ucomm EQ 'CRET'.

        PERFORM carrega_itab_zycit011.

        PERFORM selecionar_itens.

        PERFORM dados_intrucao.

      ENDIF.

* >> Início da exclusão:

    WHEN  '0700'.

* << Fim da exclusão

* >> Início da inclusão:

    WHEN '0700'.

* << Fim da inclusão

      PERFORM selecionar_da.

* >> Início da inclusão:

    WHEN '0701'.

      IF sy-ucomm EQ 'CRET'.

        PERFORM selecionar_rc.

      ENDIF.

* << Fim da inclusão

  ENDCASE.

 

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

Modificações efetuadas em REPS /PWS/MZYCI001X01

 

...

         qtd_lote like /PWS/ZYCIE463-QTD_LOTE ,

         qtd_nac  like /pws/zycie463-qtd_lote ,

         qtd_usada like /pws/zycie463-qtd_lote ,

         mark.

  DATA: END OF itab_da.

* >> Início da inclusão:

DATA itab_rc TYPE STANDARD TABLE OF /pws/zyrct025

  WITH NON-UNIQUE DEFAULT KEY INITIAL SIZE 100

  WITH HEADER LINE.

* << Fim da inclusão

  data: itab_zycit443_aux like itab_zycit443 occurs 0 with header line,

        itab_da_aux       like itab_da occurs 0 with header line,

        itab_da_aux2      like itab_da occurs 0 with header line.

   data: begin of itab_nac occurs 0.

   data: ebeln like /pws/zycit443-ebeln,

...

 

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCI001

 

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

Incluído texto de seleção:

 

Idioma: PT

 

Variável (SELECT-OPTION / PARAMETER): PA_FILIA

 

Texto: (14 caracteres)

"Filial"

 

Referência ao Dictionary: NÃO

 

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

Incluído texto de seleção:

 

Idioma: PT

 

Variável (SELECT-OPTION / PARAMETER): PA_MATRI

 

Texto: (14 caracteres)

"Matriz"

 

Referência ao Dictionary: NÃO

 

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

Incluído texto de seleção:

 

Idioma: PT

 

Variável (SELECT-OPTION / PARAMETER): SO_ADICA

 

Texto: (14 caracteres)

"Adição"

 

Referência ao Dictionary: NÃO

 

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

Incluído texto de seleção:

 

Idioma: PT

 

Variável (SELECT-OPTION / PARAMETER): SO_ITADI

 

Texto: (22 caracteres)

"Item da Adição"

 

Referência ao Dictionary: NÃO

 

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

Incluído texto de seleção:

 

Idioma: PT

 

Variável (SELECT-OPTION / PARAMETER): SO_NUMDA

 

Texto: (20 caracteres)

"Número da DA"

 

Referência ao Dictionary: NÃO