CE PLUS - Nota 010468

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: PLI

Data/Hora da Publicação: 05/08/2010 00:00:00

Data/Hora Última Alteração: 23/02/2011 09:26:03

Descrição da Nota: AJUSTE PREENCHIMENTO ESPECIFICAÇÃO TÉCNICA E VALOR NO LOCAL EMBARQUE

Sintoma

Não está sendo preenchida a especificação técnica de acordo com o parametrizado na tabela

/pws/zycit338.

Não está preenchendo o valor de mercadoria no local de embarque para os itens de programa de

remessa. Estava olhando /pws/zycet050, sendo que não transmite mais.

 

 

Solução

Ajustada montagem da chave de busca do texto da especificação técnica e adicionado tratamento para

itens de remessa no calculo do valor no local de embarque.

 

Versões Tratadas

8.0


Pré-Requisitos

Produto:

Nota

Descrição

O VALOR TOTAL DA MERCADORIA NO LOCAL DE EMBARQUE ESTÁ ERRADO

Informações Complementares

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

Nota Número 10468 Data: 05/08/2010 Hora: 15:04:39

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

 

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

Nota Número              : 10468

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 8.0

Pacote                   : 00004

Agrupamento              : 00033

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

Referência às notas relacionadas:

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

 

09381  - 00001 - 8.0    - 00001  - O VALOR TOTAL DA MERCADORIA NO LOCAL DE EMBARQUE ESTÁ ERRADO

10307  - 00002 - 8.0    - 00004  - IMPLEMENTAÇÕES NA PLI PARA ATENDER SUFRAMA 5.0

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

AJUSTE PREENCHIMENTO ESPECIFICAÇÃO TÉCNICA E VALOR NO LOCAL EMBARQUE

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

Palavras Chave:

PLI - PREENCHIMENTO - ESPECIFICAÇÃO - TÉCNICA - VALOR - LOCAL - EMBARQUE

/PWS/SAPMZYCI020

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

Objetos da nota:

DYNP /PWS/SAPMZYCI020                        0521

REPS /PWS/MZYCI020F01

REPS /PWS/MZYCI020F02

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCI020                        0521

 

EXCLUIR TEXTO "C_ESP"

 

EXCLUIR CAMPO "V_ESP"

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI020F01

 

...

    IF v_field = 'V_ESP338'.

      SELECT SINGLE matnr FROM ekpo INTO v_matnr

                     WHERE ebeln = /pws/zycie079a-ebeln

                       AND ebelp = /pws/zycie079a-ebelp.

      SELECT SINGLE * FROM /pws/zycit338 INTO itab_zycit338

      WHERE matnr = v_matnr

        AND codsufra = /PWS/ZYCIE079A-CODSUFRA.

      READ TABLE itab_zycit338 INDEX 1.

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

      CONCATENATE sy-mandt v_matnr itab_zycit338-codsufra INTO v_txtki.

* << Fim da exclusão

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

      CLEAR v_txtki.

      itab_zycit338-mandt = sy-mandt.

      itab_zycit338-matnr = v_matnr.

      v_txtki = itab_zycit338(25).

* << Fim da inclusão

      CLEAR: rtexti.

      REFRESH: rtexti.

      CALL FUNCTION 'READ_TEXT'

           EXPORTING

                client                  = sy-mandt

                id                      = '0338'

                language                = sy-langu

                name                    = v_txtki

                object                  = '/PWS/ZYCI'

           TABLES

...

 

...

            kschl = itab_itens_auxs-kschl AND

            evrtn = itab_itens_auxs-ebeln AND

            evrtp = itab_itens_auxs-ebelp AND

            datbi GE /pws/zycie078-dtuserc AND

            datab LE /pws/zycie078-dtuserc   .

      ENDIF.

      IF NOT itab_a016[] IS INITIAL.

        SELECT * FROM konp INTO TABLE itab_konp

            FOR ALL ENTRIES IN itab_a016 WHERE

            knumh = itab_a016-knumh AND

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

            krech = 'C'             AND

* << Fim da exclusão

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

            krech IN ('C','B')       AND

* << Fim da inclusão

            loevm_ko = space           .

        LOOP AT itab_konp.

          READ TABLE itab_a016 WITH KEY knumh = itab_konp-knumh.

          itab_konp-ebeln = itab_a016-evrtn.

          itab_konp-ebelp = itab_a016-evrtp.

          MODIFY itab_konp TRANSPORTING ebeln ebelp.

        ENDLOOP.

      ELSE.

        MESSAGE i015 WITH text-433.

      ENDIF.

...

 

...

      LOOP AT itab_zycit030.

        MOVE-CORRESPONDING itab_zycit030 TO itab_zycit030_aux.

        IF itab_itens_aux-bstyp = 'L'.

          LOOP AT itab_konp WHERE ebeln = it_zycit079-ebeln AND

                                  ebelp = it_zycit079-ebelp AND

                                  kschl = itab_zycit030-kschl.

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

            IF NOT itab_konp-kpein IS INITIAL.

