CE PLUS - Nota 001074

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Vinculação

Data/Hora da Publicação: 23/03/2006 00:00:00

Data/Hora Última Alteração: 18/02/2011 15:06:24

Descrição da Nota: MATCH CODE DE FATURAS UNICODE VINCULAÇÃO F-30

Sintoma

1) Ao salvar a vinculação com baixa no cliente de um contrato de ACC ou ACE utilizando o valor total

da fatura, o programa está fazendo primeiro uma F-30 de desmembramento do cliente (que é onde ocorre

o erro), mas quando é vinculado o valor total da fatura, o programa não deveria fazer um

desmembramento do cliente, já deveria entrar direto para fazer a baixa do cliente em razão especial.

 

 

Solução

Foram efetuados ajustes para permitir a compatibilidade do match code de faturas com o Unicode.

 

Versões Tratadas

6.0

Informações Complementares

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

Nota Número 01074 Data: 23/03/2006 Hora: 13:52:38

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

 

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

Nota Número              : 01074

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00023

Agrupamento              : 00106

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

MATCH CODE DE FATURAS UNICODE VINCULAÇÃO F-30

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

Palavras Chave:

MATCH CODE DE FATURAS UNICODE VINCULAÇÃO F-30

 

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

Objetos da nota:

REPS /PWS/MZYCB009F05

REPS /PWS/MZYCB009I01

REPS /PWS/MZYCB009TOP

 

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

Modificações efetuadas em REPS /PWS/MZYCB009F05

 

...

    itab_zycbt005-nrseqc = /pws/zycbe001-nrseqc.

  ENDIF.

  LOOP AT itab_zycbt005.

    CALL FUNCTION '/PWS/ZYCB_DEQUEUE_ZYCBT005'

         EXPORTING

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

              nrseqc   = itab_zycbt005-nrseqc.

* << Fim da exclusão

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

              nrseqc = itab_zycbt005-nrseqc.

* << Fim da inclusão

  ENDLOOP.

ENDFORM.

FORM lock_record.

  CHECK sy-tcode = c_transacao_a OR

        sy-tcode = c_transacao_c.

...

 

...

        MODIFY SCREEN.

      ENDIF.

    ENDIF.

  ENDLOOP.

ENDFORM.

* >> Início da inclusão:

FORM adiciona_linha_tc

  USING

    value(p_fieldname)  TYPE dynpread-fieldname

    value(p_fieldvalue)

    value(p_stepl)      TYPE dynpread-stepl

  CHANGING

    p_itab_dynpread     TYPE t_itab_dynpread.

  DATA:

    wa_dynpread TYPE dynpread.

  wa_dynpread-fieldname  = p_fieldname.

  wa_dynpread-fieldvalue = p_fieldvalue.

  wa_dynpread-stepl      = p_stepl.

  APPEND wa_dynpread TO p_itab_dynpread.

ENDFORM.

