Módulo: DOC. IMPORTAÇÃO
Funcionalidade: PLI
Data/Hora da Publicação: 14/01/2013 00:00:00
Data/Hora Última Alteração: 16/04/2014 09:03:03
Descrição da Nota: PLI - CANCELAMENTO DE ITEM
Sintoma
Atualmente a rotina de cópia da PLI somente permite copiar itens que tenham saldo no pedido. Porém o
saldo do pedido somente é considerado utilizado quando é aceito e registrado na SUFRAMA. Isso
impede que o cliente utilize o saldo de um item que foi cancelado em uma PLI em outra PLI criada
posteriormente.
Solução
Novo campo para indicar cancelamento de item de PLI e tratar saldo do pedido para ser utilizado em
outras PLI¿s.
9.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 12764 Data: 14/01/2013 Hora: 11:14:10
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 12764
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 9.0
Pacote : 00003
Agrupamento : 00144
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
----------------------------------------------------------------------------------------------------
PLI - CANCELAMENTO DE ITEM
----------------------------------------------------------------------------------------------------
Palavras Chave:
PLI - CANCELAR ITEM
----------------------------------------------------------------------------------------------------
Objetos da nota:
DTEL /PWS/ZYCIL940
TABD /PWS/ZYCIT079
DYNP /PWS/SAPMZYCI020 0502
REPS /PWS/MZYCI020O01
REPS /PWS/MZYCI020I01
REPS /PWS/MZYCI020F02
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DTEL /PWS/ZYCIL940
* CRIAR O ELEMENTOS DE DADOS ATRAVÉS DA TRANSAÇÃO SE11: /PWS/ZYCIL940
------------------------------------------------------------------------
Elemento de dados incluído: /PWS/ZYCIL940
Classe de desenvolvimento: /PWS/ZYCI
Idioma original: PT
Descrição breve incluída: (14 caracteres), idioma: EN
"Item cancelled"
Descrição breve incluída: (14 caracteres), idioma: PT
"Item cancelado"
Descrição breve incluída: (14 caracteres), idioma: ES
"Item cancelado"
Categoria de dados: Domínio
Domínio: FLAG
ID parâmetro:
Nome componente default:
Documentar modificações: NÃO
Nome da ajuda de pesquisa:
Parâmetro da ajuda de pesquisa:
Comprimento máximo do denominador breve: 10
Denominador breve incluído (9 caracteres), idioma: EN
"Cancelled"
Denominador breve incluído (9 caracteres), idioma: PT
"Cancelado"
Denominador breve incluído (9 caracteres), idioma: ES
"Cancelado"
Comprimento máximo do denominador médio: 15
Denominador médio incluído (14 caracteres), idioma: EN
"Item cancelled"
Denominador médio incluído (14 caracteres), idioma: PT
"Item cancelado"
Denominador médio incluído (14 caracteres), idioma: ES
"Item cancelado"
Comprimento máximo do denominador longo: 20
Denominador longo incluído (14 caracteres), idioma: EN
"Item cancelled"
Denominador longo incluído (14 caracteres), idioma: PT
"Item cancelado"
Denominador longo incluído (14 caracteres), idioma: ES
"Item cancelado"
Comprimento máximo do título: 14
Título incluído (14 caracteres), idioma: EN
"Item cancelled"
Título incluído (14 caracteres), idioma: PT
"Item cancelado"
Título incluído (14 caracteres), idioma: ES
"Item cancelado"
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIT079
* UTILIZANDO A TRANSAÇÃO SE11, INCLUIR UM NOVO CAMPO NA TABELA /PWS/ZYCIT079, ELE DEVE SER O ÚLTIMO
* CAMPO DA TABELA
CAMPO ELEMENTO DE DADOS
CANCEL /PWS/ZYCIL940
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI020 0502
O Download das telas encontra-se disponível no link abaixo
http://produtos.sondait.com.br/home/PW.CE/Notas/
MODIFICAR LÓGICA DE PROCESSAMENTO TELA 0502
process before output.
module: load_dados_502,
set_screen_sub.
loop at it_zycit079
cursor tc_item_pli-current_line.
module: carrega_zycie079_400,
set_screen_sub.
* >> Início da inclusão:
MODULE: set_screen_pli.
* << Fim da inclusão
endloop.
process after input.
loop at it_zycit079.
chain.
field /pws/zycie079-qtd_iten module trata_saldo_pexpam
on chain-request.
endchain.
module altera_it_zycit079_400.
endloop.
module: atualiza_dados_502,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI020O01
* >> Início da inclusão:
MODULE set_screen_pli OUTPUT.
IF it_zycit079-cancel EQ 'X'.
LOOP AT SCREEN.
IF screen-name EQ '/PWS/ZYCIE079-QTD_ITEN' OR
screen-name EQ '/PWS/ZYCIE079-NTGEW' OR
screen-name EQ '/PWS/ZYCIE079-FATOR' OR
screen-name EQ '/PWS/ZYCIE079-SUBS_EXIGENCIA'.
screen-input = 0.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDIF.
ENDMODULE.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI020I01
...
/pws/zycie079-netpr TO it_zycit079-netpr ,
/pws/zycie079-qtd_iten TO it_zycit079-qtd_iten ,
/pws/zycie079-ntgew TO it_zycit079-ntgew ,
/pws/zycie079-gewei TO it_zycit079-gewei ,
/pws/zycie079-steuc1 TO it_zycit079-steuc1 ,
/pws/zycie079-fator TO it_zycit079-fator ,
/pws/zycie079-qtdest TO it_zycit079-qtdest ,
/pws/zycie079-zum TO it_zycit079-zum ,
/pws/zycie079-codsufra TO it_zycit079-codsufra ,
/pws/zycie079-subs_exigencia TO it_zycit079-subs_exigencia,
* >> Início da inclusão: MODULE ALTERA_IT_ZYCIT079_400
/pws/zycie079-cancel TO it_zycit079-cancel,
* << Fim da inclusão
mark TO it_zycit079-mark .
it_zycit079-nrseqli = /pws/zycie078-nrseqli.
it_zycit079-slqtde = /pws/zycie092-slqtde.
IF NOT /pws/zycie079-steuc1 IS INITIAL.
SELECT SINGLE text1
FROM t604n
INTO /pws/zycit181-descricao
WHERE steuc EQ /pws/zycie079-steuc1
AND spras EQ sy-langu . "#EC CI_GENBUFF
IF sy-subrc NE 0.
MOVE space TO /pws/zycit181-descricao.
ENDIF.
ELSE.
MOVE space TO /pws/zycit181-descricao.
ENDIF.
IF it_zycit079-ncm IS INITIAL.
it_zycit079-ncm = it_zycit079-steuc1.
ENDIF.
* >> Início da inclusão: MODULE ALTERA_IT_ZYCIT079_400
IF sy-ucomm EQ 'DELETE'.
CLEAR: it_zycit079_aux.
READ TABLE it_zycit079_aux WITH KEY
ebeln = it_zycit079-ebeln
ebelp = it_zycit079-ebelp.
IF sy-subrc EQ 0.
IF it_zycit079_aux-qtd_iten EQ it_zycit079-qtd_iten AND
it_zycit079_aux-cancel NE it_zycit079-cancel AND
it_zycit079-cancel EQ 'X'.
it_zycit079-slqtde = it_zycit079-slqtde + it_zycit079-qtd_iten.
ELSEIF it_zycit079_aux-qtd_iten EQ it_zycit079-qtd_iten AND
it_zycit079_aux-cancel NE it_zycit079-cancel AND
it_zycit079-cancel EQ ' '.
IF it_zycit079-slqtde EQ '0.000'.
MESSAGE w061 WITH text-012 it_zycit079-ebelp
text-013 it_zycit079-ebeln.
it_zycit079-cancel = 'X'.
ELSEIF it_zycit079-qtd_iten > it_zycit079-slqtde.
MESSAGE w061 WITH text-012 it_zycit079-ebelp
text-013 it_zycit079-ebeln.
it_zycit079-cancel = 'X'.
ELSE.
it_zycit079-slqtde = it_zycit079-slqtde - it_zycit079-qtd_iten.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
* << Fim da inclusão
IF sy-dynnr EQ '0403'.
MODIFY it_zycit079 INDEX tc_item_lsi-current_line.
ELSE.
MODIFY it_zycit079 INDEX tc_item_pli-current_line.
ENDIF.
IF sy-subrc NE 0.
READ TABLE it_zycit079_aux WITH KEY
ebeln = it_zycit079-ebeln
ebelp = it_zycit079-ebelp.
IF sy-subrc NE 0.
...
...
ENDIF.
ENDIF.
CLEAR v_resp_save.
WHEN 'SAVE'.
/pws/zycie078-flagpli = 'X'.
PERFORM comm_savepli.
WHEN 'PED'.
PERFORM atualiza_variaveis.
CALL SELECTION-SCREEN '0300'.
WHEN 'COPY'.
* >> Início da exclusão: MODULE USER_COMMAND_0500
PERFORM comm_copy.
* << Fim da exclusão
* >> Início da inclusão: MODULE USER_COMMAND_0500
PERFORM comm_copy_pli.
* << Fim da inclusão
WHEN 'CANCEL'.
PERFORM comm_cancelpli.
WHEN 'LISUBST'.
PERFORM comm_lisubst_pli.
WHEN 'DET'.
CLEAR: v_executou.
PERFORM comm_detli.
WHEN 'DTLI'.
WHEN 'OBLI'.
PERFORM observacao_li.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI020F02
...
SELECT ebeln ebelp menge bstyp FROM ekpo
INTO TABLE itab_ekpo
FOR ALL ENTRIES IN it_zycit092
WHERE ebeln EQ it_zycit092-ebeln
AND ebelp EQ it_zycit092-ebelp.
SELECT * FROM /pws/zycit079
INTO TABLE itab_zycit079_util
FOR ALL ENTRIES IN it_zycit092
WHERE ebeln EQ it_zycit092-ebeln
AND ebelp EQ it_zycit092-ebelp. "#EC CI_NOFIRST
* >> Início da inclusão: FORM CARREGA_SALDO
DELETE itab_zycit079_util WHERE cancel = 'X'.
* << Fim da inclusão
ENDIF.
LOOP AT it_zycit092.
CLEAR: itab_ekpo, itab_zycit079_util.
READ TABLE itab_ekpo WITH KEY ebeln = it_zycit092-ebeln
ebelp = it_zycit092-ebelp.
IF sy-subrc EQ 0.
CLEAR v_qtdemb.
LOOP AT itab_zycit079_util WHERE ebeln EQ it_zycit092-ebeln
AND ebelp EQ it_zycit092-ebelp.
SELECT SINGLE * FROM /pws/zycit078
...
...
* >> Início da inclusão:
FORM comm_copy_pli.
DATA: BEGIN OF lt_zycit078 OCCURS 0,
nrseqli TYPE /pws/zycit078-nrseqli,
flagpli TYPE /pws/zycit078-flagpli,
END OF lt_zycit078.
DATA: BEGIN OF lt_zycit079 OCCURS 0,
nrseqli TYPE /pws/zycit079-nrseqli,
ebeln TYPE /pws/zycit079-ebeln,
ebelp TYPE /pws/zycit079-ebelp,
qtd_iten TYPE /pws/zycit079-qtd_iten,
cancel TYPE /pws/zycit079-cancel,
END OF lt_zycit079.
DATA: BEGIN OF lt_zycit079_aux OCCURS 0,
ebeln TYPE /pws/zycit079-ebeln,
ebelp TYPE /pws/zycit079-ebelp,
qtd_iten TYPE /pws/zycit079-qtd_iten,
END OF lt_zycit079_aux.
IF v_tcode EQ '/PWS/ZYCI020_I' OR
v_tcode EQ '/PWS/ZYCI020_G'.
PERFORM save.
ENDIF.
FREE it_zycit079_copy.
IF NOT it_zycit079[] IS INITIAL.
SELECT nrseqli ebeln ebelp qtd_iten cancel
FROM /pws/zycit079
INTO TABLE lt_zycit079
FOR ALL ENTRIES IN it_zycit079
WHERE ebeln EQ it_zycit079-ebeln
AND ebelp EQ it_zycit079-ebelp.
DELETE lt_zycit079 WHERE cancel = 'X'.
IF NOT lt_zycit079[] IS INITIAL.
SELECT nrseqli flagpli
FROM /pws/zycit078
INTO TABLE lt_zycit078
FOR ALL ENTRIES IN lt_zycit079
WHERE nrseqli EQ lt_zycit079-nrseqli.
LOOP AT lt_zycit079.
CLEAR: lt_zycit078.
READ TABLE lt_zycit078 WITH KEY nrseqli = lt_zycit079-nrseqli.
IF sy-subrc EQ 0 AND lt_zycit078-flagpli EQ 'X'.
MOVE-CORRESPONDING lt_zycit079 TO lt_zycit079_aux.
COLLECT lt_zycit079_aux.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
LOOP AT it_zycit079.
CLEAR: lt_zycit079_aux.
READ TABLE lt_zycit079_aux WITH KEY ebeln = it_zycit079-ebeln
ebelp = it_zycit079-ebelp.
IF sy-subrc EQ 0.
IF it_zycit079-menge > lt_zycit079_aux-qtd_iten AND
NOT it_zycit079-nrseqli IS INITIAL.
CLEAR: it_zycit079_copy.
MOVE it_zycit079 TO it_zycit079_copy.
APPEND it_zycit079_copy.
ENDIF.
ELSE.
IF NOT it_zycit079-nrseqli IS INITIAL AND
it_zycit079-slqtde > '0.000'.
CLEAR: it_zycit079_copy.
MOVE it_zycit079 TO it_zycit079_copy.
APPEND it_zycit079_copy.
ENDIF.
ENDIF.
ENDLOOP.
IF it_zycit079_copy[] IS INITIAL.
MESSAGE e015 WITH text-463 text-464.
ELSE.
LOOP AT it_zycit079.
v_indice = sy-tabix.
READ TABLE it_zycit079_copy WITH KEY nrseqli = it_zycit079-nrseqli
tpli = it_zycit079-tpli
ebeln = it_zycit079-ebeln
ebelp = it_zycit079-ebelp.
IF sy-subrc <> 0.
DELETE it_zycit079 INDEX v_indice.
ENDIF.
ENDLOOP.
ENDIF.
PERFORM quest_gravacao.
IF v_resp_save NE 'A'.
CASE v_tcode.
WHEN '/PWS/ZYCI020_A' OR '/PWS/ZYCI020_E'.
v_tcode = '/PWS/ZYCI020_C'.
WHEN '/PWS/ZYCI020_N' OR '/PWS/ZYCI020_R'.
v_tcode = '/PWS/ZYCI020_P'.
WHEN '/PWS/ZYCI020_G' OR '/PWS/ZYCI020_L'.
v_tcode = '/PWS/ZYCI020_I'.
ENDCASE.
PERFORM find_nrseqc.
wa_zycit078-usernamec = sy-uname.
wa_zycit078-dtuserc = sy-datum.
MOVE: space TO wa_zycit078-usernamea,
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.
CLEAR: /pws/zycie078-nrpli, /pws/zycie078-dtreg,
/pws/zycie078-dtvencto, /pws/zycie078-dtdef, v_nrpli, v_dtreg.
LOOP AT it_zycit079.
CLEAR: /pws/zycie079-numli, /pws/zycie079-nrli,
it_zycit079-numli, it_zycit079-nrli,
it_zycit079-cancel.
IF NOT it_zycit079-nrseqli IS INITIAL AND
it_zycit079-slqtde < it_zycit079-qtd_iten.
it_zycit079-qtd_iten = it_zycit079-slqtde.
it_zycit079-slqtde = 0.
ELSE.
it_zycit079-slqtde = it_zycit079-slqtde - it_zycit079-qtd_iten.
ENDIF.
MODIFY it_zycit079 INDEX sy-tabix.
ENDLOOP.
wa_zycit078-nrseqli = /pws/zycie078-nrseqli.
IF /pws/zycie078-tpli EQ 'N'.
IF v_tcode EQ '/PWS/ZYCI020_C'.
MESSAGE s015 WITH text-045.
ELSEIF v_tcode EQ '/PWS/ZYCI020_I'.
MESSAGE s015 WITH text-055.
ENDIF.
ELSEIF /pws/zycie078-tpli EQ 'S'.
MESSAGE s015 WITH text-046.
ENDIF.
ENDIF.
ENDFORM.
* << Fim da inclusão