(ABAP 코드) EWM Header Details
CLASS=/SCWM/CL_DLV_MANAGEMENT_PRD
CALL METHOD me->get_header_details
EXPORTING
it_sp_k_head = lt_sp_k_head
io_sp = io_sp
is_exclude_data = ls_exclude_data
IMPORTING
et_a_head_admin = lt_a_head_admin_t
et_a_head_incoterms = lt_a_head_incoterms_t
et_a_head_addmeas = lt_a_head_addmeas_t
et_a_head_date = lt_a_head_date_t
et_a_head_partyloc = lt_a_head_partyloc_t
et_a_head_refdoc = lt_a_head_refdoc_t
et_a_head_status = lt_a_head_status_t
et_a_head_transport = lt_a_head_transport_t
et_a_head_text = lt_a_head_text_t
et_a_head_textline = lt_a_head_textline_t
et_a_head_keymap = lt_a_head_keymap_t
ev_rejected = lv_rejected.
DATA:
ls_a_head TYPE REF TO /scdl/s_sp_a_head,
lt_return_codes TYPE /scdl/t_sp_return_code,
lv_rejected_tmp TYPE boole_d,
ls_a_head_text TYPE REF TO /scwm/s_sp_a_head_text,
ls_sp_k_head_text TYPE /scwm/s_sp_k_head_text,
lt_sp_k_head_text TYPE /scwm/t_sp_k_head_text.
CLEAR et_a_head_admin.
CLEAR et_a_head_incoterms.
CLEAR et_a_head_addmeas.
CLEAR et_a_head_date.
CLEAR et_a_head_partyloc.
CLEAR et_a_head_refdoc.
CLEAR et_a_head_status.
CLEAR et_a_head_transport.
CLEAR et_a_head_keymap.
CLEAR et_a_head_text.
CLEAR et_a_head_textline.
CLEAR ev_rejected.
CHECK it_sp_k_head IS NOT INITIAL.
check IS_EXCLUDE_DATA-head_all is initial.
IO_SP = /SCDL/CL_SP_PRD_OUT
* get admin
CLEAR lv_rejected_tmp.
io_sp->select(
EXPORTING
inkeys = it_sp_k_head
aspect = /scdl/if_sp_c=>sc_asp_head_admin
IMPORTING
outrecords = et_a_head_admin
rejected = lv_rejected_tmp
return_codes = lt_return_codes
).
IF NOT lv_rejected_tmp IS INITIAL.
ev_rejected = lv_rejected_tmp.
ENDIF.
* get incoterms
CLEAR lv_rejected_tmp.
io_sp->select(
EXPORTING
inkeys = it_sp_k_head
aspect = /scdl/if_sp_c=>sc_asp_head_incoterms
IMPORTING
outrecords = et_a_head_incoterms
rejected = lv_rejected_tmp
return_codes = lt_return_codes
).
IF NOT lv_rejected_tmp IS INITIAL.
ev_rejected = lv_rejected_tmp.
ENDIF.
* get addmeas
CLEAR lv_rejected_tmp.
IF is_exclude_data-head_addmeas = abap_false.
io_sp->select_by_relation(
EXPORTING
relation = /scdl/if_sp_c=>sc_rel_head_to_addmeas
inrecords = it_sp_k_head
aspect = /scdl/if_sp_c=>sc_asp_head
IMPORTING
outrecords = et_a_head_addmeas
rejected = lv_rejected_tmp
return_codes = lt_return_codes ).
IF NOT lv_rejected_tmp IS INITIAL.
ev_rejected = lv_rejected_tmp.
ENDIF.
ENDIF.
* get keymap
CLEAR lv_rejected_tmp.
IF is_exclude_data-head_keymap = abap_false.
io_sp->select_by_relation(
EXPORTING
relation = /scdl/if_sp_c=>sc_rel_head_to_keymap
inrecords = it_sp_k_head
aspect = /scdl/if_sp_c=>sc_asp_head
IMPORTING
outrecords = et_a_head_keymap
rejected = lv_rejected_tmp
return_codes = lt_return_codes ).
IF NOT lv_rejected_tmp IS INITIAL.
ev_rejected = lv_rejected_tmp.
ENDIF.
ENDIF.
* get date
CLEAR lv_rejected_tmp.
IF is_exclude_data-head_date = abap_false.
io_sp->select_by_relation(
EXPORTING
relation = /scdl/if_sp_c=>sc_rel_head_to_date
inrecords = it_sp_k_head
aspect = /scdl/if_sp_c=>sc_asp_head
IMPORTING
outrecords = et_a_head_date
rejected = lv_rejected_tmp
return_codes = lt_return_codes ).
IF NOT lv_rejected_tmp IS INITIAL.
ev_rejected = lv_rejected_tmp.
ENDIF.
ENDIF.
* get partylocs
IF is_exclude_data-head_partyloc = abap_false.
CLEAR lv_rejected_tmp.
io_sp->select_by_relation(
EXPORTING
relation = /scdl/if_sp_c=>sc_rel_head_to_partyloc
inrecords = it_sp_k_head
aspect = /scdl/if_sp_c=>sc_asp_head
IMPORTING
outrecords = et_a_head_partyloc
rejected = lv_rejected_tmp
return_codes = lt_return_codes ).
IF NOT lv_rejected_tmp IS INITIAL.
ev_rejected = lv_rejected_tmp.
ENDIF.
ENDIF.
* get refdoc
IF is_exclude_data-head_refdoc = abap_false.
CLEAR lv_rejected_tmp.
io_sp->select_by_relation(
EXPORTING
relation = /scdl/if_sp_c=>sc_rel_head_to_refdoc
inrecords = it_sp_k_head
aspect = /scdl/if_sp_c=>sc_asp_head
IMPORTING
outrecords = et_a_head_refdoc
rejected = lv_rejected_tmp
return_codes = lt_return_codes ).
IF NOT lv_rejected_tmp IS INITIAL.
ev_rejected = lv_rejected_tmp.
ENDIF.
ENDIF.
* get status
IF is_exclude_data-head_status = abap_false.
CLEAR lv_rejected_tmp.
io_sp->select_by_relation(
EXPORTING
relation = /scdl/if_sp_c=>sc_rel_head_to_status
inrecords = it_sp_k_head
aspect = /scdl/if_sp_c=>sc_asp_head
IMPORTING
outrecords = et_a_head_status
rejected = lv_rejected_tmp
return_codes = lt_return_codes ).
IF NOT lv_rejected_tmp IS INITIAL.
ev_rejected = lv_rejected_tmp.
ENDIF.
ENDIF.
* get transport
IF is_exclude_data-head_transport = abap_false.
CLEAR lv_rejected_tmp.
io_sp->select_by_relation(
EXPORTING
relation = /scdl/if_sp_c=>sc_rel_head_to_transport
inrecords = it_sp_k_head
aspect = /scdl/if_sp_c=>sc_asp_head
IMPORTING
outrecords = et_a_head_transport
rejected = lv_rejected_tmp
return_codes = lt_return_codes ).
IF NOT lv_rejected_tmp IS INITIAL.
ev_rejected = lv_rejected_tmp.
ENDIF.
ENDIF.
* get text
IF is_exclude_data-head_text = abap_false.
CLEAR lv_rejected_tmp.
io_sp->select_by_relation( EXPORTING
relation = /scwm/if_sp_c=>sc_rel_head_to_text
inrecords = it_sp_k_head
aspect = /scdl/if_sp_c=>sc_asp_head
* OPTIONS
IMPORTING
outrecords = et_a_head_text
rejected = lv_rejected_tmp
return_codes = lt_return_codes ).
IF NOT lv_rejected_tmp IS INITIAL.
ev_rejected = lv_rejected_tmp.
ENDIF.
* get textline
IF is_exclude_data-head_textline = abap_false OR is_exclude_data-head_text = abap_false.
CLEAR lt_sp_k_head_text.
LOOP AT et_a_head_text REFERENCE INTO ls_a_head_text.
MOVE-CORRESPONDING ls_a_head_text->* TO ls_sp_k_head_text.
APPEND ls_sp_k_head_text TO lt_sp_k_head_text.
ENDLOOP.
CLEAR et_a_head_text.
CLEAR lv_rejected_tmp.
IF NOT lt_sp_k_head_text IS INITIAL.
io_sp->select( EXPORTING
inkeys = lt_sp_k_head_text
aspect = /scwm/if_sp_c=>sc_asp_head_textline
* OPTIONS
IMPORTING
outrecords = et_a_head_textline
rejected = lv_rejected_tmp
return_codes = lt_return_codes ).
IF NOT lv_rejected_tmp IS INITIAL.
ev_rejected = lv_rejected_tmp.
ENDIF.
ENDIF.
ENDIF.
ENDIF.