* << Fim da exclusão

              PERFORM retorna_decimais USING itab_konp-konwa

                                     CHANGING itab_konp-kbetr.

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

            IF itab_konp-krech EQ 'B'.

              itab_zycit030_aux-valor = itab_konp-kbetr /

                                     it_zycit079-menge .

              APPEND itab_zycit030_aux.

            ELSE.

              IF NOT itab_konp-kpein IS INITIAL.

* << Fim da inclusão

              itab_zycit030_aux-valor = itab_konp-kbetr

                                      / itab_konp-kpein.

              APPEND itab_zycit030_aux.

            ENDIF.

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

            ENDIF.

* << Fim da inclusão

          ENDLOOP.

        ELSE.

          CLEAR v_ebelp.

...

 

...

         EXCEPTIONS

              OTHERS       = 1.

    READ TABLE itab_komk_aux WITH KEY knumv = itab_komk-knumv.

    itab_komv-ebeln = itab_komk_aux-ebeln.

    MODIFY itab_komv TRANSPORTING ebeln

      WHERE knumv = itab_komk-knumv.

    APPEND LINES OF itab_komv TO itab_komv_aux.

  ENDLOOP.

  REFRESH itab_komv.

  itab_komv[] = itab_komv_aux[].

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

  REFRESH: itab_itens_aux2.

  MOVE: itab_itens_aux[] TO itab_itens_aux2[].

  DELETE itab_itens_aux2 WHERE bstyp NE 'L'.

  IF NOT itab_itens_aux2[] IS INITIAL.

    REFRESH: itab_itens_auxs, itab_a016, itab_konp.

    LOOP AT itab_zycit030.

      LOOP AT itab_itens_aux2.

        itab_itens_auxs-ebeln = itab_itens_aux2-ebeln.

        itab_itens_auxs-ebelp = itab_itens_aux2-ebelp.

        itab_itens_auxs-kschl = itab_zycit030-kschl.

        APPEND itab_itens_auxs.

      ENDLOOP.

    ENDLOOP.

    IF NOT itab_itens_auxs[] IS INITIAL.

      SELECT * FROM a016 INTO TABLE itab_a016

          FOR ALL ENTRIES IN itab_itens_auxs WHERE

          kappl = 'M '                  AND

          kschl = itab_itens_auxs-kschl AND

          evrtn = itab_itens_auxs-ebeln AND

          evrtp = itab_itens_auxs-ebelp AND

          datbi GE /pws/zycie078-dtuserc AND

          datab LE /pws/zycie078-dtuserc   .

    ENDIF.

    IF NOT itab_a016[] IS INITIAL.

      SELECT * FROM konp INTO TABLE itab_konp

          FOR ALL ENTRIES IN itab_a016 WHERE

          knumh = itab_a016-knumh AND

          krech = 'C'             AND

          loevm_ko = space           .

      LOOP AT itab_konp.

        READ TABLE itab_a016 WITH KEY knumh = itab_konp-knumh.

        itab_konp-ebeln = itab_a016-evrtn.

        itab_konp-ebelp = itab_a016-evrtp.

        MODIFY itab_konp TRANSPORTING ebeln ebelp.

      ENDLOOP.

    ELSE.

      MESSAGE i015 WITH text-433.

    ENDIF.

  ENDIF.

* << Fim da inclusão

  SELECT SINGLE * FROM t001 WHERE bukrs EQ /pws/zycie078-bukrs.

  SELECT * FROM /pws/zycit030

    INTO TABLE itab_zycit030

    WHERE codigo EQ 'FOB'

      AND land1  EQ t001-land1

      AND bukrs  EQ /pws/zycie078-bukrs.

  LOOP AT it_zycit079_a.

    CLEAR v_vlmerc.

    CLEAR itab_itens_aux.

    READ TABLE itab_itens_aux WITH KEY ebeln = it_zycit079_a-ebeln

...

 

...

          MOVE itab_itens_aux-ktmng  TO it_zycit079_a-menge.

        ENDIF.

      ENDIF.

      IF itab_itens_aux-loekz EQ 'L'.

        MESSAGE w061 WITH text-014

                          itab_itens_aux-ebeln itab_itens_aux-ebelp

                          text-015.

      ENDIF.

      LOOP AT itab_zycit030.

        MOVE-CORRESPONDING itab_zycit030 TO itab_zycit030_aux.

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

        IF itab_itens_aux-bstyp = 'L'.

          LOOP AT itab_konp WHERE ebeln = it_zycit079_a-ebeln AND

                                  ebelp = it_zycit079_a-ebelp AND

                                  kschl = itab_zycit030-kschl.

            PERFORM retorna_decimais USING itab_konp-konwa

                                   CHANGING itab_konp-kbetr.

            IF itab_konp-krech EQ 'B'.

              itab_zycit030_aux-valor = itab_konp-kbetr /

                                        it_zycit079_a-menge.

              APPEND itab_zycit030_aux.

            ELSE.

              IF NOT itab_konp-kpein IS INITIAL.

                itab_zycit030_aux-valor = itab_konp-kbetr

                                        / itab_konp-kpein.

                APPEND itab_zycit030_aux.

              ENDIF.

            ENDIF.

          ENDLOOP.

        ELSE.

