CE PLUS - Nota 013408

Módulo: CÂMBIO FINANCEIRO

Funcionalidade: SISCOSERV

Data/Hora da Publicação: 03/06/2014 10:24:52

Data/Hora Última Alteração: 03/06/2014 10:24:52

Descrição da Nota: ASSOCIAÇÃO SISCOSERV, ASSOCIAR FATURAS COM VALORES PARCIAIS

Sintoma

Na associação de RAS/RVS o sistema apenas permite efetuar uma associação por documento contábil,

sendo que, o saldo do documento foi utilizado parcial. Porém o sistema não esta fazendo a

consistência do Saldo do documento e não esta permitindo efetuar a associação do mesmo documento

em outra RAS/RVS. Aparecendo a seguinte mensagem. "Remessa já associada em outra RAS/RVS.

Associação não permitida.

 

 

Solução

Ajustado programa para permitir que uma mesma Fatura/Documento seja associado em RAS/RVS

diferentes. Desde que exista saldo para associação.

 

Versões Tratadas

9.0


Pré-Requisitos

Produto:

Nota

Descrição

SISCOSERV - ASSOCIAÇÃO RAS BUSCAR PAGAMENTO DAS FATURAS PELO INCOTERM

SISCOSERV, NOVO TRATAMENTO PARA CRIAÇÃO DE RAS / RVS, VÁRIOS EMBARQUES

ASSOCIAÇÃO SISCOSERV

SISCOSERV - AJUDA DE PESQUISA CODIGO ENQUADRAMENTO / BOTÃO ANEXAR DOC

Informações Complementares

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

Nota Número 13408 Data: 12/11/2013 Hora: 14:58:30

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

 

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

Nota Número              : 13408

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 9.0

Pacote                   : 00006

Agrupamento              : 00166

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

Referência às notas relacionadas:

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

 

12671  - 00001 - 9.0    - 00002  - ASSOCIAÇÃO SISCOSERV

12697  - 00002 - 9.0    - 00002  - SISCOSERV - AJUDA DE PESQUISA CODIGO ENQUADRAMENTO / BOTÃO ANEXAR

13314  - 00003 - 9.0    - 00006  - SISCOSERV - ASSOCIAÇÃO RAS BUSCAR PAGAMENTO DAS FATURAS PELO INCO

13366  - 00004 - 9.0    - 00006  - SISCOSERV, NOVO TRATAMENTO PARA CRIAÇÃO DE RAS / RVS, VÁRIOS EMBA

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

ASSOCIAÇÃO SISCOSERV, ASSOCIAR FATURAS COM VALORES PARCIAIS

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

Palavras Chave:

ASSOCIAÇÃO SISCOSERV, ASSOCIAR FATURAS COM VALORES PARCIAIS

 

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

Objetos da nota:

TABD /PWS/ZYCAT039

DYNP /PWS/SAPMZYCA012                        0105

REPS /PWS/MZYCA012TOP

REPS /PWS/MZYCA012O01

REPS /PWS/MZYCA012F01

REPT /PWS/SAPMZYCA012

 

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

Modificações efetuadas em TABD /PWS/ZYCAT039

 

MODIFICAR TABELA TRANSPARENTE: /PWS/ZYCAT039

DESCRIÇÃO BREVE: Associação de RAS/RVS

 

CARACTERÍSTICAS

 

CATEGORIA DA TABELA: tabela transparente

CLASSE DE ENTREGA:   A Tabela de aplicação (dados mestre e de movimento)

(X) - AUTUALIZAÇÃO DE TABELAS PERMITIDA

 

CAMPOS NOVOS

 

CAMPOS:         TP. CAMPO   CH: INI: TAB.VERIF.:    TAB.REF.:     CPO.RE

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

GJAHR           GJAHR       ''  ''

 

*** APÓS INSERIR NOVO CAMPO, A TABELA FICARÁ COM OS SEGUINTES CAMPOS

 

MANDT

NRSEQ

OPERACAO

REMESSA

FAT_COMIS

LIFNR

DTVENCTO

FAT_IMP

FATURA

FAT_EXP

NUM_NF

DT_PG_REC

MOEDA

VALOR

VME

RE

DI

STATUS

GJAHR

 

OPÇÕES TÉCNICAS

 

TIPO DE DADOS: APPL0

CATEGOR. TAMANHO: 1

 

(X) - AR. BUFFER NÃO PERMITIDO

(_) - AR. BUFFER PERMITIDO, MAS DESATIVADO

(_) - AR. BUFFER ATIVADO

(_) - RGSTS. IND ARMAZENADOS

