Módulo: DRAWBACK
Funcionalidade: Ato Concessório
Data/Hora da Publicação: 20/08/2009 00:00:00
Data/Hora Última Alteração: 17/02/2011 15:41:32
Descrição da Nota: CRIAÇÃO DE ATO CONCESSÓRIO GENÉRICO ATRAVÉS DE UM FORECAST.
Sintoma
Desenvolvimento da criação de ato concessório genérico a partir de um forecast.
Solução
Desenvolvimento da criação de ato concessório genérico a partir de um forecast.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 08858 Data: 20/08/2009 Hora: 11:06:46
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 08858
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00010
Agrupamento : 00110
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
04587 - 00001 - 7.0 - 00002 - IMPORTAÇÃO DO DADOS DO FORECAST E REAPURAÇÃO PARCIAL COM LISTA PO
08800 - 00002 - 7.0 - 00010 - FORECAST VERDE-AMARELO / INTEGRADO VINCULAÇÃO
----------------------------------------------------------------------------------------------------
CRIAÇÃO DE ATO CONCESSÓRIO GENÉRICO ATRAVÉS DE UM FORECAST.
----------------------------------------------------------------------------------------------------
Palavras Chave:
ATO CONCESSÓRIO GENÉRICO FORECAST
----------------------------------------------------------------------------------------------------
Objetos da nota:
DOMA /PWS/ZYGLD604
DTEL /PWS/ZYCIL875
DYNP /PWS/SAPMZYCI063 0101
REPS /PWS/MZYCI040F02
REPS /PWS/MZYCI040I01
REPS /PWS/MZYCI063F01
TABD /PWS/ZYCIE238
TABD /PWS/ZYCIT238
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DOMA /PWS/ZYGLD604
------------------------------------------------------------------------
Domínio incluído: /PWS/ZYGLD604
Descrição breve incluída (33 caracteres), idioma: PT
"GL - Tipos de Drawback (Forecast)"
Classe de desenvolvimento: /PWS/ZYGL
Idioma original: PT
Categoria de dados: CHAR
Número de posições: 1
Comprimento de saída: 1
Rotina de conversão:
Letras minúsculas: SIM
-Valores individuais
Incluído valor fixo "C"
Texto incluído, idioma: PT (5 caracteres):
"Comum"
Incluído valor fixo "G"
Texto incluído, idioma: PT (8 caracteres):
"Genérico"
Incluída tabela de valores:
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DTEL /PWS/ZYCIL875
------------------------------------------------------------------------
Elemento de dados incluído: /PWS/ZYCIL875
Classe de desenvolvimento: /PWS/ZYGL
Idioma original: PT
Descrição breve incluída: (33 caracteres), idioma: PT
"GL - Tipos de Drawback (Forecast)"
Categoria de dados: Domínio
Domínio: /PWS/ZYGLD604
ID parâmetro:
Nome componente default:
Documentar modificações: SIM
Nome da ajuda de pesquisa:
Parâmetro da ajuda de pesquisa:
Comprimento máximo do denominador breve: 04
Denominador breve incluído (4 caracteres), idioma: PT
"Tipo"
Comprimento máximo do denominador médio: 13
Denominador médio incluído (13 caracteres), idioma: PT
"Tipo DrawBack"
Comprimento máximo do denominador longo: 13
Denominador longo incluído (13 caracteres), idioma: PT
"Tipo DrawBack"
Comprimento máximo do título: 15
Título incluído (13 caracteres), idioma: PT
"Tipo DrawBack"
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI063 0101
MODIFICAR CAMPO TEXTO "/PWS/ZYCIE238-TIPO"
Grupo 1
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI040F02
...
IF screen-group1 NE 'NEX'.
screen-input = v_status2.
MODIFY SCREEN.
ENDIF.
IF screen-name EQ '/PWS/ZYCIE244-NRFORECAST'.
IF /pws/zycie244-modalidade NE 'S'.
screen-input = 1.
screen-invisible = 1.
MODIFY SCREEN.
ELSE.
* >> Início da exclusão: FORM CHECK_FIELD_0201
IF /pws/zycie244-tipo EQ 'C'.
* << Fim da exclusão
* >> Início da inclusão: FORM CHECK_FIELD_0201
IF /pws/zycie244-tipo EQ 'C' OR /pws/zycie244-tipo EQ 'G'.
* << Fim da inclusão
IF /pws/zycie244-bukrs IS INITIAL.
screen-input = 1.
ELSE.
screen-input = v_status2.
ENDIF.
screen-invisible = 0.
MODIFY SCREEN.
ELSE.
screen-input = 1.
screen-invisible = 1.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI040I01
...
AND ddlanguage EQ sy-langu(1)
AND domvalue_l LIKE /pws/zycie244-tipo.
CLEAR itab_zycit245. REFRESH itab_zycit245.
SELECT * FROM /pws/zycit249 INTO TABLE itab_zycit249
WHERE nrseqd EQ /pws/zycie244-nrforecast.
SELECT * FROM /pws/zycit240 INTO TABLE itab_zycit240
WHERE nrseqd EQ /pws/zycie244-nrforecast
AND transp NE space.
IF sy-subrc EQ 0.
CLEAR itab_zycit245_aux. REFRESH itab_zycit245_aux.
* >> Início da inclusão: MODULE TRATA_FORECAST
IF /pws/zycie244-tipo EQ 'C'.
* << Fim da inclusão
LOOP AT itab_zycit249 WHERE proced NE '0'.
CLEAR itab_zycit245.
MOVE-CORRESPONDING itab_zycit249 TO itab_zycit245.
PERFORM select_max_item_number2 CHANGING v_nritem.
itab_zycit245-nritem = v_nritem.
itab_zycit245-nrseqd = /pws/zycie244-nrseqd.
itab_zycit245-sdocomp_i = itab_zycit249-qtd_tot.
LOOP AT itab_zycit240 WHERE
codcomp EQ itab_zycit245-codcomp.
itab_zycit245-qtd_perda_e = itab_zycit245-qtd_perda_e +
...
...
itab_zycit245-qtd_tot = itab_zycit245-qtd_ncm .
itab_zycit245-meins = itab_zycit245-um_ncm .
CLEAR: itab_zycit245-qtd_iten, itab_zycit245-codcomp,
itab_zycit245-perda, itab_zycit245-perda_e.
COLLECT itab_zycit245.
ELSE.
APPEND itab_zycit245.
ENDIF.
itab_zycit245_aux[] = itab_zycit245[].
ENDLOOP.
* >> Início da inclusão: MODULE TRATA_FORECAST
ELSE.
LOOP AT itab_zycit249 WHERE proced NE '0'.
CLEAR itab_zycit245.
MOVE:
'00001' TO itab_zycit245-nritem ,
itab_zycit249-proced TO itab_zycit245-proced ,
/pws/zycit321-ncm TO itab_zycit245-j_1bnbm ,
itab_zycit249-waers TO itab_zycit245-waers ,
itab_zycit249-netpr_t TO itab_zycit245-netpr_t ,
itab_zycit249-vl_frete_t TO itab_zycit245-vl_frete_t,
itab_zycit249-vl_seg_t TO itab_zycit245-vl_seg_t .
COLLECT itab_zycit245.
ENDLOOP.
ENDIF.
* << Fim da inclusão
REFRESH itab_zycit245t.
itab_zycit245t[] = itab_zycit245[].
REFRESH: itab_zycit245, itab_zycit245_aux.
CLEAR: itab_zycit245.
pressed_tab_2a = 'FS_MERC2'.
* >> Início da inclusão: MODULE TRATA_FORECAST
IF /pws/zycie244-tipo EQ 'C'.
* << Fim da inclusão
LOOP AT itab_zycit240 WHERE proced EQ 0.
CLEAR: v_nritem.
...
...
APPEND itab_zycit245.
ELSE.
itab_zycit245-nritem = v_nritem.
CLEAR: itab_zycit245-qtd_iten, itab_zycit245-netpr,
itab_zycit245-pctseg, itab_zycit245-vl_seg,
itab_zycit245-vl_frete.
COLLECT itab_zycit245.
ENDIF.
itab_zycit245_aux[] = itab_zycit245[].
ENDLOOP.
* >> Início da inclusão: MODULE TRATA_FORECAST
ELSE.
LOOP AT itab_zycit240 WHERE proced EQ 0.
CLEAR itab_zycit245.
MOVE:
'90001' TO itab_zycit245-nritem ,
itab_zycit240-proced TO itab_zycit245-proced ,
/pws/zycit321-ncm TO itab_zycit245-j_1bnbm ,
itab_zycit240-waers TO itab_zycit245-waers ,
itab_zycit240-netpr_t TO itab_zycit245-netpr_t ,
itab_zycit240-vl_frete_t TO itab_zycit245-vl_frete_t,
itab_zycit240-vl_seg_t TO itab_zycit245-vl_seg_t .
COLLECT itab_zycit245.
ENDLOOP.
IF sy-subrc NE 0.
MOVE:
'90001' TO itab_zycit245-nritem ,
'0' TO itab_zycit245-proced ,
/pws/zycit321-ncm TO itab_zycit245-j_1bnbm .
APPEND itab_zycit245.
ENDIF.
ENDIF.
* << Fim da inclusão
LOOP AT itab_zycit245.
IF NOT itab_zycit245-ntgewt IS INITIAL.
itab_zycit245-ntgew = itab_zycit245-ntgewt
/ itab_zycit245-qtd_tot.
itab_zycit245-brgew = itab_zycit245-brgew
/ itab_zycit245-qtd_tot.
* >> Início da inclusão: MODULE TRATA_FORECAST
ENDIF.
* << Fim da inclusão
itab_zycit245-pctseg = ( itab_zycit245-vl_seg_t /
( itab_zycit245-netpr_t + itab_zycit245-vl_frete_t )
) * 100.
* >> Início da exclusão: MODULE TRATA_FORECAST
ENDIF.
* << Fim da exclusão
MODIFY itab_zycit245.
ENDLOOP.
LOOP AT itab_zycit245t.
IF NOT itab_zycit245t-ntgewt IS INITIAL.
itab_zycit245t-ntgew = itab_zycit245t-ntgewt
/ itab_zycit245t-qtd_tot.
itab_zycit245t-brgew = itab_zycit245t-brgew
/ itab_zycit245t-qtd_tot.
* >> Início da inclusão: MODULE TRATA_FORECAST
ENDIF.
* << Fim da inclusão
itab_zycit245t-pctseg = ( itab_zycit245t-vl_seg_t /
( itab_zycit245t-netpr_t + itab_zycit245t-vl_frete_t )
) * 100.
* >> Início da exclusão: MODULE TRATA_FORECAST
ENDIF.
* << Fim da exclusão
MODIFY itab_zycit245t.
ENDLOOP.
pressed_tab_2a = 'FS_CABEC2'.
/pws/zycie245-nrseqd = /pws/zycie244-nrseqd.
* >> Início da exclusão: MODULE TRATA_FORECAST
IF /pws/zycie244-tipo EQ 'G'.
PERFORM acumula_item_lista_tecnica_tg2.
* << Fim da exclusão
ENDIF.
* >> Início da exclusão: MODULE TRATA_FORECAST
ENDIF.
* << Fim da exclusão
CLEAR itab_zycit247. REFRESH itab_zycit247.
SELECT * FROM /pws/zycit239 INTO TABLE itab_zycit239
WHERE nrseqd EQ /pws/zycie244-nrforecast.
IF sy-subrc EQ 0.
CLEAR v_item_fc.
LOOP AT itab_zycit239.
...
...
itab_zycit247-sdomat_e = itab_zycit239-qtd_aditiv.
ENDIF.
itab_zycit247-qtd_ncm = itab_zycit247-qtd_iten.
itab_zycit247-um_ncm = itab_zycit247-meins .
IF /pws/zycit321-ltopc IS INITIAL.
PERFORM converte_um_ncm USING itab_zycit247-codmat
CHANGING itab_zycit247-um_ncm
itab_zycit247-werks
itab_zycit247-qtd_ncm.
ENDIF.
* >> Início da exclusão: MODULE TRATA_FORECAST
IF /pws/zycit321-c_comum EQ 'X'.
* << Fim da exclusão
* >> Início da inclusão: MODULE TRATA_FORECAST
IF /pws/zycit321-c_comum EQ 'X' OR /pws/zycie244-tipo EQ 'G'.
* << Fim da inclusão
READ TABLE itab_zycit247_aux
WITH KEY j_1bnbm = itab_zycit247-j_1bnbm.
IF sy-subrc EQ 0.
itab_zycit247-nritem = itab_zycit247_aux-nritem.
ENDIF.
itab_zycit247-qtd_iten = itab_zycit247-qtd_ncm .
itab_zycit247-meins = itab_zycit247-um_ncm .
CLEAR: itab_zycit247-codmat, itab_zycit247-stlal,
itab_zycit247-stlan, itab_zycit247-stlnr,
itab_zycit247-tolling.
...
...
READ TABLE itab_centros2 WITH KEY werks = itab_zycit247-werks.
IF sy-subrc NE 0.
IF itab_zycit247-werks NE /pws/zycie244-werks.
MESSAGE w061 WITH text-190 text-191.
ENDIF.
ENDIF.
ENDLOOP.
LOOP AT itab_zycit245.
itab_zycit245-werks = /pws/zycie244-werks.
MODIFY itab_zycit245.
* >> Início da inclusão: MODULE ALTERA_WERKS2
ENDLOOP.
LOOP AT itab_zycit245t.
itab_zycit245t-werks = /pws/zycie244-werks.
MODIFY itab_zycit245t.
* << Fim da inclusão
ENDLOOP.
ENDIF.
ENDMODULE.
MODULE trata_aditivos INPUT.
IF /pws/zycie244-aditivo EQ 0.
EXIT.
ENDIF.
IF v_tcode2 EQ '/PWS/ZYCI040_A' AND
/pws/zycie244-nratoc IS INITIAL AND
v_numatoinf = 'S'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI063F01
...
ELSE.
MOVE '0' TO v_status.
ENDIF.
IF wa_zycbt007 IS INITIAL.
SELECT SINGLE * FROM /pws/zycbt007 INTO wa_zycbt007.
ENDIF.
IF v_tcode EQ '/PWS/ZYCI040_P'.
IF /pws/zycie238-n_user IS INITIAL.
MOVE: sy-uname TO /pws/zycie238-n_user ,
'X' TO /pws/zycie238-importacao,
* >> Início da exclusão: FORM MOVE_DADOS_INICIAIS
'S' TO /pws/zycie238-modalidade,
'C' TO /pws/zycie238-tipo .
* << Fim da exclusão
* >> Início da inclusão: FORM MOVE_DADOS_INICIAIS
'S' TO /pws/zycie238-modalidade.
* << Fim da inclusão
ENDIF.
ENDIF.
IF v_segpct IS INITIAL AND NOT /pws/zycie238-bukrs IS INITIAL.
SELECT SINGLE * FROM t001 WHERE bukrs EQ /pws/zycie238-bukrs.
SELECT SINGLE per_seg
FROM /pws/zycit000 INTO v_segpct
WHERE land1 EQ t001-land1.
ENDIF.
ENDFORM.
FORM execute_button_btn1.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIE238
...
EKGRP EKGRP
EKORG EKORG
MODALIDADE /PWS/ZYCIL419
* >> Início da exclusão:
TIPO /PWS/ZYCIL423
* << Fim da exclusão
* >> Início da inclusão:
TIPO /PWS/ZYCIL875
* << Fim da exclusão
TIPOEMP /PWS/ZYCIL424
OPER_IND /PWS/ZYCIL425
WERKS WERKS_D
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIT238
...
EKGRP EKGRP
EKORG EKORG
MODALIDADE /PWS/ZYCIL419
* >> Início da exclusão:
TIPO /PWS/ZYCIL423
* << Fim da exclusão
* >> Início da inclusão:
TIPO /PWS/ZYCIL875
* << Fim da exclusão
TIPOEMP /PWS/ZYCIL424
OPER_IND /PWS/ZYCIL425
WERKS WERKS_D
...
-------