Módulo: DOC. EXPORTAÇÃO
Funcionalidade: Agrupamento de Embarque
Data/Hora da Publicação: 27/07/2007 00:00:00
Data/Hora Última Alteração: 21/02/2011 17:21:33
Descrição da Nota: ELIMINAÇÃO DA TRATA_ORDEM NO AGRUPAMENTO DE EMBARQUE
Sintoma
Os programas de agrupamento /PWS/ZYCER089 e /PWS/ZYCER306 ainda usavam a função obsoleta
trata_ordem.
O programa /PWS/ZYCER089 não considerava a empresa na seleção de parâmetros da /PWS/ZYGL011
Os programas /PWS/ZYCER089 e /PWS/ZYCER306 faziam a reclassificação de cambiais mesmo quando o
embarque já havia feito.
A função de reclassificação de cambiais tenta preencher a condição de pagamento, mesmo quando o
campo está fechado.
Solução
A reclassificação de cambiais e o preenchimento da condição de pagamento foram eliminados.
A função foi substituída e os reports foram adaptados à nova função.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 04292 Data: 27/07/2007 Hora: 14:03:50
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 04292
Categoria : Melhoria
Prioridade : Baixa
Versão PW.CE : 7.0
Pacote : 00002
Agrupamento : 00005
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01680 - 00001 - 6.0 - 00024 - BUSCA DE CONDIÇÃO DE PAGAMENTO PARA AGRUPAMENTO DE EMBARQUE
01812 - 00002 - 6.0 - 00024 - BUSCA DE TAXA DE CONVERSÃO SEM FATORES EM AGRUPAMENTO DE EMBARQUE
03560 - 00003 - 7.0 - 00001 - FUNÇÃO PARA DETERMINAÇÃO DE PERÍODO CONTÁBIL E EXERCÍCIO FISCAL
03749 - 00004 - 7.0 - 00001 - VERIFICAÇÃO DE EXERCÍCIO FISCAL NO AGRUPAMENTO DO EMBARQUE
03750 - 00005 - 7.0 - 00001 - VERIFICAÇÃO DE EXERCÍCIO FISCAL NO AGRUPAMENTO DO EMBARQUE
----------------------------------------------------------------------------------------------------
ELIMINAÇÃO DA TRATA_ORDEM NO AGRUPAMENTO DE EMBARQUE
----------------------------------------------------------------------------------------------------
Palavras Chave:
TRATA_ORDEM EMBARQUE
----------------------------------------------------------------------------------------------------
Objetos da nota:
DOCU NA/PWS/ZYCEM060
FUGR /PWS/ZYCEGF7
FUNC /PWS/ZYCE_TRANSACAO_FB02
REPS /PWS/ZYCER089
REPS /PWS/ZYCER306
REPT /PWS/ZYCER089
REPT /PWS/ZYCER306
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DOCU NA/PWS/ZYCEM060
Marcar a mensagem 060 da classe /PWS/ZYCEM como auto-explicativa.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUGR /PWS/ZYCEGF7
Criar o grupo de funções /PWS/ZYCEGF7
Texto breve (PT): CE - Tratamento de itens do embarque
Classe de desenvolvimento: /PWS/ZYCE
Criar o módulo de funções /PWS/ZYCE_SEPARA_ITENS_EMB neste grupo
Texto breve: CE - Separa itens do embarque pelo status de venda
Classe de desenvolvimento: /PWS/ZYCE
Segue abaixo o código-fonte
FUNCTION /pws/zyce_separa_itens_emb.
*"----------------------------------------------------------------------
*"*"Interface local:
*" IMPORTING
*" REFERENCE(NRSEQ) TYPE /PWS/ZYCET001-NRSEQ
*" REFERENCE(INCLUI_PAR_DT) TYPE BOOLE_D DEFAULT SPACE
*" REFERENCE(INCLUI_ES_SAIDA) TYPE BOOLE_D DEFAULT SPACE
*" TABLES
*" TAB_SAIDA STRUCTURE /PWS/ZYCET002 OPTIONAL
*" TAB_COMPLEMENTO STRUCTURE /PWS/ZYCET002 OPTIONAL
*" TAB_DEVOLUCAO STRUCTURE /PWS/ZYCET002 OPTIONAL
*" TAB_ESTORNO STRUCTURE /PWS/ZYCET002 OPTIONAL
*" EXCEPTIONS
*" ITENS_NAO_ENCONTRADOS
*"----------------------------------------------------------------------
DATA: it_zycet002 TYPE STANDARD TABLE OF /pws/zycet002,
wa_zycet002 LIKE LINE OF it_zycet002[].
DATA: vbeln TYPE vbeln,
posnr TYPE posnr.
SELECT *
FROM /pws/zycet002
INTO TABLE it_zycet002[]
WHERE nrseq = nrseq.
IF sy-subrc <> 0.
RAISE itens_nao_encontrados.
ENDIF.
SORT it_zycet002[] BY vbeln_va
aupos
vbeln_vl
posnl
vbeln_vf
posnr.
LOOP AT it_zycet002[] INTO wa_zycet002.
CASE wa_zycet002-st_vd.
WHEN 'VD'.
IF tab_saida IS REQUESTED.
APPEND wa_zycet002 TO tab_saida[].
ENDIF.
WHEN 'SC'.
IF tab_complemento IS REQUESTED.
APPEND wa_zycet002 TO tab_complemento[].
ENDIF.
WHEN 'DP'.
IF tab_saida IS REQUESTED.
APPEND wa_zycet002 TO tab_saida[].
ENDIF.
WHEN 'DT'.
IF wa_zycet002-shkzg = space.
IF inclui_par_dt = 'X' AND tab_saida IS REQUESTED.
APPEND wa_zycet002 TO tab_saida[].
ELSE.
SELECT SINGLE vbeln posnr
FROM vbap
INTO (vbeln, posnr)
WHERE vgbel = wa_zycet002-vbeln_vf
AND vgpos = wa_zycet002-posnr. "#EC *
IF sy-subrc = 0.
DELETE it_zycet002[] WHERE vbeln_va = vbeln
AND aupos = posnr.
ENDIF.
ENDIF.
ELSE.
IF tab_devolucao IS REQUESTED.
APPEND wa_zycet002 TO tab_devolucao[].
ENDIF.
ENDIF.
WHEN 'ES'.
IF wa_zycet002-fksto = 'X'.
IF inclui_es_saida = 'X' AND tab_saida IS REQUESTED.
APPEND wa_zycet002 TO tab_saida.
ENDIF.
ELSE.
IF tab_estorno IS REQUESTED.
APPEND wa_zycet002 TO tab_estorno[].
ENDIF.
ENDIF.
ENDCASE.
ENDLOOP.
ENDFUNCTION.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCE_TRANSACAO_FB02
...
DO t_dados-quant TIMES.
PERFORM bdc_screen USING 'SAPMF05L' '0301'.
PERFORM bdc_field USING:
'BSEG-ZFBDT' v_bldat,
'BDC_OKCODE' '=Z+'.
ENDDO.
PERFORM bdc_screen USING 'SAPMF05L' '0301'.
PERFORM bdc_field USING:
'BDC_OKCODE' '=AB',
'BSEG-ZFBDT' v_bldat.
* >> Início da exclusão: FUNCTION /PWS/ZYCE_TRANSACAO_FB02
IF NOT t_dados-zterm IS INITIAL.
PERFORM bdc_field USING:
'BSEG-ZTERM' t_dados-zterm.
ENDIF.
* << Fim da exclusão
PERFORM bdc_screen USING 'SAPMF05L' '0700'.
PERFORM bdc_field USING:
'BDC_OKCODE' '=AE'.
REFRESH itab_msg.
CLEAR itab_msg.
v_transacao = 'FB02'.
v_update = 'S'.
IF v_modo IS INITIAL.
v_mode = 'N'.
ELSE.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCER089
REPORT /pws/zycer089 MESSAGE-ID /pws/zycem.
* >> Início da exclusão:
TABLES: /pws/zycet002,
/pws/zycet037,
/pws/zycit054,
/pws/zycet047,
/pws/zycet048.
* << Fim da exclusão
* >> Início da inclusão:
TABLES: /pws/zycet037.
* << Fim da inclusão
CONSTANTS: c_x(1) TYPE c VALUE 'X'.
DATA: v_mode(1) TYPE c,
v_result(1) TYPE c,
v_vlme_a LIKE /pws/zycet062-vlme_a,
* >> Início da exclusão:
v_dev_tot,
* << Fim da exclusão
v_ok(1) TYPE c,
* >> Início da exclusão:
nrseq LIKE /pws/zycee085-nrseq,
* << Fim da exclusão
v_zterm TYPE /pws/zycet046-zterm.
TYPES: BEGIN OF ty_zycet156,
codigo TYPE /pws/zycet156-codigo,
kschl TYPE /pws/zycet156-kschl,
proccond TYPE /pws/zycet156-proccond,
END OF ty_zycet156.
TYPES: BEGIN OF ty_zycet008.
INCLUDE STRUCTURE /pws/zycet008.
TYPES: END OF ty_zycet008.
DATA: itab_zycet156 TYPE TABLE OF ty_zycet156,
...
...
DATA END OF itab_t052s.
DATA BEGIN OF itab_zycet062 OCCURS 0.
INCLUDE STRUCTURE /pws/zycet062.
DATA END OF itab_zycet062.
DATA: BEGIN OF itab_bkpf OCCURS 0,
belnr LIKE bkpf-belnr,
gjahr LIKE bkpf-gjahr,
awkey LIKE bkpf-awkey,
budat LIKE bkpf-budat,
END OF itab_bkpf.
* >> Início da exclusão:
DATA BEGIN OF itab_zycee085 OCCURS 10.
INCLUDE STRUCTURE /pws/zycee085.
DATA END OF itab_zycee085.
DATA BEGIN OF itab_devolucao OCCURS 10.
INCLUDE STRUCTURE /pws/zycee085.
DATA END OF itab_devolucao.
DATA BEGIN OF itab_complemento OCCURS 10.
INCLUDE STRUCTURE /pws/zycee085.
DATA END OF itab_complemento.
DATA BEGIN OF itab_estorno OCCURS 10.
INCLUDE STRUCTURE /pws/zycee085.
DATA END OF itab_estorno.
DATA BEGIN OF itab_saida OCCURS 10.
INCLUDE STRUCTURE /pws/zycee085.
DATA END OF itab_saida.
* << Fim da exclusão
DATA BEGIN OF itab_zycbt030 OCCURS 10.
INCLUDE STRUCTURE /pws/zycbt030.
DATA END OF itab_zycbt030.
DATA BEGIN OF itab_zycbt030_aux OCCURS 10.
INCLUDE STRUCTURE /pws/zycbt030.
DATA END OF itab_zycbt030_aux.
DATA BEGIN OF itab_zycet093 OCCURS 10.
INCLUDE STRUCTURE /pws/zycet093.
DATA END OF itab_zycet093.
* >> Início da exclusão:
DATA: BEGIN OF it_vbfa OCCURS 0,
vbelv LIKE vbfa-vbelv,
posnv LIKE vbfa-posnv,
vbeln LIKE vbfa-vbeln,
posnn LIKE vbfa-posnn,
END OF it_vbfa.
* << Fim da exclusão
DATA: itab_zycbt032 LIKE /pws/zycbt032 OCCURS 10 WITH HEADER LINE,
itab_zycbt033 LIKE /pws/zycbe033 OCCURS 10 WITH HEADER LINE,
itab_zycbt034 LIKE /pws/zycbt034 OCCURS 10 WITH HEADER LINE,
itab_zycbt036 LIKE /pws/zycbt036 OCCURS 10 WITH HEADER LINE,
itab_zycet005 LIKE /pws/zycet005 OCCURS 10 WITH HEADER LINE,
itab_zycee005 LIKE /pws/zycee005 OCCURS 10 WITH HEADER LINE,
itab_zycet004 LIKE /pws/zycet004 OCCURS 10 WITH HEADER LINE,
itab_zycbt013 LIKE /pws/zycbt013 OCCURS 10 WITH HEADER LINE.
DATA: wa_zycbt011 LIKE /pws/zycbt011,
wa_zycet008 LIKE /pws/zycet008.
TYPES: BEGIN OF ty_per_fiscal,
mes TYPE t001b-frpe1,
ano TYPE t001b-frye1,
END OF ty_per_fiscal.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
* >> Início da exclusão:
SELECT-OPTIONS: p_nrseq FOR /pws/zycet002-nrseq
NO INTERVALS
NO-EXTENSION.
* << Fim da exclusão
* >> Início da inclusão:
PARAMETERS: p_nrseq TYPE /pws/zycet001-nrseq.
* << Fim da inclusão
PARAMETERS: p_flag(1) TYPE c.
SELECTION-SCREEN END OF BLOCK b1.
START-OF-SELECTION.
PERFORM seleciona_dados.
IF p_flag EQ 'X'.
CLEAR: v_ok.
* >> Início da exclusão:
IF /pws/zycet037-agrup_fat_rec = '1'.
PERFORM executa_f_02.
ENDIF.
* << Fim da exclusão
IF /pws/zycet037-centro_dif = '0'.
PERFORM fill_date_f30.
PERFORM executa_f30.
ELSE.
MOVE itab_zycet002[] TO itab_zycet002_aux2[].
SORT itab_zycet002_aux2 BY gsber.
LOOP AT itab_zycet002_aux2.
PERFORM agrupa_dados.
PERFORM fill_date_f30.
PERFORM executa_f30.
PERFORM clear_data_batch.
ENDLOOP.
ENDIF.
ELSE.
LOOP AT itab_zycbt030.
PERFORM fill_date_fbra.
PERFORM executa_fbra.
ENDLOOP.
ENDIF.
END-OF-SELECTION.
FORM seleciona_dados.
* >> Início da inclusão: FORM SELECIONA_DADOS
DATA: itab_zycet002_sc TYPE STANDARD TABLE OF /pws/zycet002,
itab_zycet002_d TYPE STANDARD TABLE OF /pws/zycet002.
* << Fim da inclusão
SELECT *
FROM /pws/zycbt013
INTO TABLE itab_zycbt013
WHERE tabela = '/PWS/ZYCET001'
AND cpor3 = 'XBLNR'.
SELECT SINGLE *
FROM /pws/zycet001
INTO wa_zycet001
* >> Início da exclusão: FORM SELECIONA_DADOS
WHERE nrseq IN p_nrseq.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
WHERE nrseq = p_nrseq.
* << Fim da inclusão
IF sy-subrc IS INITIAL.
SELECT codigo
kschl
proccond
FROM /pws/zycet156
INTO TABLE itab_zycet156
WHERE bukrs EQ wa_zycet001-bukrs
AND codmod EQ 'X'
AND proccond EQ 'FOB'.
IF sy-subrc IS INITIAL.
...
...
FOR ALL ENTRIES IN itab_zycet156
WHERE nrseq EQ wa_zycet001-nrseq
AND codigo EQ itab_zycet156-codigo.
READ TABLE itab_zycet008 INTO wa_zycet008 INDEX 1.
ENDIF.
ENDIF.
SELECT SINGLE *
FROM /pws/zycbt011
INTO wa_zycbt011
WHERE codeven = '005'
* >> Início da exclusão: FORM SELECIONA_DADOS
AND codmod = 'X'.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
AND codmod = 'X'
AND BUKRS = wa_zycet001-bukrs.
* << Fim da inclusão
SELECT *
FROM /pws/zycet062
INTO TABLE itab_zycet062
* >> Início da exclusão: FORM SELECIONA_DADOS
WHERE nrseq IN p_nrseq.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
WHERE nrseq = p_nrseq.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_DADOS
SELECT *
FROM /pws/zycet002
INTO TABLE itab_zycet002
WHERE nrseq IN p_nrseq.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
CALL FUNCTION '/PWS/ZYCE_SEPARA_ITENS_EMB'
EXPORTING
nrseq = wa_zycet001-nrseq
inclui_par_dt = 'X'
inclui_es_saida = ' '
TABLES
tab_saida = itab_zycet002
tab_complemento = itab_zycet002_sc
tab_devolucao = itab_zycet002_d
EXCEPTIONS
itens_nao_encontrados = 0
OTHERS = 0.
* << Fim da inclusão
IF itab_zycet002[] IS INITIAL.
MESSAGE i008.
STOP.
ELSE.
* >> Início da inclusão: FORM SELECIONA_DADOS
APPEND LINES OF itab_zycet002_sc[] TO itab_zycet002[].
APPEND LINES OF itab_zycet002_d[] TO itab_zycet002[].
* << Fim da inclusão
READ TABLE itab_zycet002 INDEX 1.
SELECT SINGLE *
FROM /pws/zycet037
WHERE bukrs EQ itab_zycet002-bukrs.
ENDIF.
IF p_flag = 'X'.
* >> Início da exclusão: FORM SELECIONA_DADOS
CLEAR nrseq.
LOOP AT itab_zycet002.
nrseq = nrseq + 001.
itab_zycee085-nrseq = nrseq.
SHIFT itab_zycee085-nrseq RIGHT DELETING TRAILING space.
DO 9 TIMES.
REPLACE ' ' WITH '0' INTO itab_zycee085-nrseq.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
IF /pws/zycet037-agrup_sem_rec NE '1'.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_DADOS
ENDDO.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
LOOP AT itab_zycet002 WHERE status NE 'C'.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_DADOS
MOVE: itab_zycet002-mandt TO itab_zycee085-mandt,
itab_zycet002-vbeln_va TO itab_zycee085-vbeln_va,
itab_zycet002-vbeln_vf TO itab_zycee085-vbeln_vf,
itab_zycet002-vbeln_vl TO itab_zycee085-vbeln_vl,
itab_zycet002-posnl TO itab_zycee085-posnl,
itab_zycet002-aupos TO itab_zycee085-aupos,
itab_zycet002-inco1 TO itab_zycee085-inco1,
itab_zycet002-fkimg TO itab_zycee085-fkimg,
itab_zycet002-vrkme TO itab_zycee085-vrkme,
itab_zycet002-posnr TO itab_zycee085-posnr,
itab_zycet002-vlme TO itab_zycee085-vlme,
itab_zycet002-ntgew TO itab_zycee085-ntgew,
itab_zycet002-brgew TO itab_zycee085-brgew,
itab_zycet002-shkzg TO itab_zycee085-shkzg,
itab_zycet002-nfnum TO itab_zycee085-nfnum,
itab_zycet002-auart TO itab_zycee085-auart,
itab_zycet002-fkart TO itab_zycee085-fkart,
itab_zycet002-waers TO itab_zycee085-waers,
itab_zycet002-gewei TO itab_zycee085-gewei,
itab_zycet002-bukrs TO itab_zycee085-bukrs,
itab_zycet002-pstyv TO itab_zycee085-pstyv.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
EXIT.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_DADOS
APPEND itab_zycee085.
* << Fim da exclusão
ENDLOOP.
* >> Início da exclusão: FORM SELECIONA_DADOS
EXPORT itab_zycee085 TO MEMORY ID 'ODOC'.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
IF sy-subrc = 0.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_DADOS
IF /pws/zycet037-agrup_sem_rec NE '1'.
LOOP AT itab_zycet002 WHERE status NE 'C'.
EXIT.
ENDLOOP.
IF sy-subrc = 0.
* << Fim da exclusão
MESSAGE i001 WITH text-002 text-009.
v_result = 'N'.
EXPORT v_result TO MEMORY ID '031'.
STOP.
ENDIF.
ENDIF.
SORT itab_zycet002 BY vbeln_va posnr.
LOOP AT itab_zycet002.
IF itab_zycet002-vbeln_vf IS INITIAL.
CONTINUE.
...
...
INTO TABLE itab_bkpf
FOR ALL ENTRIES IN itab_zycet002_temp
WHERE awtyp = 'VBRK'
AND awkey = itab_zycet002_temp-vbeln_vf
AND awsys = ' '.
ENDIF.
ELSE.
SELECT *
FROM /pws/zycbt030
INTO TABLE itab_zycbt030_aux
* >> Início da exclusão: FORM SELECIONA_DADOS
WHERE nrinvoic IN p_nrseq.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
WHERE nrinvoic = p_nrseq.
* << Fim da inclusão
IF sy-subrc NE 0 AND /pws/zycet037-agrup_fat_rec = '1'.
SELECT *
FROM /pws/zycet093
INTO TABLE itab_zycet093
* >> Início da exclusão: FORM SELECIONA_DADOS
WHERE nrseq IN p_nrseq.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
WHERE nrseq = p_nrseq.
* << Fim da inclusão
IF sy-subrc EQ 0.
LOOP AT itab_zycet093.
CLEAR itab_zycbt030.
itab_zycbt030-nrinvoic = itab_zycet093-nrseq.
itab_zycbt030-belnr = itab_zycet093-belnr_i.
COLLECT itab_zycbt030.
ENDLOOP.
ENDIF.
ELSE.
LOOP AT itab_zycbt030_aux.
...
...
COLLECT itab_zycbt030.
ENDLOOP.
ENDIF.
ENDIF.
SELECT SINGLE zterm
INTO v_zterm
FROM /pws/zycet046
WHERE nrseq = wa_zycet001-nrseq.
ENDFORM.
FORM fill_date_f30.
* >> Início da exclusão: FORM FILL_DATE_F30
DATA: wa_zycee085 LIKE /pws/zycee085,
v_moeda_destino TYPE t001-waers,
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_F30
DATA: v_moeda_destino TYPE t001-waers,
* << Fim da inclusão
v_categoria TYPE /pws/zycbt011-ctmoed.
CLEAR: itab_zycbt032,
itab_zycbt033,
itab_zycbt034,
itab_zycbt036.
REFRESH: itab_zycbt032,
itab_zycbt033,
itab_zycbt034,
itab_zycbt036.
IF v_mode IS INITIAL.
...
...
CALL FUNCTION '/PWS/ZYGL_MONTANTE_CONVERTE'
EXPORTING
i_montante = 1
i_demoeda = itab_zycet002-waers
i_paramoeda = v_moeda_destino
i_ctmoeda = v_categoria
i_dtbase = itab_zycbt033-dtdocto
IMPORTING
e_txc = itab_zycbt033-kursf
EXCEPTIONS
* >> Início da exclusão: FORM FILL_DATE_F30
i_demoeda_nao_encontrado = 1
i_paramoeda_nao_encontrado = 2
i_ctmoeda_nao_encontrado = 3
i_dtbase_nao_encontrada = 4
taxa_nao_encontrada = 5
fator_nao_encontrado = 6
i_montante_nao_encontrado = 7
tabela_categ_nao_configurada = 8
OTHERS = 9.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_F30
i_demoeda_nao_encontrado = 0
i_paramoeda_nao_encontrado = 0
i_ctmoeda_nao_encontrado = 0
i_dtbase_nao_encontrada = 0
taxa_nao_encontrada = 0
fator_nao_encontrado = 0
i_montante_nao_encontrado = 0
tabela_categ_nao_configurada = 0
OTHERS = 0.
* << Fim da inclusão
ENDIF.
IF /pws/zycet037-alt_cond = '1'.
APPEND itab_zycbt033.
ELSE.
SELECT * FROM t052s
INTO TABLE itab_t052s
WHERE zterm = v_zterm.
IF sy-subrc EQ 0.
LOOP AT itab_t052s.
itab_zycbt033-zterm = itab_t052s-ratzt.
itab_zycbt033-mwskz = 'X'.
APPEND itab_zycbt033.
ENDLOOP.
ELSE.
itab_zycbt033-zterm = v_zterm.
APPEND itab_zycbt033.
* >> Início da exclusão: FORM FILL_DATE_F30
ENDIF.
* << Fim da exclusão
ENDIF.
* >> Início da exclusão: FORM FILL_DATE_F30
CLEAR itab_saida.
REFRESH itab_saida.
CALL FUNCTION '/PWS/ZYCE_TRATA_ORDEM'
EXPORTING
nrseq = wa_zycet001-nrseq
TABLES
t_saida = itab_saida
t_estorno = itab_estorno
t_devolucao = itab_devolucao
t_complemento = itab_complemento.
IF NOT itab_saida[] IS INITIAL.
SELECT vbelv posnv vbeln posnn
FROM vbfa
INTO TABLE it_vbfa
FOR ALL ENTRIES IN itab_saida
WHERE vbelv = itab_saida-vbeln_vf AND
posnv = itab_saida-posnr.
* << Fim da exclusão
ENDIF.
LOOP AT itab_zycet002.
* >> Início da exclusão: FORM FILL_DATE_F30
CLEAR v_dev_tot.
READ TABLE itab_saida WITH KEY
vbeln_va = itab_zycet002-vbeln_va
vbeln_vf = itab_zycet002-vbeln_vf
posnr = itab_zycet002-posnr.
IF sy-subrc = 0.
MOVE itab_saida TO wa_zycee085.
ELSE.
READ TABLE itab_devolucao WITH KEY
vbeln_va = itab_zycet002-vbeln_va
vbeln_vf = itab_zycet002-vbeln_vf
posnr = itab_zycet002-posnr.
IF sy-subrc = 0.
MOVE itab_devolucao TO wa_zycee085.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_F30
READ TABLE itab_bkpf WITH KEY awkey = itab_zycet002-vbeln_vf.
* << Fim da inclusão
* >> Início da exclusão: FORM FILL_DATE_F30
ELSE.
READ TABLE itab_complemento WITH KEY
vbeln_va = itab_zycet002-vbeln_va
vbeln_vf = itab_zycet002-vbeln_vf
posnr = itab_zycet002-posnr.
* << Fim da exclusão
IF sy-subrc EQ 0.
* >> Início da exclusão: FORM FILL_DATE_F30
MOVE itab_complemento TO wa_zycee085.
ELSE.
CONTINUE.
ENDIF.
ENDIF.
ENDIF.
READ TABLE itab_estorno
WITH KEY vbeln_va = itab_zycet002-vbeln_va
vbeln_vf = itab_zycet002-vbeln_vf
posnr = itab_zycet002-posnr.
IF sy-subrc NE 0.
PERFORM verifica_dev_total USING wa_zycee085.
IF v_dev_tot IS INITIAL.
READ TABLE itab_estorno
WITH KEY vbeln_va = itab_zycet002-vbeln_va
vbeln_vf = itab_zycet002-vbeln_vf
posnr = itab_zycet002-posnr.
IF sy-subrc NE 0.
READ TABLE itab_bkpf WITH KEY awkey = itab_zycet002-vbeln_vf.
IF sy-subrc EQ 0.
* << Fim da exclusão
itab_zycbt036-mandt = sy-mandt.
itab_zycbt036-tcode = 'F-30'.
itab_zycbt036-tabela = '/PWS/ZYCET002'.
itab_zycbt036-cpochv = wa_zycet001-nrseq.
itab_zycbt036-belnr = itab_bkpf-belnr.
itab_zycbt036-residuo = itab_zycet002-vlme.
itab_zycbt036-waers = itab_zycet002-waers.
itab_zycbt036-dtdocto = itab_bkpf-budat.
COLLECT itab_zycbt036.
* >> Início da exclusão: FORM FILL_DATE_F30
ENDIF.
ENDIF.
ENDIF.
* << Fim da exclusão
ENDIF.
CLEAR itab_zycbt036.
ENDLOOP.
DESCRIBE TABLE itab_zycbt036.
IF NOT sy-tfill IS INITIAL.
v_ok = c_x.
ENDIF.
ENDFORM.
* >> Início da exclusão: FORM VERIFY_NULL_FIELD
FORM verify_null_field USING value(p_field)
value(p_fieldname)
value(p_description).
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFY_NULL_FIELD
FORM verify_null_field
USING
p_field TYPE any
p_fieldname TYPE /pws/zycbt034-campo
p_description TYPE /pws/zycbt034-descricao.
* << Fim da inclusão
IF p_field IS INITIAL.
itab_zycbt034-campo = p_fieldname.
itab_zycbt034-descricao = p_description.
APPEND itab_zycbt034.
ENDIF.
ENDFORM.
FORM get_parameters.
PERFORM verify_null_field USING wa_zycet001-bukrs
'BUKRS'
text-006.
...
...
IMPORT v_mode FROM MEMORY ID '035'.
CALL FUNCTION '/PWS/ZYCE_TRANSACAO_F_30C'
EXPORTING
v_modo = v_mode
TABLES
t_dados = itab_zycbt033
t_campo = itab_zycbt034
t_zycbt032 = itab_zycbt032
t_zycbt036 = itab_zycbt036
EXCEPTIONS
* >> Início da exclusão: FORM EXECUTA_F30
campo_em_branco = 1
periodo_fechado = 2
OTHERS = 3.
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_F30
campo_em_branco = 0
periodo_fechado = 0
OTHERS = 0.
* << Fim da inclusão
FREE MEMORY ID '031'.
READ TABLE itab_zycbt032 WITH KEY tabela = '/PWS/ZYCET002'
cpochv = wa_zycet001-nrseq
tpmsg = 'S'.
IF sy-subrc EQ 0.
v_result = 'Y'.
ELSE.
LOOP AT itab_zycbt032.
MESSAGE i001 WITH itab_zycbt032-msg.
ENDLOOP.
...
...
ELSE.
READ TABLE itab_zycet093 WITH KEY belnr_i = itab_zycbt030-belnr.
IF sy-subrc = 0.
itab_zycbt033-budat = itab_zycet093-dtfat.
itab_zycbt033-bldat = itab_zycet093-dtfat.
ENDIF.
ENDIF.
APPEND itab_zycbt033.
ENDFORM.
FORM fill_date_fb08.
* >> Início da exclusão: FORM FILL_DATE_FB08
DATA: wa_per_fiscal TYPE ty_per_fiscal,
v_retorno(2) TYPE c,
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_FB08
DATA: v_retorno(2) TYPE c,
* << Fim da inclusão
v_gjahr TYPE t001b-frye1.
CLEAR: itab_zycbt033,
itab_zycbt032,
itab_zycee005.
REFRESH: itab_zycbt033,
itab_zycbt032,
itab_zycee005.
itab_zycbt033-mandt = sy-mandt.
itab_zycbt033-tcode = 'FB08'.
itab_zycbt033-cpochv = wa_zycet001-nrseq.
...
...
ENDIF.
CALL FUNCTION '/PWS/ZYCE_CHECA_PERIODO_FISCAL'
EXPORTING
v_bukrs = itab_zycee005-bukrs
v_date = itab_zycee005-budat
v_koart = '+'
IMPORTING
v_year = v_gjahr
v_stgrd = v_retorno
EXCEPTIONS
* >> Início da exclusão: FORM FILL_DATE_FB08
variante_de_exercicio = 1
data_nao_encontrada = 2
empresa_nao_encontrada = 3
period_in_not_valid = 4
period_not_assigned = 5
version_undefined = 6
OTHERS = 7.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_FB08
variante_de_exercicio = 0
data_nao_encontrada = 0
empresa_nao_encontrada = 0
period_in_not_valid = 0
period_not_assigned = 0
version_undefined = 0
OTHERS = 0.
* << Fim da inclusão
itab_zycee005-gjahs = v_gjahr.
IF v_retorno = '01'.
CALL FUNCTION '/PWS/ZYCE_CHECA_PERIODO_FISCAL'
EXPORTING
v_bukrs = itab_zycee005-bukrs
v_date = itab_zycee005-budat
v_koart = 'D'
IMPORTING
v_year = v_gjahr
v_stgrd = v_retorno
EXCEPTIONS
* >> Início da exclusão: FORM FILL_DATE_FB08
variante_de_exercicio = 1
data_nao_encontrada = 2
empresa_nao_encontrada = 3
period_in_not_valid = 4
period_not_assigned = 5
version_undefined = 6
OTHERS = 7.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_FB08
variante_de_exercicio = 0
data_nao_encontrada = 0
empresa_nao_encontrada = 0
period_in_not_valid = 0
period_not_assigned = 0
version_undefined = 0
OTHERS = 0.
* << Fim da inclusão
IF v_retorno = '01'.
itab_zycee005-stgrd = '01'.
ELSE.
itab_zycee005-stgrd = '02'.
itab_zycee005-budat = sy-datlo.
ENDIF.
ELSE.
itab_zycee005-stgrd = '02'.
itab_zycee005-budat = sy-datlo.
ENDIF.
...
...
FORM executa_fbra.
IMPORT v_mode FROM MEMORY ID '035'.
FREE MEMORY ID '035'.
CALL FUNCTION '/PWS/ZYCB_TRANSACAO_FBRA'
EXPORTING
v_modo = v_mode
TABLES
t_dados = itab_zycbt033
t_zycbt032 = itab_zycbt032
EXCEPTIONS
* >> Início da exclusão: FORM EXECUTA_FBRA
campo_em_branco = 1
OTHERS = 2.
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_FBRA
campo_em_branco = 0
OTHERS = 0.
* << Fim da inclusão
READ TABLE itab_zycbt032 WITH KEY tabela = '/PWS/ZYCBT030'
cpochv = wa_zycet001-nrseq
tpmsg = 'S'.
IF sy-subrc EQ 0.
PERFORM fill_date_fb08.
PERFORM executa_fb08.
ELSE.
LOOP AT itab_zycbt032.
MESSAGE i001 WITH itab_zycbt032-msg.
ENDLOOP.
...
...
ENDFORM.
FORM executa_fb08.
CALL FUNCTION '/PWS/ZYCE_TRANSACAO_FB08'
EXPORTING
v_modo = v_mode
TABLES
t_dados = itab_zycee005
t_campo = itab_zycet004
t_zycet005 = itab_zycet005
EXCEPTIONS
* >> Início da exclusão: FORM EXECUTA_FB08
campo_em_branco = 1
OTHERS = 2.
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_FB08
campo_em_branco = 0
OTHERS = 0.
* << Fim da inclusão
FREE MEMORY ID '031'.
READ TABLE itab_zycet005 WITH KEY tabela = '/PWS/ZYCBT030'
cpochv = wa_zycet001-nrseq
tpmsg = 'S'.
IF sy-subrc EQ 0.
v_result = 'Y'.
ELSE.
LOOP AT itab_zycbt032.
MESSAGE i001 WITH itab_zycbt032-msg.
ENDLOOP.
...
...
FORM clear_data_batch.
CLEAR: itab_zycbt032,
itab_zycbt033,
itab_zycbt034,
itab_zycbt036.
REFRESH: itab_zycbt032,
itab_zycbt033,
itab_zycbt034,
itab_zycbt036.
ENDFORM.
* >> Início da exclusão: FORM EXECUTA_F_02
FORM executa_f_02.
DATA v_modo LIKE /pws/zycbt039-modo.
DATA: BEGIN OF it_dados OCCURS 0,
belnr LIKE /pws/zycee005-belnr,
bukrs LIKE /pws/zycee005-bukrs,
gjahr LIKE /pws/zycee005-gjahr,
zterm LIKE /pws/zycee005-zterm,
dtemb LIKE /pws/zycee001-dtemb,
END OF it_dados.
LOOP AT itab_bkpf.
MOVE: itab_bkpf-belnr TO it_dados-belnr,
itab_zycet002-bukrs TO it_dados-bukrs,
itab_bkpf-gjahr TO it_dados-gjahr,
v_zterm TO it_dados-zterm,
wa_zycet001-dtemb TO it_dados-dtemb.
APPEND it_dados.
ENDLOOP.
IMPORT v_mode FROM MEMORY ID '035'.
v_modo = v_mode.
EXPORT: it_dados TO MEMORY ID 'FB02',
v_modo TO MEMORY ID '035'.
AUTHORITY-CHECK OBJECT 'S_TCODE' ID 'TCD' FIELD '/PWS/ZYCER217'.
IF sy-subrc EQ 0.
SUBMIT /pws/zycer217 AND RETURN.
IMPORT v_result FROM MEMORY ID '031'.
IF v_result = 'Y'.
MESSAGE s001 WITH text-012 text-013.
ELSE.
MESSAGE e001 WITH text-014 text-015.
ENDIF.
ELSE.
MESSAGE e261(sf) WITH '/PWS/ZYCER217'.
ENDIF.
FREE MEMORY ID: '031',
'FB02'.
EXPORT v_mode TO MEMORY ID '035'.
ENDFORM.
FORM verifica_dev_total USING wa_zycee085 LIKE /pws/zycee085.
LOOP AT it_vbfa WHERE vbelv = wa_zycee085-vbeln_vf AND
posnv = wa_zycee085-posnr.
READ TABLE itab_devolucao WITH KEY vbeln_vf = it_vbfa-vbeln
posnr = it_vbfa-posnn.
IF sy-subrc EQ 0.
IF itab_devolucao-shkzg EQ 'X'.
IF wa_zycee085-vlme EQ 0.
DELETE itab_devolucao WHERE vbeln_vf = it_vbfa-vbeln
AND posnr = it_vbfa-posnn.
v_dev_tot = 'X'.
EXIT.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM.
* << Fim da exclusão
FORM determina_dtdocto
USING
p_wa_zycet001 TYPE /pws/zycet001
CHANGING
p_dtdocto TYPE d.
CASE p_wa_zycet001-modo_venc.
WHEN 'E'.
p_dtdocto = p_wa_zycet001-dtemb.
WHEN 'B'.
SELECT SINGLE dtbl
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCER306
REPORT /pws/zycer306 MESSAGE-ID /pws/zycem.
* >> Início da exclusão:
TABLES: /pws/zycet001,
/pws/zycet002,
/pws/zycbt011,
/pws/zycet008,
/pws/zycbt030,
/pws/zycbt036,
/pws/zycet037,
/pws/zycit054,
/pws/zycet047,
/pws/zycet048,
vbrk,
t001b.
* << Fim da exclusão
* >> Início da inclusão:
TABLES: /pws/zycet037.
* << Fim da inclusão
DATA: v_cpochv LIKE /pws/zycbe033-cpochv,
v_mode(1) TYPE c,
v_result(1) TYPE c,
* >> Início da exclusão:
v_valor30 LIKE /pws/zycbt030-kwert,
* << Fim da exclusão
v_vlme_a LIKE /pws/zycet062-vlme_a,
* >> Início da exclusão:
v_belnr LIKE /pws/zycbt032-belnr,
v_nfnum LIKE /pws/zycet002-nfnum,
* << Fim da exclusão
v_kunrg LIKE /pws/zycet002-kunrg,
* >> Início da exclusão:
v_dev_tot,
* << Fim da exclusão
v_subrc LIKE sy-subrc,
v_ok(1) TYPE c.
CONSTANTS: c_x(1) TYPE c VALUE 'X'.
TYPES: BEGIN OF ty_zycet156,
codigo TYPE /pws/zycet156-codigo,
kschl TYPE /pws/zycet156-kschl,
...
...
DATA: BEGIN OF wa_zycet001.
INCLUDE STRUCTURE /pws/zycet001.
DATA: END OF wa_zycet001.
DATA: BEGIN OF itab_zycet002_temp OCCURS 100,
vbeln_vf(20),
fkdat LIKE /pws/zycet002-fkdat,
END OF itab_zycet002_temp.
DATA: BEGIN OF itab_zycet002 OCCURS 0.
INCLUDE STRUCTURE /pws/zycet002.
DATA: END OF itab_zycet002.
* >> Início da exclusão:
DATA: BEGIN OF itab_zycet002_aux OCCURS 0.
INCLUDE STRUCTURE /pws/zycet002.
DATA: END OF itab_zycet002_aux.
* << Fim da exclusão
* >> Início da inclusão:
DATA: itab_zycet002_aux TYPE STANDARD TABLE OF /pws/zycet002.
* << Fim da inclusão
DATA: BEGIN OF itab_zycet002_aux2 OCCURS 0.
INCLUDE STRUCTURE /pws/zycet002.
DATA: END OF itab_zycet002_aux2.
DATA: BEGIN OF itab_t052s OCCURS 0.
INCLUDE STRUCTURE t052s.
DATA: END OF itab_t052s.
DATA: BEGIN OF itab_zycet062 OCCURS 0.
INCLUDE STRUCTURE /pws/zycet062.
DATA: END OF itab_zycet062.
DATA: BEGIN OF itab_bkpf OCCURS 0,
belnr LIKE bkpf-belnr,
gjahr LIKE bkpf-gjahr,
awkey LIKE bkpf-awkey,
budat LIKE bkpf-budat,
END OF itab_bkpf.
* >> Início da exclusão:
DATA: BEGIN OF itab_vbrk OCCURS 0.
INCLUDE STRUCTURE vbrk.
DATA: END OF itab_vbrk.
* << Fim da exclusão
DATA: BEGIN OF itab_zycbt012 OCCURS 2.
INCLUDE STRUCTURE /pws/zycbt012.
DATA: END OF itab_zycbt012.
* >> Início da exclusão:
DATA: BEGIN OF itab_zycee085 OCCURS 10.
INCLUDE STRUCTURE /pws/zycee085.
DATA: END OF itab_zycee085.
DATA: BEGIN OF itab_devolucao OCCURS 10.
INCLUDE STRUCTURE /pws/zycee085.
DATA: END OF itab_devolucao.
DATA: BEGIN OF itab_complemento OCCURS 10.
INCLUDE STRUCTURE /pws/zycee085.
DATA: END OF itab_complemento.
DATA: BEGIN OF itab_estorno OCCURS 10.
INCLUDE STRUCTURE /pws/zycee085.
DATA: END OF itab_estorno.
DATA: BEGIN OF itab_saida OCCURS 10.
INCLUDE STRUCTURE /pws/zycee085.
DATA: END OF itab_saida.
* << Fim da exclusão
DATA: BEGIN OF itab_zycbt030 OCCURS 10.
INCLUDE STRUCTURE /pws/zycbt030.
DATA: END OF itab_zycbt030.
DATA: BEGIN OF itab_zycbt030_aux OCCURS 10.
INCLUDE STRUCTURE /pws/zycbt030.
DATA: END OF itab_zycbt030_aux.
DATA: BEGIN OF itab_zycet093 OCCURS 10.
INCLUDE STRUCTURE /pws/zycet093.
DATA: END OF itab_zycet093.
* >> Início da exclusão:
DATA: BEGIN OF it_vbfa OCCURS 0,
vbelv LIKE vbfa-vbelv,
posnv LIKE vbfa-posnv,
vbeln LIKE vbfa-vbeln,
posnn LIKE vbfa-posnn,
END OF it_vbfa.
* << Fim da exclusão
DATA: BEGIN OF itab_bsad OCCURS 0.
* >> Início da exclusão:
DATA: bukrs LIKE bsad-bukrs,
* << Fim da exclusão
* >> Início da inclusão:
DATA: bukrs LIKE bsad-bukrs,
* << Fim da inclusão
kunnr LIKE bsad-kunnr,
augdt LIKE bsad-augdt,
augbl LIKE bsad-augbl,
gjahr LIKE bsad-gjahr,
belnr LIKE bsad-belnr.
DATA: END OF itab_bsad.
* >> Início da exclusão:
DATA: nrseq LIKE /pws/zycee085-nrseq.
* << Fim da exclusão
DATA: itab_zycbt032 LIKE /pws/zycbt032 OCCURS 10 WITH HEADER LINE,
itab_zycbt033 LIKE /pws/zycbe033 OCCURS 10 WITH HEADER LINE,
itab_zycbt034 LIKE /pws/zycbt034 OCCURS 10 WITH HEADER LINE,
itab_zycbt036 LIKE /pws/zycbt036 OCCURS 10 WITH HEADER LINE,
* >> Início da exclusão:
itab_zycet005 LIKE /pws/zycet005 OCCURS 10 WITH HEADER LINE,
itab_zycee005 LIKE /pws/zycee005 OCCURS 10 WITH HEADER LINE,
itab_zycet004 LIKE /pws/zycet004 OCCURS 10 WITH HEADER LINE,
itab_zycbt013 LIKE /pws/zycbt013 OCCURS 10 WITH HEADER LINE,
wa_zycbt011 LIKE /pws/zycbt011,
wa_zycet008 LIKE /pws/zycet008.
* << Fim da exclusão
* >> Início da inclusão:
itab_zycet005 LIKE /pws/zycet005 OCCURS 10 WITH HEADER LINE,
itab_zycee005 LIKE /pws/zycee005 OCCURS 10 WITH HEADER LINE,
itab_zycet004 LIKE /pws/zycet004 OCCURS 10 WITH HEADER LINE,
itab_zycbt013 LIKE /pws/zycbt013 OCCURS 10 WITH HEADER LINE,
wa_zycbt011 LIKE /pws/zycbt011,
wa_zycet008 LIKE /pws/zycet008.
* << Fim da inclusão
TYPES: BEGIN OF ty_per_fiscal,
mes TYPE t001b-frpe1,
ano TYPE t001b-frye1,
END OF ty_per_fiscal.
START-OF-SELECTION.
SELECTION-SCREEN BEGIN OF BLOCK -1 WITH FRAME TITLE text-001.
* >> Início da exclusão:
SELECT-OPTIONS: p_nrseq FOR /pws/zycet002-nrseq NO INTERVALS
NO-EXTENSION.
PARAMETERS: p_flag(1) TYPE c.
* << Fim da exclusão
* >> Início da inclusão:
PARAMETERS: p_nrseq TYPE /pws/zycet001-nrseq.
PARAMETERS: p_flag(1) TYPE c.
* << Fim da inclusão
SELECTION-SCREEN END OF BLOCK -1.
END-OF-SELECTION.
PERFORM seleciona_dados.
IF p_flag EQ 'X'.
CLEAR: v_ok.
* >> Início da exclusão:
IF /pws/zycet037-agrup_fat_rec = '1'.
PERFORM executa_f_02.
ENDIF.
* << Fim da exclusão
IF /pws/zycet037-centro_dif = '0'.
PERFORM fill_date_f30.
PERFORM executa_f30.
ELSE.
MOVE itab_zycet002[] TO itab_zycet002_aux2[].
SORT itab_zycet002_aux2 BY gsber.
LOOP AT itab_zycet002_aux2.
PERFORM agrupa_dados.
PERFORM fill_date_f30.
PERFORM executa_f30.
PERFORM clear_data_batch.
ENDLOOP.
ENDIF.
ELSE.
* >> Início da exclusão:
CLEAR: itab_bsad,
* << Fim da exclusão
* >> Início da inclusão:
CLEAR: itab_bsad,
* << Fim da inclusão
v_kunrg.
REFRESH: itab_bsad.
LOOP AT itab_zycet002 WHERE kunrg NE space.
v_kunrg = itab_zycet002-kunrg.
EXIT.
ENDLOOP.
SELECT bukrs kunnr augdt augbl gjahr belnr
FROM bsad
INTO TABLE itab_bsad
FOR ALL ENTRIES IN itab_zycbt030
...
...
AND augbl NE itab_zycbt030-belnr.
LOOP AT itab_zycbt030.
PERFORM estorna_cambio.
IF v_subrc EQ 0.
PERFORM fill_date_fbra.
PERFORM executa_fbra.
ENDIF.
ENDLOOP.
ENDIF.
FORM seleciona_dados.
* >> Início da inclusão: FORM SELECIONA_DADOS
DATA: itab_zycet002_sc TYPE STANDARD TABLE OF /pws/zycet002,
itab_zycet002_d TYPE STANDARD TABLE OF /pws/zycet002.
* << Fim da inclusão
SELECT * FROM /pws/zycbt013 INTO TABLE itab_zycbt013
WHERE tabela = '/PWS/ZYCET001'
AND cpor3 = 'XBLNR'.
SELECT SINGLE * FROM /pws/zycet001 INTO wa_zycet001
* >> Início da exclusão: FORM SELECIONA_DADOS
WHERE nrseq IN p_nrseq.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
WHERE nrseq = p_nrseq.
* << Fim da inclusão
IF sy-subrc IS INITIAL.
SELECT codigo
kschl
proccond
FROM /pws/zycet156
INTO TABLE itab_zycet156
WHERE bukrs EQ wa_zycet001-bukrs
AND codmod EQ 'X'
AND proccond EQ 'FOB'.
IF sy-subrc IS INITIAL.
...
...
ENDIF.
ENDIF.
SELECT SINGLE * FROM /pws/zycbt011 INTO wa_zycbt011
WHERE codeven = '005'
AND codmod = 'X'
AND bukrs = wa_zycet001-bukrs.
SELECT * FROM /pws/zycbt012 INTO TABLE itab_zycbt012
WHERE codeven = '005'
AND codmod = 'X'.
SELECT * FROM /pws/zycet062 INTO TABLE itab_zycet062
* >> Início da exclusão: FORM SELECIONA_DADOS
WHERE nrseq IN p_nrseq.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
WHERE nrseq = p_nrseq.
CALL FUNCTION '/PWS/ZYCE_SEPARA_ITENS_EMB'
EXPORTING
nrseq = wa_zycet001-nrseq
inclui_par_dt = 'X'
inclui_es_saida = ' '
TABLES
tab_saida = itab_zycet002
tab_complemento = itab_zycet002_sc[]
tab_devolucao = itab_zycet002_d[]
EXCEPTIONS
itens_nao_encontrados = 1
OTHERS = 2.
IF sy-subrc <> 0.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_DADOS
SELECT * FROM /pws/zycet002 INTO TABLE itab_zycet002
WHERE nrseq IN p_nrseq.
IF itab_zycet002[] IS INITIAL.
* << Fim da exclusão
MESSAGE i008.
STOP.
ELSE.
* >> Início da exclusão: FORM SELECIONA_DADOS
READ TABLE itab_zycet002 INDEX 1.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
APPEND LINES OF itab_zycet002_sc[] TO itab_zycet002[].
APPEND LINES OF itab_zycet002_d[] TO itab_zycet002[].
* << Fim da inclusão
SELECT SINGLE * FROM /pws/zycet037
* >> Início da exclusão: FORM SELECIONA_DADOS
WHERE bukrs EQ itab_zycet002-bukrs.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
WHERE bukrs EQ wa_zycet001-bukrs.
* << Fim da inclusão
ENDIF.
IF p_flag = 'X'.
* >> Início da exclusão: FORM SELECIONA_DADOS
CLEAR nrseq.
LOOP AT itab_zycet002.
nrseq = nrseq + 001.
itab_zycee085-nrseq = nrseq.
SHIFT itab_zycee085-nrseq RIGHT DELETING TRAILING space.
DO 9 TIMES.
REPLACE ' ' WITH '0' INTO itab_zycee085-nrseq.
ENDDO.
MOVE : itab_zycet002-mandt TO itab_zycee085-mandt,
itab_zycet002-vbeln_va TO itab_zycee085-vbeln_va,
itab_zycet002-vbeln_vf TO itab_zycee085-vbeln_vf,
itab_zycet002-vbeln_vl TO itab_zycee085-vbeln_vl,
itab_zycet002-posnl TO itab_zycee085-posnl,
itab_zycet002-aupos TO itab_zycee085-aupos,
itab_zycet002-inco1 TO itab_zycee085-inco1,
itab_zycet002-fkimg TO itab_zycee085-fkimg,
itab_zycet002-vrkme TO itab_zycee085-vrkme,
itab_zycet002-posnr TO itab_zycee085-posnr,
itab_zycet002-vlme TO itab_zycee085-vlme,
itab_zycet002-ntgew TO itab_zycee085-ntgew,
itab_zycet002-brgew TO itab_zycee085-brgew,
itab_zycet002-shkzg TO itab_zycee085-shkzg,
itab_zycet002-nfnum TO itab_zycee085-nfnum,
itab_zycet002-auart TO itab_zycee085-auart,
itab_zycet002-fkart TO itab_zycee085-fkart,
itab_zycet002-waers TO itab_zycee085-waers,
itab_zycet002-gewei TO itab_zycee085-gewei,
itab_zycet002-bukrs TO itab_zycee085-bukrs,
itab_zycet002-pstyv TO itab_zycee085-pstyv.
APPEND itab_zycee085.
ENDLOOP.
EXPORT itab_zycee085 TO MEMORY ID 'ODOC'.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
IF /pws/zycet037-agrup_sem_rec NE '1'.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_DADOS
IF /pws/zycet037-agrup_sem_rec NE '1'.
* << Fim da exclusão
LOOP AT itab_zycet002 WHERE status NE 'C'.
ENDLOOP.
IF sy-subrc = 0.
MESSAGE i001 WITH text-002 text-009.
v_result = 'N'.
EXPORT v_result TO MEMORY ID '031'.
STOP.
ENDIF.
ENDIF.
SORT itab_zycet002 BY vbeln_va posnr.
LOOP AT itab_zycet002.
IF itab_zycet002-vbeln_vf IS INITIAL.
CONTINUE.
ENDIF.
* >> Início da exclusão: FORM SELECIONA_DADOS
MOVE itab_zycet002-vbeln_vf TO
itab_zycet002_temp-vbeln_vf.
MOVE: itab_zycet002-fkdat TO itab_zycet002_temp-fkdat.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
MOVE itab_zycet002-vbeln_vf TO itab_zycet002_temp-vbeln_vf.
MOVE itab_zycet002-fkdat TO itab_zycet002_temp-fkdat.
* << Fim da inclusão
APPEND itab_zycet002_temp.
ENDLOOP.
IF NOT itab_zycet002_temp[] IS INITIAL.
SELECT belnr gjahr awkey budat
FROM bkpf
INTO TABLE itab_bkpf
FOR ALL ENTRIES IN itab_zycet002_temp
WHERE awtyp = 'VBRK'
AND awkey = itab_zycet002_temp-vbeln_vf
AND awsys = ' '.
ENDIF.
* >> Início da inclusão: FORM SELECIONA_DADOS
ELSE.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_DADOS
ELSE.
* << Fim da exclusão
SELECT * FROM /pws/zycbt030
INTO TABLE itab_zycbt030_aux
* >> Início da exclusão: FORM SELECIONA_DADOS
WHERE nrinvoic IN p_nrseq.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
WHERE nrinvoic = p_nrseq.
* << Fim da inclusão
IF sy-subrc NE 0 AND /pws/zycet037-agrup_fat_rec = '1'.
SELECT * FROM /pws/zycet093
INTO TABLE itab_zycet093
* >> Início da exclusão: FORM SELECIONA_DADOS
WHERE nrseq IN p_nrseq.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
WHERE nrseq = p_nrseq.
* << Fim da inclusão
IF sy-subrc EQ 0.
LOOP AT itab_zycet093.
CLEAR itab_zycbt030.
itab_zycbt030-nrinvoic = itab_zycet093-nrseq.
itab_zycbt030-belnr = itab_zycet093-belnr_i.
COLLECT itab_zycbt030.
ENDLOOP.
ENDIF.
ELSE.
LOOP AT itab_zycbt030_aux.
...
...
itab_zycbt033,
itab_zycbt034,
itab_zycbt036.
REFRESH: itab_zycbt032,
itab_zycbt033,
itab_zycbt034,
itab_zycbt036.
IF v_mode IS INITIAL.
v_mode = 'E'.
ENDIF.
* >> Início da exclusão: FORM FILL_DATE_F30
DATA: wa_zycee085 LIKE /pws/zycee085.
* << Fim da exclusão
IF /pws/zycet037-centro_dif = '1'.
MOVE itab_zycet002_aux[] TO itab_zycet002[].
ENDIF.
itab_zycbt033-mandt = sy-mandt.
itab_zycbt033-tcode = 'F-30'.
itab_zycbt033-tabela = '/PWS/ZYCET002'.
itab_zycbt033-cpochv = wa_zycet001-nrseq.
IF /pws/zycet037-dtlct EQ 'N' OR
/pws/zycet037-dtlct EQ 'E'.
itab_zycbt033-budat = wa_zycet001-dtemb.
ELSE.
...
...
itab_zycbt033-c_valut = sy-datlo.
itab_zycbt033-bktxt = text-004.
PERFORM determina_dtdocto
USING
wa_zycet001
CHANGING
itab_zycbt033-dtdocto.
PERFORM verify_null_field USING itab_zycbt033-dtdocto
'ZFBDT'
text-018.
READ TABLE itab_zycbt013 INDEX 1.
IF itab_zycbt013-cpocb = 'NRSEQ'.
itab_zycbt033-xblnr = wa_zycet001-nrseq.
ELSEIF itab_zycbt013-cpocb = 'NREMB'.
itab_zycbt033-xblnr = wa_zycet001-nremb.
ENDIF.
CONCATENATE wa_zycbt011-txtdesc wa_zycet001-nrseq
INTO itab_zycbt033-augtx SEPARATED BY space.
itab_zycbt033-d_sgtxt = itab_zycbt033-augtx.
itab_zycbt033-c_sgtxt = itab_zycbt033-augtx.
PERFORM get_parameters.
...
...
CALL FUNCTION '/PWS/ZYGL_MONTANTE_CONVERTE'
EXPORTING
i_montante = 1
i_demoeda = itab_zycet002-waers
i_paramoeda = v_moeda_destino
i_ctmoeda = v_categoria
i_dtbase = itab_zycbt033-dtdocto
IMPORTING
e_txc = itab_zycbt033-kursf
EXCEPTIONS
* >> Início da exclusão: FORM FILL_DATE_F30
i_demoeda_nao_encontrado = 1
i_paramoeda_nao_encontrado = 2
i_ctmoeda_nao_encontrado = 3
i_dtbase_nao_encontrada = 4
taxa_nao_encontrada = 5
fator_nao_encontrado = 6
i_montante_nao_encontrado = 7
tabela_categ_nao_configurada = 8
OTHERS = 9.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_F30
i_demoeda_nao_encontrado = 0
i_paramoeda_nao_encontrado = 0
i_ctmoeda_nao_encontrado = 0
i_dtbase_nao_encontrada = 0
taxa_nao_encontrada = 0
fator_nao_encontrado = 0
i_montante_nao_encontrado = 0
tabela_categ_nao_configurada = 0
OTHERS = 0.
* << Fim da inclusão
ENDIF.
IF /pws/zycet037-alt_cond = '1'.
APPEND itab_zycbt033.
ELSE.
SELECT * FROM t052s
INTO TABLE itab_t052s
WHERE zterm = itab_zycet002-zterm.
IF sy-subrc EQ 0.
LOOP AT itab_t052s.
itab_zycbt033-zterm = itab_t052s-ratzt.
itab_zycbt033-mwskz = 'X'.
APPEND itab_zycbt033.
ENDLOOP.
ELSE.
itab_zycbt033-zterm = itab_zycet002-zterm.
APPEND itab_zycbt033.
ENDIF.
ENDIF.
* >> Início da exclusão: FORM FILL_DATE_F30
CLEAR itab_saida.
REFRESH itab_saida.
CALL FUNCTION '/PWS/ZYCE_TRATA_ORDEM'
EXPORTING
nrseq = wa_zycet001-nrseq
TABLES
t_saida = itab_saida
t_estorno = itab_estorno
t_devolucao = itab_devolucao
t_complemento = itab_complemento.
IF NOT itab_saida[] IS INITIAL.
SELECT vbelv posnv vbeln posnn
FROM vbfa
INTO TABLE it_vbfa
FOR ALL ENTRIES IN itab_saida
WHERE vbelv = itab_saida-vbeln_vf AND
posnv = itab_saida-posnr.
ENDIF.
* << Fim da exclusão
LOOP AT itab_zycet002 .
* >> Início da exclusão: FORM FILL_DATE_F30
CLEAR v_dev_tot.
READ TABLE itab_saida WITH KEY
vbeln_va = itab_zycet002-vbeln_va
vbeln_vf = itab_zycet002-vbeln_vf
posnr = itab_zycet002-posnr.
IF sy-subrc = 0.
MOVE itab_saida TO wa_zycee085.
ELSE.
READ TABLE itab_devolucao WITH KEY
vbeln_va = itab_zycet002-vbeln_va
vbeln_vf = itab_zycet002-vbeln_vf
posnr = itab_zycet002-posnr.
IF sy-subrc = 0.
MOVE itab_devolucao TO wa_zycee085.
ELSE.
READ TABLE itab_complemento WITH KEY
vbeln_va = itab_zycet002-vbeln_va
vbeln_vf = itab_zycet002-vbeln_vf
posnr = itab_zycet002-posnr.
IF sy-subrc EQ 0.
MOVE itab_complemento TO wa_zycee085.
ELSE.
CONTINUE.
ENDIF.
ENDIF.
ENDIF.
READ TABLE itab_estorno WITH KEY
vbeln_va = itab_zycet002-vbeln_va
vbeln_vf = itab_zycet002-vbeln_vf
posnr = itab_zycet002-posnr.
IF sy-subrc NE 0.
PERFORM verifica_dev_total USING wa_zycee085.
IF v_dev_tot IS INITIAL.
READ TABLE itab_estorno WITH KEY
vbeln_va = itab_zycet002-vbeln_va
vbeln_vf = itab_zycet002-vbeln_vf
posnr = itab_zycet002-posnr.
IF sy-subrc NE 0.
* << Fim da exclusão
READ TABLE itab_bkpf
WITH KEY awkey = itab_zycet002-vbeln_vf.
IF sy-subrc EQ 0.
itab_zycbt036-mandt = sy-mandt.
itab_zycbt036-tcode = 'F-30'.
itab_zycbt036-tabela = '/PWS/ZYCET002'.
itab_zycbt036-cpochv = wa_zycet001-nrseq.
itab_zycbt036-belnr = itab_bkpf-belnr.
itab_zycbt036-residuo = itab_zycet002-vlme.
itab_zycbt036-waers = itab_zycet002-waers.
itab_zycbt036-dtdocto = itab_bkpf-budat.
COLLECT itab_zycbt036.
ENDIF.
* >> Início da exclusão: FORM FILL_DATE_F30
ENDIF.
ENDIF.
ENDIF.
* << Fim da exclusão
CLEAR itab_zycbt036.
ENDLOOP.
DESCRIBE TABLE itab_zycbt036.
IF NOT sy-tfill IS INITIAL.
v_ok = c_x.
ENDIF.
ENDFORM.
* >> Início da inclusão:
FORM verify_null_field
USING
p_field TYPE any
p_fieldname TYPE /pws/zycbt034-campo
p_description TYPE /pws/zycbt034-descricao.
* << Fim da inclusão
* >> Início da exclusão: FORM VERIFY_NULL_FIELD
FORM verify_null_field USING value(p_field)
value(p_fieldname)
value(p_description).
* << Fim da exclusão
IF p_field IS INITIAL.
itab_zycbt034-campo = p_fieldname.
itab_zycbt034-descricao = p_description.
APPEND itab_zycbt034.
ENDIF.
ENDFORM.
FORM get_parameters.
PERFORM verify_null_field USING wa_zycet001-bukrs
'BUKRS'
text-006.
...
...
IMPORT v_mode FROM MEMORY ID '035'.
CALL FUNCTION '/PWS/ZYCE_TRANSACAO_F_30C'
EXPORTING
v_modo = v_mode
TABLES
t_dados = itab_zycbt033
t_campo = itab_zycbt034
t_zycbt032 = itab_zycbt032
t_zycbt036 = itab_zycbt036
EXCEPTIONS
* >> Início da exclusão: FORM EXECUTA_F30
campo_em_branco = 1
periodo_fechado = 2
OTHERS = 3.
IF sy-subrc <> 0.
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_F30
campo_em_branco = 0
periodo_fechado = 0
OTHERS = 0.
* << Fim da inclusão
FREE MEMORY ID '031'.
READ TABLE itab_zycbt032 WITH KEY tabela = '/PWS/ZYCET002'
cpochv = wa_zycet001-nrseq
tpmsg = 'S'.
IF sy-subrc EQ 0.
v_result = 'Y'.
ELSE.
LOOP AT itab_zycbt032.
MESSAGE i001 WITH itab_zycbt032-msg.
ENDLOOP.
...
...
WITH KEY belnr = itab_zycbt030-belnr.
ELSE.
READ TABLE itab_zycet093 WITH KEY belnr_i = itab_zycbt030-belnr.
IF sy-subrc = 0.
itab_zycbt033-budat = itab_zycet093-dtfat.
ENDIF.
ENDIF.
APPEND itab_zycbt033.
ENDFORM.
FORM fill_date_fb08.
* >> Início da exclusão: FORM FILL_DATE_FB08
DATA: wa_per_fiscal TYPE ty_per_fiscal,
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_FB08
DATA:
* << Fim da inclusão
v_retorno(2) TYPE c,
v_gjahr TYPE t001b-frye1.
CLEAR: itab_zycbt033, itab_zycbt032.
REFRESH: itab_zycbt033, itab_zycbt032.
CLEAR: itab_zycee005.
REFRESH: itab_zycee005.
itab_zycbt033-mandt = sy-mandt.
itab_zycbt033-tcode = 'FB08'.
itab_zycbt033-cpochv = wa_zycet001-nrseq.
itab_zycbt033-belnr = itab_zycbt030-belnr.
...
...
ENDIF.
CALL FUNCTION '/PWS/ZYCE_CHECA_PERIODO_FISCAL'
EXPORTING
v_bukrs = itab_zycee005-bukrs
v_date = itab_zycee005-budat
v_koart = '+'
IMPORTING
v_year = v_gjahr
v_stgrd = v_retorno
EXCEPTIONS
* >> Início da exclusão: FORM FILL_DATE_FB08
variante_de_exercicio = 1
data_nao_encontrada = 2
empresa_nao_encontrada = 3
period_in_not_valid = 4
period_not_assigned = 5
version_undefined = 6
OTHERS = 7.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_FB08
variante_de_exercicio = 0
data_nao_encontrada = 0
empresa_nao_encontrada = 0
period_in_not_valid = 0
period_not_assigned = 0
version_undefined = 0
OTHERS = 0.
* << Fim da inclusão
itab_zycee005-gjahs = v_gjahr.
IF v_retorno = '01'.
itab_zycee005-stgrd = '01'.
ELSE.
itab_zycee005-stgrd = '02'.
itab_zycee005-budat = sy-datlo.
ENDIF.
APPEND itab_zycee005.
ENDFORM.
FORM executa_fbra.
IMPORT v_mode FROM MEMORY ID '035'.
FREE MEMORY ID '035'.
CALL FUNCTION '/PWS/ZYCB_TRANSACAO_FBRA'
EXPORTING
v_modo = v_mode
TABLES
t_dados = itab_zycbt033
t_zycbt032 = itab_zycbt032
EXCEPTIONS
* >> Início da exclusão: FORM EXECUTA_FBRA
campo_em_branco = 1
OTHERS = 2.
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_FBRA
campo_em_branco = 0
OTHERS = 0.
* << Fim da inclusão
READ TABLE itab_zycbt032 WITH KEY tabela = '/PWS/ZYCBT030'
cpochv = wa_zycet001-nrseq
tpmsg = 'S'.
IF sy-subrc EQ 0.
PERFORM fill_date_fb08.
PERFORM executa_fb08.
ELSE.
LOOP AT itab_zycbt032.
MESSAGE i001 WITH itab_zycbt032-msg.
ENDLOOP.
...
...
ENDFORM.
FORM executa_fb08.
CALL FUNCTION '/PWS/ZYCE_TRANSACAO_FB08'
EXPORTING
v_modo = v_mode
TABLES
t_dados = itab_zycee005
t_campo = itab_zycet004
t_zycet005 = itab_zycet005
EXCEPTIONS
* >> Início da exclusão: FORM EXECUTA_FB08
campo_em_branco = 1
OTHERS = 2.
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_FB08
campo_em_branco = 0
OTHERS = 0.
* << Fim da inclusão
FREE MEMORY ID '031'.
READ TABLE itab_zycet005 WITH KEY tabela = '/PWS/ZYCBT030'
cpochv = wa_zycet001-nrseq
tpmsg = 'S'.
IF sy-subrc EQ 0.
v_result = 'Y'.
ELSE.
LOOP AT itab_zycbt032.
MESSAGE i001 WITH itab_zycbt032-msg.
ENDLOOP.
...
...
FORM clear_data_batch.
CLEAR: itab_zycbt032,
itab_zycbt033,
itab_zycbt034,
itab_zycbt036.
REFRESH: itab_zycbt032,
itab_zycbt033,
itab_zycbt034,
itab_zycbt036.
ENDFORM.
* >> Início da exclusão: FORM EXECUTA_F_02
FORM executa_f_02.
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_F_02
FORM estorna_cambio.
* << Fim da inclusão
* >> Início da exclusão: FORM EXECUTA_F_02
DATA: v_modo LIKE /pws/zycbt039-modo.
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_F_02
READ TABLE itab_bsad WITH KEY belnr = itab_zycbt030-belnr.
* << Fim da inclusão
* >> Início da exclusão: FORM EXECUTA_F_02
DATA: BEGIN OF it_dados OCCURS 0,
belnr LIKE /pws/zycee005-belnr,
bukrs LIKE /pws/zycee005-bukrs,
gjahr LIKE /pws/zycee005-gjahr,
zterm LIKE /pws/zycee005-zterm,
dtemb LIKE /pws/zycee001-dtemb,
END OF it_dados,
v_resultado(1) TYPE c.
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_F_02
IF sy-subrc EQ 0.
* << Fim da inclusão
* >> Início da exclusão: FORM EXECUTA_F_02
LOOP AT itab_bkpf.
MOVE: itab_bkpf-belnr TO it_dados-belnr,
itab_zycet002-bukrs TO it_dados-bukrs,
itab_bkpf-gjahr TO it_dados-gjahr,
itab_zycet002-zterm TO it_dados-zterm,
wa_zycet001-dtemb TO it_dados-dtemb.
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_F_02
PERFORM anula_desmembramento.
* << Fim da inclusão
* >> Início da exclusão: FORM EXECUTA_F_02
APPEND it_dados.
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_F_02
IF v_subrc EQ 0.
PERFORM clearing.
* << Fim da inclusão
* >> Início da exclusão: FORM EXECUTA_F_02
ENDLOOP.
IMPORT v_mode FROM MEMORY ID '035'.
v_modo = v_mode.
EXPORT: it_dados TO MEMORY ID 'FB02',
v_modo TO MEMORY ID '035'.
AUTHORITY-CHECK OBJECT 'S_TCODE' ID 'TCD' FIELD '/PWS/ZYCER217'.
IF sy-subrc EQ 0.
SUBMIT /pws/zycer217 AND RETURN.
IMPORT v_result FROM MEMORY ID '031'.
IF v_result = 'Y'.
MESSAGE s001 WITH text-012 text-013.
ELSE.
MESSAGE e001 WITH text-014 text-015.
* << Fim da exclusão
ENDIF.
ELSE.
* >> Início da exclusão: FORM EXECUTA_F_02
MESSAGE e261(sf) WITH '/PWS/ZYCER217'.
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_F_02
v_subrc = 0.
* << Fim da inclusão
* >> Início da exclusão: FORM EXECUTA_F_02
FREE MEMORY ID: '031',
'FB02'.
EXPORT v_mode TO MEMORY ID '035'.
ENDFORM.
FORM verifica_dev_total USING wa_zycee085 LIKE /pws/zycee085.
LOOP AT it_vbfa WHERE vbelv = wa_zycee085-vbeln_vf AND
posnv = wa_zycee085-posnr.
READ TABLE itab_devolucao WITH KEY vbeln_vf = it_vbfa-vbeln
posnr = it_vbfa-posnn.
IF sy-subrc EQ 0.
IF itab_devolucao-shkzg EQ 'X'.
IF itab_zycee085-vlme EQ 0.
DELETE itab_devolucao WHERE vbeln_vf = it_vbfa-vbeln
AND posnr = it_vbfa-posnn.
v_dev_tot = 'X'.
EXIT.
* << Fim da exclusão
ENDIF.
* >> Início da exclusão: FORM VERIFICA_DEV_TOTAL
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_DEV_TOTAL
ENDFORM.
* << Fim da inclusão
* >> Início da exclusão: FORM VERIFICA_DEV_TOTAL
ENDIF.
ENDLOOP.
ENDFORM.
FORM estorna_cambio.
READ TABLE itab_bsad WITH KEY belnr = itab_zycbt030-belnr.
IF sy-subrc EQ 0.
PERFORM anula_desmembramento.
IF v_subrc EQ 0.
PERFORM clearing.
ENDIF.
ELSE.
v_subrc = 0.
ENDIF.
ENDFORM.
* << Fim da exclusão
FORM anula_desmembramento.
CLEAR: itab_zycbt033, itab_zycbt032.
REFRESH: itab_zycbt033, itab_zycbt032.
itab_zycbt033-mandt = sy-mandt.
itab_zycbt033-tcode = 'FBRA'.
itab_zycbt033-tabela = '/PWS/ZYCBT030'.
itab_zycbt033-cpochv = wa_zycet001-nrseq.
itab_zycbt033-belnr = itab_bsad-augbl.
itab_zycbt033-bukrs = wa_zycet001-bukrs.
itab_zycbt033-budat = itab_bsad-augdt.
itab_zycbt033-bldat = itab_bsad-augdt.
APPEND itab_zycbt033.
IMPORT v_mode FROM MEMORY ID '035'.
CALL FUNCTION '/PWS/ZYCB_TRANSACAO_FBRA'
EXPORTING
v_modo = v_mode
TABLES
t_dados = itab_zycbt033
t_zycbt032 = itab_zycbt032
EXCEPTIONS
* >> Início da exclusão: FORM ANULA_DESMEMBRAMENTO
campo_em_branco = 1
OTHERS = 2.
* << Fim da exclusão
* >> Início da inclusão: FORM ANULA_DESMEMBRAMENTO
campo_em_branco = 0
OTHERS = 0.
* << Fim da inclusão
READ TABLE itab_zycbt032 WITH KEY tabela = '/PWS/ZYCBT030'
cpochv = wa_zycet001-nrseq
tpmsg = 'S'.
IF sy-subrc NE 0.
LOOP AT itab_zycbt032 WHERE tcode = 'F-30'
AND tabela = 'ZYCBT006'
AND cpochv = v_cpochv.
MESSAGE i001 WITH itab_zycbt032-msg.
ENDLOOP.
sy-subrc = 4.
...
...
itab_zycbt033-zfbdt = wa_zycet001-dtvencto.
itab_zycbt033-d_valut = sy-datlo.
itab_zycbt033-c_valut = sy-datlo.
itab_zycbt033-bktxt = text-004.
PERFORM get_parameters.
PERFORM determina_dtdocto
USING
wa_zycet001
CHANGING
itab_zycbt033-dtdocto.
READ TABLE itab_zycbt013 INDEX 1.
IF itab_zycbt013-cpocb = 'NRSEQ'.
itab_zycbt033-xblnr = wa_zycet001-nrseq.
ELSEIF itab_zycbt013-cpocb = 'NREMB'.
itab_zycbt033-xblnr = wa_zycet001-nremb.
ENDIF.
CONCATENATE wa_zycbt011-txtdesc wa_zycet001-nremb
INTO itab_zycbt033-augtx SEPARATED BY space.
itab_zycbt033-d_sgtxt = itab_zycbt033-augtx.
itab_zycbt033-c_sgtxt = itab_zycbt033-augtx.
itab_zycbt033-agkon = itab_bsad-kunnr.
...
...
CALL FUNCTION '/PWS/ZYCE_TRANSACAO_F_30C'
EXPORTING
v_modo = v_mode
v_clearing = 'X'
TABLES
t_dados = itab_zycbt033
t_campo = itab_zycbt034
t_zycbt032 = itab_zycbt032
t_zycbt036 = itab_zycbt036
EXCEPTIONS
* >> Início da exclusão: FORM CLEARING
campo_em_branco = 1
periodo_fechado = 2
OTHERS = 3.
* << Fim da exclusão
* >> Início da inclusão: FORM CLEARING
campo_em_branco = 0
periodo_fechado = 0
OTHERS = 0.
* << Fim da inclusão
READ TABLE itab_zycbt032 WITH KEY tabela = '/PWS/ZYCET002'
cpochv = wa_zycet001-nrseq
tpmsg = 'S'.
IF sy-subrc EQ 0.
v_subrc = 0.
ELSE.
LOOP AT itab_zycbt032.
MESSAGE i001 WITH itab_zycbt032-msg.
ENDLOOP.
v_subrc = 4.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/ZYCER089
------------------------------------------------------------------------
Excluído símbolo de texto:
Símbolo: 012
Símbolo: 013
Símbolo: 014
Símbolo: 015
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/ZYCER306
------------------------------------------------------------------------
Excluído símbolo de texto:
Símbolo: 003
Símbolo: 010
Símbolo: 011
Símbolo: 012
Símbolo: 013
Símbolo: 014
Símbolo: 015
------------------------------------------------------------------------
Incluído texto de seleção:
Idioma: PT
Variável (SELECT-OPTION / PARAMETER): P_FLAG
Texto: (32 caracteres)
"'X'=Agrupar,' '=Estornar"
------------------------------------------------------------------------
Incluído texto de seleção:
Idioma: PT
Variável (SELECT-OPTION / PARAMETER): P_NRSEQ
Referência ao Dictionary: SIM