METHOD tm_shipping_event.
DATA: lt_stop TYPE /scmtms/t_tor_stop_k.
CLEAR rs_return.
DATA(lo_srv_mgr) = /bobf/cl_tra_serv_mgr_factory=>get_service_manager( /scmtms/if_tor_c=>sc_bo_key ).
DATA(lv_bo_name) = /scmtms/if_tor_c=>sc_bo_name.
DATA(lv_attname) = /scmtms/if_tor_c=>sc_query_attribute-root-planning_attributes-tor_id.
*"Selection Parameters
DATA(lt_selpar) = VALUE /bobf/t_frw_query_selparam( ( attribute_name = lv_attname
sign = 'I'
option = 'EQ'
low = iv_freight_order ) ).
DATA lt_key TYPE /bobf/t_frw_key.
DATA lt_docref TYPE /scmtms/t_tor_root_k.
"Execução da query
lo_srv_mgr->query( EXPORTING iv_query_key = /scmtms/if_tor_c=>sc_query-root-planning_attributes
it_selection_parameters = lt_selpar
iv_fill_data = abap_true
IMPORTING "eo_message = DATA(lo_message)
et_key = lt_key
et_data = lt_docref
).
IF lt_key[] IS INITIAL.
rs_return = VALUE #( id = 'ZJLTM' type = 'E' number = '002' message_v1 = iv_freight_order
message = cl_bs_soa_message_container=>get_msg_text( is_applmsg = VALUE #( type = 'E'
id = 'ZJLTM'
number = '002'
message_v1 = iv_freight_order
) ) ) .
RETURN.
ENDIF.
"get first location
lo_srv_mgr->retrieve_by_association(
EXPORTING
iv_node_key = /scmtms/if_tor_c=>sc_node-root
it_key = lt_key
iv_fill_data = abap_true
iv_association = /scmtms/if_tor_c=>sc_association-root-stop_first
IMPORTING
eo_message = DATA(lo_message)
et_data = lt_stop
et_failed_key = DATA(lt_failed_key) ).
rs_return = get_tm_message( lo_message ).
CHECK rs_return IS INITIAL.
DATA(lt_stop_key) = VALUE /bobf/t_frw_key_link( FOR ls_stop IN lt_stop
( target_key = ls_stop-key
source_key = ls_stop-root_key )
).
IF lt_docref[ 1 ]-execution = c_tm_exec_status.
rs_return = tm_call_report_event(
EXPORTING
iv_event = c_tm_events-ready
iv_eventdate = iv_eventdate
it_root_key = lt_key
it_stop = lt_stop_key ).
CHECK rs_return IS INITIAL.
ENDIF.
rs_return = tm_call_report_event(
EXPORTING
iv_event = iv_event
iv_eventdate = iv_eventdate
it_root_key = lt_key
it_stop = lt_stop_key ).
IF rs_return IS INITIAL.
rs_return = VALUE #( id = 'ZJLTM' type = 'S' number = '003' ) .
ENDIF.
ENDMETHOD.
DATA: lt_stop TYPE /scmtms/t_tor_stop_k.
CLEAR rs_return.
DATA(lo_srv_mgr) = /bobf/cl_tra_serv_mgr_factory=>get_service_manager( /scmtms/if_tor_c=>sc_bo_key ).
DATA(lv_bo_name) = /scmtms/if_tor_c=>sc_bo_name.
DATA(lv_attname) = /scmtms/if_tor_c=>sc_query_attribute-root-planning_attributes-tor_id.
*"Selection Parameters
DATA(lt_selpar) = VALUE /bobf/t_frw_query_selparam( ( attribute_name = lv_attname
sign = 'I'
option = 'EQ'
low = iv_freight_order ) ).
DATA lt_key TYPE /bobf/t_frw_key.
DATA lt_docref TYPE /scmtms/t_tor_root_k.
"Execução da query
lo_srv_mgr->query( EXPORTING iv_query_key = /scmtms/if_tor_c=>sc_query-root-planning_attributes
it_selection_parameters = lt_selpar
iv_fill_data = abap_true
IMPORTING "eo_message = DATA(lo_message)
et_key = lt_key
et_data = lt_docref
).
IF lt_key[] IS INITIAL.
rs_return = VALUE #( id = 'ZJLTM' type = 'E' number = '002' message_v1 = iv_freight_order
message = cl_bs_soa_message_container=>get_msg_text( is_applmsg = VALUE #( type = 'E'
id = 'ZJLTM'
number = '002'
message_v1 = iv_freight_order
) ) ) .
RETURN.
ENDIF.
"get first location
lo_srv_mgr->retrieve_by_association(
EXPORTING
iv_node_key = /scmtms/if_tor_c=>sc_node-root
it_key = lt_key
iv_fill_data = abap_true
iv_association = /scmtms/if_tor_c=>sc_association-root-stop_first
IMPORTING
eo_message = DATA(lo_message)
et_data = lt_stop
et_failed_key = DATA(lt_failed_key) ).
rs_return = get_tm_message( lo_message ).
CHECK rs_return IS INITIAL.
DATA(lt_stop_key) = VALUE /bobf/t_frw_key_link( FOR ls_stop IN lt_stop
( target_key = ls_stop-key
source_key = ls_stop-root_key )
).
IF lt_docref[ 1 ]-execution = c_tm_exec_status.
rs_return = tm_call_report_event(
EXPORTING
iv_event = c_tm_events-ready
iv_eventdate = iv_eventdate
it_root_key = lt_key
it_stop = lt_stop_key ).
CHECK rs_return IS INITIAL.
ENDIF.
rs_return = tm_call_report_event(
EXPORTING
iv_event = iv_event
iv_eventdate = iv_eventdate
it_root_key = lt_key
it_stop = lt_stop_key ).
IF rs_return IS INITIAL.
rs_return = VALUE #( id = 'ZJLTM' type = 'S' number = '003' ) .
ENDIF.
ENDMETHOD.
Nenhum comentário:
Postar um comentário