Академический Документы
Профессиональный Документы
Культура Документы
start-of-selection.
perform zf_carrega_arquivo.
perform zf_prepara_dados.
end-of-selection.
if not p_ct is initial.
perform zf_call_transaction.
elseif not p_bi is initial.
perform zf_batch_input.
endif.
perform zf_imprime_log.
*&---------------------------------------------------------------------*
*&
Form zf_carrega_arquivo
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
form zf_carrega_arquivo .
data: v_file type string.
v_file = p_file.
if p_ws = 'X'.
*
*
*
*
*
*
*
*
*
*
*
*
endif.
endform.
" zf_carrega_arquivo
*&---------------------------------------------------------------------*
*&
Form zf_prepara_dados
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
form zf_prepara_dados .
loop at it_dados.
it_quali = it_dados.
append it_quali.
endloop.
endform.
" zf_prepara_dados
*&---------------------------------------------------------------------*
*&
Form zf_call_transaction
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
form zf_call_transaction .
loop at it_quali.
clear t_bdc.
refresh t_bdc.
perform zf_preenche_bdc using:
<aqui vai o SHDB da tela>
v_msg3(50),
v_msg4(50).
loop at t_msg.
v_msg1 = t_msg-msgv1.
v_msg2 = t_msg-msgv2.
v_msg3 = t_msg-msgv3.
v_msg4 = t_msg-msgv4.
call function 'MESSAGE_PREPARE'
exporting
language
= sy-langu
msg_id
= t_msg-msgid
msg_no
= t_msg-msgnr
msg_var1
= v_msg1
msg_var2
= v_msg2
msg_var3
= v_msg3
msg_var4
= v_msg4
importing
msg_text
= it_log-msg
exceptions
function_not_completed = 1
message_not_found
=2
others
= 3.
it_log-typ = t_msg-msgtyp.
if sy-subrc is initial.
append it_log.
endif.
endloop.
refresh t_msg.
clear t_msg.
endloop.
endform.
" zf_call_transaction
*&---------------------------------------------------------------------*
*&
Form zf_batch_input
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
form zf_batch_input .
perform f_abre_pasta using p_pasta.
perform f_preenche_pasta.
perform f_fecha_pasta.
endform.
" zf_batch_input
*&---------------------------------------------------------------------*
*&
Form zf_preenche_bdc
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->TELA_INIT text
*
-->NAME
text
*
-->VALUE
text
*----------------------------------------------------------------------*
form zf_preenche_bdc using tela_init
name
value.
*Limpa o cabealho da tabela bdc
clear t_bdc.
if tela_init = 'X'.
t_bdc-program = name.
t_bdc-dynpro = value.
t_bdc-dynbegin = 'X'.
else.
t_bdc-fnam = name.
t_bdc-fval = value.
endif.
append t_bdc.
endform.
" zf_preenche_bdc
*&---------------------------------------------------------------------*
*&
Form f_abre_pasta
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_P_PASTA text
*----------------------------------------------------------------------*
form f_abre_pasta using p_p_pasta.
call function 'BDC_OPEN_GROUP'
exporting
client
= sy-mandt
* DEST
= FILLER8
group
= p_p_pasta
* HOLDDATE
= FILLER8
* KEEP
= FILLER1
user
= sy-uname
* RECORD
= FILLER1
* PROG
= SY-CPROG
* IMPORTING
* QID
=
exceptions
client_invalid
=1
destination_invalid
=2
group_invalid
=3
group_is_locked
=4
holddate_invalid
=5
internal_error
=6
queue_error
=7
running
=8
system_lock_error
=9
user_invalid
= 10
others
= 11
.
if sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
endform.
" f_abre_pasta
*&---------------------------------------------------------------------*
*&
Form f_preenche_pasta
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
form f_preenche_pasta .
loop at it_quali.
clear t_bdc.
refresh t_bdc.
perform zf_preenche_bdc using:
<aqui vai o SHDB da 1a. tela>
perform zf_preenche_bdc using:
<aqui vai o SHDB da 1a. tela>
perform zf_preenche_bdc using:
<aqui vai o SHDB da 1a. tela>
perform zf_preenche_bdc using:
<aqui vai o SHDB da 1a. tela>
perform zf_preenche_bdc using:
<aqui vai o SHDB da 1a. tela>
* Insere na pasta o registro do loop.
perform f_bdc_transaction tables t_bdc using 'nome da transao'.
endloop.
endform.
" f_preenche_pasta
*&---------------------------------------------------------------------*
*&
Form f_fecha_pasta
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
form f_fecha_pasta .
call function 'BDC_CLOSE_GROUP'
exceptions
not_open = 1
queue_error = 2
others
= 3.
if sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
endform.
" f_fecha_pasta
*&---------------------------------------------------------------------*
*&
Form f_bdc_transaction
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_T_BDC text
*
-->P_0878 text
*----------------------------------------------------------------------*
form f_bdc_transaction tables p_t_bdc structure bdcdata
using value.
call function 'BDC_INSERT'
exporting
tcode
= value
*
POST_LOCAL
= NOVBLOCAL
*
PRINTING
= NOPRINT
*
SIMUBATCH
=''
*
CTUPARAMS
=''
tables
dynprotab
= p_t_bdc
exceptions
internal_error
=1
not_open
=2
queue_error
=3
tcode_invalid
=4
printing_invalid
=5
posting_invalid
=6
others
=7
.
if sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
endform.
" f_bdc_transaction
*&---------------------------------------------------------------------*
*&
Form zf_imprime_log
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
form zf_imprime_log .
write: / 'Log de processamento:'.
if not p_ct is initial.
loop at it_log.
write: / it_log-typ,
' ',
it_log-msg.
endloop.
" zf_imprime_log