(_) - ÁREA GEN ARMAZENADA EM BUFFER   Nº DE CPOS CHAVE: ______

(_) - TOTALMENTE ARMAZENADO

(_) - REGISTRAR MODIFICS. DDS. EM LOG.

 

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCA012                        0105

 

*** SOLICITAR O ARQUIVO DA TELA 0105 PARA UPLOAD

 

*** SOLICITAR AQUIVO - 13408_SAPMZYCA012_TELA_0105.txt

 

 

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

Modificações efetuadas em REPS /PWS/MZYCA012TOP

 

...

        bkpf.

data: itab_zycat039     type table of /pws/zycat039,

      itab_zycat039_ant type table of /pws/zycat039,

      itab_zycat039_c   type table of ty_zycat039t with header line,

      itab_zycat039_r   type table of ty_zycat039t with header line,

      itab_zycat039_f   type table of ty_zycat039t with header line,

      itab_zycat039_o   type table of ty_zycat039t with header line,

      itab_zycat039_fe  type table of ty_zycat039t with header line,

      itab_tdynpread    type standard table of dynpread,

      itab_result       type standard table of ddshretval,

* >> Início da exclusão:

      itab_fcode        type standard table of ty_fcode.

* << Fim da exclusão

* >> Início da inclusão:

      itab_fcode        type standard table of ty_fcode,

      itab_zycat039_aux type table of /pws/zycat039 with header line.

* << Fim da inclusão

data: wa_zycat039      type /pws/zycat039,

      wa_zycat039_ant  type /pws/zycat039,

      wa_zycat039c     type /pws/zycat039,

      wa_zycat039r     type /pws/zycat039,

      wa_zycat039f     type /pws/zycat039,

      wa_zycat039o     type /pws/zycat039,

      wa_zycat039fe    type /pws/zycat039,

      wa_cols          type cxtab_column,

      wa_tdynpread     type dynpread,

      wa_result        type ddshretval,

...

 

...

      v_exibe      type c,

      v_screen     type sy-dynnr,

      v_dynnr      type sy-dynnr,

      v_nbs        type /pws/zycat041-descricao,

      v_operacao   type /pws/zycat039-operacao,

      v_mark       type c,

      v_lines      type i,

      v_path       type rlgrap-filename,

      v_funcionalidade type /pws/zyglt390-programa

                       value '/PWS/SAPMZYCA012',

* >> Início da exclusão:

      v_identificador  type /pws/zyglt390-identificador.

* << Fim da exclusão

* >> Início da inclusão:

      v_identificador  type /pws/zyglt390-identificador,

      v_saldo_assoc  type bseg-wrbtr,

      v_saldo_disp   type bseg-wrbtr,

      v_saldo_aux    type bseg-wrbtr,

      v_wrbtr_fat    type bseg-wrbtr.

* << Fim da inclusão

controls: ts_assoc   type tabstrip,

          tc_remessa type tableview using screen '0101',

          tc_comag   type tableview using screen '0102',

          tc_fatimp  type tableview using screen '0103',

          tc_outros  type tableview using screen '0105',

          tc_fatexp  type tableview using screen '0107'.

 

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

Modificações efetuadas em REPS /PWS/MZYCA012O01

 

...

    loop at tc_outros-cols into wa_cols.

      if wa_cols-screen-name = 'WA_ZYCAT039O-STATUS' and

        not /pws/zycat030-processamento is initial.

        wa_cols-screen-input = '1'.

      elseif wa_cols-screen-name ne 'WA_ZYCAT039O-STATUS'.

        wa_cols-screen-input = '1'.

      endif.

      modify tc_outros-cols from wa_cols.

    endloop.

  endif.

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

  loop at tc_outros-cols into wa_cols.

    if wa_cols-screen-name = 'WA_ZYCAT039O-GJAHR'.

      wa_cols-screen-input = '0'.

      wa_cols-invisible    = '1'.

      modify tc_outros-cols from wa_cols.

    endif.

  endloop.

* << Fim da inclusão

endmodule.

module atualiza_tela_outros output.

  perform atualiza_tela using itab_zycat039_o

                               wa_zycat039o.

endmodule.

module status_0106 output.

  set pf-status '0106'.

  set titlebar '106'.

  bkpf-bukrs = /pws/zycat030-bukrs.

endmodule.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCA012F01

 

