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.
9.0
Produto:
Nota
Descrição
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