FORM transfere_campos

  USING

    p_itab_zycbt017_chave TYPE t_itab_zycbt017_chave

  CHANGING

    p_itab_dynpread TYPE t_itab_dynpread.

  TYPES:

     BEGIN OF t_zycbt017,

       nrinvoic TYPE /pws/zycbt017-nrinvoic,

       nrparcf  TYPE /pws/zycbt017-nrparcf,

       gsberf   TYPE /pws/zycbt017-gsberf,

       kunag    TYPE /pws/zycbt017-kunag,

       dtvencto TYPE /pws/zycbt017-dtvencto,

       waers    TYPE /pws/zycbt017-waers,

       codmod   TYPE /pws/zycbt017-codmod,

       prazo    TYPE /pws/zycbt017-prazo,

       werks    TYPE /pws/zycbt017-werks,

     END OF t_zycbt017,

     t_itab_zycbt017 TYPE SORTED TABLE OF t_zycbt017

       WITH UNIQUE KEY nrinvoic nrparcf gsberf.

  DATA:

    itab_zycbt017  TYPE t_itab_zycbt017,

    v_data_aux(10) TYPE c,

    V_INDEX        TYPE I VALUE 0.

  FIELD-SYMBOLS:

    <fs_zycbt017> TYPE t_zycbt017.

  CHECK NOT p_itab_zycbt017_chave IS INITIAL.

  SELECT

    nrinvoic nrparcf gsberf kunag dtvencto waers

    codmod   prazo   werks

    FROM /pws/zycbt017

    INTO TABLE itab_zycbt017

    FOR ALL ENTRIES IN p_itab_zycbt017_chave

    WHERE

      nrinvoic EQ p_itab_zycbt017_chave-nrinvoic AND

      nrparcf  EQ p_itab_zycbt017_chave-nrparcf  AND

      gsberf   EQ p_itab_zycbt017_chave-gsberf.

  LOOP AT itab_zycbt017

    ASSIGNING <fs_zycbt017>.

    CLEAR itab_zycbt005.

    READ TABLE itab_zycbt005

      WITH KEY

        nrinvoic = <fs_zycbt017>-nrinvoic

        nrparcf  = <fs_zycbt017>-nrparcf

        gsberf   = <fs_zycbt017>-gsberf

      TRANSPORTING NO FIELDS.

    IF sy-subrc EQ 0.

      MESSAGE i061 WITH text-059 <fs_zycbt017>-nrinvoic.

      CONTINUE.

    ENDIF.

    V_INDEX = V_INDEX + 1.

    IF V_INDEX GT 1.

      v_line = v_line + 1.

    ENDIF.

    WRITE <fs_zycbt017>-dtvencto TO v_data_aux.

    PERFORM adiciona_linha_tc:

      USING

        '/PWS/ZYCBE005-NRINVOIC' <fs_zycbt017>-nrinvoic v_line

      CHANGING

        p_itab_dynpread,

      USING

        '/PWS/ZYCBE005-NRPARCF'  <fs_zycbt017>-nrparcf  v_line

      CHANGING

        p_itab_dynpread,

      USING

        '/PWS/ZYCBE005-GSBERF'   <fs_zycbt017>-gsberf   v_line

      CHANGING

        p_itab_dynpread,

      USING

        '/PWS/ZYCBE005-KUNNR'    <fs_zycbt017>-kunag    v_line

      CHANGING

        p_itab_dynpread,

      USING

        '/PWS/ZYCBE005-DTVENCTO' v_data_aux             v_line

      CHANGING

        p_itab_dynpread,

      USING

        '/PWS/ZYCBE005-WAERS'    <fs_zycbt017>-waers    v_line

      CHANGING

        p_itab_dynpread,

      USING

        '/PWS/ZYCBE005-PRAZO'    <fs_zycbt017>-prazo    v_line

      CHANGING

        p_itab_dynpread,

      USING

        '/PWS/ZYCBE209-WERKS'    <fs_zycbt017>-werks    v_line

      CHANGING

        p_itab_dynpread.

    itab_zycbt005-nrinvoic = <fs_zycbt017>-nrinvoic.

    itab_zycbt005-nrparcf  = <fs_zycbt017>-nrparcf.

    itab_zycbt005-gsberf   = <fs_zycbt017>-gsberf.

    itab_zycbt005-kunnr    = <fs_zycbt017>-kunag.

    itab_zycbt005-dtvencto = <fs_zycbt017>-dtvencto.

    itab_zycbt005-waers    = <fs_zycbt017>-waers.

    itab_zycbt005-werks    = <fs_zycbt017>-werks.

    APPEND itab_zycbt005.

  ENDLOOP.

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCB009I01

 

...

           interface LIKE ddshiface OCCURS 0,

           fielddescr LIKE dfies OCCURS 0,

           fieldprop LIKE ddshfprop OCCURS 0,

           selopt LIKE ddshselopt OCCURS 0,

         END OF shlp_descr_t.

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

  DATA:

    itab_zycbt017_chave TYPE t_itab_zycbt017_chave,

    wa_zycbt017_chave   TYPE t_zycbt017_chave,

    v_pos1              TYPE i,

    v_pos2              TYPE i,

    v_pos3              TYPE i.

* << Fim da inclusão

  DATA: BEGIN OF itab_result OCCURS 0.

          INCLUDE STRUCTURE ddshretval.

  DATA: END OF itab_result.

  DATA: BEGIN OF record_tab OCCURS 0.

          INCLUDE STRUCTURE seahlpres.

