Получилось чуть больше:-))
In include RPCBU409_OPXMES
Code:
FORM opxmes.
DATA: log_msg TYPE hrplog_msg,
dummy(1) TYPE c,
no_display(1) TYPE c.
CASE op+4(1).
WHEN ' '.
CASE op+5(2).
WHEN '99'.
* International parameters (99xxx)
CASE op+7(3).
WHEN 'TST'.
* Example implementation
MESSAGE w032(hrpay99calc) WITH pernr-pernr INTO dummy.
MOVE-CORRESPONDING sy TO log_msg.
WHEN OTHERS.
ENDCASE.
WHEN 'ZZ'.
* Customer exit (ZZxxx)
PERFORM opxmes_cust IN PROGRAM (sy-repid)
USING op+7(3)
CHANGING log_msg
no_display IF FOUND.
WHEN OTHERS.
* Country exit (IIxxx, II is iso-code)
PERFORM re500l USING calcmolga.
IF op+5(2) = t500l-intca.
PERFORM opxmes_natio IN PROGRAM (sy-repid)
USING op+7(3)
CHANGING log_msg
no_display IF FOUND.
ENDIF.
ENDCASE.
IF no_display = ' '.
IF log_msg-msgid IS INITIAL OR
log_msg-msgno IS INITIAL.
* Rejection
PERFORM log_op_err(h99plog0) TABLES error_ptext
USING op i52c5.
PERFORM errors TABLES error_ptext.
ENDIF.
PERFORM messages_t100 USING log_msg.
ENDIF.
WHEN 'O'.
* Replacement of old operation MESSG (deleted with 4.70)
PERFORM opmessg.
WHEN OTHERS.
* Rejection
PERFORM log_op_err(h99plog0) TABLES error_ptext
USING op i52c5.
PERFORM errors TABLES error_ptext.
ENDCASE.
ENDFORM. "opxmes
In include ZXPCMASRU0Code:
*&--------------------------------------------------------------------*
*& Form opxmes_cust
*&--------------------------------------------------------------------*
* Вызов сообщения с помощью функции XMES
*---------------------------------------------------------------------*
FORM opxmes_cust USING
op TYPE c
CHANGING value(log_msg) TYPE hrplog_msg
value(no_display) TYPE c.
MESSAGE ID '********' TYPE 'E' NUMBER op WITH pernr-pernr INTO dummy.
MOVE-CORRESPONDING sy TO log_msg.
ENDFORM. "opxmes_cust
Where ********* - messages class