...

  elseif not itab_zycat039_f[] is initial.

    v_dynnr = '0103'.

    ts_assoc-activetab = 'TB_FIMP'.

  elseif not itab_zycat039_o[] is initial.

    v_dynnr = '0105'.

    ts_assoc-activetab = 'TB_OUTROS'.

  elseif not itab_zycat039_fe[] is initial.

    v_dynnr = '0107'.

    ts_assoc-activetab = 'TB_FEXP'.

  endif.

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

  if not itab_zycat039_o[] is initial.

    perform busca_saldo_bseg.

  endif.

* << Fim da inclusão

  set screen 0100.

  leave screen.

endform.

form verifica_bloqueio.

  call function 'ENQUEUE_/PWS/EZYCAT030'

       exporting

            nrseq          = /pws/zycat039-nrseq

       exceptions

            foreign_lock   = 1

            system_failure = 2

...

 

...

      ts_assoc-activetab = 'TB_REM'.

    elseif not itab_zycat039_c[] is initial.

      v_dynnr = '0102'.

      ts_assoc-activetab = 'TB_CAG'.

    elseif not itab_zycat039_f[] is initial.

      v_dynnr = '0103'.

      ts_assoc-activetab = 'TB_FIMP'.

    elseif not itab_zycat039_o[] is initial.

      v_dynnr = '0105'.

      ts_assoc-activetab = 'TB_OUTROS'.

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

    endif.

    if not itab_zycat039_o[] is initial.

      perform busca_saldo_bseg.

* << Fim da inclusão

    endif.

    set screen 0100.

    leave screen.

  endif.

endform.

form verifica_autorizacao_emp changing p_bloq.

  data v_bukrs type /pws/zycat030-bukrs.

  select single bukrs from /pws/zycat030

    into v_bukrs

    where nrseq = /pws/zycat039-nrseq.

...

 

...

                            v_identificador.

  v_funcionalidade = '/PWS/SAPMZYCA012'.

  commit work.

  v_exibe = 'X'.

  message s015 with text-s02.

  perform desbloqueia_registro.

  refresh itab_zycat039_ant.

  itab_zycat039_ant[] = itab_zycat039[].

endform.

form calcula_saldo.

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

  types:

    begin of ty_saldo,

      fatura type bsak-belnr,

      gjahr  type bsak-gjahr,

      wrbtr  type bsak-wrbtr,

    end of ty_saldo.

  data: itab_saldo  type  table of ty_saldo,

        wa_saldo    type  ty_saldo.

* << Fim da inclusão

  /pws/zycat030-saldo = /pws/zycat030-valor.

  /pws/zycat031-saldo = /pws/zycat031-valor.

  loop at itab_zycat039_r where status ne 'ES' and

                                status ne 'EX'.

    /pws/zycat030-saldo = /pws/zycat030-saldo - itab_zycat039_r-valor.

    /pws/zycat031-saldo = /pws/zycat031-saldo - itab_zycat039_r-valor.

  endloop.

  loop at itab_zycat039_c where status ne 'ES' and

                                status ne 'EX'.

    /pws/zycat030-saldo = /pws/zycat030-saldo - itab_zycat039_c-valor.

...

 

...

  endloop.

  loop at itab_zycat039_o where status ne 'ES' and

                                status ne 'EX'.

    /pws/zycat030-saldo = /pws/zycat030-saldo - itab_zycat039_o-valor.

    /pws/zycat031-saldo = /pws/zycat031-saldo - itab_zycat039_o-valor.

  endloop.

  loop at itab_zycat039_fe where status ne 'ES' and

                                status ne 'EX'.

    /pws/zycat030-saldo = /pws/zycat030-saldo - itab_zycat039_fe-valor.

    /pws/zycat031-saldo = /pws/zycat031-saldo - itab_zycat039_fe-valor.

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

  endloop.

  check v_okcode ne 'BACK'.

  if not itab_zycat039_o[] is initial.

    loop at itab_zycat039_o where status ne 'EX'.

      clear: wa_saldo.

      wa_saldo-fatura = itab_zycat039_o-fatura.

      wa_saldo-gjahr  = itab_zycat039_o-gjahr.

      wa_saldo-wrbtr  = itab_zycat039_o-valor.

      collect wa_saldo into itab_saldo.

    endloop.

    loop at itab_saldo into wa_saldo.

      read table itab_zycat039_aux with key fatura = wa_saldo-fatura

                                            gjahr  = wa_saldo-gjahr.

      if sy-subrc eq 0.

        if wa_saldo-wrbtr > itab_zycat039_aux-valor.

          message w061 with text-e21 wa_saldo-fatura text-e22.

          clear v_okcode.

        endif.

      endif.

* << Fim da inclusão

  endloop.

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

  endif.