...

 

...

  DATA: v_line2      LIKE sy-lilli,

        l_display(1) TYPE c,

        v_searchhelp TYPE shlpname,

        shlp_struc   LIKE /pws/zycbv204,

        shlp_curr    TYPE shlp_descr_t,

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

        tdynpread    LIKE dynpread OCCURS 0 WITH HEADER LINE,

        wa_zycbt017a LIKE /pws/zycbt017,

        ask_activex(10) TYPE c.

* << Fim da exclusão

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

        tdynpread    LIKE dynpread OCCURS 0 WITH HEADER LINE.

* << Fim da inclusão

  CLEAR tdynpread.

  REFRESH tdynpread.

  CALL FUNCTION 'DYNP_GET_STEPL'

       IMPORTING

            povstepl = v_line.

...

 

...

      EXIT.

    ENDIF.

  ENDDO.

  CLEAR tdynpread.

  REFRESH tdynpread.

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

  LOOP AT record_tab.

    IF sy-tabix > 1.

      v_line = v_line + 1.

    ENDIF.

    CLEAR itab_zycbt005.

* << Fim da exclusão

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

  READ TABLE record_tab INDEX 1.

  IF sy-subrc EQ 0.

    REFRESH itab_zycbt017_chave.

* << Fim da inclusão

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

   READ TABLE itab_zycbt005 WITH KEY nrinvoic = record_tab-string+3(15)

                                     nrparcf  = record_tab-string+31(2)

                                     gsberf   = record_tab-string+27(4).

* << Fim da exclusão

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

    SELECT SINGLE *

      FROM /pws/zycbt017

      WHERE

        nrinvoic EQ record_tab-string+03(15) AND

        nrparcf  EQ record_tab-string+31(02) AND

        gsberf   EQ record_tab-string+27(04).

* << Fim da inclusão

    IF sy-subrc EQ 0.

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

      MESSAGE i061 WITH text-059 itab_zycbt005-nrinvoic.

      v_line = v_line - 1.

      CONTINUE.

    ENDIF.

* << Fim da exclusão

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

      v_pos1 = 3.

      v_pos2 = 31.

      v_pos3 = 27.

* << Fim da inclusão

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

    SELECT SINGLE * FROM /pws/zycbt017 INTO wa_zycbt017a

                    WHERE nrinvoic = record_tab-string+3(15)

                      AND nrparcf  = record_tab-string+31(2)

                      AND gsberf   = record_tab-string+27(4).

    IF sy-subrc NE 0.

      SHIFT record_tab-string RIGHT BY 3 PLACES.

    ENDIF.

    GET PARAMETER ID 'F4GMETHOD' FIELD ask_activex.

    tdynpread-fieldname  = '/PWS/ZYCBE005-NRINVOIC'.

    tdynpread-fieldvalue = record_tab-string+3(15).

    tdynpread-stepl      = v_line.

    APPEND tdynpread.

    itab_zycbt005-nrinvoic = record_tab-string+3(15).

    tdynpread-fieldname  = '/PWS/ZYCBE005-GSBERF'.

    tdynpread-fieldvalue = record_tab-string+27(4).

    tdynpread-stepl      = v_line.

    APPEND tdynpread.

    itab_zycbt005-gsberf = record_tab-string+27(4).

    tdynpread-fieldname  = '/PWS/ZYCBE209-WERKS'.

    IF shlp_curr-shlpname = '/PWS/ZYCBA008' OR

       shlp_curr-shlpname = '/PWS/ZYCBA263' .

      tdynpread-fieldvalue = record_tab-string+230(4).

    ELSEIF shlp_curr-shlpname = '/PWS/ZYCBA069' OR

           shlp_curr-shlpname = '/PWS/ZYCBA266'.

      tdynpread-fieldvalue = record_tab-string+160(4).

    ENDIF.

    tdynpread-stepl      = v_line.

    APPEND tdynpread.

    itab_zycbt005-werks = record_tab-string+230(4).

    tdynpread-fieldname  = '/PWS/ZYCBE005-KUNNR'.

    IF ask_activex = 'ActiveX'.

      IF shlp_curr-shlpname = '/PWS/ZYCBA008' OR

         shlp_curr-shlpname = '/PWS/ZYCBA263'.

        tdynpread-fieldvalue = record_tab-string+158(10).

      ELSEIF shlp_curr-shlpname = '/PWS/ZYCBA069' OR

             shlp_curr-shlpname = '/PWS/ZYCBA266'.

        tdynpread-fieldvalue = record_tab-string+88(10).

      ENDIF.

