可通过向导创建消息,常用的方法有四种。
report_attribute_error_message:
* get message manager
DATA lo_api_controller TYPE REF TO if_wd_controller.
DATA lo_message_manager TYPE REF TO if_wd_message_manager.
DATA lv_text TYPE string.
DATA lv_message TYPE string.
DATA lt_params TYPE wdr_name_value_list.
DATA ls_param TYPE wdr_name_value.
DATA lo_nd_importing TYPE REF TO if_wd_context_node.
DATA lo_el_importing TYPE REF TO if_wd_context_element.
DATA ls_importing TYPE wd_this->element_importing.
* navigate from <CONTEXT> to <IMPORTING> via lead selection
lo_nd_importing = wd_context->path_get_node( path = `BAPI_SALESORDER_GETL.IMPORTING` ).
lo_el_importing = lo_nd_importing->get_element( ).
lo_api_controller ?= wd_this->wd_get_api( ).
CALL METHOD lo_api_controller->get_message_manager
RECEIVING
message_manager = lo_message_manager.
lv_text = 'text by &X1'.
ls_param-name = 'X1'.
ls_param-value = 'Jon'.
APPEND ls_param TO lt_params.
* report message
CALL METHOD lo_message_manager->report_attribute_error_message
EXPORTING
message_text = lv_text
element = lo_el_importing
attribute_name = 'CUSTOMER_NUMBER'
params = lt_params
* msg_user_data =
* is_permanent = ABAP_FALSE
* scope_permanent_msg = CO_MSG_SCOPE_CTXT_ELEMENT
* msg_index =
* cancel_navigation =
* is_validation_independent = ABAP_FALSE
* enable_message_navigation =
* view =
* component =
RECEIVING
message_id = lv_message.
report_error_message:
* get message manager
DATA lo_api_controller TYPE REF TO if_wd_controller.
DATA lo_message_manager TYPE REF TO if_wd_message_manager.
DATA lv_message TYPE string.
lo_api_controller ?= wd_this->wd_get_api( ).
CALL METHOD lo_api_controller->get_message_manager
RECEIVING
message_manager = lo_message_manager.
* report message
CALL METHOD lo_message_manager->report_error_message
EXPORTING
message_text = '没有数据!'
* params =
* msg_user_data =
* is_permanent = ABAP_FALSE
* scope_permanent_msg = CO_MSG_SCOPE_CONTROLLER
* view =
* show_as_popup =
* controller_permanent_msg =
* msg_index =
* cancel_navigation =
* enable_message_navigation =
* component =
RECEIVING
message_id = lv_message.
report_t100_message:
* get message manager
DATA lo_api_controller TYPE REF TO if_wd_controller.
DATA lo_message_manager TYPE REF TO if_wd_message_manager.
DATA lv_message TYPE string.
lo_api_controller ?= wd_this->wd_get_api( ).
CALL METHOD lo_api_controller->get_message_manager
RECEIVING
message_manager = lo_message_manager.
* report message
CALL METHOD lo_message_manager->report_t100_message
EXPORTING
msgid = 'v1'
msgno = '045'
msgty = 'E'
* p1 =
* p2 =
* p3 =
* p4 =
* msg_user_data =
* is_permanent = ABAP_FALSE
* scope_permanent_msg = CO_MSG_SCOPE_CONTROLLER
* view =
* show_as_popup =
* controller_permanent_msg =
* msg_index =
* cancel_navigation =
* enable_message_navigation =
* component =
RECEIVING
message_id = lv_message.
report_attribute_t100_message:
* get message manager
DATA lo_api_controller TYPE REF TO if_wd_controller.
DATA lo_message_manager TYPE REF TO if_wd_message_manager.
DATA ls_message TYPE symsg.
DATA lv_message TYPE string.
DATA lo_nd_importing TYPE REF TO if_wd_context_node.
DATA lo_el_importing TYPE REF TO if_wd_context_element.
DATA ls_importing TYPE wd_this->element_importing.
* navigate from <CONTEXT> to <IMPORTING> via lead selection
lo_nd_importing = wd_context->path_get_node( path = `BAPI_SALESORDER_GETL.IMPORTING` ).
* get element via lead selection
lo_el_importing = lo_nd_importing->get_element( ).
lo_api_controller ?= wd_this->wd_get_api( ).
CALL METHOD lo_api_controller->get_message_manager
RECEIVING
message_manager = lo_message_manager.
ls_message-msgid = 'V1'.
ls_message-msgno = '045'.
ls_message-msgty = 'E'.
* report message
CALL METHOD lo_message_manager->report_attribute_t100_message
EXPORTING
msg = ls_message
element = lo_el_importing
attribute_name = 'CUSTOMER_NUMBER'
* msg_user_data =
* message_type = CO_TYPE_ERROR
* is_permanent = ABAP_FALSE
* scope_permanent_msg = CO_MSG_SCOPE_CTXT_ELEMENT
* msg_index =
* cancel_navigation =
* is_validation_independent = ABAP_FALSE
* enable_message_navigation =
* view =
* component =
RECEIVING
message_id = lv_message.