* << Fim da inclusão

  if /pws/zycat031-saldo < 0.

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

    if v_okcode ne 'BACK'.

      message i015 with text-e06.

* << Fim da exclusão

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

    message w015 with text-e06.

* << Fim da inclusão

      clear v_okcode.

    endif.

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

  endif.

* << Fim da exclusão

endform.

form user_command_0104.

  case v_okcode.

    when 'CANC'.

      clear v_path.

...

 

...

            others     = 2.

  if sy-subrc <> 0.

    message i015 with text-i17.

    clear v_okcode.

  endif.

  clear v_okcode.

endform.

form valida_outros changing p_wa_zycat039 structure /pws/zycat039

                                  p_pago

                                  p_bukrs.

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

  select single * from /pws/zycat039

    into wa_zycat039

    where nrseq   ne /pws/zycat039-nrseq

      and fatura = p_wa_zycat039-fatura.                "#EC CI_NOFIRST

  if sy-subrc eq 0.

    message i015 with text-e07 text-i11.

    clear p_pago.

    exit.

  endif.

* << Fim da exclusão

  p_bukrs = /pws/zycat030-bukrs.

endform.

form user_command_0105.

  case v_okcode.

    when 'MALL'.

      loop at itab_zycat039_o.

        itab_zycat039_o-mark = 'X'.

        modify itab_zycat039_o.

      endloop.

      clear v_okcode.

...

 

...

    when 'ORIG'.

      perform busca_origem.

  endcase.

  clear v_okcode.

endform.

form busca_origem.

  data: itab_bseg type table of bseg,

        wa_bseg   type bseg,

        v_koart   type bseg-koart.

  read table itab_zycat039_o into wa_zycat039o

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

    with key fatura = bkpf-belnr.

* << Fim da exclusão

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

    with key fatura = bkpf-belnr

             gjahr  = bkpf-gjahr.

* << Fim da inclusão

  if sy-subrc eq 0.

    message i015 with text-e18.

    clear bkpf.

    exit.

  else.

    clear wa_zycat039o.

  endif.

  select * from bseg

    into table itab_bseg

    where bukrs = bkpf-bukrs

...

 

...

  if /pws/zycat030-tp_processo = 'A'.

    delete itab_bseg where lifnr ne /pws/zycat030-bukrs_ext.

  elseif /pws/zycat030-tp_processo = 'V'.

    delete itab_bseg where kunnr ne /pws/zycat030-bukrs_ext.

  endif.

  if itab_bseg[] is initial.

    message i015 with text-e17.

    clear bkpf.

    exit.

  endif.

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

  clear: v_saldo_assoc,

         v_saldo_disp,

         v_saldo_aux,

         v_wrbtr_fat.

  select sum( valor )

    from /pws/zycat039

    into v_saldo_assoc

   where nrseq  ne /pws/zycat039-nrseq

     and fatura eq bkpf-belnr

     and gjahr  eq bkpf-gjahr.

  v_saldo_aux = v_saldo_assoc.

  loop at itab_zycat039_o

                     into wa_zycat039o where fatura eq bkpf-belnr

                                         and gjahr  eq bkpf-gjahr

                                         and status ne 'EX'.

    v_saldo_assoc = v_saldo_assoc + wa_zycat039o-valor.

  endloop.

* << Fim da inclusão

  loop at itab_bseg into wa_bseg.

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

    v_saldo_disp = v_saldo_disp + wa_bseg-wrbtr.

    v_wrbtr_fat  = wa_bseg-wrbtr.

    if v_saldo_assoc > 0.

      if wa_bseg-wrbtr >= v_saldo_assoc.

        v_wrbtr_fat   = wa_bseg-wrbtr - v_saldo_assoc.

        v_saldo_assoc = 0.

      else.

        v_wrbtr_fat   = 0.

        v_saldo_assoc = v_saldo_assoc - wa_bseg-wrbtr.

      endif.

    endif.

    if v_wrbtr_fat > 0.

* << Fim da inclusão

    move: wa_bseg-belnr to wa_zycat039o-fatura,

          wa_bseg-augcp to wa_zycat039o-dt_pg_rec,

          wa_bseg-pswsl to wa_zycat039o-moeda,

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

          wa_bseg-wrbtr to wa_zycat039o-valor.

* << Fim da exclusão

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

            wa_bseg-gjahr to wa_zycat039o-gjahr,

            v_wrbtr_fat   to wa_zycat039o-valor.

* << Fim da inclusão

    append wa_zycat039o to itab_zycat039_o.

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

    endif.