* << Fim da exclusão

    ELSE.

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

      IF shlp_curr-shlpname = '/PWS/ZYCBA008' OR

         shlp_curr-shlpname = '/PWS/ZYCBA263'.

        tdynpread-fieldvalue = record_tab-string+138(10).

      ELSEIF shlp_curr-shlpname = '/PWS/ZYCBA069' OR

             shlp_curr-shlpname = '/PWS/ZYCBA266'.

        tdynpread-fieldvalue = record_tab-string+68(10).

* << Fim da exclusão

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

      v_pos1 = 0.

      v_pos2 = 28.

      v_pos3 = 24.

* << Fim da inclusão

      ENDIF.

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

    ENDIF.

    tdynpread-stepl      = v_line.

    APPEND tdynpread.

    itab_zycbt005-kunnr = record_tab-string+158(10).

    tdynpread-fieldname  = '/PWS/ZYCBE005-NRPARCF'.

    tdynpread-fieldvalue = record_tab-string+31(2).

    tdynpread-stepl      = v_line.

    APPEND tdynpread.

    itab_zycbt005-nrparcf = record_tab-string+31(2).

* << Fim da exclusão

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

    LOOP AT record_tab.

      wa_zycbt017_chave-nrinvoic = record_tab+v_pos1(15).

      wa_zycbt017_chave-nrparcf  = record_tab+v_pos2(02).

      wa_zycbt017_chave-gsberf   = record_tab+v_pos3(04).

* << Fim da inclusão

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

    tdynpread-fieldname  = '/PWS/ZYCBE005-CODMOD'.

    IF ask_activex = 'ActiveX'.

      IF shlp_curr-shlpname = '/PWS/ZYCBA008' OR

         shlp_curr-shlpname = '/PWS/ZYCBA263' .

        tdynpread-fieldvalue = record_tab-string+149(5).

      ELSEIF shlp_curr-shlpname = '/PWS/ZYCBA069' OR

             shlp_curr-shlpname = '/PWS/ZYCBA266'.

        tdynpread-fieldvalue = record_tab-string+79(5).

      ENDIF.

    ELSE.

      IF shlp_curr-shlpname = '/PWS/ZYCBA008' OR

         shlp_curr-shlpname = '/PWS/ZYCBA263' .

        tdynpread-fieldvalue = record_tab-string+129(5).

      ELSEIF shlp_curr-shlpname = '/PWS/ZYCBA069' OR

             shlp_curr-shlpname = '/PWS/ZYCBA266'.

        tdynpread-fieldvalue = record_tab-string+59(5).

      ENDIF.

    ENDIF.

    tdynpread-stepl      = v_line.

    APPEND tdynpread.

* << Fim da exclusão

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

      INSERT wa_zycbt017_chave INTO TABLE itab_zycbt017_chave.

    ENDLOOP.

