Function Modules
Function Modules
Source code
CLEAR v_count.
v_filedir = im_file_dir.
CONCATENATE v_filedir im_filename INTO v_file.
IF sy-subrc <> 0.
ELSE.
DO.
TRY.
IF sy-subrc EQ c_0
AND s_data-data IS NOT INITIAL.
IF v_flag IS INITIAL.
v_flag = c_x.
MOVE s_data-data TO v_head_file.
IF im_filename CS c_cplnord.
SELECT low
FROM tvarvc
INTO TABLE t_tvarvc
WHERE name = c_pchg1
OR name = c_pchg2.
ELSEIF im_filename CS c_crplnord.
SELECT low
FROM tvarvc
INTO TABLE t_tvarvc
WHERE name = c_pcrt1
OR name = c_pcrt2.
ELSEIF im_filename CS c_prplnord.
SELECT low
FROM tvarvc
INTO TABLE t_tvarvc
WHERE name = c_pr_crt1
OR name = c_pr_crt2.
ENDIF.
IF t_tvarvc IS NOT INITIAL.
s_error_log-data = text-009.
APPEND s_error_log TO t_error_temp.
CLEAR: s_error_log.
EXIT.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ELSE.
IF sy-subrc EQ c_0.
v_error = c_x.
ENDIF.
EXIT.
ENDIF.
v_text = v_ref->get_text( ).
v_text = v_ref->get_text( ).
ENDIF.
ENDTRY.
ENDDO.
IF im_rr_opt = c_pur_req
OR im_rr_opt = c_pln_ord.
tb_data1[] = tb_data[].
DESCRIBE TABLE tb_data1 LINES v_lines.
v_total = v_lines - 1.
CONDENSE v_total NO-GAPS.
CONDENSE v_string1 NO-GAPS.
IF v_total <> v_string1.
v_error_txt = 'Record count mismatch'(010).
s_error_log-data = v_error_txt.
REFRESH: tb_data[].
ENDIF.
ENDIF.
s_error_log-data = v_error_txt.
REFRESH: tb_data[].
ELSE.
IF ( v_scenario <> c_plant AND v_scenario <> c_matgp AND v_scenario
<> c_global ).
s_error_log-data = text-008.
APPEND s_error_log TO t_error_temp.
CLEAR: s_error_log.
REFRESH: tb_data[].
REFRESH: tb_data[].
ENDIF.
IF v_scenario = c_matgp.
IF sy-subrc NE c_0.
s_error_log-data = text-008.
REFRESH: tb_data[].
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF
IF v_exit = c_x.
s_error_log-data = v_text.
ENDIF.
ENDIF.
ENDIF.
CLEAR: s_data,
v_filedir,
v_file,
v_msg,
v_exit,
v_text,
v_count,
v_count1,
v_no_record,
v_count2,
v_len_name,
v_action,
v_dummy,
v_scenario,
v_scenario_val,
v_error_txt,
v_pos1,
v_plant,
v_matkl,
v_error, "
v_scenario1, "
v_scenario_val1, "
s_error_log.
REFRESH: t_error_temp.
ENDFUNCTION.
FM - ZXXX_DELETE_PR_RECORD
Code
t_delete_preq[] = tb_delete_preq[].
v_preq_no = s_delete_preq-banfn.
s_item_delete-preq_item = s_delete_preq-bnfpo.
s_item_delete-delete_ind = c_x.
ENDIF.
ENDLOOP.
ENDIF.
CLEAR: v_preq_no,
s_error_log,
s_delete_preq,
s_item_delete,
s_return,
t_item_delete[],
t_return[].
ENDLOOP.
FM - ZXXX_VALIDATION_PR_LOAD
Code
t_create_preq[] = tb_create_preq[].
t_var_value[] = tb_var_value[].
v_name = c_mmsta.
v_name1 = c_dismm.
v_name2 = c_beskz.
tb_create_preq[] = t_create_preq[].
ELSE.
REFRESH: tb_create_preq[].
ENDIF.
ENDIF.
ENDIF.
CLEAR: v_name,
v_name1,
v_name2,
v_error_txt,
s_record,
s_error_log.
REFRESH: t_error_log[],
t_var_value[],
t_create_preq[].
FM - ZXXX_LOAD_PR_RECORD
Source code:
t_create_preq[] = tb_create_preq[].
CLEAR : t_retrn,
t_pr_item,
t_pr_itemx,
s_pr_head,
s_pr_headx,
s_pr_outpt.
s_pr_head-pr_type = c_nb.
s_pr_headx-pr_type = c_x.
s_pr_itemx-material = c_x.
s_pr_itemx-plant = c_x.
s_pr_itemx-store_loc = c_x.
s_pr_itemx-suppl_plnt = c_x.
s_pr_itemx-quantity = c_x.
s_pr_itemx-unit = c_x.
s_pr_itemx-deliv_date = c_x.
s_pr_itemx-preq_name = c_x.
s_pr_itemx-gr_ind = c_x.
APPEND s_pr_itemx TO t_pr_itemx.
CLEAR: v_check.
v_check = c_x.
FREE MEMORY ID c_memory.
ENDIF.
ENDIF.
ENDLOOP.
FM - Z_PTS_GET_VARIANT_TVARVC
Code :
SELECT name
type
numb
sign
opti
low
high
FROM tvarvc
INTO TABLE tb_variant_values
WHERE name IN im_name
AND type = c_s.
IF sy-subrc = 0.
ENDIF.
ENDIF.
FM - ZXXX_MOVE_FILES
Code
ENDIF.
FM- ZXXX_WRITE_ERROR_LOG
Code:
v_filedir = im_file_dir.
IF sy-subrc <> 0.
ELSE.
TRY.
TRANSFER s_error_data-data TO v_file.
v_text = v_ref->get_text( ).
v_text = v_ref->get_text( ).
ENDTRY.
CLEAR s_error_data.
ENDLOOP.
IF v_exit = c_x.
CONCATENATE v_text im_filename INTO s_logtab-data
SEPARATED BY c_tab.
ENDIF.
ENDIF.
ENDIF.
CLEAR: s_error_data,
s_logtab,
v_filedir,
v_file,
v_msg,
v_exit,
v_text.
FM- ZXXX_MAIL_TO_DIST_LIST
DATA: t_mailid TYPE zpts2_t_mailid,
t_receiver TYPE STANDARD TABLE OF somlreci1,
t_content TYPE STANDARD TABLE OF solisti1,
t_packlst TYPE STANDARD TABLE OF sopcklsti1,
t_objhead TYPE STANDARD TABLE OF solisti1,
s_mailid TYPE zpts2_mailid,
s_receiver TYPE somlreci1,
s_content TYPE solisti1,
s_packlst TYPE sopcklsti1,
s_objhead TYPE solisti1,
s_docdata TYPE sodocchgi1.
SELECT low
IF sy-subrc EQ c_0.
v_email = s_mailid-val.
s_receiver-receiver = v_email.
s_receiver-rec_type = c_u.
ENDLOOP.
REFRESH: t_content.
CLEAR: v_line,
s_content.
CONCATENATE text-006 im_file_dir INTO v_line SEPARATED BY space.
s_content-line = v_line.
APPEND s_content TO t_content.
s_docdata-obj_descr = v_des.
s_docdata-
sensitivty = c_o. " 'O' : Standard, normal sensitivity
s_docdata-doc_size = ( v_lines_txt -
c_1 ) * c_255 + STRLEN( s_content ).
CLEAR s_packlst-transf_bin.
s_packlst-head_start = c_1.
s_packlst-head_num = c_0.
s_packlst-body_start = c_1.
s_packlst-body_num = v_lines_txt.
s_packlst-doc_type = c_raw.
APPEND s_packlst TO t_packlst.
CLEAR s_packlst.
s_objhead-line = text-007.
APPEND s_objhead TO t_objhead.
CLEAR s_objhead.
ENDIF.
ENDIF.
ENDIF.
CLEAR: s_mailid,
s_receiver,
s_content,
s_packlst,
s_objhead,
s_docdata,
v_email,
v_line,
v_des,
v_lines_txt.
REFRESH: t_mailid,
t_receiver,
t_content,
t_packlst,
t_objhead.