Módulo: DOC. IMPORTAÇÃO
Funcionalidade: PLI
Data/Hora da Publicação: 19/06/2012 00:00:00
Data/Hora Última Alteração: 17/08/2012 15:37:19
Descrição da Nota: TRATAMENTO PARA CRIAR PLI COM CÓPIA E PLI SUBSTITUTIVA
Sintoma
Tratamento para criar PLI com Cópia e PLI Substitutiva
Solução
Novo tratamento em PLI para "cópia" e PLI Substitutiva.
9.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 12300 Data: 19/06/2012 Hora: 14:11:26
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 12300
Categoria : Melhoria
Prioridade : Alta
Versão PW.CE : 9.0
Pacote : 00001
Agrupamento : 00117
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
09040 - 00001 - 8.0 - 00001 - AO CRIAR LI¿S SUBSTITUTIVA COM CÓPIA O PROGRAMA ESTA SE PERDENDO
12245 - 00002 - 8.0 - 00011 - NECESSÁRIO AJUSTAR SEQUENCIAL TRANSMITIDO AO SUFRAMA
----------------------------------------------------------------------------------------------------
TRATAMENTO PARA CRIAR PLI COM CÓPIA E PLI SUBSTITUTIVA
----------------------------------------------------------------------------------------------------
Palavras Chave:
CÓPIA PLI - PLI SUBSTITUTIVA - CRIACAO
----------------------------------------------------------------------------------------------------
Objetos da nota:
DYNP /PWS/SAPMZYCI020 0501
REPS /PWS/MZYCI020F01
REPS /PWS/MZYCI020F02
REPS /PWS/MZYCI020O01
REPS /PWS/MZYCI020X01
REPT /PWS/SAPMZYCI020
TABD /PWS/ZYCIE078
TABD /PWS/ZYCIT078
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIE078
Ao final da estrutura, acrescentar o campo abaixo.
Nome campo Elem.dados Tab.verif. N CtDt Comp. Grupo
LI_REF /PWS/ZYCIL229 CHAR 10
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIT078
Ao final da tabela, acrescentar o campo abaixo.
Nome campo Elem.dados Tab.verif. N CtDt Comp. Grupo
LI_REF /PWS/ZYCIL229 CHAR 10
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI020 0501
*Na tela 501, mover para baixo os quadros Importador (C_QUADRO1), Informações Basicas da PLI
*(C_QUADRO2) e o quadro de datas.
MODIFICAR FRAME "C_QUADRO1"
Altura 3
Comprimento Visível 74
Linha 6
Coluna 5
Formato CHAR
Texto Importador
MODIFICAR FRAME "C_QUADRO2"
Altura 7
Comprimento Visível 74
Linha 9
Coluna 5
Formato CHAR
Texto Informações Básicas
MODIFICAR FRAME ""
Altura 7
Comprimento Visível 74
Linha 16
Coluna 5
Formato CHAR
*Acima deles e após o campo /PWS/ZYCIE078-SEQ_SUFRA, incluir campo abaixo.
INCLUIR TEXTO "/PWS/ZYCIE078-LI_REF"
Comprimento Visível 16
Linha 5
Coluna 6
Formato CHAR
Texto LI de Referência
Código função
INCLUIR CAMPO TEXTO "/PWS/ZYCIE078-LI_REF"
Comprimento Visível 10
Linha 5
Coluna 27
Formato CHAR
Linhas mínimas 10
Texto __________
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI020F01
...
FORM quest_gravacao.
* >> Início da inclusão: FORM QUEST_GRAVACAO
DATA: v_liref TYPE /pws/zycie078-li_ref.
* << Fim da inclusão
...
...
CASE /pws/zycie078-tpli.
WHEN 'N'.
IF /pws/zycie078-flagpli IS INITIAL.
PERFORM comm_save.
ELSE.
* >> Início da inclusão: FORM QUEST_GRAVACAO
IF okcode EQ 'LISUBST'.
v_liref = /pws/zycie078-li_ref.
CLEAR /pws/zycie078-li_ref.
* << Fim da inclusão
PERFORM savepli.
* >> Início da inclusão: FORM QUEST_GRAVACAO
/pws/zycie078-li_ref = v_liref.
ELSE.
PERFORM savepli.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM QUEST_GRAVACAO
ENDIF.
* << Fim da inclusão
WHEN 'S'.
DESCRIBE TABLE it_zycit079 LINES v_cont.
IF v_cont GT 1.
MESSAGE s015 WITH text-411.
ELSE.
PERFORM comm_save.
...
...
IF NOT /pws/zycie078-nrpli IS INITIAL AND
NOT /pws/zycie078-dtreg IS INITIAL.
IF NOT /pws/zycie078-status EQ 'VIN'.
/pws/zycie078-status = 'VAL'.
* >> Início da inclusão: FORM COMM_SAVEPLI
ENDIF.
ENDIF.
IF v_plisub EQ 'X' .
READ TABLE it_zycit079 WITH KEY numli = /pws/zycie078-li_ref.
IF sy-subrc NE 0.
MESSAGE i015 WITH text-517 text-519.
EXIT.
ELSE.
PERFORM trata_pli_sub.
* << Fim da inclusão
ENDIF.
ENDIF.
IF NOT it_zycit079[] IS INITIAL.
SELECT ebeln ebelp matnr mfrpn FROM ekpo
INTO TABLE it_ekpo_temp
FOR ALL ENTRIES IN it_zycit079
WHERE ebeln EQ it_zycit079-ebeln
AND ebelp EQ it_zycit079-ebelp.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI020F02
...
space TO wa_zycit078-dtusera,
space TO wa_zycit078-identify,
space TO wa_zycit078-nrli,
space TO wa_zycit078-dtreg,
space TO wa_zycit078-dtdef,
space TO wa_zycit078-dtvencto,
space TO wa_zycit078-nrseqlisub,
space TO wa_zycit078-nrlisub,
space TO wa_zycit078-nrseqlisuba,
space TO wa_zycit078-nrlisuba.
* >> Início da inclusão: FORM COMM_COPY
CLEAR: /pws/zycie078-nrpli,
/pws/zycie078-dtreg,
/pws/zycie078-dtvencto,
/pws/zycie078-dtdef,
v_nrpli ,
v_dtreg .
* << Fim da inclusão
LOOP AT it_zycit079.
* >> Início da inclusão: FORM COMM_COPY
CLEAR: /pws/zycie079-numli,
/pws/zycie079-nrli ,
it_zycit079-numli,
it_zycit079-nrli .
* << Fim da inclusão
IF NOT it_zycit079-nrseqli IS INITIAL AND
it_zycit079-slqtde < it_zycit079-qtd_iten.
it_zycit079-qtd_iten = it_zycit079-slqtde.
...
...
FORM comm_lisubst_pli.
* >> Início da inclusão: FORM COMM_LISUBST_PLI
LOOP AT it_zycit079 WHERE numli NE space.
ENDLOOP.
IF sy-subrc NE 0.
MESSAGE i015 WITH text-517 text-518.
EXIT.
ENDIF.
* << Fim da inclusão
PERFORM quest_gravacao.
IF v_resp_save NE 'A'.
IF /pws/zycie078-status EQ 'VAL'.
* >> Início da exclusão: FORM COMM_LISUBST_PLI
v_flag = 'X'.
MOVE /pws/zycie078 TO wa_zycit078_aux2.
wa_zycit078_aux2-status = 'SUB'.
v_tcode2 = v_tcode.
CASE v_tcode.
WHEN '/PWS/ZYCI020_E' OR '/PWS/ZYCI020_A'.
v_tcode = '/PWS/ZYCI020_C'.
WHEN '/PWS/ZYCI020_R' OR '/PWS/ZYCI020_N'.
v_tcode = '/PWS/ZYCI020_P'.
WHEN '/PWS/ZYCI020_L' OR '/PWS/ZYCI020_G'.
v_tcode = '/PWS/ZYCI020_I'.
ENDCASE.
PERFORM find_nrseqc_pli.
v_tcode = v_tcode2.
wa_zycit078-nrseqli = /pws/zycie078-nrseqli.
wa_zycit078-nrlisuba = wa_zycit078_aux2-nrli.
wa_zycit078-nrseqlisuba = wa_zycit078_aux2-nrseqli.
MOVE: space TO wa_zycit078-nrli,
space TO wa_zycit078-dtuserc,
space TO wa_zycit078-usernamec,
space TO wa_zycit078-dtusera,
space TO wa_zycit078-usernamea,
space TO wa_zycit078-nrseqdi,
space TO wa_zycit078-nrdi,
space TO wa_zycit078-adicao,
space TO wa_zycit078-dtregdi.
IF /pws/zycie078-tpli EQ 'N'.
MESSAGE s015 WITH text-042.
ELSEIF /pws/zycie078-tpli EQ 'S'.
MESSAGE s015 WITH text-041.
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM COMM_LISUBST_PLI
v_plisub = 'X' .
/pws/zycie078-tppli = 2.
* << Fim da inclusão
ELSE.
* >> Início da exclusão: FORM COMM_LISUBST_PLI
MESSAGE i015 WITH text-025 text-032.
* << Fim da exclusão
* >> Início da inclusão: FORM COMM_LISUBST_PLI
MESSAGE i015 WITH text-517 text-032.
* << Fim da inclusão
ENDIF.
ENDIF.
ENDFORM.
...
...
FORM gera_seq_novoreg.
DATA: v_nrseqli2 LIKE /pws/zycie078-nrseqli,
v_count2(7) TYPE n ,
v_ano2(4) TYPE c .
CLEAR /pws/zycie078c.
* >> Início da exclusão: FORM GERA_SEQ_NOVOREG
MOVE : /pws/zycie078 TO /pws/zycie078c ,
* << Fim da exclusão
* >> Início da inclusão: FORM GERA_SEQ_NOVOREG
IF v_plisub EQ 'X' .
SELECT SINGLE * FROM /pws/zycit078
INTO /pws/zycie078c
WHERE nrseqli EQ /pws/zycie078-li_ref.
MOVE /pws/zycie078-nrseqli TO /pws/zycie078c-numpli.
ELSE.
MOVE : /pws/zycie078 TO /pws/zycie078c ,
* << Fim da inclusão
v_pliorig TO /pws/zycie078c-numpli.
* >> Início da inclusão: FORM GERA_SEQ_NOVOREG
ENDIF.
* << Fim da inclusão
CLEAR : /pws/zycie078c-flagpli,
/pws/zycie078c-nrpli ,
/pws/zycie078c-dtreg .
CONCATENATE '%' 'I' sy-datum+2(2) INTO v_ano2.
...
...
* >> Início da inclusão:
FORM trata_pli_sub.
v_flag = 'X'.
MOVE /pws/zycie078 TO wa_zycit078_aux2.
wa_zycit078_aux2-status = 'SUB'.
v_tcode2 = v_tcode.
CASE v_tcode.
WHEN '/PWS/ZYCI020_E' OR '/PWS/ZYCI020_A'.
v_tcode = '/PWS/ZYCI020_C'.
WHEN '/PWS/ZYCI020_R' OR '/PWS/ZYCI020_N'.
v_tcode = '/PWS/ZYCI020_P'.
WHEN '/PWS/ZYCI020_L' OR '/PWS/ZYCI020_G'.
v_tcode = '/PWS/ZYCI020_I'.
ENDCASE.
PERFORM find_nrseqc_pli.
MOVE /pws/zycie078 TO /pws/zycit078.
INSERT /pws/zycit078.
WHILE sy-subrc NE 0.
PERFORM find_nrseqc_pli.
ENDWHILE.
MOVE-CORRESPONDING /pws/zycie078c TO /pws/zycit078.
v_tcode = v_tcode2.
wa_zycit078-nrseqli = /pws/zycie078-nrseqli.
wa_zycit078-nrlisuba = wa_zycit078_aux2-nrli.
wa_zycit078-nrseqlisuba = wa_zycit078_aux2-nrseqli.
UPDATE /pws/zycit078 SET nrseqlisub = /pws/zycie078-nrseqli
where nrseqli = wa_zycit078_aux2-nrseqli.
MOVE-CORRESPONDING wa_zycit078_aux2 TO /pws/zycit078.
MOVE: space TO wa_zycit078-nrli,
space TO wa_zycit078-dtuserc,
space TO wa_zycit078-usernamec,
space TO wa_zycit078-dtusera,
space TO wa_zycit078-usernamea,
space TO wa_zycit078-nrseqdi,
space TO wa_zycit078-nrdi,
space TO wa_zycit078-adicao,
space TO wa_zycit078-dtregdi.
IF /pws/zycie078-tpli EQ 'N'.
MESSAGE s015 WITH text-042.
ELSEIF /pws/zycie078-tpli EQ 'S'.
MESSAGE s015 WITH text-041.
ENDIF.
DELETE it_zycit079 WHERE numli NE /pws/zycie078-li_ref.
PERFORM gera_seq_novoreg.
LOOP AT it_zycit079.
it_zycit079-nrseqli = /pws/zycie078-nrseqli.
MODIFY it_zycit079.
ENDLOOP.
SELECT * FROM /pws/zycit079
INTO TABLE it_zycit079_ncm
WHERE nrseqli = /pws/zycie078-li_ref.
PERFORM: atual_tabelas,
gera_novoreg .
CLEAR: /pws/zycie078-nrpli,
/pws/zycie078-dtreg,
/pws/zycie078-dtvencto,
/pws/zycie078-dtdef.
it_zycit079-numli = /pws/zycie078c-nrseqli.
MODIFY it_zycit079 TRANSPORTING numli
WHERE nrseqli = /pws/zycie078-nrseqli.
MOVE /pws/zycie078 TO wa_zycit078_aux2.
PERFORM limpa_tabncm .
CLEAR v_plisub.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI020O01
...
* >> Início da inclusão: MODULE SET_SCREEN_501
LOOP AT SCREEN.
IF screen-name EQ '/PWS/ZYCIE078-LI_REF' .
IF v_plisub EQ 'X' OR
( NOT /pws/zycie078-li_ref IS INITIAL
AND /pws/zycie078-tppli EQ '2' ).
screen-input = '1' .
screen-invisible = '0'.
ELSE.
screen-input = '0' .
screen-invisible = '1'.
ENDIF.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
* << Fim da inclusão
ENDMODULE.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI020X01
...
* >> Início da inclusão:
data: v_plisub.
* << Fim da inclusão
DATA: END OF COMMON PART.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCI020
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: EN
Símbolo: 517
Texto: (35 caracteres)
"Substitutive PLI can only be create"
Comprimento máximo: 35
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 517
Texto: (35 caracteres)
"PLI Substitutiva só pode ser criada"
Comprimento máximo: 35
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: ES
Símbolo: 517
Texto: (33 caracteres)
"PLI Substitutiva puede ser creada"
Comprimento máximo: 35
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: EN
Símbolo: 518
Texto: (18 caracteres)
"with generated LI."
Comprimento máximo: 24
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 518
Texto: (24 caracteres)
"com LI gerada nos itens."
Comprimento máximo: 24
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: ES
Símbolo: 518
Texto: (14 caracteres)
"com LI creada."
Comprimento máximo: 24
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 519
Texto: (44 caracteres)
"LI referenciada não é relacionada nos itens."
Comprimento máximo: 44