* << Fim da inclusão

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

    tdynpread-fieldname  = '/PWS/ZYCBE005-DTVENCTO'.

    IF ask_activex = 'ActiveX'.

      IF shlp_curr-shlpname = '/PWS/ZYCBA008' OR

         shlp_curr-shlpname = '/PWS/ZYCBA263' .

        tdynpread-fieldvalue = record_tab-string+53(10).

      ELSEIF shlp_curr-shlpname = '/PWS/ZYCBA069' OR

             shlp_curr-shlpname = '/PWS/ZYCBA266'.

        tdynpread-fieldvalue = record_tab-string+33(10).

      ENDIF.

    ELSE.

      IF shlp_curr-shlpname = '/PWS/ZYCBA008' OR

         shlp_curr-shlpname = '/PWS/ZYCBA263' .

      tdynpread-fieldvalue = record_tab-string+53(10).

      ELSEIF shlp_curr-shlpname = '/PWS/ZYCBA069' OR

             shlp_curr-shlpname = '/PWS/ZYCBA266'.

        tdynpread-fieldvalue = record_tab-string+33(10).

      ENDIF.

    ENDIF.

    tdynpread-stepl      = v_line.

    APPEND tdynpread.

    itab_zycbt005-dtvencto = record_tab-string+53(10).

    tdynpread-fieldname  = '/PWS/ZYCBE005-PRAZO'.

    IF ask_activex = 'ActiveX'.

      IF shlp_curr-shlpname = '/PWS/ZYCBA008' OR

         shlp_curr-shlpname = '/PWS/ZYCBA263' .

        tdynpread-fieldvalue = record_tab-string+154(4).

      ELSEIF shlp_curr-shlpname = '/PWS/ZYCBA069' OR

             shlp_curr-shlpname = '/PWS/ZYCBA266'.

        tdynpread-fieldvalue = record_tab-string+84(4).

      ENDIF.

    ELSE.

      IF shlp_curr-shlpname = '/PWS/ZYCBA008' OR

         shlp_curr-shlpname = '/PWS/ZYCBA263' .

        tdynpread-fieldvalue = record_tab-string+134(4).

      ELSEIF shlp_curr-shlpname = '/PWS/ZYCBA069' OR

             shlp_curr-shlpname = '/PWS/ZYCBA266'.

        tdynpread-fieldvalue = record_tab-string+64(4).

      ENDIF.

    ENDIF.

    tdynpread-stepl      = v_line.

    APPEND tdynpread.

    tdynpread-fieldname  = '/PWS/ZYCBE005-WAERS'.

    IF shlp_curr-shlpname = '/PWS/ZYCBA008' OR

       shlp_curr-shlpname = '/PWS/ZYCBA263'.

      tdynpread-fieldvalue = record_tab-string+223(5).

    ELSEIF shlp_curr-shlpname = '/PWS/ZYCBA069'  OR

           shlp_curr-shlpname = '/PWS/ZYCBA266'.

      tdynpread-fieldvalue = record_tab-string+153(5).

    ENDIF.

    tdynpread-stepl      = v_line.

    APPEND tdynpread.

    itab_zycbt005-waers = record_tab-string+223(5).

    READ TABLE itab_zycbt005 WITH KEY nrinvoic = itab_zycbt005-nrinvoic

                                      nrparcf  = itab_zycbt005-nrparcf

                                      gsberf   = itab_zycbt005-gsberf.

    IF sy-subrc NE 0.

      APPEND itab_zycbt005.

* << Fim da exclusão

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

    PERFORM transfere_campos

      USING

        itab_zycbt017_chave

      CHANGING

        tdynpread[].

* << Fim da inclusão

    ENDIF.

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

  ENDLOOP.

* << Fim da exclusão

  CALL FUNCTION 'DYNP_VALUES_UPDATE'

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009TOP

 

...

           c_transacao_e(14) VALUE '/PWS/ZYCB009_E'.

DATA: wa_idx TYPE indx.

DATA: BEGIN OF itab_zycbt005_parid OCCURS 0.

        INCLUDE STRUCTURE /pws/zycbt005.

DATA: END OF itab_zycbt005_parid.

* >> Início da inclusão:

TYPES:

  begin of t_zycbt017_chave,

    nrinvoic TYPE /pws/zycbt017-nrinvoic,

    nrparcf  TYPE /pws/zycbt017-nrparcf,

    gsberf   TYPE /pws/zycbt017-gsberf,

  END OF t_zycbt017_chave,

  t_itab_zycbt017_chave TYPE SORTED TABLE OF t_zycbt017_chave

    WITH UNIQUE KEY nrinvoic nrparcf gsberf,

  t_itab_dynpread TYPE TABLE OF dynpread.

* << Fim da inclusão

TYPES: BEGIN OF t_desvincula                 ,

         nrinvoic TYPE /pws/zycbe005-nrinvoic,

         nrparcf  TYPE /pws/zycbe005-nrparcf ,

         gsberf   TYPE /pws/zycbe005-gsberf  ,

         vldesvin TYPE /pws/zycbe005-vlvinc  ,

...