* << Fim da inclusão

        CLEAR v_ebelp.

        CONCATENATE '0' it_zycit079_a-ebelp INTO v_ebelp.

        LOOP AT itab_komv

          WHERE kposn EQ v_ebelp

            AND kschl EQ itab_zycit030-kschl

            AND ebeln EQ it_zycit079_a-ebeln.

          IF NOT it_zycit079_a-menge IS INITIAL.

            itab_zycit030_aux-valor = itab_komv-kwert /

                                      it_zycit079_a-menge.

          ENDIF.

          APPEND itab_zycit030_aux.

        ENDLOOP.

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

        ENDIF.

* << Fim da inclusão

      ENDLOOP.

      LOOP AT itab_zycit030_aux.

        IF itab_zycit030_aux-fator EQ '+'

        OR itab_zycit030_aux-fator IS INITIAL.

          v_vlmerc  = v_vlmerc + itab_zycit030_aux-valor .

        ELSE.

          v_vlmerc  = v_vlmerc - itab_zycit030_aux-valor.

        ENDIF.

        AT END OF codigo.

          it_zycit079_a-netpr = v_vlmerc.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI020F02

 

...

    READ TABLE rtexti INDEX 1.

    v_esp = rtexti-tdline.

  ENDIF.

  SELECT SINGLE matnr FROM ekpo INTO v_matnr

                 WHERE ebeln = /pws/zycie079a-ebeln

                   AND ebelp = /pws/zycie079a-ebelp.

  SELECT SINGLE * FROM /pws/zycit338 INTO itab_zycit338

  WHERE matnr = v_matnr

    AND codsufra = /pws/zycie079a-codsufra.

  READ TABLE itab_zycit338 INDEX 1.

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

  CONCATENATE sy-mandt v_matnr itab_zycit338-codsufra INTO v_txtki.

* << Fim da exclusão

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

  CLEAR v_txtki.

  itab_zycit338-mandt = sy-mandt.

  itab_zycit338-matnr = v_matnr.

  v_txtki = itab_zycit338(25).

* << Fim da inclusão

  CLEAR: rtexti.

  REFRESH: rtexti.

  CALL FUNCTION 'READ_TEXT'

       EXPORTING

            client                  = sy-mandt

            id                      = '0338'

            language                = sy-langu

            name                    = v_txtki

            object                  = '/PWS/ZYCI'

       TABLES

...

 

...

FORM send.

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

  DATA: rimc11       LIKE indx-srtfd VALUE 'ZYCIT079'.

  IF wa_zycit136-tp_doc = 'PLI'.

    EXPORT it_zycit079 TO MEMORY ID rimc11.

    SUBMIT /pws/zycir041 AND RETURN.                     "#EC CI_SUBMIT

    IF sy-subrc = 0.

      MESSAGE i061 WITH text-512.

    ENDIF.

    EXIT.

  ENDIF.

* << Fim da inclusão

  IF wa_zycit136-stasis = text-300.

    MESSAGE s061 WITH text-305 text-307 text-306.

    EXIT.

  ENDIF.

  IF wa_zycit136-stasis = text-302.

    MESSAGE s061 WITH text-305 text-307 text-306.

    EXIT.

  ENDIF.

  IF wa_zycit136-stasis = text-303.

    MESSAGE s061 WITH text-305 text-307 text-306.

...

 

...

  IF v_string_ex IS INITIAL.

    MESSAGE s061 WITH text-313 text-314 text-315 text-309.

    EXIT.

  ENDIF.

  DATA:  v_tam TYPE i.

  CLEAR: v_tam.

  CASE wa_zycit136-tp_doc.

    WHEN 'PLI'.

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

      DATA: rimc11       LIKE indx-srtfd VALUE 'ZYCIT079'.

      EXPORT it_zycit079 TO MEMORY ID rimc11.

      SUBMIT /pws/zycir041 AND RETURN.                   "#EC CI_SUBMIT

      IF sy-subrc = 0.

        MESSAGE i061 WITH text-512.

      ENDIF.

* << Fim da exclusão

    WHEN OTHERS.

      CALL FUNCTION 'GUI_GET_FILE_INFO'

           EXPORTING

                fname          = v_string_ex

           IMPORTING

                file_size      = v_tam

           EXCEPTIONS

                fileinfo_error = 1

                OTHERS         = 2.

...