* << Fim da inclusão

    clear wa_zycat039o.

  endloop.

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

  v_saldo_disp = v_saldo_disp - v_saldo_aux.

  delete itab_zycat039_aux where fatura = wa_bseg-belnr

                             and gjahr  = wa_bseg-gjahr.

  wa_zycat039o-fatura = wa_bseg-belnr.

  wa_zycat039o-gjahr  = wa_bseg-gjahr.

  wa_zycat039o-valor  = v_saldo_disp.

  append wa_zycat039o to itab_zycat039_aux.

* << Fim da inclusão

  clear bkpf.

  set screen 0.

  leave screen.

endform.

form valida_exportacao changing p_wa_zycat039 structure /pws/zycat039

                              p_pago

                              p_bukext

                              p_bukrs.

  data: itab_zycbt017 type standard table of ty_zycbt017,

        wa_zycbt017   type ty_zycbt017,

...

 

...

            and eliminado = ' '.

        if sy-subrc ne 0.

          message i015 with text-i14.

          clear p_pago.

          exit.

        endif.

      endif.

    endif.

  endif.

endform.

* >> Início da inclusão:

form busca_saldo_bseg.

  data: itab_bseg type table of bseg,

        wa_bseg   type bseg,

        v_koart   type bseg-koart.

  clear wa_zycat039o.

  bkpf-bukrs = /pws/zycat030-bukrs.

  if /pws/zycat030-tp_processo = 'A'.

    v_koart = 'K'.

  elseif /pws/zycat030-tp_processo = 'V'.

    v_koart = 'D'.

  endif.

  loop at itab_zycat039_o into wa_zycat039o where status ne 'EX'.

    clear: itab_bseg,

           v_saldo_assoc,

           v_saldo_disp,

           v_saldo_aux.

    select * from bseg

      into table itab_bseg

      where bukrs = bkpf-bukrs

        and belnr = wa_zycat039o-fatura

        and gjahr = wa_zycat039o-gjahr.

    if sy-subrc eq 0.

      delete itab_bseg where koart ne v_koart.

      delete itab_bseg where augbl = '          ' or

                             augbl = '0000000000'.

      if /pws/zycat030-tp_processo = 'A'.

        delete itab_bseg where lifnr ne /pws/zycat030-bukrs_ext.

      elseif /pws/zycat030-tp_processo = 'V'.

        delete itab_bseg where kunnr ne /pws/zycat030-bukrs_ext.

      endif.

      select sum( valor )

        from /pws/zycat039

        into v_saldo_assoc

       where nrseq  ne /pws/zycat039-nrseq

         and fatura eq wa_zycat039o-fatura

         and gjahr  eq wa_zycat039o-gjahr.

      loop at itab_bseg into wa_bseg.

        v_saldo_aux = v_saldo_aux + wa_bseg-wrbtr.

      endloop.

      v_saldo_disp = v_saldo_aux - v_saldo_assoc.

      delete itab_zycat039_aux where fatura = wa_zycat039o-fatura

                                 and gjahr  = wa_zycat039o-gjahr.

      wa_zycat039o-fatura = wa_zycat039o-fatura.

      wa_zycat039o-gjahr  = wa_zycat039o-gjahr.

      wa_zycat039o-valor  = v_saldo_disp.

      append wa_zycat039o to itab_zycat039_aux.

    endif.

  endloop.

endform.

* << Fim da inclusão

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCA012

 

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

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: E21

 

Texto: (23 caracteres)

"Associate invoice value"

 

Comprimento máximo: 25

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: E21

 

Texto: (25 caracteres)

"Valor Associado da Fatura"

 

Comprimento máximo: 25

 

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

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: E21

 

Texto: (25 caracteres)

"Valor Asociado de Factura"

 

Comprimento máximo: 25

 

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

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: E22

 

Texto: (39 caracteres)

"exceeds the Available Balance Document."

 

Comprimento máximo: 44

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: E22

 

Texto: (44 caracteres)

"é superior ao Saldo Disponível do Documento."

 

Comprimento máximo: 44

 

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

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: E22

 

Texto: (44 caracteres)

"es superior al Saldo Disponible del Document"

 

Comprimento máximo: 44

 

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

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: E23

 

Texto: (34 caracteres)

"Since this bill Associate RAS/RVS."

 

Comprimento máximo: 34

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: E23

 

Texto: (34 caracteres)

"Fatura Já Associada nesta RAS/RVS."

 

Comprimento máximo: 34

 

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

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: E23

 

Texto: (34 caracteres)

"Factura Ya Asociada en esta RAS/RV"

 

Comprimento máximo: 34