Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Embarque
Data/Hora da Publicação: 22/05/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 15:12:16
Descrição da Nota: AJUSTES REFERENTES A PERFORMANCE DO EMBARQUE.
Sintoma
AJUSTES REFERENTES A PERFORMANCE DO EMBARQUE.
Embarque lento quando possui mais de 500 itens.
Solução
AJUSTES REFERENTES A PERFORMANCE DO EMBARQUE.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03732 Data: 22/05/2007 Hora: 16:10:29
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03732
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00001
Agrupamento : 00167
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01268 - 00001 - 6.0 - 00023 - DESENVOLVIMENTO ENTREPOSTO ADUANEIRO
01437 - 00002 - 6.0 - 00023 - ALTERAÇÃO DE DATA NO EMBARQUE
01940 - 00003 - 6.0 - 00024 - PERFORMANCE DA TRANSAÇÃO /PWS/ZYCI001_A ESTÁ CONSUMINDO MUITA MEM
02234 - 00010 - 6.0 - 00025 - SALDO EMBARQUE
02277 - 00004 - 6.0 - 00025 - AO TENTAR CRIAR A NF DA MSG DE FATURA NÃO CONSTABILIZADA
02586 - 00005 - 6.0 - 00026 - NA ESTRATÉGIA DE LIBERAÇÃO DO ADIANTAMENTO - EMBARQUE ESTÁ SENDO
02886 - 00006 - 6.0 - 00026 - VARIAÇÃO CAMBIAL DA DI EM ITENS COM FATURA LIVRE DE DÉBITO
02944 - 00007 - 6.0 - 00026 - EMBARQUE ESTÁ SE PERDENDO AO VINCULAR ITENS DO PEDIDO OU SCHEDULE
03018 - 00008 - 6.0 - 00026 - EMBARQUE NÃO TEM FATURA, MAS O SISTEMA INFORMA QUE EXISTE FATURA.
03364 - 00009 - 7.0 - 00001 - ELIMINA REGISTROS /PWS/ZYCIT263 QUE POSSUAM NRSEQ_PGFAT EM BRANCO
----------------------------------------------------------------------------------------------------
AJUSTES REFERENTES A PERFORMANCE DO EMBARQUE.
----------------------------------------------------------------------------------------------------
Palavras Chave:
PERFORMANCE - EMBARQUE
/PWS/SAPMZYCI001
----------------------------------------------------------------------------------------------------
Objetos da nota:
DYNP /PWS/SAPMZYCI001 0100
REPS /PWS/MZYCI001F01
REPS /PWS/MZYCI001F02
REPS /PWS/MZYCI001F03
REPS /PWS/MZYCI001I01
REPS /PWS/MZYCI001X01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI001 0100
...
CALL SUBSCREEN:
ss_cab,
ss_ped,
ss_da ,
ss_fornec,
ss_adm.
* >> Início da exclusão:
MODULE: atualizar_itens,
* << Fim da exclusão
* >> Início da inclusão:
MODULE:
* << Fim da inclusão
user_command_0100,
user_command_exit AT EXIT-COMMAND.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F01
...
MODIFY itab_zycit125_aux TRANSPORTING nrseq
WHERE nrseq = v_nrseq_ant.
IF ( v_tcode EQ '/PWS/ZYCI001_C' ) AND
( /pws/zycie001-dtuserc IS INITIAL ) AND
( /pws/zycie001-usernamec IS INITIAL ).
MOVE: sy-datlo TO /pws/zycie001-dtuserc ,
sy-uname TO /pws/zycie001-usernamec.
ENDIF.
ENDFORM.
FORM verifica_itens.
* >> Início da inclusão: FORM VERIFICA_ITENS
DATA: v_linhas TYPE i,
v_linhas2 TYPE i.
DATA: BEGIN OF itab_pedido_temp OCCURS 0.
DATA: ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp.
DATA: END OF itab_pedido_temp.
* << Fim da inclusão
DATA:
v_existe_bl ,
v_ebelp LIKE konv-kposn.
IF ( sy-tcode = '/PWS/ZYCI001_E' OR
sy-tcode = '/PWS/ZYCI001_A' ) AND
( okcode = 'P-' OR okcode = 'P--' OR
okcode = 'P+' OR okcode = 'P++' ).
ELSEIF okcode EQ 'PED' OR okcode EQ 'ENTE' OR okcode EQ 'SAVE' OR
okcode EQ 'FAT'.
CHECK NOT itab_zycit003[] IS INITIAL.
* >> Início da inclusão: FORM VERIFICA_ITENS
DESCRIBE TABLE itab_zycit013 LINES v_linhas.
DESCRIBE TABLE itab_zycit003 LINES v_linhas2.
CLEAR: v_mod_ped.
IF v_linhas > v_linhas2.
LOOP AT itab_zycit013.
READ TABLE itab_zycit003 WITH KEY ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc NE 0.
DELETE itab_zycit013.
ENDIF.
ENDLOOP.
ELSEIF v_linhas < v_linhas2.
REFRESH itab_pedido_temp.
LOOP AT itab_zycit003.
READ TABLE itab_zycit013 WITH KEY ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc NE 0.
itab_pedido_temp-ebeln = itab_zycit003-ebeln.
itab_pedido_temp-ebelp = itab_zycit003-ebelp.
APPEND itab_pedido_temp.
ENDIF.
ENDLOOP.
* << Fim da inclusão
SELECT * FROM /pws/zycit013
INTO TABLE itab_zycit013
* >> Início da exclusão: FORM VERIFICA_ITENS
FOR ALL ENTRIES IN itab_zycit003 WHERE
ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp.
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_ITENS
FOR ALL ENTRIES IN itab_pedido_temp WHERE
ebeln = itab_pedido_temp-ebeln AND
ebelp = itab_pedido_temp-ebelp.
ENDIF.
* << Fim da inclusão
PERFORM carrega_saldo.
PERFORM lock_pedido.
* >> Início da inclusão: FORM VERIFICA_ITENS
IF NOT itab_zycit003 IS INITIAL AND
itab_zycit263[] IS INITIAL.
SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263
WHERE nrseq = /pws/zycie001-nrseq
AND eliminado = space.
* << Fim da inclusão
* >> Início da exclusão: FORM VERIFICA_ITENS
SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263
FOR ALL ENTRIES IN itab_zycit003 WHERE
nrseq = itab_zycit003-nrseq AND
ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp AND
eliminado = space.
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_ITENS
ENDIF.
* << Fim da inclusão
IF NOT itab_zycit263[] IS INITIAL.
* >> Início da inclusão: FORM VERIFICA_ITENS
REFRESH itab_temp_seq_pgfat.
LOOP AT itab_zycit263.
itab_temp_seq_pgfat-nrseq_pgfat = itab_zycit263-nrseq_pgfat.
COLLECT itab_temp_seq_pgfat.
ENDLOOP.
IF NOT itab_temp_seq_pgfat[] IS INITIAL.
* << Fim da inclusão
SELECT * FROM /pws/zycit006
INTO TABLE itab_zycit006
* >> Início da exclusão: FORM VERIFICA_ITENS
FOR ALL ENTRIES IN itab_zycit263
WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_ITENS
FOR ALL ENTRIES IN itab_temp_seq_pgfat
WHERE nrseq_pgfat EQ itab_temp_seq_pgfat-nrseq_pgfat
AND nrseqce = /pws/zycit094-nrseqce.
ENDIF.
* << Fim da inclusão
LOOP AT itab_zycit263.
v_tabix = sy-tabix.
READ TABLE itab_zycit006 WITH KEY
nrseq_pgfat = itab_zycit263-nrseq_pgfat
eliminado = space.
IF sy-subrc NE 0.
DELETE itab_zycit263 INDEX v_tabix.
ENDIF.
ENDLOOP.
ENDIF.
...
...
v_taxa = 1.
v_netpr = itab_zycit003-netpr.
ENDIF.
v_netpr = v_netpr * itab_zycit003-qtd_iten.
/pws/zycie001-netpr = /pws/zycie001-netpr + v_netpr.
IF /pws/zycie001-netpr < 0.
CLEAR /pws/zycie001-netpr.
MESSAGE e061 WITH text-235 text-236.
ENDIF.
IF itab_zycit003-tpnf IS INITIAL.
* >> Início da inclusão: FORM VERIFICA_ITENS
READ TABLE itab_zycit100 WITH KEY nrseq = itab_zycit003-nrseq
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc EQ 0.
* << Fim da inclusão
SELECT SINGLE j_1bmatuse INTO ekpo-j_1bmatuse
FROM ekpo
WHERE ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp.
SELECT SINGLE tpnf tpnf_ld tpnf_db tpnf_icms INTO
CORRESPONDING FIELDS OF /pws/zycit012
FROM /pws/zycit012
WHERE j_1bmatuse EQ ekpo-j_1bmatuse.
* >> Início da exclusão: FORM VERIFICA_ITENS
READ TABLE itab_zycit100 WITH KEY nrseq = itab_zycit003-nrseq
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc EQ 0.
* << Fim da exclusão
IF NOT itab_zycit003-nrseqd IS INITIAL
AND NOT /pws/zycit012-tpnf_db IS INITIAL.
itab_zycit003-tpnf = /pws/zycit012-tpnf_db.
ELSEIF /pws/zycit100-icms_dif EQ 'X'
AND NOT /pws/zycit012-tpnf_icms IS INITIAL.
itab_zycit003-tpnf = /pws/zycit012-tpnf_icms.
ELSE.
itab_zycit003-tpnf = /pws/zycit012-tpnf.
REFRESH itab_zycit263.
IF NOT itab_zycit003[] IS INITIAL.
SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263
* >> Início da exclusão: FORM VERIFICA_ITENS
FOR ALL ENTRIES IN itab_zycit003 WHERE
nrseq = itab_zycit003-nrseq AND
ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp AND
eliminado = space.
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_ITENS
WHERE nrseq = /pws/zycie001-nrseq
AND eliminado = space.
* << Fim da inclusão
ENDIF.
READ TABLE itab_zycit263 WITH KEY ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc EQ 0.
SELECT SINGLE frpagto INTO /pws/zycit006-frpagto
FROM /pws/zycit006
WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.
IF sy-subrc EQ 0.
IF /pws/zycit006-frpagto EQ 'A'.
itab_zycit003-tpnf = /pws/zycit012-tpnf_ld.
...
...
MESSAGE e015 WITH text-048.
EXIT.
ENDIF.
ENDLOOP.
IF /pws/zycie001-tpdecl IS INITIAL.
EXIT.
ENDIF.
IF NOT itab_zycit003[] IS INITIAL.
SELECT * FROM /pws/zycit100
INTO TABLE itab_zycit100
* >> Início da exclusão: FORM CALL_DI
FOR ALL ENTRIES IN itab_zycit003
WHERE nrseq EQ itab_zycit003-nrseq
AND ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp.
* << Fim da exclusão
* >> Início da inclusão: FORM CALL_DI
WHERE nrseq = /pws/zycie001-nrseq.
* << Fim da inclusão
IF sy-subrc EQ 0.
READ TABLE itab_zycit100 INDEX 1.
IF sy-subrc EQ 0.
SELECT SINGLE * FROM /pws/zycit085
WHERE nrseqdi = itab_zycit100-nrseqdi.
v_nrseqdi = /pws/zycit085-nrseqdi.
ENDIF.
SET PARAMETER ID '/PWS/ZYCIP085' FIELD v_nrseqdi.
EXPORT v_nrseqdi TO MEMORY ID rimc1.
IF /pws/zycie001-tpdecl = 'DSI'.
...
...
DATA BEGIN OF itab_sele OCCURS 0.
DATA: ebeln LIKE ekpo-ebeln,
ebelp LIKE ekpo-ebelp.
DATA END OF itab_sele.
e_status = v_status_s.
READ TABLE itab_zycit003 WITH KEY mark = 'X'.
MOVE: itab_zycit003-lifnr TO v_lifnr,
itab_zycit003-waers TO v_moeda.
IF NOT itab_zycit003[] IS INITIAL.
SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263
* >> Início da exclusão: FORM CALL_FATURA
FOR ALL ENTRIES IN itab_zycit003 WHERE
nrseq = itab_zycit003-nrseq AND
ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp.
* << Fim da exclusão
* >> Início da inclusão: FORM CALL_FATURA
WHERE nrseq = /pws/zycie001-nrseq.
* << Fim da inclusão
IF NOT itab_zycit263[] IS INITIAL.
* >> Início da inclusão: FORM CALL_FATURA
REFRESH itab_temp_seq_pgfat.
LOOP AT itab_zycit263.
itab_temp_seq_pgfat-nrseq_pgfat = itab_zycit263-nrseq_pgfat.
COLLECT itab_temp_seq_pgfat.
ENDLOOP.
IF NOT itab_temp_seq_pgfat[] IS INITIAL.
* << Fim da inclusão
SELECT * FROM /pws/zycit006
INTO TABLE itab_zycit006
* >> Início da exclusão: FORM CALL_FATURA
FOR ALL ENTRIES IN itab_zycit263
WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.
* << Fim da exclusão
* >> Início da inclusão: FORM CALL_FATURA
FOR ALL ENTRIES IN itab_temp_seq_pgfat
WHERE nrseq_pgfat EQ itab_temp_seq_pgfat-nrseq_pgfat
AND nrseqce = /pws/zycit094-nrseqce.
ENDIF.
* << Fim da inclusão
LOOP AT itab_zycit263.
v_tabix = sy-tabix.
READ TABLE itab_zycit006 WITH KEY
nrseq_pgfat = itab_zycit263-nrseq_pgfat
eliminado = space.
IF sy-subrc NE 0.
DELETE itab_zycit263 INDEX v_tabix.
ENDIF.
ENDLOOP.
ENDIF.
...
...
WHERE nrseq EQ /pws/zycie001-nrseq.
IF NOT itab_zycit003[] IS INITIAL.
SELECT ebeln ebelp matnr idnlf
FROM ekpo INTO TABLE it_ekpo_aux
FOR ALL ENTRIES IN itab_zycit003
WHERE ebeln = itab_zycit003-ebeln
AND ebelp = itab_zycit003-ebelp.
ENDIF.
IF NOT itab_zycit003[] IS INITIAL.
SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263
* >> Início da exclusão: FORM RECUPERANDO_ITENS
FOR ALL ENTRIES IN itab_zycit003 WHERE
nrseq = itab_zycit003-nrseq AND
ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp AND
eliminado = space.
* << Fim da exclusão
* >> Início da inclusão: FORM RECUPERANDO_ITENS
WHERE nrseq = /pws/zycie001-nrseq
AND eliminado = space.
* << Fim da inclusão
IF NOT itab_zycit263[] IS INITIAL.
SELECT SINGLE * FROM /pws/zycit094
WHERE nrseq = /pws/zycie001-nrseq.
IF sy-subrc = 0.
SELECT * FROM /pws/zycit006 INTO TABLE itab_zycit006
WHERE nrseqce = /pws/zycit094-nrseqce AND
eliminado NE 'X' AND
tpfatura EQ '01' AND
frpagto NE 'A' AND
belnr_p EQ space AND
...
...
IF sy-subrc NE 0.
LOOP AT itab_zycit006.
itab_zycit006-eliminado = 'X'.
MODIFY itab_zycit006 .
ENDLOOP.
MODIFY /pws/zycit006 FROM TABLE itab_zycit006.
ENDIF.
ENDIF.
ENDIF.
REFRESH itab_zycit006. CLEAR itab_zycit006.
* >> Início da inclusão: FORM RECUPERANDO_ITENS
REFRESH itab_temp_seq_pgfat.
LOOP AT itab_zycit263.
itab_temp_seq_pgfat-nrseq_pgfat = itab_zycit263-nrseq_pgfat.
COLLECT itab_temp_seq_pgfat.
ENDLOOP.
IF NOT itab_temp_seq_pgfat[] IS INITIAL.
* << Fim da inclusão
SELECT * FROM /pws/zycit006
INTO TABLE itab_zycit006
* >> Início da exclusão: FORM RECUPERANDO_ITENS
FOR ALL ENTRIES IN itab_zycit263
WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.
* << Fim da exclusão
* >> Início da inclusão: FORM RECUPERANDO_ITENS
FOR ALL ENTRIES IN itab_temp_seq_pgfat
WHERE nrseq_pgfat EQ itab_temp_seq_pgfat-nrseq_pgfat
AND nrseqce = /pws/zycit094-nrseqce.
ENDIF.
* << Fim da inclusão
LOOP AT itab_zycit263.
IF itab_zycit263-nrseq_pgfat IS INITIAL.
DELETE FROM /pws/zycit263
WHERE nrseq EQ itab_zycit263-nrseq
AND ebeln EQ itab_zycit263-ebeln
AND ebelp EQ itab_zycit263-ebelp
AND nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.
DELETE itab_zycit263.
CONTINUE.
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F02
...
company_not_found = 3
OTHERS = 4.
IF sy-subrc EQ 1.
MESSAGE s061 WITH text-056 /pws/zycie001-j_1bbranch.
ENDIF.
WRITE v_cgc TO v_cnpj.
ENDIF.
ENDFORM.
FORM tratar_decimais USING p_moeda
CHANGING p_valor.
* >> Início da inclusão: FORM TRATAR_DECIMAIS
READ TABLE itab_tcurx INTO tcurx WITH KEY currkey = p_moeda.
IF sy-subrc NE 0.
* << Fim da inclusão
SELECT SINGLE * FROM tcurx WHERE currkey = p_moeda.
IF sy-subrc <> 0.
tcurx-currdec = 2.
* >> Início da inclusão: FORM TRATAR_DECIMAIS
ENDIF.
tcurx-currkey = p_moeda.
APPEND tcurx TO itab_tcurx .
* << Fim da inclusão
ENDIF.
p_valor = p_valor * ( 10 ** ( tcurx-currdec - 2 ) ).
...
...
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
CLEAR : sy-ucomm.
ENDFORM.
FORM verifica_taxa.
IF ( sy-tcode = '/PWS/ZYCI001_E' OR sy-tcode = '/PWS/ZYCI001_A' )
AND okcode NE 'PED'.
ELSE.
* >> Início da inclusão: FORM VERIFICA_TAXA
CHECK itab_zycit003-aliqii IS INITIAL
AND itab_zycit003-aliqipi IS INITIAL
AND itab_zycit003-aliqicms IS INITIAL.
* << Fim da inclusão
REFRESH itab_imposto.
CLEAR itab_imposto.
itab_imposto-nrseq = itab_zycit003-nrseq.
itab_imposto-ebeln = itab_zycit003-ebeln.
itab_imposto-ebelp = itab_zycit003-ebelp.
APPEND itab_imposto.
e_subrc = '0'.
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI001'
'EMB007'.
...
...
v_esp2 = itab_tline2-tdline.
ELSE.
CLEAR: v_esp2.
ENDIF.
ELSE.
CLEAR wa_thead2.
ENDIF.
ENDFORM.
FORM retorna_decimais USING p_moeda
CHANGING p_valor.
* >> Início da inclusão: FORM RETORNA_DECIMAIS
READ TABLE itab_tcurx INTO tcurx WITH KEY currkey = p_moeda.
IF sy-subrc NE 0.
* << Fim da inclusão
SELECT SINGLE * FROM tcurx WHERE currkey = p_moeda.
IF sy-subrc <> 0.
tcurx-currdec = 2.
* >> Início da inclusão: FORM RETORNA_DECIMAIS
ENDIF.
tcurx-currkey = p_moeda.
APPEND tcurx TO itab_tcurx .
* << Fim da inclusão
ENDIF.
p_valor = p_valor / ( 10 ** ( tcurx-currdec - 2 ) ).
...
...
IF sy-subrc <> 0.
MESSAGE i015 WITH text-343.
LEAVE TO SCREEN 104.
ENDIF.
ENDFORM.
FORM calc_saldo.
DATA lqtd_iten LIKE /pws/zycie042-qtd_iten.
IF NOT itab_zycit003[] IS INITIAL.
IF itab_zycit263[] IS INITIAL.
SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263
* >> Início da exclusão: FORM CALC_SALDO
FOR ALL ENTRIES IN itab_zycit003 WHERE
nrseq = itab_zycit003-nrseq AND
ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp AND
eliminado = space.
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_SALDO
WHERE nrseq = /pws/zycie001-nrseq
AND eliminado = space.
* << Fim da inclusão
ENDIF.
ENDIF.
READ TABLE itab_zycit263
WITH KEY ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc = 0.
CLEAR: itab_zycit003-ntgew.
ENDIF.
CLEAR itab_zycit003-invoiced.
LOOP AT itab_zycit263 WHERE ebeln = itab_zycit003-ebeln AND
...
...
v_dtalocprod LIKE /pws/zycie003-dtalocprod,
v_dtverif LIKE /pws/zycit003-dtprovent,
v_nrseqce LIKE /pws/zycie094-nrseqce,
v_dtcarga LIKE /pws/zycie093-dt_carga,
v_dtreg LIKE /pws/zycie085-dtreg,
v_nrseqdi1 LIKE /pws/zycie085-nrseqdi,
v_dataci LIKE /pws/zycie085-dataci,
v_dtsaidaarm LIKE /pws/zycie055-dtsaidaarm,
v_dtdef LIKE /pws/zycie078-dtdef,
v_nrseqli LIKE /pws/zycie078-nrseqli.
* >> Início da inclusão: FORM VERIF_DTPROVENTREGA
if itab_zycit003-dtremessa is initial.
* << Fim da inclusão
itab_zycit003-dtremessa = itab_zycit003_aux-dtremessa.
* >> Início da inclusão: FORM VERIF_DTPROVENTREGA
endif.
* << Fim da inclusão
itab_zycit003-dtprovent = itab_zycit003-dtremessa.
.
IF NOT itab_zycit390[] IS INITIAL.
IF NOT itab_zycit003-dtalocprod IS INITIAL.
LOOP AT itab_zycit390 WHERE evento1 = '02' AND
evento2 = '03' AND
...
...
CHANGING /pws/zycie001-nrseq.
ELSE.
MESSAGE i061 WITH text-136.
ENDIF.
ENDIF.
ELSE.
PERFORM find_nrseqc.
PERFORM find_embarca.
ENDIF.
ENDIF.
* >> Início da exclusão: FORM LOAD_DATA
IF /pws/zycie001-regime NE '14' AND /pws/zycie001-regime NE '16'.
PERFORM verifica_itens.
ELSE.
PERFORM verifica_itens_da.
ENDIF.
* << Fim da exclusão
PERFORM: busca_cnpj,
load_text.
IF v_tcode EQ ' '.
v_tcode = sy-tcode.
ENDIF.
SELECT SINGLE name
FROM j_1bbranch
INTO (v_descrimp)
WHERE bukrs = /pws/zycie001-bukrs
AND branch = /pws/zycie001-j_1bbranch.
CLEAR: itab_zycbt031, v_modemb.
IF NOT itab_zycit003[] IS INITIAL AND
itab_zycbt031[] IS INITIAL.
* >> Início da inclusão: FORM LOAD_DATA
REFRESH itab_temp_seq_pgfat.
LOOP AT itab_zycit003.
itab_temp_seq_pgfat-nrseq_pgfat = itab_zycit003-nrseq_pgfat.
COLLECT itab_temp_seq_pgfat.
ENDLOOP.
IF NOT itab_temp_seq_pgfat[] IS INITIAL.
* << Fim da inclusão
SELECT * FROM /pws/zycbt031 INTO TABLE itab_zycbt031
* >> Início da exclusão: FORM LOAD_DATA
FOR ALL ENTRIES IN itab_zycit003
WHERE nrcorresp = itab_zycit003-nrseq_pgfat
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_DATA
FOR ALL ENTRIES IN itab_temp_seq_pgfat
WHERE nrcorresp = itab_temp_seq_pgfat-nrseq_pgfat
* << Fim da inclusão
AND statusp NE 'E'.
* >> Início da inclusão: FORM LOAD_DATA
ENDIF.
* << Fim da inclusão
IF sy-subrc = 0.
v_modemb = 'X'.
ENDIF.
ENDIF.
IF NOT itab_zycit003[] IS INITIAL.
PERFORM selecao_legislacao.
ENDIF.
IF /pws/zycie001-meioemba IS INITIAL.
GET PARAMETER ID '/PWS/ZYCIP138' FIELD /pws/zycie001-meioemba.
ENDIF.
...
...
ENDIF.
ENDLOOP.
v_nf = 'X'.
ELSE.
CLEAR v_nf.
ENDIF.
ENDFORM.
FORM seleciona_bl.
IF itab_zycit094[] IS INITIAL.
SELECT * FROM /pws/zycit094 INTO TABLE itab_zycit094
* >> Início da exclusão: FORM SELECIONA_BL
FOR ALL ENTRIES IN itab_zycit003
WHERE nrseq EQ itab_zycit003-nrseq.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_BL
WHERE nrseq EQ /pws/zycit001-nrseq.
* << Fim da inclusão
ENDIF.
ENDFORM.
FORM seleciona_di.
IF NOT itab_zycit100[] IS INITIAL.
EXIT.
ENDIF.
SELECT * FROM /pws/zycit100 INTO TABLE itab_zycit100
WHERE nrseq EQ /pws/zycie001-nrseq.
IF sy-subrc EQ 0.
v_di = 'S'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F03
...
EXIT.
ENDIF.
SELECT SINGLE * FROM /pws/zycit026
WHERE nrseq EQ /pws/zycie001-nrseq
AND status EQ 'A'.
IF sy-subrc IS INITIAL.
MESSAGE w015 WITH text-345.
EXIT.
ENDIF.
IF NOT itab_zycit263[] IS INITIAL.
* >> Início da exclusão: FORM TRATA_DELP
SELECT * FROM /pws/zycit006
INTO TABLE itab_zycit006
WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.
* << Fim da exclusão
ENDIF.
READ TABLE itab_zycit263 WITH KEY
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp
eliminado = space.
IF sy-subrc NE 0.
CALL FUNCTION '/PWS/ZYCI_DEQUEUE_ZYCIT013'
EXPORTING
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
...
...
okcode = 'P+' OR okcode = 'P++' ).
ELSEIF okcode EQ 'SELE_DA' OR okcode EQ 'ENTE' OR okcode EQ 'SAVE' OR
okcode EQ 'FAT'.
IF sy-tcode EQ '/PWS/ZYCI001_C' AND okcode EQ 'SAVE'.
CALL FUNCTION '/PWS/ZYCI_ENQUEUE_ZYCIT001'
EXPORTING
nrseq = /pws/zycie001-nrseq.
ENDIF.
CHECK NOT itab_zycit003[] IS INITIAL.
SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263
* >> Início da exclusão: FORM VERIFICA_ITENS_DA
FOR ALL ENTRIES IN itab_zycit003 WHERE
nrseq = itab_zycit003-nrseq AND
ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp AND
eliminado = space.
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_ITENS_DA
WHERE nrseq = /pws/zycie001-nrseq
AND eliminado = space.
* << Fim da inclusão
FREE itab_itens_aux.
CLEAR itab_itens_aux.
IF NOT itab_zycit003[] IS INITIAL AND /pws/zycit442 IS INITIAL.
READ TABLE itab_zycit003 INDEX 1.
SELECT SINGLE * FROM /pws/zycit442
WHERE nrseqda EQ itab_zycit003-nrseqda.
ELSE.
SELECT SINGLE * FROM /pws/zycit455
WHERE nrseqda EQ /pws/zycit442-nrseqda.
SELECT SINGLE * FROM /pws/zycit442
...
...
AND NOT /pws/zycit012-tpnf_db IS INITIAL.
itab_zycit003-tpnf = /pws/zycit012-tpnf_db.
ELSEIF /pws/zycit100-icms_dif EQ 'X'
AND NOT /pws/zycit012-tpnf_icms IS INITIAL.
itab_zycit003-tpnf = /pws/zycit012-tpnf_icms.
ELSE.
itab_zycit003-tpnf = /pws/zycit012-tpnf.
REFRESH itab_zycit263.
IF NOT itab_zycit003[] IS INITIAL.
SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263
* >> Início da exclusão: FORM VERIFICA_ITENS_DA
FOR ALL ENTRIES IN itab_zycit003 WHERE
nrseq = itab_zycit003-nrseq AND
ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp AND
eliminado = space.
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_ITENS_DA
WHERE nrseq = /pws/zycie001-nrseq
AND eliminado = space.
* << Fim da inclusão
ENDIF.
READ TABLE itab_zycit263 WITH KEY ebeln = itab_zycit263-ebeln
ebelp = itab_zycit263-ebelp.
IF sy-subrc EQ 0.
SELECT SINGLE frpagto INTO /pws/zycit006-frpagto
FROM /pws/zycit006
WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.
IF sy-subrc EQ 0.
IF /pws/zycit006-frpagto EQ 'A'.
itab_zycit003-tpnf = /pws/zycit012-tpnf_ld.
...
...
CLEAR : itab_pedido.
REFRESH : itab_pedido.
ENDIF.
ENDFORM.
FORM carrega_saldo.
CLEAR : itab_pedido.
REFRESH : itab_pedido.
IF NOT itab_zycit013[] IS INITIAL.
DATA: v_qtdemb TYPE /pws/zycit003-qtd_iten,
v_slqtde TYPE /pws/zycit013-slqtde .
* >> Início da inclusão: FORM CARREGA_SALDO
DATA: BEGIN OF itab_pedido_temp OCCURS 0.
DATA: ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp.
DATA: END OF itab_pedido_temp.
* << Fim da inclusão
* >> Início da exclusão: FORM CARREGA_SALDO
DATA: BEGIN OF itab_zycit003_util OCCURS 0.
INCLUDE STRUCTURE /pws/zycit003.
DATA: END OF itab_zycit003_util.
* << Fim da exclusão
SELECT ebeln ebelp menge bstyp FROM ekpo
INTO TABLE itab_pedido
FOR ALL ENTRIES IN itab_zycit013
WHERE ebeln EQ itab_zycit013-ebeln
AND ebelp EQ itab_zycit013-ebelp.
* >> Início da exclusão: FORM CARREGA_SALDO
REFRESH: itab_zycit003_util.
itab_zycit003_util[] = itab_zycit003[].
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_SALDO
REFRESH itab_pedido_temp.
LOOP AT itab_zycit013.
* << Fim da inclusão
* >> Início da exclusão: FORM CARREGA_SALDO
SELECT * FROM /pws/zycit003
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_SALDO
READ TABLE itab_zycit003_util WITH KEY
ebeln = itab_zycit013-ebeln
ebelp = itab_zycit013-ebelp.
IF sy-subrc NE 0.
itab_pedido_temp-ebeln = itab_zycit013-ebeln.
itab_pedido_temp-ebelp = itab_zycit013-ebelp.
APPEND itab_pedido_temp.
ENDIF.
ENDLOOP.
DELETE itab_zycit003_util WHERE nrseq EQ /pws/zycie001-nrseq.
LOOP AT itab_zycit003 .
itab_zycit003_util-nrseq = itab_zycit003-nrseq.
itab_zycit003_util-ebeln = itab_zycit003-ebeln.
itab_zycit003_util-ebelp = itab_zycit003-ebelp.
itab_zycit003_util-qtd_iten = itab_zycit003-qtd_iten.
APPEND itab_zycit003_util.
ENDLOOP.
IF NOT itab_pedido_temp[] IS INITIAL.
SELECT nrseq ebeln ebelp qtd_iten FROM /pws/zycit003
* << Fim da inclusão
APPENDING TABLE itab_zycit003_util
* >> Início da exclusão: FORM CARREGA_SALDO
FOR ALL ENTRIES IN itab_zycit013
WHERE ebeln EQ itab_zycit013-ebeln
AND ebelp EQ itab_zycit013-ebelp
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_SALDO
FOR ALL ENTRIES IN itab_pedido_temp
WHERE ebeln EQ itab_pedido_temp-ebeln
AND ebelp EQ itab_pedido_temp-ebelp
* << Fim da inclusão
AND nrseq NE /pws/zycie001-nrseq.
* >> Início da inclusão: FORM CARREGA_SALDO
ENDIF.
* << Fim da inclusão
ENDIF.
LOOP AT itab_zycit013.
CLEAR: itab_pedido, itab_zycit003_util.
READ TABLE itab_pedido WITH KEY ebeln = itab_zycit013-ebeln
ebelp = itab_zycit013-ebelp.
IF sy-subrc EQ 0.
CLEAR v_qtdemb.
LOOP AT itab_zycit003_util WHERE ebeln EQ itab_zycit013-ebeln
AND ebelp EQ itab_zycit013-ebelp.
v_qtdemb = v_qtdemb + itab_zycit003_util-qtd_iten.
ENDLOOP.
ENDIF.
v_slqtde = itab_pedido-menge - v_qtdemb.
* >> Início da inclusão: FORM CARREGA_SALDO
IF v_slqtde NE itab_zycit013-slqtde.
* << Fim da inclusão
itab_zycit013-slqtde = v_slqtde.
UPDATE /pws/zycit013 SET slqtde = itab_zycit013-slqtde
menge = itab_pedido-menge
WHERE ebeln = itab_zycit013-ebeln
AND ebelp = itab_zycit013-ebelp .
itab_zycit013-menge = itab_pedido-menge.
MODIFY itab_zycit013.
* >> Início da inclusão: FORM CARREGA_SALDO
ENDIF.
* << Fim da inclusão
ENDLOOP.
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001I01
...
IF /pws/zycie001-regime NE '14' AND /pws/zycie001-regime NE '16'.
PERFORM verifica_itens.
ELSE.
PERFORM verifica_itens_da.
ENDIF.
ENDMODULE.
MODULE verifica_peso INPUT.
ENDMODULE.
MODULE atualiza_itens INPUT.
IF NOT itab_zycit003[] IS INITIAL.
* >> Início da inclusão: MODULE ATUALIZA_ITENS
IF itab_zycit263[] IS INITIAL.
* << Fim da inclusão
SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263
* >> Início da exclusão: MODULE ATUALIZA_ITENS
FOR ALL ENTRIES IN itab_zycit003 WHERE
nrseq = itab_zycit003-nrseq AND
ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp AND
eliminado = space.
* << Fim da exclusão
* >> Início da inclusão: MODULE ATUALIZA_ITENS
WHERE nrseq = /pws/zycie001-nrseq
AND eliminado = space.
ENDIF.
IF NOT itab_zycit263[] IS INITIAL.
* << Fim da inclusão
* >> Início da exclusão: MODULE ATUALIZA_ITENS
IF NOT itab_zycit263[] IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: MODULE ATUALIZA_ITENS
REFRESH itab_temp_seq_pgfat.
LOOP AT itab_zycit263.
itab_temp_seq_pgfat-nrseq_pgfat = itab_zycit263-nrseq_pgfat.
COLLECT itab_temp_seq_pgfat.
ENDLOOP.
IF NOT itab_temp_seq_pgfat[] IS INITIAL.
* << Fim da inclusão
SELECT * FROM /pws/zycit006
INTO TABLE itab_zycit006
* >> Início da exclusão: MODULE ATUALIZA_ITENS
FOR ALL ENTRIES IN itab_zycit263
WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.
* << Fim da exclusão
* >> Início da inclusão: MODULE ATUALIZA_ITENS
FOR ALL ENTRIES IN itab_temp_seq_pgfat
WHERE nrseq_pgfat EQ itab_temp_seq_pgfat-nrseq_pgfat
AND nrseqce = /pws/zycit094-nrseqce.
ENDIF.
* << Fim da inclusão
LOOP AT itab_zycit263.
v_tabix = sy-tabix.
READ TABLE itab_zycit006 WITH KEY
nrseq_pgfat = itab_zycit263-nrseq_pgfat
eliminado = space.
IF sy-subrc NE 0.
DELETE itab_zycit263 INDEX v_tabix.
ENDIF.
ENDLOOP.
ENDIF.
...
...
WHEN 'NOTA'.
IF /pws/zycie001-modalidade EQ '02'.
MESSAGE i013 WITH text-202.
EXIT.
ENDIF.
IF v_status_s NE 0.
PERFORM grava_tabelas.
ENDIF.
CLEAR v_fat.
IF NOT itab_zycit003[] IS INITIAL.
* >> Início da inclusão: MODULE USER_COMMAND_0050
SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263
WHERE nrseq = /pws/zycie001-nrseq
AND eliminado = space.
* << Fim da inclusão
* >> Início da exclusão: MODULE USER_COMMAND_0050
SELECT *
FROM /pws/zycit263
INTO TABLE itab_zycit263
FOR ALL ENTRIES IN itab_zycit003
WHERE nrseq EQ itab_zycit003-nrseq
AND ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp.
* << Fim da exclusão
ENDIF.
IF NOT itab_zycit263[] IS INITIAL.
* >> Início da exclusão: MODULE USER_COMMAND_0050
SELECT *
FROM /pws/zycit006
* << Fim da exclusão
* >> Início da inclusão: MODULE USER_COMMAND_0050
REFRESH itab_temp_seq_pgfat.
LOOP AT itab_zycit263.
itab_temp_seq_pgfat-nrseq_pgfat = itab_zycit263-nrseq_pgfat.
COLLECT itab_temp_seq_pgfat.
ENDLOOP.
IF NOT itab_temp_seq_pgfat[] IS INITIAL.
SELECT * FROM /pws/zycit006
* << Fim da inclusão
INTO TABLE itab_zycit006
* >> Início da exclusão: MODULE USER_COMMAND_0050
FOR ALL ENTRIES IN itab_zycit263
WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.
* << Fim da exclusão
* >> Início da inclusão: MODULE USER_COMMAND_0050
FOR ALL ENTRIES IN itab_temp_seq_pgfat
WHERE nrseq_pgfat EQ itab_temp_seq_pgfat-nrseq_pgfat
AND nrseqce = /pws/zycit094-nrseqce.
ENDIF.
* << Fim da inclusão
ENDIF.
LOOP AT itab_zycit006 WHERE eliminado NE 'X'
AND tpfatura EQ '01'
AND frpagto NE 'A'
AND belnr_p EQ space.
SELECT SINGLE * FROM /pws/zycit132
WHERE nrseq = itab_zycit006-nrseq AND
eliminado NE 'X' AND
belnr_p EQ space.
IF sy-subrc = 0.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001X01
...
ekorg LIKE ekpa-ekorg,
ltsnr LIKE ekpa-ltsnr,
werks LIKE ekpa-werks,
parvw LIKE ekpa-parvw,
parza LIKE ekpa-parza,
ernam LIKE ekpa-ernam,
erdat LIKE ekpa-erdat,
lifn2 LIKE ekpa-lifn2.
DATA: END OF itab_ekpa.
DATA: v_manual.
* >> Início da inclusão:
DATA: itab_tcurx TYPE tcurx OCCURS 0 WITH HEADER LINE ,
v_mod_ped TYPE c.
DATA: BEGIN OF itab_temp_seq_pgfat OCCURS 0.
DATA: nrseq_pgfat TYPE /pws/zycit006-nrseq_pgfat.
DATA: END OF itab_temp_seq_pgfat.
DATA: BEGIN OF itab_zycit003_util OCCURS 0.
DATA: nrseq TYPE /pws/zycit003-nrseq,
ebeln TYPE /pws/zycit003-ebeln,
ebelp TYPE /pws/zycit003-ebelp,
qtd_iten TYPE /pws/zycit003-qtd_iten.
DATA: END OF itab_zycit003_util.
* << Fim da inclusão
DATA: END OF COMMON PART a.